From 11c47f314bf5b03fb674275920386fbec2a13aca Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Wed, 8 Apr 1998 22:22:58 +0000 Subject: * R5900 sky COP2 testing continuing. Today only small VCALLMS-related were found/fixed. [ChangeLog.sky] * sky-vu.c ({read,write}_vu_special_reg): Add CMSAR[01] as special registers for a VU. Behavior not as mandated. ({read,write}_vu_{misc,special}_reg): Create sim_io_error upon access to unknown register. Behavior not as mandated. * sky-vu.h (anonymous register numbering enum): Add CMSAR[01]. * sky-libvpe.c (indebug): Cache $ENV{'SKY_DEBUG'}. [ChangeLog] * Makefile.in (SIM_SKY_OBJS): Added sky-vudis.o. * interp.c (decode_coproc): Refer to VU CIA as a "special" register, not as a "misc" register. Aha. Add activity assertions after VCALLMS* instructions. --- sim/mips/interp.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'sim/mips/interp.c') diff --git a/sim/mips/interp.c b/sim/mips/interp.c index 2d5d4f4..12da45d 100644 --- a/sim/mips/interp.c +++ b/sim/mips/interp.c @@ -3375,7 +3375,9 @@ decode_coproc (SIM_DESC sd, vu0_issue(sd); /* write to reserved CIA register to get VU0 moving */ - write_vu_misc_reg(&(vu0_device.regs), VU_REG_CIA, & data); + write_vu_special_reg(& vu0_device, VU_REG_CIA, & data); + + ASSERT(vu0_busy()); } else if(i_5_0 == 0x39) /* VCALLMSR */ { @@ -3384,9 +3386,11 @@ decode_coproc (SIM_DESC sd, while(vu0_busy()) vu0_issue(sd); - read_vu_misc_reg(&(vu0_device.regs), VU_REG_CMSAR0, & data); + read_vu_special_reg(& vu0_device, VU_REG_CMSAR0, & data); /* write to reserved CIA register to get VU0 moving */ - write_vu_misc_reg(&(vu0_device.regs), VU_REG_CIA, & data); + write_vu_special_reg(& vu0_device, VU_REG_CIA, & data); + + ASSERT(vu0_busy()); } /* handle all remaining UPPER VU instructions in one block */ else if((i_5_0 < 0x30) || /* VADDx .. VMINI */ -- cgit v1.1