iR5900 Recompiler: Emulate exception handler cycles on syscall skip

This commit is contained in:
Ty Lamontagne 2023-09-13 17:42:48 -04:00 committed by refractionpcsx2
parent b36e2eb5f4
commit 8dd866a35e
1 changed files with 5 additions and 0 deletions

View File

@ -744,7 +744,12 @@ void R5900::Dynarec::OpcodeImpl::recSYSCALL()
{
// If it's FlushCache or iFlushCache, we can skip it since we don't support cache in the JIT.
if (g_cpuConstRegs[3].UC[0] == 0x64 || g_cpuConstRegs[3].UC[0] == 0x68)
{
// Emulate the amount of cycles it takes for the exception handlers to run
// This number was found by using github.com/F0bes/flushcache-cycles
s_nBlockCycles += 5650;
return;
}
}
recCall(R5900::Interpreter::OpcodeImpl::SYSCALL);
g_branch = 2; // Indirect branch with event check.