From a8b03e2d4dc3fc0202a227375bf46bd4ad55f84a Mon Sep 17 00:00:00 2001 From: notaz Date: Tue, 13 Oct 2009 21:14:53 +0000 Subject: [PATCH] 32x: add SR masking in MAME sh2 git-svn-id: file:///home/notaz/opt/svn/PicoDrive@815 be3aeb3a-fb24-0410-a615-afba39da0efa --- cpu/sh2/mame/sh2.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/cpu/sh2/mame/sh2.c b/cpu/sh2/mame/sh2.c index 18ef6eb..8e84f7e 100644 --- a/cpu/sh2/mame/sh2.c +++ b/cpu/sh2/mame/sh2.c @@ -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 ); -- 2.39.2