Lines Matching refs:xm
57 static unsigned ieee754sp_get_rounding(int sn, unsigned xm) in ieee754sp_get_rounding() argument
61 if (xm & (SP_MBIT(3) - 1)) { in ieee754sp_get_rounding()
66 xm += 0x3 + ((xm >> 3) & 1); in ieee754sp_get_rounding()
71 xm += 0x8; in ieee754sp_get_rounding()
75 xm += 0x8; in ieee754sp_get_rounding()
79 return xm; in ieee754sp_get_rounding()
88 union ieee754sp ieee754sp_format(int sn, int xe, unsigned xm) in ieee754sp_format() argument
90 assert(xm); /* we don't gen exact zeros (probably should) */ in ieee754sp_format()
92 assert((xm >> (SP_FBITS + 1 + 3)) == 0); /* no execess */ in ieee754sp_format()
93 assert(xm & (SP_HIDDEN_BIT << 3)); in ieee754sp_format()
121 ieee754sp_get_rounding(sn, xm) >> (SP_FBITS + 1 + 3)) in ieee754sp_format()
125 xm = ieee754sp_get_rounding(sn, xm); in ieee754sp_format()
126 xm >>= 1; in ieee754sp_format()
128 xm &= ~(SP_MBIT(3) - 1); in ieee754sp_format()
134 assert((xm & (SP_HIDDEN_BIT << 3)) == 0); in ieee754sp_format()
138 if (xm & (SP_MBIT(3) - 1)) { in ieee754sp_format()
140 if ((xm & (SP_HIDDEN_BIT << 3)) == 0) { in ieee754sp_format()
146 xm = ieee754sp_get_rounding(sn, xm); in ieee754sp_format()
149 if (xm >> (SP_FBITS + 1 + 3)) { in ieee754sp_format()
151 xm >>= 1; in ieee754sp_format()
156 xm >>= 3; in ieee754sp_format()
158 assert((xm >> (SP_FBITS + 1)) == 0); /* no execess */ in ieee754sp_format()
184 if ((xm & SP_HIDDEN_BIT) == 0) { in ieee754sp_format()
189 return buildsp(sn, SP_EMIN - 1 + SP_EBIAS, xm); in ieee754sp_format()
191 assert((xm >> (SP_FBITS + 1)) == 0); /* no execess */ in ieee754sp_format()
192 assert(xm & SP_HIDDEN_BIT); in ieee754sp_format()
194 return buildsp(sn, xe + SP_EBIAS, xm & ~SP_HIDDEN_BIT); in ieee754sp_format()