Disable Interrupt is now recompiled, thanks to pseudonym :p

This is a significant speedup in Suikoden 3 menu's. 
And any other obscure game that might do that a lot :p

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2177 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
ramapcsx2 2009-11-10 17:28:15 +00:00
parent 8a9582f73b
commit e2933b8429
1 changed files with 15 additions and 5 deletions

View File

@ -105,14 +105,24 @@ void recEI()
void recDI() void recDI()
{ {
// No need to branch after disabling interrupts... //// No need to branch after disabling interrupts...
iFlushCall(0); //iFlushCall(0);
MOV32MtoR( EAX, (uptr)&cpuRegs.cycle ); //MOV32MtoR( EAX, (uptr)&cpuRegs.cycle );
MOV32RtoM( (uptr)&g_nextBranchCycle, EAX ); //MOV32RtoM( (uptr)&g_nextBranchCycle, EAX );
CALLFunc( (uptr)Interp::DI ); //CALLFunc( (uptr)Interp::DI );
xMOV(eax, ptr32[&cpuRegs.CP0.n.Status]);
xTEST(eax, 0x20006); // EXL | ERL | EDI
xForwardJNZ8 iHaveNoIdea;
xTEST(eax, 0x18); // KSU
xForwardJNZ8 inUserMode;
iHaveNoIdea.SetTarget();
xAND(eax, ~(u32)0x10000); // EIE
xMOV(ptr32[&cpuRegs.CP0.n.Status], eax);
inUserMode.SetTarget();
} }