aboutsummaryrefslogtreecommitdiff
path: root/sim/mips/interp.c
diff options
context:
space:
mode:
authorIan Carmichael <iancarm@cygnus>1998-06-16 16:02:04 +0000
committerIan Carmichael <iancarm@cygnus>1998-06-16 16:02:04 +0000
commit8ea23ea4bb5b1144540e0b00c09f710bc75ab12c (patch)
treea4975571d41a028a9d8e84693cd2c3aeb74c5803 /sim/mips/interp.c
parentf14defcc75432847bdbca587531734667900c7c8 (diff)
downloadfsf-binutils-gdb-8ea23ea4bb5b1144540e0b00c09f710bc75ab12c.zip
fsf-binutils-gdb-8ea23ea4bb5b1144540e0b00c09f710bc75ab12c.tar.gz
fsf-binutils-gdb-8ea23ea4bb5b1144540e0b00c09f710bc75ab12c.tar.bz2
* Implement remaining bits in VPU_STAT, CMSAR0, CMSAR1, FBRST. Fix COP2 interface
* to VI registers (CFC2/CTC2). * * Modified Files: * ChangeLog.sky interp.c sim-main.c sky-pke.h sky-vu.c sky-vu.h
Diffstat (limited to 'sim/mips/interp.c')
-rw-r--r--sim/mips/interp.c17
1 files changed, 2 insertions, 15 deletions
diff --git a/sim/mips/interp.c b/sim/mips/interp.c
index f0ba619..113a136 100644
--- a/sim/mips/interp.c
+++ b/sim/mips/interp.c
@@ -3440,14 +3440,7 @@ decode_coproc (SIM_DESC sd,
}
else /* CFC2 */
{
- unsigned_4 data;
- /* enum + int calculation, argh! */
- id = VU_REG_MST + 16 * id;
- if (id >= VU_REG_CMSAR0)
- read_vu_special_reg(&vu0_device, id, & data);
- else
- read_vu_misc_reg(&(vu0_device.regs), id, & data);
- GPR[rt] = EXTEND32(T2H_4(data));
+ GPR[rt] = vu0_read_cop2_register(id);
}
}
else if((i_25_21 == 0x06 && i_10_1 == 0x000) || /* CTC2 */
@@ -3483,13 +3476,7 @@ decode_coproc (SIM_DESC sd,
}
else /* CTC2 */
{
- unsigned_4 data = H2T_4(GPR[rt]);
- /* enum + int calculation, argh! */
- id = VU_REG_VI + 16 * id;
- if (id >= VU_REG_CMSAR0)
- write_vu_special_reg(&vu0_device, id, & data);
- else
- write_vu_misc_reg(&(vu0_device.regs), id, & data);
+ vu0_write_cop2_register(id, GPR[rt]);
}
}
else if(i_10_0 == 0x3bf) /* VWAITQ */