diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2025-01-18 12:18:31 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2025-01-18 12:18:31 +0100 |
| commit | 0f225fc1a0989e6369c1ecb64efdafa5d0d17158 (patch) | |
| tree | ee6b95498eb5b7bec591951733e5e8fe8dec441c /src | |
| parent | 666506e8347bb13dc0441105f952ea1e9d717d9f (diff) | |
| download | box64-0f225fc1a0989e6369c1ecb64efdafa5d0d17158.tar.gz box64-0f225fc1a0989e6369c1ecb64efdafa5d0d17158.zip | |
[ARM64_DYNAREC] Fixed F0 0F BA opcodes with ip relative addressing
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_f0.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_f0.c b/src/dynarec/arm64/dynarec_arm64_f0.c index 561653ce..588e898b 100644 --- a/src/dynarec/arm64/dynarec_arm64_f0.c +++ b/src/dynarec/arm64/dynarec_arm64_f0.c @@ -472,7 +472,7 @@ uintptr_t dynarec64_F0(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin } } else { // Will fetch only 1 byte, to avoid alignment issue - addr = geted(dyn, addr, ninst, nextop, &wback, x3, &fixedaddress, NULL, 0, 0, rex, LOCK_LOCK, 0, 0); + addr = geted(dyn, addr, ninst, nextop, &wback, x3, &fixedaddress, NULL, 0, 0, rex, LOCK_LOCK, 0, 1); u8 = F8; if(u8>>3) { ADDx_U12(x3, wback, u8>>3); @@ -515,7 +515,7 @@ uintptr_t dynarec64_F0(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin ORRxw_mask(ed, ed, (mask>>12)&1, mask&0x3F, (mask>>6)&0x3F); } else { // Will fetch only 1 byte, to avoid alignment issue - addr = geted(dyn, addr, ninst, nextop, &wback, x3, &fixedaddress, NULL, 0, 0, rex, LOCK_LOCK, 0, 0); + addr = geted(dyn, addr, ninst, nextop, &wback, x3, &fixedaddress, NULL, 0, 0, rex, LOCK_LOCK, 0, 1); u8 = F8; if(u8>>3) { ADDx_U12(x3, wback, u8>>3); @@ -560,7 +560,7 @@ uintptr_t dynarec64_F0(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin } BFCxw(ed, u8, 1); } else { - addr = geted(dyn, addr, ninst, nextop, &wback, x3, &fixedaddress, NULL, 0, 0, rex, LOCK_LOCK, 0, 0); + addr = geted(dyn, addr, ninst, nextop, &wback, x3, &fixedaddress, NULL, 0, 0, rex, LOCK_LOCK, 0, 1); u8 = F8; if(u8>>3) { ADDx_U12(x3, wback, u8>>3); @@ -603,7 +603,7 @@ uintptr_t dynarec64_F0(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin MOV32w(x4, 1); EORxw_REG_LSL(ed, ed, x4, u8); } else { - addr = geted(dyn, addr, ninst, nextop, &wback, x3, &fixedaddress, NULL, 0, 0, rex, LOCK_LOCK, 0, 0); + addr = geted(dyn, addr, ninst, nextop, &wback, x3, &fixedaddress, NULL, 0, 0, rex, LOCK_LOCK, 0, 1); u8 = F8; if(u8>>3) { ADDx_U12(x3, wback, u8>>3); |