re-ordered CPU interpreter main loop if/else branch predictor
This commit is contained in:
parent
d87a5cedc0
commit
2c3c13862b
|
@ -276,8 +276,13 @@ void CInterpreterCPU::ExecuteCPU()
|
|||
{
|
||||
while (!Done)
|
||||
{
|
||||
if (g_MMU->LW_VAddr(PROGRAM_COUNTER, Opcode.Hex))
|
||||
if (!g_MMU->LW_VAddr(PROGRAM_COUNTER, Opcode.Hex))
|
||||
{
|
||||
g_Reg->DoTLBReadMiss(R4300iOp::m_NextInstruction == JUMP, PROGRAM_COUNTER);
|
||||
R4300iOp::m_NextInstruction = NORMAL;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* if (PROGRAM_COUNTER > 0x80000300 && PROGRAM_COUNTER < 0x80380000)
|
||||
{
|
||||
WriteTraceF((TraceType)(TraceError | TraceNoHeader),"%X: %s",*_PROGRAM_COUNTER,R4300iOpcodeName(Opcode.Hex,*_PROGRAM_COUNTER));
|
||||
|
@ -333,12 +338,6 @@ void CInterpreterCPU::ExecuteCPU()
|
|||
g_Notify->BreakPoint(__FILEW__, __LINE__);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
g_Reg->DoTLBReadMiss(R4300iOp::m_NextInstruction == JUMP, PROGRAM_COUNTER);
|
||||
R4300iOp::m_NextInstruction = NORMAL;
|
||||
}
|
||||
}
|
||||
}
|
||||
__except (g_MMU->MemoryFilter(GetExceptionCode(), GetExceptionInformation()))
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue