aboutsummaryrefslogtreecommitdiff
path: root/source/cpuexec.h
diff options
context:
space:
mode:
authorNebuleon Fumika2012-12-26 14:42:02 -0500
committerNebuleon Fumika2012-12-26 14:42:02 -0500
commite5869adc4469115c7eac9abf70145fc178e017de (patch)
tree552805b1c150fea2f5e905e550d034f71c03fb75 /source/cpuexec.h
parent139c793b584a76acd42d72ec019d2cabab7d3ee7 (diff)
downloadsnesemu-e5869adc4469115c7eac9abf70145fc178e017de.tar.gz
snesemu-e5869adc4469115c7eac9abf70145fc178e017de.tar.bz2
snesemu-e5869adc4469115c7eac9abf70145fc178e017de.zip
Merge Registers structures into their respective CPUs to avoid additional memory addresses being loaded every opcode.
Diffstat (limited to 'source/cpuexec.h')
-rw-r--r--source/cpuexec.h13
1 files changed, 7 insertions, 6 deletions
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);
}