mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-26 15:49:50 -06:00
Jit64: Use a temporary register for memory references. Part 4.
This commit is contained in:
@ -84,12 +84,14 @@ void Jit64AsmRoutineManager::Generate()
|
|||||||
|
|
||||||
if (SConfig::GetInstance().bEnableDebugging)
|
if (SConfig::GetInstance().bEnableDebugging)
|
||||||
{
|
{
|
||||||
TEST(32, M(CPU::GetStatePtr()), Imm32(static_cast<u32>(CPU::State::Stepping)));
|
MOV(64, R(RSCRATCH), ImmPtr(CPU::GetStatePtr()));
|
||||||
|
TEST(32, MatR(RSCRATCH), Imm32(static_cast<u32>(CPU::State::Stepping)));
|
||||||
FixupBranch notStepping = J_CC(CC_Z);
|
FixupBranch notStepping = J_CC(CC_Z);
|
||||||
ABI_PushRegistersAndAdjustStack({}, 0);
|
ABI_PushRegistersAndAdjustStack({}, 0);
|
||||||
ABI_CallFunction(PowerPC::CheckBreakPoints);
|
ABI_CallFunction(PowerPC::CheckBreakPoints);
|
||||||
ABI_PopRegistersAndAdjustStack({}, 0);
|
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);
|
dbg_exit = J_CC(CC_NZ, true);
|
||||||
SetJumpTarget(notStepping);
|
SetJumpTarget(notStepping);
|
||||||
}
|
}
|
||||||
@ -187,7 +189,8 @@ void Jit64AsmRoutineManager::Generate()
|
|||||||
|
|
||||||
// Check the state pointer to see if we are exiting
|
// Check the state pointer to see if we are exiting
|
||||||
// Gets checked on at the end of every slice
|
// 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);
|
J_CC(CC_Z, outerLoop);
|
||||||
|
|
||||||
// Landing pad for drec space
|
// Landing pad for drec space
|
||||||
|
Reference in New Issue
Block a user