From 97c2578521cf51d157094f24976d499ba5f4791d Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sun, 8 Jul 2018 18:06:03 +0300 Subject: [PATCH] JIT FACOS force round to nearest. --- jit/compemu_fpp.cpp | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/jit/compemu_fpp.cpp b/jit/compemu_fpp.cpp index e35de7a6..3a14920e 100644 --- a/jit/compemu_fpp.cpp +++ b/jit/compemu_fpp.cpp @@ -1186,18 +1186,16 @@ void comp_fpp_opp (uae_u32 opcode, uae_u16 extra) fneg_rr (dreg, sreg); break; case 0x1c: /* FACOS */ -#if 0 && USE_X86_FPUCW - if ((regs.fpcr & 0x30) != 0x10) { /* use round to zero */ - mov_l_ri (S1, (regs.fpcr & 0xC0) | 0x10); - fldcw_m_indexed (S1, uae_p32(x86_fpucw)); - facos_rr (dreg, sreg); - mov_l_rm (S1, uae_p32(®s.fpcr)); - and_l_ri (S1, 0xf0); /* restore control word */ - fldcw_m_indexed (S1, uae_p32(x86_fpucw)); - break; - } -#endif +#if USE_X86_FPUCW + mov_l_ri (S1, (regs.fpcr & 0xC0) | 0x00); + fldcw_m_indexed (S1, uae_p32(x86_fpucw)); facos_rr (dreg, sreg); + mov_l_rm (S1, uae_p32(®s.fpcr)); + and_l_ri (S1, 0xf0); /* restore control word */ + fldcw_m_indexed (S1, uae_p32(x86_fpucw)); +#else + facos_rr (dreg, sreg); +#endif break; case 0x1d: /* FCOS */ fcos_rr (dreg, sreg); -- 2.47.3