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()
118 if ((gr & 1) || fp->fp_sticky || (m3 & 1)) in round()
128 if (fp->fp_sign) in round()
134 if (!fp->fp_sign) in round()
146 fp->fp_mant[0] = m0; in round()
147 fp->fp_mant[1] = m1; in round()
148 fp->fp_mant[2] = m2; in round()
149 fp->fp_mant[3] = m3; in round()
153 fp->fp_mant[0] = m0; in round()
154 fp->fp_mant[1] = m1; in round()
155 fp->fp_mant[2] = m2; in round()
156 fp->fp_mant[3] = m3; in round()
202 fpu_ftoi(struct fpemu *fe, struct fpn *fp) in fpu_ftoi() argument
207 sign = fp->fp_sign; in fpu_ftoi()
208 switch (fp->fp_class) { in fpu_ftoi()
224 if ((exp = fp->fp_exp) >= 32) in fpu_ftoi()
227 if (fpu_shr(fp, FP_NMANT - 1 - exp) != 0) in fpu_ftoi()
229 i = fp->fp_mant[3]; in fpu_ftoi()
249 fpu_ftox(struct fpemu *fe, struct fpn *fp, u_int *res) in fpu_ftox() argument
254 sign = fp->fp_sign; in fpu_ftox()
255 switch (fp->fp_class) { in fpu_ftox()
272 if ((exp = fp->fp_exp) >= 64) in fpu_ftox()
275 if (fpu_shr(fp, FP_NMANT - 1 - exp) != 0) in fpu_ftox()
277 i = ((u_int64_t)fp->fp_mant[2]<<32)|fp->fp_mant[3]; in fpu_ftox()
295 fpu_ftos(struct fpemu *fe, struct fpn *fp) in fpu_ftos() argument
297 u_int sign = fp->fp_sign << 31; in fpu_ftos()
304 if (ISNAN(fp)) { in fpu_ftos()
310 (void) fpu_shr(fp, FP_NMANT - 1 - SNG_FRACBITS); in fpu_ftos()
314 if (ISINF(fp)) in fpu_ftos()
316 if (ISZERO(fp)) in fpu_ftos()
340 if ((exp = fp->fp_exp + SNG_EXP_BIAS) <= 0) { /* subnormal */ in fpu_ftos()
342 (void) fpu_shr(fp, FP_NMANT - FP_NG - SNG_FRACBITS - exp); in fpu_ftos()
343 if (round(fe, fp) && fp->fp_mant[3] == SNG_EXP(1)) in fpu_ftos()
348 return (sign | SNG_EXP(0) | fp->fp_mant[3]); in fpu_ftos()
351 (void) fpu_shr(fp, FP_NMANT - FP_NG - 1 - SNG_FRACBITS); in fpu_ftos()
353 if ((fp->fp_mant[3] & SNG_EXP(1 << FP_NG)) == 0) in fpu_ftos()
356 if (round(fe, fp) && fp->fp_mant[3] == SNG_EXP(2)) in fpu_ftos()
366 return (sign | SNG_EXP(exp) | (fp->fp_mant[3] & SNG_MASK)); in fpu_ftos()
376 fpu_ftod(struct fpemu *fe, struct fpn *fp, u_int *res) in fpu_ftod() argument
378 u_int sign = fp->fp_sign << 31; in fpu_ftod()
384 if (ISNAN(fp)) { in fpu_ftod()
385 (void) fpu_shr(fp, FP_NMANT - 1 - DBL_FRACBITS); in fpu_ftod()
389 if (ISINF(fp)) { in fpu_ftod()
393 if (ISZERO(fp)) { in fpu_ftod()
398 if ((exp = fp->fp_exp + DBL_EXP_BIAS) <= 0) { in fpu_ftod()
399 (void) fpu_shr(fp, FP_NMANT - FP_NG - DBL_FRACBITS - exp); in fpu_ftod()
400 if (round(fe, fp) && fp->fp_mant[2] == DBL_EXP(1)) { in fpu_ftod()
410 (void) fpu_shr(fp, FP_NMANT - FP_NG - 1 - DBL_FRACBITS); in fpu_ftod()
411 if (round(fe, fp) && fp->fp_mant[2] == DBL_EXP(2)) in fpu_ftod()
423 res[1] = fp->fp_mant[3]; in fpu_ftod()
424 return (sign | DBL_EXP(exp) | (fp->fp_mant[2] & DBL_MASK)); in fpu_ftod()
431 fpu_implode(struct fpemu *fe, struct fpn *fp, int type, u_int *space) in fpu_implode() argument
437 space[0] = fpu_ftox(fe, fp, space); in fpu_implode()
444 space[1] = fpu_ftoi(fe, fp); in fpu_implode()
450 space[0] = fpu_ftos(fe, fp); in fpu_implode()
456 space[0] = fpu_ftod(fe, fp, space); in fpu_implode()