diff options
| author | skidau <skidau@gmail.com> | 2014-10-23 13:31:17 +1100 |
|---|---|---|
| committer | skidau <skidau@gmail.com> | 2014-10-23 13:31:17 +1100 |
| commit | 684cb658e2dc69e30792dd711260b610d8d0aede (patch) | |
| tree | fce2bad11dead36bfae723fce261f40709f34b1f /Source | |
| parent | 9836ce23e65bea4859a249b6febcafbf4b6a6b30 (diff) | |
| parent | 77da164fe29bdbfdf9d7abf4a173e74fbfb6ae83 (diff) | |
Merge pull request #1354 from Sonicadvance1/ARMv7-stepping
Adds support for stepping in the ARMv7 JIT.
Diffstat (limited to 'Source')
| -rw-r--r-- | Source/Core/Core/PowerPC/JitArm32/JitAsm.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/Source/Core/Core/PowerPC/JitArm32/JitAsm.cpp b/Source/Core/Core/PowerPC/JitArm32/JitAsm.cpp index 60fa7199c2..6bbbefb744 100644 --- a/Source/Core/Core/PowerPC/JitArm32/JitAsm.cpp +++ b/Source/Core/Core/PowerPC/JitArm32/JitAsm.cpp @@ -106,6 +106,18 @@ void JitArmAsmRoutineManager::Generate() // IMPORTANT - We jump on negative, not carry!!! 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); dispatcherNoCheck = GetCodePtr(); @@ -163,6 +175,8 @@ void JitArmAsmRoutineManager::Generate() B(dispatcher); SetJumpTarget(Exit); + if (SConfig::GetInstance().m_LocalCoreStartupParameter.bEnableDebugging) + SetJumpTarget(dbg_exit); ADD(_SP, _SP, 4); |
