11% performance boost on x64 by reducing branches

This commit is contained in:
Dwedit 2018-03-28 15:35:19 -05:00 committed by Brandon Wright
parent a230f67567
commit 2cbb3f6cf7
1 changed files with 6 additions and 6 deletions

View File

@ -287,25 +287,25 @@ static inline void S9xFixCycles (void)
static inline void S9xCheckInterrupts (void)
{
bool8 thisIRQ = PPU.HTimerEnabled || PPU.VTimerEnabled;
bool8 thisIRQ = PPU.HTimerEnabled | PPU.VTimerEnabled;
if (CPU.IRQLine && thisIRQ)
if (CPU.IRQLine & thisIRQ)
CPU.IRQTransition = TRUE;
if (PPU.HTimerEnabled)
{
int32 htimepos = PPU.HTimerPosition;
if (CPU.Cycles >= Timings.H_Max && htimepos < CPU.PrevCycles)
if (CPU.Cycles >= Timings.H_Max & htimepos < CPU.PrevCycles)
htimepos += Timings.H_Max;
if (CPU.PrevCycles >= htimepos || CPU.Cycles < htimepos)
if (CPU.PrevCycles >= htimepos | CPU.Cycles < htimepos)
thisIRQ = FALSE;
}
if (PPU.VTimerEnabled)
{
int32 vcounter = CPU.V_Counter;
if (CPU.Cycles >= Timings.H_Max && (!PPU.HTimerEnabled || PPU.HTimerPosition < CPU.PrevCycles)) {
if (CPU.Cycles >= Timings.H_Max & (!PPU.HTimerEnabled | PPU.HTimerPosition < CPU.PrevCycles)) {
vcounter++;
if(vcounter >= Timings.V_Max)
vcounter = 0;
@ -315,7 +315,7 @@ static inline void S9xCheckInterrupts (void)
thisIRQ = FALSE;
}
if (!CPU.IRQLastState && thisIRQ)
if (!CPU.IRQLastState & thisIRQ)
{
#ifdef DEBUGGER
S9xTraceFormattedMessage("--- /IRQ High->Low prev HC:%04d curr HC:%04d HTimer:%d Pos:%04d VTimer:%d Pos:%03d",