diff --git a/Source/Core/Core/PowerPC/JitArm64/Jit.cpp b/Source/Core/Core/PowerPC/JitArm64/Jit.cpp index d7dbf11729..7f639221d0 100644 --- a/Source/Core/Core/PowerPC/JitArm64/Jit.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/Jit.cpp @@ -490,7 +490,7 @@ const u8* JitArm64::DoJit(u32 em_address, PPCAnalyst::CodeBuffer *code_buf, JitB gpr.Flush(FLUSH_MAINTAIN_STATE); fpr.Flush(FLUSH_MAINTAIN_STATE); - MOVI2R(W30, ops[i].address); + MOVI2R(W30, js.compilerPC); WriteExceptionExit(W30, true); SwitchToNearCode(); SetJumpTarget(exit); @@ -522,7 +522,7 @@ const u8* JitArm64::DoJit(u32 em_address, PPCAnalyst::CodeBuffer *code_buf, JitB gpr.Flush(FLUSH_MAINTAIN_STATE); fpr.Flush(FLUSH_MAINTAIN_STATE); - MOVI2R(WA, ops[i].address); + MOVI2R(WA, js.compilerPC); WriteExceptionExit(WA, true); SwitchToNearCode(); SetJumpTarget(NoExtException); diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_Branch.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_Branch.cpp index 3707fb2543..04e8bfcf9d 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_Branch.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_Branch.cpp @@ -94,9 +94,8 @@ void JitArm64::bx(UGeckoInstruction inst) if (inst.LK) { - u32 Jumpto = js.compilerPC + 4; ARM64Reg WA = gpr.GetReg(); - MOVI2R(WA, Jumpto); + MOVI2R(WA, js.compilerPC + 4); STR(INDEX_UNSIGNED, WA, PPC_REG, PPCSTATE_OFF(spr[SPR_LR])); gpr.Unlock(WA); } @@ -149,8 +148,7 @@ void JitArm64::bcx(UGeckoInstruction inst) if (inst.LK) { - u32 Jumpto = js.compilerPC + 4; - MOVI2R(WA, Jumpto); + MOVI2R(WA, js.compilerPC + 4); STR(INDEX_UNSIGNED, WA, PPC_REG, PPCSTATE_OFF(spr[SPR_LR])); } gpr.Unlock(WA); @@ -203,8 +201,7 @@ void JitArm64::bcctrx(UGeckoInstruction inst) if (inst.LK_3) { ARM64Reg WB = gpr.GetReg(); - u32 Jumpto = js.compilerPC + 4; - MOVI2R(WB, Jumpto); + MOVI2R(WB, js.compilerPC + 4); STR(INDEX_UNSIGNED, WB, PPC_REG, PPCSTATE_OFF(spr[SPR_LR])); gpr.Unlock(WB); } @@ -252,8 +249,7 @@ void JitArm64::bclrx(UGeckoInstruction inst) if (inst.LK) { ARM64Reg WB = gpr.GetReg(); - u32 Jumpto = js.compilerPC + 4; - MOVI2R(WB, Jumpto); + MOVI2R(WB, js.compilerPC + 4); STR(INDEX_UNSIGNED, WB, PPC_REG, PPCSTATE_OFF(spr[SPR_LR])); gpr.Unlock(WB); } diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp index 7a477e47cd..f281d29d27 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp @@ -45,9 +45,9 @@ void JitArm64::psq_l(UGeckoInstruction inst) if (inst.RA || update) // Always uses the register on update { if (offset >= 0) - ADD(addr_reg, gpr.R(inst.RA), offset); + ADD(addr_reg, arm_addr, offset); else - SUB(addr_reg, gpr.R(inst.RA), std::abs(offset)); + SUB(addr_reg, arm_addr, std::abs(offset)); } else {