uae_u32 fpp_get_fpsr (void)
{
+#ifdef JIT
+ if (currprefs.compfpu) {
+ regs.fpsr &= 0x00fffff8; // clear cc
+ if (fpp_is_nan (®s.fp_result)) {
+ regs.fpsr |= FPSR_CC_NAN;
+ } else if (fpp_is_zero(®s.fp_result)) {
+ regs.fpsr |= FPSR_CC_Z;
+ } else if (fpp_is_infinity (®s.fp_result)) {
+ regs.fpsr |= FPSR_CC_I;
+ }
+ if (fpp_is_neg(®s.fp_result))
+ regs.fpsr |= FPSR_CC_N;
+ }
+#endif
return regs.fpsr;
}
/* Functions for setting host/library modes and getting status */
static void fp_set_mode(uae_u32 mode_control)
{
- if (mode_control == fpu_mode_control)
+ if (mode_control == fpu_mode_control && !currprefs.compfpu)
return;
switch(mode_control & FPCR_ROUNDING_PRECISION) {
case FPCR_PRECISION_EXTENDED: // X