From d0da57547e711b8051ef27bca0e85fcd367d6010 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Mon, 21 Apr 2025 08:58:08 +0200 Subject: [ARM64_DYNAREC] Fixed some potential issues with BOX64_DYNAREC_DOUBLE=2 --- src/dynarec/arm64/dynarec_arm64_d8.c | 2 -- src/dynarec/arm64/dynarec_arm64_dc.c | 2 -- src/dynarec/arm64/dynarec_arm64_helper.c | 1 + 3 files changed, 1 insertion(+), 4 deletions(-) (limited to 'src') 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(); } -- cgit 1.4.1