aboutsummaryrefslogtreecommitdiff
path: root/source/sa1.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/sa1.h
parent139c793b584a76acd42d72ec019d2cabab7d3ee7 (diff)
downloadsnes9x2005-e5869adc4469115c7eac9abf70145fc178e017de.tar.gz
snes9x2005-e5869adc4469115c7eac9abf70145fc178e017de.tar.bz2
snes9x2005-e5869adc4469115c7eac9abf70145fc178e017de.zip
Merge Registers structures into their respective CPUs to avoid additional memory addresses being loaded every opcode.
Diffstat (limited to 'source/sa1.h')
-rw-r--r--source/sa1.h30
1 files changed, 15 insertions, 15 deletions
diff --git a/source/sa1.h b/source/sa1.h
index 21353d5..708fb68 100644
--- a/source/sa1.h
+++ b/source/sa1.h
@@ -141,21 +141,22 @@ struct SSA1 {
uint8 VirtualBitmapFormat;
bool8 in_char_dma;
uint8 variable_bit_pos;
+ struct SSA1Registers Registers;
};
#define SA1CheckZero() (SA1._Zero == 0)
#define SA1CheckCarry() (SA1._Carry)
-#define SA1CheckIRQ() (SA1Registers.PL & IRQ)
-#define SA1CheckDecimal() (SA1Registers.PL & Decimal)
-#define SA1CheckIndex() (SA1Registers.PL & IndexFlag)
-#define SA1CheckMemory() (SA1Registers.PL & MemoryFlag)
+#define SA1CheckIRQ() (SA1.Registers.PL & IRQ)
+#define SA1CheckDecimal() (SA1.Registers.PL & Decimal)
+#define SA1CheckIndex() (SA1.Registers.PL & IndexFlag)
+#define SA1CheckMemory() (SA1.Registers.PL & MemoryFlag)
#define SA1CheckOverflow() (SA1._Overflow)
#define SA1CheckNegative() (SA1._Negative & 0x80)
-#define SA1CheckEmulation() (SA1Registers.P.W & Emulation)
+#define SA1CheckEmulation() (SA1.Registers.P.W & Emulation)
-#define SA1ClearFlags(f) (SA1Registers.P.W &= ~(f))
-#define SA1SetFlags(f) (SA1Registers.P.W |= (f))
-#define SA1CheckFlag(f) (SA1Registers.PL & (f))
+#define SA1ClearFlags(f) (SA1.Registers.P.W &= ~(f))
+#define SA1SetFlags(f) (SA1.Registers.P.W |= (f))
+#define SA1CheckFlag(f) (SA1.Registers.PL & (f))
START_EXTERN_C
@@ -171,7 +172,6 @@ extern struct SOpcodes S9xSA1OpcodesM1X1 [256];
extern struct SOpcodes S9xSA1OpcodesM1X0 [256];
extern struct SOpcodes S9xSA1OpcodesM0X1 [256];
extern struct SOpcodes S9xSA1OpcodesM0X0 [256];
-extern struct SSA1Registers SA1Registers;
extern struct SSA1 SA1;
void S9xSA1MainLoop ();
@@ -186,16 +186,16 @@ END_EXTERN_C
STATIC inline void S9xSA1UnpackStatus()
{
- SA1._Zero = (SA1Registers.PL & Zero) == 0;
- SA1._Negative = (SA1Registers.PL & Negative);
- SA1._Carry = (SA1Registers.PL & Carry);
- SA1._Overflow = (SA1Registers.PL & Overflow) >> 6;
+ SA1._Zero = (SA1.Registers.PL & Zero) == 0;
+ SA1._Negative = (SA1.Registers.PL & Negative);
+ SA1._Carry = (SA1.Registers.PL & Carry);
+ SA1._Overflow = (SA1.Registers.PL & Overflow) >> 6;
}
STATIC inline void S9xSA1PackStatus()
{
- SA1Registers.PL &= ~(Zero | Negative | Carry | Overflow);
- SA1Registers.PL |= SA1._Carry | ((SA1._Zero == 0) << 1) |
+ SA1.Registers.PL &= ~(Zero | Negative | Carry | Overflow);
+ SA1.Registers.PL |= SA1._Carry | ((SA1._Zero == 0) << 1) |
(SA1._Negative & 0x80) | (SA1._Overflow << 6);
}