diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2022-10-26 19:40:26 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2022-10-26 19:40:26 +0200 |
| commit | 9073e1d47e4ba655ecff2f46ca3a898286af9429 (patch) | |
| tree | 6f53ddf3761f10194beb331e73649423c64036cb | |
| parent | ed1078dadf692112738d01d19e6e348417485f12 (diff) | |
| download | box64-9073e1d47e4ba655ecff2f46ca3a898286af9429.tar.gz box64-9073e1d47e4ba655ecff2f46ca3a898286af9429.zip | |
[DYNAREC] Fixed 0F BA opcodes
| -rwxr-xr-x | src/dynarec/arm64/dynarec_arm64_0f.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_0f.c b/src/dynarec/arm64/dynarec_arm64_0f.c index 51c9e247..b1308b09 100755 --- a/src/dynarec/arm64/dynarec_arm64_0f.c +++ b/src/dynarec/arm64/dynarec_arm64_0f.c @@ -1366,7 +1366,7 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin if(MODREG) { ed = xRAX+(nextop&7)+(rex.b<<3); } else { - addr = geted(dyn, addr, ninst, nextop, &wback, x3, &fixedaddress, 0xff0<<2, 3, rex, NULL, 0, 1); + addr = geted(dyn, addr, ninst, nextop, &wback, x3, &fixedaddress, 0xfff<<(2+rex.w), (1<<(2+rex.w))-1, rex, NULL, 0, 1); LDRxw_U12(x1, wback, fixedaddress); ed = x1; } @@ -1382,7 +1382,7 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin ed = xRAX+(nextop&7)+(rex.b<<3); wback = 0; } else { - addr = geted(dyn, addr, ninst, nextop, &wback, x3, &fixedaddress, 0xff0<<2, 3, rex, NULL, 0, 1); + addr = geted(dyn, addr, ninst, nextop, &wback, x3, &fixedaddress, 0xfff<<(2+rex.w), (1<<(2+rex.w))-1, rex, NULL, 0, 1); LDRxw_U12(x1, wback, fixedaddress); ed = x1; } @@ -1405,7 +1405,7 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin ed = xRAX+(nextop&7)+(rex.b<<3); wback = 0; } else { - addr = geted(dyn, addr, ninst, nextop, &wback, x3, &fixedaddress, 0xff0<<2, 3, rex, NULL, 0, 1); + addr = geted(dyn, addr, ninst, nextop, &wback, x3, &fixedaddress, 0xfff<<(2+rex.w), (1<<(2+rex.w))-1, rex, NULL, 0, 1); LDRxw_U12(x1, wback, fixedaddress); ed = x1; } @@ -1428,7 +1428,7 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin ed = xRAX+(nextop&7)+(rex.b<<3); wback = 0; } else { - addr = geted(dyn, addr, ninst, nextop, &wback, x3, &fixedaddress, 0xff0<<2, 3, rex, NULL, 0, 1); + addr = geted(dyn, addr, ninst, nextop, &wback, x3, &fixedaddress, 0xfff<<(2+rex.w), (1<<(2+rex.w))-1, rex, NULL, 0, 1); LDRxw_U12(x1, wback, fixedaddress); ed = x1; } |