mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-25 23:41:19 +01:00
JitArm64: Store PC on debug exit
Should fix https://bugs.dolphin-emu.org/issues/13178. Jit64 doesn't need to do this because it stores PC directly into ppcState instead of first storing it in a register.
This commit is contained in:
parent
bed3874497
commit
262a3be08a
@ -223,10 +223,16 @@ void JitArm64::GenerateAsm()
|
|||||||
// We can safely assume that downcount >= 1
|
// We can safely assume that downcount >= 1
|
||||||
B(dispatcher_no_check);
|
B(dispatcher_no_check);
|
||||||
|
|
||||||
|
if (enable_debugging)
|
||||||
|
{
|
||||||
|
SetJumpTarget(debug_exit);
|
||||||
|
static_assert(PPCSTATE_OFF(pc) <= 252);
|
||||||
|
static_assert(PPCSTATE_OFF(pc) + 4 == PPCSTATE_OFF(npc));
|
||||||
|
STP(IndexType::Signed, DISPATCHER_PC, DISPATCHER_PC, PPC_REG, PPCSTATE_OFF(pc));
|
||||||
|
}
|
||||||
|
|
||||||
dispatcher_exit = GetCodePtr();
|
dispatcher_exit = GetCodePtr();
|
||||||
SetJumpTarget(exit);
|
SetJumpTarget(exit);
|
||||||
if (enable_debugging)
|
|
||||||
SetJumpTarget(debug_exit);
|
|
||||||
|
|
||||||
// Reset the stack pointer, since the BLR optimization may have pushed things onto the stack
|
// Reset the stack pointer, since the BLR optimization may have pushed things onto the stack
|
||||||
// without popping them.
|
// without popping them.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user