From e5869adc4469115c7eac9abf70145fc178e017de Mon Sep 17 00:00:00 2001 From: Nebuleon Fumika Date: Wed, 26 Dec 2012 14:42:02 -0500 Subject: Merge Registers structures into their respective CPUs to avoid additional memory addresses being loaded every opcode. --- source/cpuexec.h | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'source/cpuexec.h') diff --git a/source/cpuexec.h b/source/cpuexec.h index 9a26081..a094220 100644 --- a/source/cpuexec.h +++ b/source/cpuexec.h @@ -109,6 +109,7 @@ struct SICPU { uint8 *Speed; struct SOpcodes *S9xOpcodes; + struct SRegisters Registers; uint8 _Carry; uint8 _Zero; uint8 _Negative; @@ -140,16 +141,16 @@ END_EXTERN_C STATIC inline void S9xUnpackStatus() { - ICPU._Zero = (Registers.PL & Zero) == 0; - ICPU._Negative = (Registers.PL & Negative); - ICPU._Carry = (Registers.PL & Carry); - ICPU._Overflow = (Registers.PL & Overflow) >> 6; + ICPU._Zero = (ICPU.Registers.PL & Zero) == 0; + ICPU._Negative = (ICPU.Registers.PL & Negative); + ICPU._Carry = (ICPU.Registers.PL & Carry); + ICPU._Overflow = (ICPU.Registers.PL & Overflow) >> 6; } STATIC inline void S9xPackStatus() { - Registers.PL &= ~(Zero | Negative | Carry | Overflow); - Registers.PL |= ICPU._Carry | ((ICPU._Zero == 0) << 1) | + ICPU.Registers.PL &= ~(Zero | Negative | Carry | Overflow); + ICPU.Registers.PL |= ICPU._Carry | ((ICPU._Zero == 0) << 1) | (ICPU._Negative & 0x80) | (ICPU._Overflow << 6); } -- cgit v1.2.3