Lines Matching refs:pfpsd
39 fp_simd_type *pfpsd, /* Pointer to simulator data */ in overflow_to_infinity() argument
44 switch (pfpsd->fp_direction) { in overflow_to_infinity()
66 fp_simd_type *pfpsd, /* Pointer to simulator data */ in round() argument
76 fpu_set_exception(pfpsd, fp_inexact); in round()
77 switch (pfpsd->fp_direction) { in round()
107 if ((pfpsd->fp_direction == fp_nearest) && in round()
115 fp_simd_type *pfpsd, /* Pointer to simulator data */ in packint32() argument
127 round(pfpsd, pu); in packint32()
143 pfpsd->fp_current_exceptions &= ~(1 << (int)fp_inexact); in packint32()
144 fpu_set_exception(pfpsd, fp_invalid); in packint32()
151 fp_simd_type *pfpsd, /* Pointer to simulator data */ in packint64() argument
168 round(pfpsd, pu); in packint64()
189 pfpsd->fp_current_exceptions &= ~(1 << (int)fp_inexact); in packint64()
190 fpu_set_exception(pfpsd, fp_invalid); in packint64()
197 fp_simd_type *pfpsd, /* Pointer to simulator data */ in packsingle() argument
224 round(pfpsd, pu); in packsingle()
233 fpu_set_exception(pfpsd, fp_inexact); in packsingle()
237 if (pfpsd->fp_current_exceptions & (1 << fp_inexact)) in packsingle()
238 fpu_set_exception(pfpsd, fp_underflow); in packsingle()
239 if (pfpsd->fp_fsrtem & (1<<fp_underflow)) { in packsingle()
240 fpu_set_exception(pfpsd, fp_underflow); in packsingle()
241 pfpsd->fp_current_exceptions &= in packsingle()
246 round(pfpsd, pu); in packsingle()
252 fpu_set_exception(pfpsd, fp_overflow); in packsingle()
253 fpu_set_exception(pfpsd, fp_inexact); in packsingle()
254 if (pfpsd->fp_fsrtem & (1<<fp_overflow)) { in packsingle()
255 pfpsd->fp_current_exceptions &= in packsingle()
258 if (overflow_to_infinity(pfpsd, pu->sign)) in packsingle()
271 fp_simd_type *pfpsd, /* Pointer to simulator data */ in packdouble() argument
302 round(pfpsd, pu); in packdouble()
312 fpu_set_exception(pfpsd, fp_inexact); in packdouble()
318 if (pfpsd->fp_current_exceptions & (1 << fp_inexact)) in packdouble()
319 fpu_set_exception(pfpsd, fp_underflow); in packdouble()
320 if (pfpsd->fp_fsrtem & (1<<fp_underflow)) { in packdouble()
321 fpu_set_exception(pfpsd, fp_underflow); in packdouble()
322 pfpsd->fp_current_exceptions &= in packdouble()
327 round(pfpsd, pu); in packdouble()
333 fpu_set_exception(pfpsd, fp_overflow); in packdouble()
334 fpu_set_exception(pfpsd, fp_inexact); in packdouble()
335 if (pfpsd->fp_fsrtem & (1<<fp_overflow)) { in packdouble()
336 pfpsd->fp_current_exceptions &= in packdouble()
339 if (overflow_to_infinity(pfpsd, pu->sign)) in packdouble()
355 fp_simd_type *pfpsd, /* Pointer to simulator data */ in packextended() argument
395 round(pfpsd, pu); in packextended()
405 fpu_set_exception(pfpsd, fp_inexact); in packextended()
407 if (pfpsd->fp_current_exceptions & (1 << fp_inexact)) in packextended()
408 fpu_set_exception(pfpsd, fp_underflow); in packextended()
409 if (pfpsd->fp_fsrtem & (1<<fp_underflow)) { in packextended()
410 fpu_set_exception(pfpsd, fp_underflow); in packextended()
411 pfpsd->fp_current_exceptions &= in packextended()
420 round(pfpsd, pu); /* rounding overflow handled in round() */ in packextended()
422 fpu_set_exception(pfpsd, fp_overflow); in packextended()
423 fpu_set_exception(pfpsd, fp_inexact); in packextended()
424 if (pfpsd->fp_fsrtem & (1<<fp_overflow)) { in packextended()
425 pfpsd->fp_current_exceptions &= in packextended()
428 if (overflow_to_infinity(pfpsd, pu->sign)) in packextended()
448 fp_simd_type *pfpsd, /* Pointer to simulator data */ in _fp_pack() argument
459 packint32(pfpsd, pu, &x); in _fp_pack()
460 if (!(pfpsd->fp_current_exceptions & pfpsd->fp_fsrtem)) in _fp_pack()
461 pfpsd->fp_current_write_freg(&x, n, pfpsd); in _fp_pack()
468 packint64(pfpsd, pu, &x); in _fp_pack()
471 if (!(pfpsd->fp_current_exceptions & pfpsd->fp_fsrtem)) in _fp_pack()
472 pfpsd->fp_current_write_dreg(&x, DOUBLE(n), pfpsd); in _fp_pack()
479 packsingle(pfpsd, pu, &x); in _fp_pack()
480 if (!(pfpsd->fp_current_exceptions & pfpsd->fp_fsrtem)) in _fp_pack()
481 pfpsd->fp_current_write_freg(&x, n, pfpsd); in _fp_pack()
492 packdouble(pfpsd, pu, &db.x[0], &db.y[1]); in _fp_pack()
493 if (!(pfpsd->fp_current_exceptions & in _fp_pack()
494 pfpsd->fp_fsrtem)) { in _fp_pack()
497 pfpsd->fp_current_write_dreg(&db.ll, DOUBLE(n), in _fp_pack()
498 pfpsd); in _fp_pack()
511 switch (pfpsd->fp_precision) { in _fp_pack()
521 packsingle(pfpsd, pu, &tx); in _fp_pack()
523 unpacksingle(pfpsd, pu, tx); in _fp_pack()
531 packdouble(pfpsd, pu, &tx, &ty); in _fp_pack()
533 unpackdouble(pfpsd, pu, tx, ty); in _fp_pack()
542 round(pfpsd, pu); in _fp_pack()
549 packextended(pfpsd, pu, &ex.x, &ex.y[1], in _fp_pack()
551 if (!(pfpsd->fp_current_exceptions & in _fp_pack()
552 pfpsd->fp_fsrtem)) { in _fp_pack()
555 pfpsd->fp_current_write_dreg(&ex.ll[0], in _fp_pack()
556 QUAD_E(n), pfpsd); in _fp_pack()
557 pfpsd->fp_current_write_dreg(&ex.ll[1], in _fp_pack()
558 QUAD_F(n), pfpsd); in _fp_pack()
568 fp_simd_type *pfpsd, /* Pointer to simulator data */ in _fp_pack_word() argument
572 pfpsd->fp_current_write_freg(pu, n, pfpsd); in _fp_pack_word()
577 fp_simd_type *pfpsd, /* Pointer to simulator data */ in _fp_pack_extword() argument
583 pfpsd->fp_current_write_dreg(pu, DOUBLE(n), pfpsd); in _fp_pack_extword()