2004-05-11 Maciej W. Rozycki <macro@ds2.pg.gda.pl>

* mips/interp.c (decode_coproc): Sign-extend the address retrieved
        from COP0_BADVADDR.
        * mips/sim-main.h (COP0_BADVADDR): Remove a cast.
This commit is contained in:
Chris Demetriou 2004-05-12 01:42:33 +00:00
parent 922d5ae03a
commit 1a27f959ea
3 changed files with 8 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2004-05-11 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
* mips/interp.c (decode_coproc): Sign-extend the address retrieved
from COP0_BADVADDR.
* mips/sim-main.h (COP0_BADVADDR): Remove a cast.
2004-04-10 Chris Demetriou <cgd@broadcom.com> 2004-04-10 Chris Demetriou <cgd@broadcom.com>
* sb1.igen (DIV.PS, RECIP.PS, RSQRT.PS, SQRT.PS): New. * sb1.igen (DIV.PS, RECIP.PS, RSQRT.PS, SQRT.PS): New.

View File

@ -2102,7 +2102,7 @@ decode_coproc (SIM_DESC sd,
case 8: case 8:
/* 8 = BadVAddr R4000 VR4100 VR4300 */ /* 8 = BadVAddr R4000 VR4100 VR4300 */
if (code == 0x00) if (code == 0x00)
GPR[rt] = COP0_BADVADDR; GPR[rt] = (signed_word) (signed_address) COP0_BADVADDR;
else else
COP0_BADVADDR = GPR[rt]; COP0_BADVADDR = GPR[rt];
break; break;

View File

@ -383,7 +383,7 @@ struct _sim_cpu {
#define NR_COP0_GPR 32 #define NR_COP0_GPR 32
unsigned_word cop0_gpr[NR_COP0_GPR]; unsigned_word cop0_gpr[NR_COP0_GPR];
#define COP0_GPR ((CPU)->cop0_gpr) #define COP0_GPR ((CPU)->cop0_gpr)
#define COP0_BADVADDR ((unsigned32)(COP0_GPR[8])) #define COP0_BADVADDR (COP0_GPR[8])
/* While space is allocated for the floating point registers in the /* While space is allocated for the floating point registers in the
main registers array, they are stored separatly. This is because main registers array, they are stored separatly. This is because