about summary refs log tree commit diff stats
path: root/src/dynarec
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2025-01-11 10:25:27 +0100
committerptitSeb <sebastien.chev@gmail.com>2025-01-11 10:26:02 +0100
commitf489761e682b75ede8754e9f9be48fa29ebaeb10 (patch)
treeeaa00441feadd61e7f0f291f7dfebd1fd7d3db2d /src/dynarec
parent56ccde005e9332662326b8446658e7a322633e46 (diff)
downloadbox64-f489761e682b75ede8754e9f9be48fa29ebaeb10.tar.gz
box64-f489761e682b75ede8754e9f9be48fa29ebaeb10.zip
[BOX32] Improved elf memory managment for 32bits process
Diffstat (limited to 'src/dynarec')
-rw-r--r--src/dynarec/arm64/dynarec_arm64_f20f.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_f20f.c b/src/dynarec/arm64/dynarec_arm64_f20f.c
index 551e25e7..0a2c49f2 100644
--- a/src/dynarec/arm64/dynarec_arm64_f20f.c
+++ b/src/dynarec/arm64/dynarec_arm64_f20f.c
@@ -271,7 +271,13 @@ uintptr_t dynarec64_F20F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n
             GETGX(v0, 1);

             GETEXSD(d0, 0, 0);

             d1 = fpu_get_scratch(dyn, ninst);

-            FCVT_S_D(d1, d0);

+            if(box64_dynarec_fastround==2) {

+                FCVT_S_D(d1, d0);

+            } else {

+                u8 = sse_setround(dyn, ninst, x1, x2, x3);

+                FCVT_S_D(d1, d0);

+                x87_restoreround(dyn, ninst, u8);

+            }

             VMOVeS(v0, 0, d1, 0);

             break;