diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp index 2e00e2d38d..4eb27de32f 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStorePaired.cpp @@ -39,6 +39,7 @@ void JitArm64::psq_lXX(UGeckoInstruction inst) gpr.Lock(ARM64Reg::W0, ARM64Reg::W1, ARM64Reg::W2, ARM64Reg::W30); fpr.Lock(ARM64Reg::Q0, ARM64Reg::Q1); + const ARM64Reg arm_addr = gpr.R(inst.RA); constexpr ARM64Reg scale_reg = ARM64Reg::W0; constexpr ARM64Reg addr_reg = ARM64Reg::W1; constexpr ARM64Reg type_reg = ARM64Reg::W2; @@ -47,11 +48,11 @@ void JitArm64::psq_lXX(UGeckoInstruction inst) if (inst.RA || update) // Always uses the register on update { if (indexed) - ADD(addr_reg, gpr.R(inst.RA), gpr.R(inst.RB)); + ADD(addr_reg, arm_addr, gpr.R(inst.RB)); else 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 { @@ -64,7 +65,7 @@ void JitArm64::psq_lXX(UGeckoInstruction inst) if (update) { gpr.BindToRegister(inst.RA, false); - MOV(gpr.R(inst.RA), addr_reg); + MOV(arm_addr, addr_reg); } if (js.assumeNoPairedQuantize) @@ -162,6 +163,7 @@ void JitArm64::psq_stXX(UGeckoInstruction inst) gpr.Lock(ARM64Reg::W0, ARM64Reg::W1, ARM64Reg::W2, ARM64Reg::W30); + const ARM64Reg arm_addr = gpr.R(inst.RA); constexpr ARM64Reg scale_reg = ARM64Reg::W0; constexpr ARM64Reg addr_reg = ARM64Reg::W1; constexpr ARM64Reg type_reg = ARM64Reg::W2; @@ -176,11 +178,11 @@ void JitArm64::psq_stXX(UGeckoInstruction inst) if (inst.RA || update) // Always uses the register on update { if (indexed) - ADD(addr_reg, gpr.R(inst.RA), gpr.R(inst.RB)); + ADD(addr_reg, arm_addr, gpr.R(inst.RB)); else 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 { @@ -193,7 +195,7 @@ void JitArm64::psq_stXX(UGeckoInstruction inst) if (update) { gpr.BindToRegister(inst.RA, false); - MOV(gpr.R(inst.RA), addr_reg); + MOV(arm_addr, addr_reg); } if (js.assumeNoPairedQuantize)