diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-04-30 08:15:05 +0000 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-04-30 08:15:05 +0000 |
| commit | 98535e572deb77e88b9f2f3634171b6b385fc1b5 (patch) | |
| tree | 363b0e87b0238f128904376f3bc8e4e2ad3d6f28 /src | |
| parent | ffcfaba2fa6c3504901d6c3b35c5b0c747166b2c (diff) | |
| download | box64-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.c | 5 |
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) { |