Lines Matching defs:fe

77 fpu_round(struct fpemu *fe, struct fpn *fp)
98 fe->fe_cx |= FSR_NX; /* inexact */
101 switch ((fe->fe_fsr >> FSR_RD_SHIFT) & FSR_RD_MASK) {
158 toinf(struct fpemu *fe, int sign)
163 switch ((fe->fe_fsr >> FSR_RD_SHIFT) & FSR_RD_MASK) {
192 fpu_ftoi(struct fpemu *fe, struct fpn *fp)
218 fe->fe_cx |= FSR_NX;
228 fe->fe_cx = (fe->fe_cx & ~FSR_NX) | FSR_NV;
239 fpu_ftox(struct fpemu *fe, struct fpn *fp, u_int *res)
266 fe->fe_cx |= FSR_NX;
278 fe->fe_cx = (fe->fe_cx & ~FSR_NX) | FSR_NV;
290 fpu_ftos(struct fpemu *fe, struct fpn *fp)
338 if (fpu_round(fe, fp) && fp->fp_mant[3] == SNG_EXP(1))
340 if ((fe->fe_cx & FSR_NX) ||
341 (fe->fe_fsr & (FSR_UF << FSR_TEM_SHIFT)))
342 fe->fe_cx |= FSR_UF;
351 if (fpu_round(fe, fp) && fp->fp_mant[3] == SNG_EXP(2))
355 fe->fe_cx |= FSR_OF | FSR_NX;
356 if (toinf(fe, sign))
372 fpu_ftod(struct fpemu *fe, struct fpn *fp, u_int *res)
396 if (fpu_round(fe, fp) && fp->fp_mant[2] == DBL_EXP(1)) {
400 if ((fe->fe_cx & FSR_NX) ||
401 (fe->fe_fsr & (FSR_UF << FSR_TEM_SHIFT)))
402 fe->fe_cx |= FSR_UF;
407 if (fpu_round(fe, fp) && fp->fp_mant[2] == DBL_EXP(2))
410 fe->fe_cx |= FSR_OF | FSR_NX;
411 if (toinf(fe, sign)) {
430 fpu_ftoq(struct fpemu *fe, struct fpn *fp, u_int *res)
454 if (fpu_round(fe, fp) && fp->fp_mant[0] == EXT_EXP(1)) {
458 if ((fe->fe_cx & FSR_NX) ||
459 (fe->fe_fsr & (FSR_UF << FSR_TEM_SHIFT)))
460 fe->fe_cx |= FSR_UF;
465 if (fpu_round(fe, fp) && fp->fp_mant[0] == EXT_EXP(2))
468 fe->fe_cx |= FSR_OF | FSR_NX;
469 if (toinf(fe, sign)) {
487 fpu_implode(struct fpemu *fe, struct fpn *fp, int type, u_int *space)
493 space[0] = fpu_ftox(fe, fp, space);
498 space[0] = fpu_ftoi(fe, fp);
503 space[0] = fpu_ftos(fe, fp);
508 space[0] = fpu_ftod(fe, fp, space);
514 space[0] = fpu_ftoq(fe, fp, space);