Lines Matching refs:fp

82 round(struct fpemu *fe, struct fpn *fp)  in round()  argument
88 m0 = fp->fp_mant[0]; in round()
89 m1 = fp->fp_mant[1]; in round()
90 m2 = fp->fp_mant[2]; in round()
91 m3 = fp->fp_mant[3]; in round()
93 s = fp->fp_sticky; in round()
117 if ((gr & 1) || fp->fp_sticky || (m3 & 1)) in round()
127 if (fp->fp_sign) in round()
133 if (!fp->fp_sign) in round()
145 fp->fp_mant[0] = m0; in round()
146 fp->fp_mant[1] = m1; in round()
147 fp->fp_mant[2] = m2; in round()
148 fp->fp_mant[3] = m3; in round()
152 fp->fp_mant[0] = m0; in round()
153 fp->fp_mant[1] = m1; in round()
154 fp->fp_mant[2] = m2; in round()
155 fp->fp_mant[3] = m3; in round()
200 fpu_ftoi(struct fpemu *fe, struct fpn *fp) in fpu_ftoi() argument
205 sign = fp->fp_sign; in fpu_ftoi()
206 switch (fp->fp_class) { in fpu_ftoi()
221 if ((exp = fp->fp_exp) >= 32) in fpu_ftoi()
224 if (fpu_shr(fp, FP_NMANT - 1 - exp) != 0) in fpu_ftoi()
226 i = fp->fp_mant[3]; in fpu_ftoi()
246 fpu_ftox(struct fpemu *fe, struct fpn *fp, u_int *res) in fpu_ftox() argument
251 sign = fp->fp_sign; in fpu_ftox()
252 switch (fp->fp_class) { in fpu_ftox()
268 if ((exp = fp->fp_exp) >= 64) in fpu_ftox()
271 if (fpu_shr(fp, FP_NMANT - 1 - exp) != 0) in fpu_ftox()
273 i = ((u_int64_t)fp->fp_mant[2]<<32)|fp->fp_mant[3]; in fpu_ftox()
291 fpu_ftos(struct fpemu *fe, struct fpn *fp) in fpu_ftos() argument
293 u_int sign = fp->fp_sign << 31; in fpu_ftos()
300 if (ISNAN(fp)) { in fpu_ftos()
306 (void) fpu_shr(fp, FP_NMANT - 1 - SNG_FRACBITS); in fpu_ftos()
310 if (ISINF(fp)) in fpu_ftos()
312 if (ISZERO(fp)) in fpu_ftos()
336 if ((exp = fp->fp_exp + SNG_EXP_BIAS) <= 0) { /* subnormal */ in fpu_ftos()
338 (void) fpu_shr(fp, FP_NMANT - FP_NG - SNG_FRACBITS - exp); in fpu_ftos()
339 if (round(fe, fp) && fp->fp_mant[3] == SNG_EXP(1)) in fpu_ftos()
344 return (sign | SNG_EXP(0) | fp->fp_mant[3]); in fpu_ftos()
347 (void) fpu_shr(fp, FP_NMANT - FP_NG - 1 - SNG_FRACBITS); in fpu_ftos()
349 if ((fp->fp_mant[3] & SNG_EXP(1 << FP_NG)) == 0) in fpu_ftos()
352 if (round(fe, fp) && fp->fp_mant[3] == SNG_EXP(2)) in fpu_ftos()
362 return (sign | SNG_EXP(exp) | (fp->fp_mant[3] & SNG_MASK)); in fpu_ftos()
372 fpu_ftod(struct fpemu *fe, struct fpn *fp, u_int *res) in fpu_ftod() argument
374 u_int sign = fp->fp_sign << 31; in fpu_ftod()
380 if (ISNAN(fp)) { in fpu_ftod()
381 (void) fpu_shr(fp, FP_NMANT - 1 - DBL_FRACBITS); in fpu_ftod()
385 if (ISINF(fp)) { in fpu_ftod()
389 if (ISZERO(fp)) { in fpu_ftod()
394 if ((exp = fp->fp_exp + DBL_EXP_BIAS) <= 0) { in fpu_ftod()
395 (void) fpu_shr(fp, FP_NMANT - FP_NG - DBL_FRACBITS - exp); in fpu_ftod()
396 if (round(fe, fp) && fp->fp_mant[2] == DBL_EXP(1)) { in fpu_ftod()
406 (void) fpu_shr(fp, FP_NMANT - FP_NG - 1 - DBL_FRACBITS); in fpu_ftod()
407 if (round(fe, fp) && fp->fp_mant[2] == DBL_EXP(2)) in fpu_ftod()
419 res[1] = fp->fp_mant[3]; in fpu_ftod()
420 return (sign | DBL_EXP(exp) | (fp->fp_mant[2] & DBL_MASK)); in fpu_ftod()
427 fpu_implode(struct fpemu *fe, struct fpn *fp, int type, u_int *space) in fpu_implode() argument
432 space[0] = fpu_ftox(fe, fp, space); in fpu_implode()
439 space[1] = fpu_ftoi(fe, fp); in fpu_implode()
445 space[0] = fpu_ftos(fe, fp); in fpu_implode()
451 space[0] = fpu_ftod(fe, fp, space); in fpu_implode()