/Linux-v4.19/arch/mips/math-emu/ |
D | ieee754dp.c | 68 static u64 ieee754dp_get_rounding(int sn, u64 xm) in ieee754dp_get_rounding() argument 72 if (xm & (DP_MBIT(3) - 1)) { in ieee754dp_get_rounding() 77 xm += 0x3 + ((xm >> 3) & 1); in ieee754dp_get_rounding() 82 xm += 0x8; in ieee754dp_get_rounding() 86 xm += 0x8; in ieee754dp_get_rounding() 90 return xm; in ieee754dp_get_rounding() 99 union ieee754dp ieee754dp_format(int sn, int xe, u64 xm) in ieee754dp_format() argument 101 assert(xm); /* we don't gen exact zeros (probably should) */ in ieee754dp_format() 103 assert((xm >> (DP_FBITS + 1 + 3)) == 0); /* no excess */ in ieee754dp_format() 104 assert(xm & (DP_HIDDEN_BIT << 3)); in ieee754dp_format() [all …]
|
D | ieee754sp.c | 68 static unsigned int ieee754sp_get_rounding(int sn, unsigned int xm) in ieee754sp_get_rounding() argument 72 if (xm & (SP_MBIT(3) - 1)) { in ieee754sp_get_rounding() 77 xm += 0x3 + ((xm >> 3) & 1); in ieee754sp_get_rounding() 82 xm += 0x8; in ieee754sp_get_rounding() 86 xm += 0x8; in ieee754sp_get_rounding() 90 return xm; in ieee754sp_get_rounding() 99 union ieee754sp ieee754sp_format(int sn, int xe, unsigned int xm) in ieee754sp_format() argument 101 assert(xm); /* we don't gen exact zeros (probably should) */ in ieee754sp_format() 103 assert((xm >> (SP_FBITS + 1 + 3)) == 0); /* no excess */ in ieee754sp_format() 104 assert(xm & (SP_HIDDEN_BIT << 3)); in ieee754sp_format() [all …]
|
D | sp_tlong.c | 57 if (xe == 63 && xs && xm == SP_HIDDEN_BIT) in ieee754sp_tlong() 66 xm <<= xe - SP_FBITS; in ieee754sp_tlong() 69 residue = xm; in ieee754sp_tlong() 72 xm = 0; in ieee754sp_tlong() 74 residue = xm << (32 - SP_FBITS + xe); in ieee754sp_tlong() 77 xm >>= SP_FBITS - xe; in ieee754sp_tlong() 79 odd = (xm & 0x1) != 0x0; in ieee754sp_tlong() 83 xm++; in ieee754sp_tlong() 89 xm++; in ieee754sp_tlong() 93 xm++; in ieee754sp_tlong() [all …]
|
D | dp_tint.c | 63 xm <<= xe - DP_FBITS; in ieee754dp_tint() 66 residue = xm; in ieee754dp_tint() 69 xm = 0; in ieee754dp_tint() 71 residue = xm << (64 - DP_FBITS + xe); in ieee754dp_tint() 74 xm >>= DP_FBITS - xe; in ieee754dp_tint() 78 odd = (xm & 0x1) != 0x0; in ieee754dp_tint() 82 xm++; in ieee754dp_tint() 88 xm++; in ieee754dp_tint() 92 xm++; in ieee754dp_tint() 96 if ((xm >> 31) != 0 && (xs == 0 || xm != 0x80000000)) { in ieee754dp_tint() [all …]
|
D | dp_tlong.c | 57 if (xe == 63 && xs && xm == DP_HIDDEN_BIT) in ieee754dp_tlong() 66 xm <<= xe - DP_FBITS; in ieee754dp_tlong() 69 residue = xm; in ieee754dp_tlong() 72 xm = 0; in ieee754dp_tlong() 77 residue = xm << (xe + 1); in ieee754dp_tlong() 81 xm >>= DP_FBITS - xe; in ieee754dp_tlong() 83 odd = (xm & 0x1) != 0x0; in ieee754dp_tlong() 87 xm++; in ieee754dp_tlong() 93 xm++; in ieee754dp_tlong() 97 xm++; in ieee754dp_tlong() [all …]
|
D | sp_tint.c | 57 if (xe == 31 && xs && xm == SP_HIDDEN_BIT) in ieee754sp_tint() 66 xm <<= xe - SP_FBITS; in ieee754sp_tint() 69 residue = xm; in ieee754sp_tint() 72 xm = 0; in ieee754sp_tint() 77 residue = xm << (xe + 1); in ieee754sp_tint() 81 xm >>= SP_FBITS - xe; in ieee754sp_tint() 83 odd = (xm & 0x1) != 0x0; in ieee754sp_tint() 87 xm++; in ieee754sp_tint() 93 xm++; in ieee754sp_tint() 97 xm++; in ieee754sp_tint() [all …]
|
D | dp_add.c | 120 assert(xm & DP_HIDDEN_BIT); in ieee754dp_add() 126 xm <<= 3; in ieee754dp_add() 141 xm = XDPSRS(xm, s); in ieee754dp_add() 152 xm = xm + ym; in ieee754dp_add() 154 if (xm >> (DP_FBITS + 1 + 3)) { /* carry out */ in ieee754dp_add() 155 xm = XDPSRS1(xm); in ieee754dp_add() 159 if (xm >= ym) { in ieee754dp_add() 160 xm = xm - ym; in ieee754dp_add() 162 xm = ym - xm; in ieee754dp_add() 165 if (xm == 0) in ieee754dp_add() [all …]
|
D | dp_sub.c | 127 assert(xm & DP_HIDDEN_BIT); in ieee754dp_sub() 132 xm <<= 3; in ieee754dp_sub() 147 xm = XDPSRS(xm, s); in ieee754dp_sub() 156 xm = xm + ym; in ieee754dp_sub() 158 if (xm >> (DP_FBITS + 1 + 3)) { /* carry out */ in ieee754dp_sub() 159 xm = XDPSRS1(xm); /* shift preserving sticky */ in ieee754dp_sub() 163 if (xm >= ym) { in ieee754dp_sub() 164 xm = xm - ym; in ieee754dp_sub() 166 xm = ym - xm; in ieee754dp_sub() 169 if (xm == 0) { in ieee754dp_sub() [all …]
|
D | sp_add.c | 120 assert(xm & SP_HIDDEN_BIT); in ieee754sp_add() 126 xm <<= 3; in ieee754sp_add() 141 xm = XSPSRS(xm, s); in ieee754sp_add() 152 xm = xm + ym; in ieee754sp_add() 154 if (xm >> (SP_FBITS + 1 + 3)) { /* carry out */ in ieee754sp_add() 158 if (xm >= ym) { in ieee754sp_add() 159 xm = xm - ym; in ieee754sp_add() 161 xm = ym - xm; in ieee754sp_add() 164 if (xm == 0) in ieee754sp_add() 170 while ((xm >> (SP_FBITS + 3)) == 0) { in ieee754sp_add() [all …]
|
D | sp_sub.c | 125 assert(xm & SP_HIDDEN_BIT); in ieee754sp_sub() 130 xm <<= 3; in ieee754sp_sub() 145 xm = XSPSRS(xm, s); in ieee754sp_sub() 154 xm = xm + ym; in ieee754sp_sub() 156 if (xm >> (SP_FBITS + 1 + 3)) { /* carry out */ in ieee754sp_sub() 160 if (xm >= ym) { in ieee754sp_sub() 161 xm = xm - ym; in ieee754sp_sub() 163 xm = ym - xm; in ieee754sp_sub() 166 if (xm == 0) { in ieee754sp_sub() 174 while ((xm >> (SP_FBITS + 3)) == 0) { in ieee754sp_sub() [all …]
|
D | sp_fint.c | 26 unsigned int xm; in ieee754sp_fint() local 42 xm = ((unsigned) 1 << 31); /* max neg can't be safely negated */ in ieee754sp_fint() 44 xm = -x; in ieee754sp_fint() 46 xm = x; in ieee754sp_fint() 50 if (xm >> (SP_FBITS + 1 + 3)) { in ieee754sp_fint() 53 while (xm >> (SP_FBITS + 1 + 3)) { in ieee754sp_fint() 59 while ((xm >> (SP_FBITS + 3)) == 0) { in ieee754sp_fint() 60 xm <<= 1; in ieee754sp_fint() 64 return ieee754sp_format(xs, xe, xm); in ieee754sp_fint()
|
D | dp_flong.c | 26 u64 xm; in ieee754dp_flong() local 42 xm = (1ULL << 63); /* max neg can't be safely negated */ in ieee754dp_flong() 44 xm = -x; in ieee754dp_flong() 46 xm = x; in ieee754dp_flong() 51 if (xm >> (DP_FBITS + 1 + 3)) { in ieee754dp_flong() 53 while (xm >> (DP_FBITS + 1 + 3)) { in ieee754dp_flong() 58 while ((xm >> (DP_FBITS + 3)) == 0) { in ieee754dp_flong() 59 xm <<= 1; in ieee754dp_flong() 64 return ieee754dp_format(xs, xe, xm); in ieee754dp_flong()
|
D | sp_flong.c | 26 u64 xm; /* <--- need 64-bit mantissa temp */ in ieee754sp_flong() local 42 xm = (1ULL << 63); /* max neg can't be safely negated */ in ieee754sp_flong() 44 xm = -x; in ieee754sp_flong() 46 xm = x; in ieee754sp_flong() 50 if (xm >> (SP_FBITS + 1 + 3)) { in ieee754sp_flong() 53 while (xm >> (SP_FBITS + 1 + 3)) { in ieee754sp_flong() 58 while ((xm >> (SP_FBITS + 3)) == 0) { in ieee754sp_flong() 59 xm <<= 1; in ieee754sp_flong() 63 return ieee754sp_format(xs, xe, xm); in ieee754sp_flong()
|
D | dp_rint.c | 52 residue = xm; in ieee754dp_rint() 55 xm = 0; in ieee754dp_rint() 57 residue = xm << (64 - DP_FBITS + xe); in ieee754dp_rint() 60 xm >>= DP_FBITS - xe; in ieee754dp_rint() 63 odd = (xm & 0x1) != 0x0; in ieee754dp_rint() 68 xm++; in ieee754dp_rint() 74 xm++; in ieee754dp_rint() 78 xm++; in ieee754dp_rint() 85 ret = ieee754dp_flong(xm); in ieee754dp_rint()
|
D | sp_rint.c | 52 residue = xm; in ieee754sp_rint() 55 xm = 0; in ieee754sp_rint() 57 residue = xm << (xe + 1); in ieee754sp_rint() 61 xm >>= SP_FBITS - xe; in ieee754sp_rint() 64 odd = (xm & 0x1) != 0x0; in ieee754sp_rint() 69 xm++; in ieee754sp_rint() 75 xm++; in ieee754sp_rint() 79 xm++; in ieee754sp_rint() 86 ret = ieee754sp_flong(xm); in ieee754sp_rint()
|
D | dp_fsp.c | 25 static inline union ieee754dp ieee754dp_nan_fsp(int xs, u64 xm) in ieee754dp_nan_fsp() argument 28 xm << (DP_FBITS - SP_FBITS)); in ieee754dp_nan_fsp() 43 return ieee754dp_nanxcpt(ieee754dp_nan_fsp(xs, xm)); in ieee754dp_fsp() 46 return ieee754dp_nan_fsp(xs, xm); in ieee754dp_fsp() 56 while ((xm >> SP_FBITS) == 0) { in ieee754dp_fsp() 57 xm <<= 1; in ieee754dp_fsp() 71 xm &= ~SP_HIDDEN_BIT; in ieee754dp_fsp() 74 (u64) xm << (DP_FBITS - SP_FBITS)); in ieee754dp_fsp()
|
D | dp_fint.c | 26 u64 xm; in ieee754dp_fint() local 42 xm = ((unsigned) 1 << 31); /* max neg can't be safely negated */ in ieee754dp_fint() 44 xm = -x; in ieee754dp_fint() 46 xm = x; in ieee754dp_fint() 51 while ((xm >> DP_FBITS) == 0) { in ieee754dp_fint() 52 xm <<= 1; in ieee754dp_fint() 55 return builddp(xs, xe + DP_EBIAS, xm & ~DP_HIDDEN_BIT); in ieee754dp_fint()
|
D | dp_div.c | 119 assert(xm & DP_HIDDEN_BIT); in ieee754dp_div() 123 xm <<= 3; in ieee754dp_div() 132 if (xm >= ym) { in ieee754dp_div() 133 xm -= ym; in ieee754dp_div() 135 if (xm == 0) in ieee754dp_div() 138 xm <<= 1; in ieee754dp_div() 142 if (xm) in ieee754dp_div()
|
D | sp_div.c | 119 assert(xm & SP_HIDDEN_BIT); in ieee754sp_div() 123 xm <<= 3; in ieee754sp_div() 132 if (xm >= ym) { in ieee754sp_div() 133 xm -= ym; in ieee754sp_div() 135 if (xm == 0) in ieee754sp_div() 138 xm <<= 1; in ieee754sp_div() 142 if (xm) in ieee754sp_div()
|
D | sp_fdp.c | 25 static inline union ieee754sp ieee754sp_nan_fdp(int xs, u64 xm) in ieee754sp_nan_fdp() argument 28 xm >> (DP_FBITS - SP_FBITS)); in ieee754sp_nan_fdp() 52 y = ieee754sp_nan_fdp(xs, xm); in ieee754sp_fdp() 82 rm = (xm >> (DP_FBITS - (SP_FBITS + 3))) | in ieee754sp_fdp() 83 ((xm << (64 - (DP_FBITS - (SP_FBITS + 3)))) != 0); in ieee754sp_fdp()
|
D | ieee754dp.h | 53 (xe++, (xm = (xm >> 1) | (xm & 1))) 64 #define DPDNORMX DPDNORMx(xm, xe)
|
D | ieee754int.h | 57 unsigned int xm; int xe; int xs __maybe_unused; int xc 89 #define EXPLODEXSP EXPLODESP(x, xc, xs, xe, xm) 95 u64 xm; int xe; int xs __maybe_unused; int xc 127 #define EXPLODEXDP EXPLODEDP(x, xc, xs, xe, xm) 153 #define FLUSHXDP FLUSHDP(x, xc, xs, xe, xm) 156 #define FLUSHXSP FLUSHSP(x, xc, xs, xe, xm)
|
D | dp_fmin.c | 111 assert(xm & DP_HIDDEN_BIT); in ieee754dp_fmin() 138 if (xm <= ym) in ieee754dp_fmin() 143 if (xm <= ym) in ieee754dp_fmin() 240 assert(xm & DP_HIDDEN_BIT); in ieee754dp_fmina() 250 if (xm < ym) in ieee754dp_fmina() 252 else if (xm > ym) in ieee754dp_fmina()
|
D | sp_fmax.c | 111 assert(xm & SP_HIDDEN_BIT); in ieee754sp_fmax() 138 if (xm <= ym) in ieee754sp_fmax() 143 if (xm <= ym) in ieee754sp_fmax() 240 assert(xm & SP_HIDDEN_BIT); in ieee754sp_fmaxa() 250 if (xm < ym) in ieee754sp_fmaxa() 252 else if (xm > ym) in ieee754sp_fmaxa()
|
D | sp_fmin.c | 111 assert(xm & SP_HIDDEN_BIT); in ieee754sp_fmin() 138 if (xm <= ym) in ieee754sp_fmin() 143 if (xm <= ym) in ieee754sp_fmin() 240 assert(xm & SP_HIDDEN_BIT); in ieee754sp_fmina() 250 if (xm < ym) in ieee754sp_fmina() 252 else if (xm > ym) in ieee754sp_fmina()
|