diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_d8.c | 2 | ||||
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_dc.c | 2 | ||||
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_helper.c | 1 |
3 files changed, 1 insertions, 4 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_d8.c b/src/dynarec/arm64/dynarec_arm64_d8.c index 1fb1e614..76f2b4f3 100644 --- a/src/dynarec/arm64/dynarec_arm64_d8.c +++ b/src/dynarec/arm64/dynarec_arm64_d8.c @@ -260,7 +260,6 @@ uintptr_t dynarec64_D8(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin } else { FCVT_D_S(s0, s0); FCMPD(v1, s0); - X87_CHECK_PRECISION(v1); } FCOM(x1, x2, x3); break; @@ -275,7 +274,6 @@ uintptr_t dynarec64_D8(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin } else { FCVT_D_S(s0, s0); FCMPD(v1, s0); - X87_CHECK_PRECISION(v1); } FCOM(x1, x2, x3); X87_POP_OR_FAIL(dyn, ninst, x3); diff --git a/src/dynarec/arm64/dynarec_arm64_dc.c b/src/dynarec/arm64/dynarec_arm64_dc.c index 3ffb8dbb..b4d1a48d 100644 --- a/src/dynarec/arm64/dynarec_arm64_dc.c +++ b/src/dynarec/arm64/dynarec_arm64_dc.c @@ -96,7 +96,6 @@ uintptr_t dynarec64_DC(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin FCMPS(v1, v2); } else { FCMPD(v1, v2); - X87_CHECK_PRECISION(v1); } FCOM(x1, x2, x3); break; @@ -115,7 +114,6 @@ uintptr_t dynarec64_DC(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin FCMPS(v1, v2); } else { FCMPD(v1, v2); - X87_CHECK_PRECISION(v1); } FCOM(x1, x2, x3); X87_POP_OR_FAIL(dyn, ninst, x3); diff --git a/src/dynarec/arm64/dynarec_arm64_helper.c b/src/dynarec/arm64/dynarec_arm64_helper.c index 69855502..8c11f8ee 100644 --- a/src/dynarec/arm64/dynarec_arm64_helper.c +++ b/src/dynarec/arm64/dynarec_arm64_helper.c @@ -892,6 +892,7 @@ void call_n(dynarec_arm_t* dyn, int ninst, void* fnc, int w) fpu_popcache(dyn, ninst, x3, 1); LDRx_U12(xFlags, xEmu, offsetof(x64emu_t, eflags)); + ARM64_CHECK_PRECISION(); // restore x87pc if needed //SET_NODF(); } |