X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=inline;f=cpu%2Fsh2%2Fmame%2Fsh2.c;h=7beead30d84972a36afa43a764267dff8f74c9be;hb=f0d7b1faa17e6e0e21c04db2e1b46ae33a808e11;hp=18ef6eb5b185bd08670f578e5a62486032c4a6f9;hpb=41397701210c08b9d25ca66cbe372c7ed86d6927;p=picodrive.git diff --git a/cpu/sh2/mame/sh2.c b/cpu/sh2/mame/sh2.c index 18ef6eb..7beead3 100644 --- a/cpu/sh2/mame/sh2.c +++ b/cpu/sh2/mame/sh2.c @@ -116,7 +116,7 @@ #define LOG(x) do { if (VERBOSE) logerror x; } while (0) //int sh2_icount; -SH2 *sh2; +//SH2 *sh2; #if 0 INLINE UINT8 RB(offs_t A) @@ -855,7 +855,8 @@ INLINE void JSR(UINT32 m) /* LDC Rm,SR */ INLINE void LDCSR(UINT32 m) { - sh2->sr = sh2->r[m] & FLAGS; + sh2->sr &= ~0xfff; + sh2->sr |= sh2->r[m] & FLAGS; sh2->test_irq = 1; } @@ -875,7 +876,8 @@ INLINE void LDCVBR(UINT32 m) INLINE void LDCMSR(UINT32 m) { sh2->ea = sh2->r[m]; - sh2->sr = RL( sh2->ea ) & FLAGS; + sh2->sr &= ~0xfff; + sh2->sr |= RL( sh2->ea ) & FLAGS; sh2->r[m] += 4; sh2_icount -= 2; sh2->test_irq = 1; @@ -1461,7 +1463,8 @@ INLINE void RTE(void) sh2->pc = RL( sh2->ea ); sh2->r[15] += 4; sh2->ea = sh2->r[15]; - sh2->sr = RL( sh2->ea ) & FLAGS; + sh2->sr &= ~0xfff; + sh2->sr |= RL( sh2->ea ) & FLAGS; sh2->r[15] += 4; sh2_icount -= 3; sh2->test_irq = 1; @@ -1556,7 +1559,7 @@ INLINE void SLEEP(void) /* STC SR,Rn */ INLINE void STCSR(UINT32 n) { - sh2->r[n] = sh2->sr; + sh2->r[n] = sh2->sr & FLAGS; } /* STC GBR,Rn */ @@ -1576,7 +1579,7 @@ INLINE void STCMSR(UINT32 n) { sh2->r[n] -= 4; sh2->ea = sh2->r[n]; - WL( sh2->ea, sh2->sr ); + WL( sh2->ea, sh2->sr & FLAGS ); sh2_icount--; } @@ -1738,7 +1741,7 @@ INLINE void TRAPA(UINT32 i) sh2->ea = sh2->vbr + imm * 4; sh2->r[15] -= 4; - WL( sh2->r[15], sh2->sr ); + WL( sh2->r[15], sh2->sr & FLAGS ); sh2->r[15] -= 4; WL( sh2->r[15], sh2->pc );