diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-11-21 12:08:43 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-11-21 12:08:43 +0100 |
| commit | c1f2304c887afc2e25becbf33ad3646cb8554a4c (patch) | |
| tree | 6f2b146b522edc4bef40fc7e15d20d855b8dfc3b /src/dynarec | |
| parent | 85c6e28d472a6ffd8ff54d8e8ac4d53945778a1b (diff) | |
| download | box64-c1f2304c887afc2e25becbf33ad3646cb8554a4c.tar.gz box64-c1f2304c887afc2e25becbf33ad3646cb8554a4c.zip | |
Small fix for XSAVE/XRSTOR opcodes ([DYNAREC] too)
Diffstat (limited to 'src/dynarec')
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_0f.c | 4 | ||||
| -rw-r--r-- | src/dynarec/la64/dynarec_la64_0f.c | 4 | ||||
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_0f.c | 4 |
3 files changed, 6 insertions, 6 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_0f.c b/src/dynarec/arm64/dynarec_arm64_0f.c index 91a78dfb..edd85a4e 100644 --- a/src/dynarec/arm64/dynarec_arm64_0f.c +++ b/src/dynarec/arm64/dynarec_arm64_0f.c @@ -1833,7 +1833,7 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin fpu_purgecache(dyn, ninst, 0, x1, x2, x3); addr = geted(dyn, addr, ninst, nextop, &ed, x1, &fixedaddress, NULL, 0, 0, rex, NULL, 0, 0); if(ed!=x1) {MOVx_REG(x1, ed);} - MOV32w(x2, rex.is32bits); + MOV32w(x2, rex.w?0:1); CALL((void*)fpu_xsave, -1); break; case 5: @@ -1842,7 +1842,7 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin fpu_purgecache(dyn, ninst, 0, x1, x2, x3); addr = geted(dyn, addr, ninst, nextop, &ed, x1, &fixedaddress, NULL, 0, 0, rex, NULL, 0, 0); if(ed!=x1) {MOVx_REG(x1, ed);} - MOV32w(x2, rex.is32bits); + MOV32w(x2, rex.w?0:1); CALL((void*)fpu_xrstor, -1); break; case 7: diff --git a/src/dynarec/la64/dynarec_la64_0f.c b/src/dynarec/la64/dynarec_la64_0f.c index bc584b86..477240aa 100644 --- a/src/dynarec/la64/dynarec_la64_0f.c +++ b/src/dynarec/la64/dynarec_la64_0f.c @@ -822,7 +822,7 @@ uintptr_t dynarec64_0F(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t ip, int ni fpu_purgecache(dyn, ninst, 0, x1, x2, x3); addr = geted(dyn, addr, ninst, nextop, &wback, x1, x2, &fixedaddress, rex, NULL, 0, 0); if (ed != x1) { MV(x1, ed); } - MOV32w(x2, rex.is32bits); + MOV32w(x2, rex.w?0:1); CALL((void*)fpu_xsave, -1); break; case 5: @@ -831,7 +831,7 @@ uintptr_t dynarec64_0F(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t ip, int ni fpu_purgecache(dyn, ninst, 0, x1, x2, x3); addr = geted(dyn, addr, ninst, nextop, &wback, x1, x2, &fixedaddress, rex, NULL, 0, 0); if (ed != x1) { MV(x1, ed); } - MOV32w(x2, rex.is32bits); + MOV32w(x2, rex.w?0:1); CALL((void*)fpu_xrstor, -1); break; case 7: diff --git a/src/dynarec/rv64/dynarec_rv64_0f.c b/src/dynarec/rv64/dynarec_rv64_0f.c index 6df08e11..c583987b 100644 --- a/src/dynarec/rv64/dynarec_rv64_0f.c +++ b/src/dynarec/rv64/dynarec_rv64_0f.c @@ -1904,7 +1904,7 @@ uintptr_t dynarec64_0F(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int ni fpu_purgecache(dyn, ninst, 0, x1, x2, x3); addr = geted(dyn, addr, ninst, nextop, &wback, x1, x2, &fixedaddress, rex, NULL, 0, 0); if (ed != x1) { MV(x1, ed); } - MOV32w(x2, rex.is32bits); + MOV32w(x2, rex.w?0:1); CALL((void*)fpu_xsave, -1); break; case 5: @@ -1913,7 +1913,7 @@ uintptr_t dynarec64_0F(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int ni fpu_purgecache(dyn, ninst, 0, x1, x2, x3); addr = geted(dyn, addr, ninst, nextop, &wback, x1, x2, &fixedaddress, rex, NULL, 0, 0); if (ed != x1) { MV(x1, ed); } - MOV32w(x2, rex.is32bits); + MOV32w(x2, rex.w?0:1); CALL((void*)fpu_xrstor, -1); break; case 7: |