notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
drc related bugfixes
[picodrive.git]
/
cpu
/
sh2
/
mame
/
sh2.c
diff --git
a/cpu/sh2/mame/sh2.c
b/cpu/sh2/mame/sh2.c
index
18ef6eb
..
8e84f7e
100644
(file)
--- a/
cpu/sh2/mame/sh2.c
+++ b/
cpu/sh2/mame/sh2.c
@@
-855,7
+855,8
@@
INLINE void JSR(UINT32 m)
/* LDC Rm,SR */
\r
INLINE void LDCSR(UINT32 m)
\r
{
\r
/* LDC Rm,SR */
\r
INLINE void LDCSR(UINT32 m)
\r
{
\r
- sh2->sr = sh2->r[m] & FLAGS;
\r
+ sh2->sr &= ~0xfff;
\r
+ sh2->sr |= sh2->r[m] & FLAGS;
\r
sh2->test_irq = 1;
\r
}
\r
\r
sh2->test_irq = 1;
\r
}
\r
\r
@@
-875,7
+876,8
@@
INLINE void LDCVBR(UINT32 m)
INLINE void LDCMSR(UINT32 m)
\r
{
\r
sh2->ea = sh2->r[m];
\r
INLINE void LDCMSR(UINT32 m)
\r
{
\r
sh2->ea = sh2->r[m];
\r
- sh2->sr = RL( sh2->ea ) & FLAGS;
\r
+ sh2->sr &= ~0xfff;
\r
+ sh2->sr |= RL( sh2->ea ) & FLAGS;
\r
sh2->r[m] += 4;
\r
sh2_icount -= 2;
\r
sh2->test_irq = 1;
\r
sh2->r[m] += 4;
\r
sh2_icount -= 2;
\r
sh2->test_irq = 1;
\r
@@
-1461,7
+1463,8
@@
INLINE void RTE(void)
sh2->pc = RL( sh2->ea );
\r
sh2->r[15] += 4;
\r
sh2->ea = sh2->r[15];
\r
sh2->pc = RL( sh2->ea );
\r
sh2->r[15] += 4;
\r
sh2->ea = sh2->r[15];
\r
- sh2->sr = RL( sh2->ea ) & FLAGS;
\r
+ sh2->sr &= ~0xfff;
\r
+ sh2->sr |= RL( sh2->ea ) & FLAGS;
\r
sh2->r[15] += 4;
\r
sh2_icount -= 3;
\r
sh2->test_irq = 1;
\r
sh2->r[15] += 4;
\r
sh2_icount -= 3;
\r
sh2->test_irq = 1;
\r
@@
-1556,7
+1559,7
@@
INLINE void SLEEP(void)
/* STC SR,Rn */
\r
INLINE void STCSR(UINT32 n)
\r
{
\r
/* STC SR,Rn */
\r
INLINE void STCSR(UINT32 n)
\r
{
\r
- sh2->r[n] = sh2->sr;
\r
+ sh2->r[n] = sh2->sr
& FLAGS
;
\r
}
\r
\r
/* STC GBR,Rn */
\r
}
\r
\r
/* STC GBR,Rn */
\r
@@
-1576,7
+1579,7
@@
INLINE void STCMSR(UINT32 n)
{
\r
sh2->r[n] -= 4;
\r
sh2->ea = sh2->r[n];
\r
{
\r
sh2->r[n] -= 4;
\r
sh2->ea = sh2->r[n];
\r
- WL( sh2->ea, sh2->sr );
\r
+ WL( sh2->ea, sh2->sr
& FLAGS
);
\r
sh2_icount--;
\r
}
\r
\r
sh2_icount--;
\r
}
\r
\r
@@
-1738,7
+1741,7
@@
INLINE void TRAPA(UINT32 i)
sh2->ea = sh2->vbr + imm * 4;
\r
\r
sh2->r[15] -= 4;
\r
sh2->ea = sh2->vbr + imm * 4;
\r
\r
sh2->r[15] -= 4;
\r
- WL( sh2->r[15], sh2->sr );
\r
+ WL( sh2->r[15], sh2->sr
& FLAGS
);
\r
sh2->r[15] -= 4;
\r
WL( sh2->r[15], sh2->pc );
\r
\r
sh2->r[15] -= 4;
\r
WL( sh2->r[15], sh2->pc );
\r
\r