diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_00.c | 6 | ||||
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_helper.c | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_00.c b/src/dynarec/arm64/dynarec_arm64_00.c index 1a496940..9cb8ce1a 100644 --- a/src/dynarec/arm64/dynarec_arm64_00.c +++ b/src/dynarec/arm64/dynarec_arm64_00.c @@ -3301,13 +3301,13 @@ uintptr_t dynarec64_00(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin j64 = (uint32_t)(addr+i32); else j64 = addr+i32; - - JUMP((uintptr_t)getAlternate((void*)j64), 0); + j64 = (uintptr_t)getAlternate((void*)j64); + JUMP(j64, 0); if(dyn->insts[ninst].x64.jmp_insts==-1) { // out of the block SET_NODF(); fpu_purgecache(dyn, ninst, 1, x1, x2, x3); - jump_to_next(dyn, (uintptr_t)getAlternate((void*)j64), 0, ninst, rex.is32bits); + jump_to_next(dyn, j64, 0, ninst, rex.is32bits); } else { // inside the block CacheTransform(dyn, ninst, CHECK_CACHE(), x1, x2, x3); diff --git a/src/dynarec/arm64/dynarec_arm64_helper.c b/src/dynarec/arm64/dynarec_arm64_helper.c index 86b08de0..f7428872 100644 --- a/src/dynarec/arm64/dynarec_arm64_helper.c +++ b/src/dynarec/arm64/dynarec_arm64_helper.c @@ -580,7 +580,7 @@ void jump_to_next(dynarec_arm_t* dyn, uintptr_t ip, int reg, int ninst, int is32 NOTEST(x2); uintptr_t tbl = is32bits?getJumpTable32():getJumpTable64(); MAYUSE(tbl); - TABLE64(x3, tbl); + MOV64x(x3, tbl); if(!is32bits) { #ifdef JMPTABL_SHIFT4 UBFXx(x2, xRIP, JMPTABL_START4, JMPTABL_SHIFT4); @@ -599,7 +599,7 @@ void jump_to_next(dynarec_arm_t* dyn, uintptr_t ip, int reg, int ninst, int is32 NOTEST(x2); uintptr_t p = getJumpTableAddress64(ip); MAYUSE(p); - TABLE64(x3, p); + MOV64x(x3, p); GETIP_(ip); LDRx_U12(x2, x3, 0); } |