Merge pull request #12464 from JosJuice/jit-isi-membase
Jit: Reload RMEM/MEM_REG on ISI exception
This commit is contained in:
commit
6e3a2324a4
|
@ -221,6 +221,9 @@ void Jit64AsmRoutineManager::Generate()
|
||||||
ABI_CallFunction(JitTrampoline);
|
ABI_CallFunction(JitTrampoline);
|
||||||
ABI_PopRegistersAndAdjustStack({}, 0);
|
ABI_PopRegistersAndAdjustStack({}, 0);
|
||||||
|
|
||||||
|
// If jitting triggered an ISI exception, MSR.DR may have changed
|
||||||
|
MOV(64, R(RMEM), PPCSTATE(mem_ptr));
|
||||||
|
|
||||||
JMP(dispatcher_no_check, Jump::Near);
|
JMP(dispatcher_no_check, Jump::Near);
|
||||||
|
|
||||||
SetJumpTarget(bail);
|
SetJumpTarget(bail);
|
||||||
|
|
|
@ -177,7 +177,12 @@ void JitArm64::GenerateAsm()
|
||||||
// Call JIT
|
// Call JIT
|
||||||
ResetStack();
|
ResetStack();
|
||||||
ABI_CallFunction(&JitTrampoline, this, DISPATCHER_PC);
|
ABI_CallFunction(&JitTrampoline, this, DISPATCHER_PC);
|
||||||
|
|
||||||
LDR(IndexType::Unsigned, DISPATCHER_PC, PPC_REG, PPCSTATE_OFF(pc));
|
LDR(IndexType::Unsigned, DISPATCHER_PC, PPC_REG, PPCSTATE_OFF(pc));
|
||||||
|
|
||||||
|
// If jitting triggered an ISI exception, MSR.DR may have changed
|
||||||
|
EmitUpdateMembase();
|
||||||
|
|
||||||
B(dispatcher_no_check);
|
B(dispatcher_no_check);
|
||||||
|
|
||||||
SetJumpTarget(bail);
|
SetJumpTarget(bail);
|
||||||
|
|
Loading…
Reference in New Issue