Adds support for stepping in the ARMv7 JIT.

This commit is contained in:
Ryan Houdek 2014-10-21 12:53:59 +00:00
parent 080883ad9e
commit 77da164fe2
1 changed files with 14 additions and 0 deletions

View File

@ -106,6 +106,18 @@ void JitArmAsmRoutineManager::Generate()
// IMPORTANT - We jump on negative, not carry!!! // IMPORTANT - We jump on negative, not carry!!!
FixupBranch bail = B_CC(CC_MI); FixupBranch bail = B_CC(CC_MI);
FixupBranch dbg_exit;
if (SConfig::GetInstance().m_LocalCoreStartupParameter.bEnableDebugging)
{
MOVI2R(R0, (u32)PowerPC::GetStatePtr());
LDR(R0, R0);
TST(R0, PowerPC::CPU_STEPPING);
FixupBranch not_stepping = B_CC(CC_EQ);
// XXX: Check for breakpoints
dbg_exit = B();
SetJumpTarget(not_stepping);
}
SetJumpTarget(skipToRealDispatcher); SetJumpTarget(skipToRealDispatcher);
dispatcherNoCheck = GetCodePtr(); dispatcherNoCheck = GetCodePtr();
@ -163,6 +175,8 @@ void JitArmAsmRoutineManager::Generate()
B(dispatcher); B(dispatcher);
SetJumpTarget(Exit); SetJumpTarget(Exit);
if (SConfig::GetInstance().m_LocalCoreStartupParameter.bEnableDebugging)
SetJumpTarget(dbg_exit);
ADD(_SP, _SP, 4); ADD(_SP, _SP, 4);