Core: On ExitReason_CheckPCAlignment make sure CompileSystemCheck is called
This commit is contained in:
parent
a46ac9f38d
commit
e419508c2b
|
@ -4524,7 +4524,6 @@ void CX86RecompilerOps::SPECIAL_JR()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UpdateCounters(m_RegWorkingSet, true, true);
|
|
||||||
if (m_RegWorkingSet.IsConst(m_Opcode.rs))
|
if (m_RegWorkingSet.IsConst(m_Opcode.rs))
|
||||||
{
|
{
|
||||||
m_Assembler.MoveConstToVariable(&m_Reg.m_PROGRAM_COUNTER, "PROGRAM_COUNTER", m_RegWorkingSet.GetMipsRegLo(m_Opcode.rs));
|
m_Assembler.MoveConstToVariable(&m_Reg.m_PROGRAM_COUNTER, "PROGRAM_COUNTER", m_RegWorkingSet.GetMipsRegLo(m_Opcode.rs));
|
||||||
|
@ -4537,6 +4536,7 @@ void CX86RecompilerOps::SPECIAL_JR()
|
||||||
{
|
{
|
||||||
m_Assembler.MoveX86regToVariable(&m_Reg.m_PROGRAM_COUNTER, "PROGRAM_COUNTER", m_RegWorkingSet.Map_TempReg(x86Reg_Unknown, m_Opcode.rs, false, false));
|
m_Assembler.MoveX86regToVariable(&m_Reg.m_PROGRAM_COUNTER, "PROGRAM_COUNTER", m_RegWorkingSet.Map_TempReg(x86Reg_Unknown, m_Opcode.rs, false, false));
|
||||||
}
|
}
|
||||||
|
UpdateCounters(m_RegWorkingSet, true, true, false);
|
||||||
CompileExit((uint64_t)-1, (uint64_t)-1, m_RegWorkingSet, ExitReason_CheckPCAlignment, true, nullptr);
|
CompileExit((uint64_t)-1, (uint64_t)-1, m_RegWorkingSet, ExitReason_CheckPCAlignment, true, nullptr);
|
||||||
if (m_Section->m_JumpSection)
|
if (m_Section->m_JumpSection)
|
||||||
{
|
{
|
||||||
|
@ -9538,7 +9538,7 @@ void CX86RecompilerOps::CompileExit(uint64_t JumpPC, uint64_t TargetPC, CRegInfo
|
||||||
case ExitReason_CheckPCAlignment:
|
case ExitReason_CheckPCAlignment:
|
||||||
case ExitReason_NormalNoSysCheck:
|
case ExitReason_NormalNoSysCheck:
|
||||||
ExitRegSet.SetBlockCycleCount(0);
|
ExitRegSet.SetBlockCycleCount(0);
|
||||||
if (reason == ExitReason_Normal && (TargetPC == (uint64_t)-1 || TargetPC <= JumpPC))
|
if ((reason == ExitReason_Normal || reason == ExitReason_CheckPCAlignment) && (TargetPC == (uint64_t)-1 || TargetPC <= JumpPC))
|
||||||
{
|
{
|
||||||
CompileSystemCheck((uint32_t)-1, ExitRegSet);
|
CompileSystemCheck((uint32_t)-1, ExitRegSet);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue