From 2cbb3f6cf70c18d59a7f46720037066959a2bea0 Mon Sep 17 00:00:00 2001 From: Dwedit Date: Wed, 28 Mar 2018 15:35:19 -0500 Subject: [PATCH] 11% performance boost on x64 by reducing branches --- cpuexec.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/cpuexec.h b/cpuexec.h index 2b4df927..e2679d24 100644 --- a/cpuexec.h +++ b/cpuexec.h @@ -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",