about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2023-04-30 08:15:05 +0000
committerptitSeb <sebastien.chev@gmail.com>2023-04-30 08:15:05 +0000
commit98535e572deb77e88b9f2f3634171b6b385fc1b5 (patch)
tree363b0e87b0238f128904376f3bc8e4e2ad3d6f28 /src
parentffcfaba2fa6c3504901d6c3b35c5b0c747166b2c (diff)
downloadbox64-98535e572deb77e88b9f2f3634171b6b385fc1b5.tar.gz
box64-98535e572deb77e88b9f2f3634171b6b385fc1b5.zip
[RV64_DYNAREC] Fixed potential issue on fastnan=0 for 0F 51 opcode
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/rv64/dynarec_rv64_f20f.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/dynarec/rv64/dynarec_rv64_f20f.c b/src/dynarec/rv64/dynarec_rv64_f20f.c
index 95f526f0..35fcf562 100644
--- a/src/dynarec/rv64/dynarec_rv64_f20f.c
+++ b/src/dynarec/rv64/dynarec_rv64_f20f.c
@@ -184,8 +184,9 @@ uintptr_t dynarec64_F20F(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int
             GETEXSD(d0, 0);
             GETGXSD_empty(d1);
             if(!box64_dynarec_fastnan) {
-                FMVDX(d1, xZR);
-                FLTD(x3, d0, d1);
+                v0 = fpu_get_scratch(dyn);  // need a scratch in case d0 == d1
+                FMVDX(v0, xZR);
+                FLTD(x3, d0, v0);
             }
             FSQRTD(d1, d0);
             if(!box64_dynarec_fastnan) {