From 64ccf803bd2a8da0ae4194004b91275fec110b16 Mon Sep 17 00:00:00 2001 From: degasus Date: Sun, 22 Jan 2017 09:37:22 +0100 Subject: [PATCH] Jit64: Use a temporary register for memory references. Part 4. --- Source/Core/Core/PowerPC/Jit64/JitAsm.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Source/Core/Core/PowerPC/Jit64/JitAsm.cpp b/Source/Core/Core/PowerPC/Jit64/JitAsm.cpp index cc47c1d695..f96495cfa1 100644 --- a/Source/Core/Core/PowerPC/Jit64/JitAsm.cpp +++ b/Source/Core/Core/PowerPC/Jit64/JitAsm.cpp @@ -84,12 +84,14 @@ void Jit64AsmRoutineManager::Generate() if (SConfig::GetInstance().bEnableDebugging) { - TEST(32, M(CPU::GetStatePtr()), Imm32(static_cast(CPU::State::Stepping))); + MOV(64, R(RSCRATCH), ImmPtr(CPU::GetStatePtr())); + TEST(32, MatR(RSCRATCH), Imm32(static_cast(CPU::State::Stepping))); FixupBranch notStepping = J_CC(CC_Z); ABI_PushRegistersAndAdjustStack({}, 0); ABI_CallFunction(PowerPC::CheckBreakPoints); ABI_PopRegistersAndAdjustStack({}, 0); - TEST(32, M(CPU::GetStatePtr()), Imm32(0xFFFFFFFF)); + MOV(64, R(RSCRATCH), ImmPtr(CPU::GetStatePtr())); + TEST(32, MatR(RSCRATCH), Imm32(0xFFFFFFFF)); dbg_exit = J_CC(CC_NZ, true); SetJumpTarget(notStepping); } @@ -187,7 +189,8 @@ void Jit64AsmRoutineManager::Generate() // Check the state pointer to see if we are exiting // Gets checked on at the end of every slice - TEST(32, M(CPU::GetStatePtr()), Imm32(0xFFFFFFFF)); + MOV(64, R(RSCRATCH), ImmPtr(CPU::GetStatePtr())); + TEST(32, MatR(RSCRATCH), Imm32(0xFFFFFFFF)); J_CC(CC_Z, outerLoop); // Landing pad for drec space