Lines Matching refs:xm
56 static unsigned int ieee754sp_get_rounding(int sn, unsigned int xm) in ieee754sp_get_rounding() argument
60 if (xm & (SP_MBIT(3) - 1)) { in ieee754sp_get_rounding()
65 xm += 0x3 + ((xm >> 3) & 1); in ieee754sp_get_rounding()
70 xm += 0x8; in ieee754sp_get_rounding()
74 xm += 0x8; in ieee754sp_get_rounding()
78 return xm; in ieee754sp_get_rounding()
87 union ieee754sp ieee754sp_format(int sn, int xe, unsigned int xm) in ieee754sp_format() argument
89 assert(xm); /* we don't gen exact zeros (probably should) */ in ieee754sp_format()
91 assert((xm >> (SP_FBITS + 1 + 3)) == 0); /* no excess */ in ieee754sp_format()
92 assert(xm & (SP_HIDDEN_BIT << 3)); in ieee754sp_format()
120 ieee754sp_get_rounding(sn, xm) >> (SP_FBITS + 1 + 3)) in ieee754sp_format()
124 xm = ieee754sp_get_rounding(sn, xm); in ieee754sp_format()
125 xm >>= 1; in ieee754sp_format()
127 xm &= ~(SP_MBIT(3) - 1); in ieee754sp_format()
132 xm = XSPSRS(xm, es); 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 excess */ 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 excess */ 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()