updated where counters get updated related to register writes

This commit is contained in:
zilmar 2012-10-23 19:03:43 +11:00
parent 3316e4736a
commit a75034a723
1 changed files with 18 additions and 12 deletions

View File

@ -3255,6 +3255,12 @@ void CMipsMemoryVM::Compile_SW (void)
if (IsMapped(Opcode.rt)) { ProtectGPR(Opcode.rt); }
if (IsMapped(Opcode.base)) {
ProtectGPR(Opcode.base);
if (bDelaySI() || bDelayDP())
{
m_RegWorkingSet.SetBlockCycleCount(m_RegWorkingSet.GetBlockCycleCount() - CountPerOp());
UpdateCounters(m_RegWorkingSet,false, true);
m_RegWorkingSet.SetBlockCycleCount(m_RegWorkingSet.GetBlockCycleCount() + CountPerOp());
}
if (Opcode.offset != 0) {
TempReg1 = Map_TempReg(x86_Any,-1,FALSE);
LeaSourceAndOffset(TempReg1,MipsRegMapLo(Opcode.base),(short)Opcode.offset);