From 11c8d71babb0210d070dd6ab12a255a5fa3159a5 Mon Sep 17 00:00:00 2001 From: mrb0nk500 Date: Wed, 6 May 2020 14:10:46 -0400 Subject: Removed some duplicate code in the assembler, and made the processor status register, a union now. --- sux.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'sux.h') diff --git a/sux.h b/sux.h index aa0355e..b36c4b1 100644 --- a/sux.h +++ b/sux.h @@ -22,8 +22,8 @@ uint8_t subdbg; WINDOW *scr; -#define setflag(flag, bit) ((flag)) ? (cpu->ps |= (bit << (thread << 3))) : (cpu->ps &= ~(bit << (thread << 3))) -#define getflag(bit) (cpu->ps & (bit << (thread << 3))) +#define setflag(flag, bit) ((flag)) ? (cpu->ps.u8[thread] |= bit) : (cpu->ps.u8[thread] &= ~bit) +#define getflag(bit) (cpu->ps.u8[thread] & bit) extern pthread_mutex_t mutex; extern pthread_mutex_t main_mutex; @@ -231,7 +231,7 @@ inline void push(struct sux *cpu, uint64_t value, uint8_t opcode, uint8_t thread case PHB: r.reg = cpu->b[thread]; break; case PHX: r.reg = cpu->x[thread]; break; case PHY: r.reg = cpu->y[thread]; break; - case PHP: r.reg = cpu->ps; break; + case PHP: r.reg = cpu->ps.u64; break; } /* Unroll Loop by implementing Duff's Device. */ switch (tmp) { @@ -271,7 +271,7 @@ inline void pull(struct sux *cpu, uint64_t value, uint8_t opcode, uint8_t thread case PLB: cpu->b[thread] = r.reg; break; case PLX: cpu->x[thread] = r.reg; break; case PLY: cpu->y[thread] = r.reg; break; - case PLP: cpu->ps = r.reg; break; + case PLP: cpu->ps.u64 = r.reg; break; } } -- cgit v1.2.3-13-gbd6f