2002-02-27 Chris Demetriou <cgd@broadcom.com>
authorChris Demetriou <cgd@google.com>
Wed, 27 Feb 2002 21:52:52 +0000 (21:52 +0000)
committerChris Demetriou <cgd@google.com>
Wed, 27 Feb 2002 21:52:52 +0000 (21:52 +0000)
        * mips.igen (mipsV): New model name.  Also, add it to
        all instructions and functions where it is appropriate.

sim/mips/ChangeLog
sim/mips/mips.igen

index 36a7a92..0fa2dad 100644 (file)
@@ -1,3 +1,8 @@
+2002-02-27  Chris Demetriou  <cgd@broadcom.com>
+
+       * mips.igen (mipsV): New model name.  Also, add it to
+       all instructions and functions where it is appropriate.
+
 2002-02-18  Chris Demetriou  <cgd@broadcom.com>
 
        * mips.igen: For all functions and instructions, list model
index 4a0d461..0709131 100644 (file)
@@ -47,6 +47,7 @@
 :model:::mipsII:mips6000:
 :model:::mipsIII:mips4000:
 :model:::mipsIV:mips8000:
+:model:::mipsV:mipsisaV:
 
 //  Vendor ISAs:
 //
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 //
 // MIPS Architecture:
 //
-//        CPU Instruction Set (mipsI - mipsIV)
+//        CPU Instruction Set (mipsI - mipsV)
 //
 
 
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 "dadd r<RD>, r<RS>, r<RT>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 "daddi r<RT>, r<RS>, <IMMEDIATE>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 "daddiu r<RT>, r<RS>, <IMMEDIATE>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 "daddu r<RD>, r<RS>, r<RT>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 "ddiv r<RS>, r<RT>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 "ddivu r<RS>, r<RT>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 "dmult r<RS>, r<RT>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 {
   do_dmult (SD_, RS, RT, 0);
 "dmultu r<RS>, r<RT>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 {
   do_dmultu (SD_, RS, RT, 0);
 "dsll r<RD>, r<RT>, <SHIFT>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 "dsll32 r<RD>, r<RT>, <SHIFT>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 "dsllv r<RD>, r<RT>, r<RS>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 "dsra r<RD>, r<RT>, <SHIFT>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 "dsra32 r<RT>, r<RD>, <SHIFT>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 "dsrav r<RT>, r<RD>, r<RS>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 "dsrl r<RD>, r<RT>, <SHIFT>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 "dsrl32 r<RD>, r<RT>, <SHIFT>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 "dsrlv r<RD>, r<RT>, r<RS>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 "dsub r<RD>, r<RS>, r<RT>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 "dsubu r<RD>, r<RS>, r<RT>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 "ld r<RT>, <OFFSET>(r<BASE>)"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 "ldl r<RT>, <OFFSET>(r<BASE>)"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 "ldr r<RT>, <OFFSET>(r<BASE>)"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 "lld r<RT>, <OFFSET>(r<BASE>)"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 "lwu r<RT>, <OFFSET>(r<BASE>)"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 000000,5.RS,5.RT,5.RD,00000,001011:SPECIAL:32::MOVN
 "movn r<RD>, r<RS>, r<RT>"
 *mipsIV:
+*mipsV:
 *vr5000:
 {
   if (GPR[RT] != 0)
 000000,5.RS,5.RT,5.RD,00000,001010:SPECIAL:32::MOVZ
 "movz r<RD>, r<RS>, r<RT>"
 *mipsIV:
+*mipsV:
 *vr5000:
 {
   if (GPR[RT] == 0)
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 {
   do_mult (SD_, RS, RT, 0);
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 {
   do_multu (SD_, RS, RT, 0);
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 
 110011,5.RS,nnnnn,16.OFFSET:NORMAL:32::PREF
 *mipsIV:
+*mipsV:
 *vr5000:
 {
   unsigned32 instruction = instruction_0;
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 "scd r<RT>, <OFFSET>(r<BASE>)"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 "sd r<RT>, <OFFSET>(r<BASE>)"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 "sdl r<RT>, <OFFSET>(r<BASE>)"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 "sdr r<RT>, <OFFSET>(r<BASE>)"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *r3900:
 *vr5000:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 "bc1%s<TF>%s<ND> <OFFSET>":CC == 0
 "bc1%s<TF>%s<ND> <CC>, <OFFSET>"
 *mipsIV:
+*mipsV:
 #*vr4100:
 *vr5000:
 *r3900:
 "c.%s<COND>.%s<FMT> f<FS>, f<FT>":CC == 0
 "c.%s<COND>.%s<FMT> <CC>, f<FS>, f<FT>"
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 "ceil.l.%s<FMT> f<FD>, f<FS>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 010001,00,X,10,5.RT,5.FS,00000000000:COP1Sb:32::CxC1
 "c%s<X>c1 r<RT>, f<FS>"
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 "cvt.l.%s<FMT> f<FD>, f<FS>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 010001,00,X,01,5.RT,5.FS,00000000000:COP1Sb:64::DMxC1
 "dm%s<X>c1 r<RT>, f<FS>"
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 "floor.l.%s<FMT> f<FD>, f<FS>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 010011,5.BASE,5.INDEX,5.0,5.FD,000001:COP1X:64::LDXC1
 "ldxc1 f<FD>, r<INDEX>(r<BASE>)"
 *mipsIV:
+*mipsV:
 *vr5000:
 {
   COP_LD (1, FD, do_load (SD_, AccessLength_DOUBLEWORD, GPR[BASE], GPR[INDEX]));
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 010011,5.BASE,5.INDEX,5.0,5.FD,000000:COP1X:32::LWXC1
 "lwxc1 f<FD>, r<INDEX>(r<BASE>)"
 *mipsIV:
+*mipsV:
 *vr5000:
 {
   COP_LW (1, FD, do_load (SD_, AccessLength_WORD, GPR[BASE], GPR[INDEX]));
 010011,5.FR,5.FT,5.FS,5.FD,100,001:COP1X:32,f::MADD.D
 "madd.d f<FD>, f<FR>, f<FS>, f<FT>"
 *mipsIV:
+*mipsV:
 *vr5000:
 {
   unsigned32 instruction = instruction_0;
 010011,5.FR,5.FT,5.FS,5.FD,100,000:COP1X:32,f::MADD.S
 "madd.s f<FD>, f<FR>, f<FS>, f<FT>"
 *mipsIV:
+*mipsV:
 *vr5000:
 {
   unsigned32 instruction = instruction_0;
 010001,00,X,00,5.RT,5.FS,00000000000:COP1Sb:32::MxC1
 "m%s<X>c1 r<RT>, f<FS>"
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 000000,5.RS,3.CC,0,1.TF,5.RD,00000,000001:SPECIAL:32::MOVtf
 "mov%s<TF> r<RD>, r<RS>, <CC>"
 *mipsIV:
+*mipsV:
 *vr5000:
 {
   if (GETFCC(CC) == TF)
 010001,10,3.FMT,3.CC,0,1.TF,5.FS,5.FD,010001:COP1:32::MOVtf.fmt
 "mov%s<TF>.%s<FMT> f<FD>, f<FS>, <CC>"
 *mipsIV:
+*mipsV:
 *vr5000:
 {
   unsigned32 instruction = instruction_0;
 010001,10,3.FMT,5.RT,5.FS,5.FD,010011:COP1:32::MOVN.fmt
 "movn.%s<FMT> f<FD>, f<FS>, r<RT>"
 *mipsIV:
+*mipsV:
 *vr5000:
 {
   if (GPR[RT] != 0)
 010001,10,3.FMT,5.RT,5.FS,5.FD,010010:COP1:32::MOVZ.fmt
 "movz.%s<FMT> f<FD>, f<FS>, r<RT>"
 *mipsIV:
+*mipsV:
 *vr5000:
 {
   if (GPR[RT] == 0)
 010011,5.FR,5.FT,5.FS,5.FD,101,001:COP1X:32::MSUB.D
 "msub.d f<FD>, f<FR>, f<FS>, f<FT>"
 *mipsIV:
+*mipsV:
 *vr5000:
 {
   unsigned32 instruction = instruction_0;
 010011,5.FR,5.FT,5.FS,5.FD,101000:COP1X:32::MSUB.S
 "msub.s f<FD>, f<FR>, f<FS>, f<FT>"
 *mipsIV:
+*mipsV:
 *vr5000:
 {
   unsigned32 instruction = instruction_0;
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 010011,5.FR,5.FT,5.FS,5.FD,110001:COP1X:32::NMADD.D
 "nmadd.d f<FD>, f<FR>, f<FS>, f<FT>"
 *mipsIV:
+*mipsV:
 *vr5000:
 {
   unsigned32 instruction = instruction_0;
 010011,5.FR,5.FT,5.FS,5.FD,110000:COP1X:32::NMADD.S
 "nmadd.s f<FD>, f<FR>, f<FS>, f<FT>"
 *mipsIV:
+*mipsV:
 *vr5000:
 {
   unsigned32 instruction = instruction_0;
 010011,5.FR,5.FT,5.FS,5.FD,111001:COP1X:32::NMSUB.D
 "nmsub.d f<FD>, f<FR>, f<FS>, f<FT>"
 *mipsIV:
+*mipsV:
 *vr5000:
 {
   unsigned32 instruction = instruction_0;
 010011,5.FR,5.FT,5.FS,5.FD,111000:COP1X:32::NMSUB.S
 "nmsub.s f<FD>, f<FR>, f<FS>, f<FT>"
 *mipsIV:
+*mipsV:
 *vr5000:
 {
   unsigned32 instruction = instruction_0;
 010011,5.BASE,5.INDEX,5.HINT,00000001111:COP1X:32::PREFX
 "prefx <HINT>, r<INDEX>(r<BASE>)"
 *mipsIV:
+*mipsV:
 *vr5000:
 {
   unsigned32 instruction = instruction_0;
 010001,10,3.FMT,00000,5.FS,5.FD,010101:COP1:32::RECIP.fmt
 "recip.%s<FMT> f<FD>, f<FS>"
 *mipsIV:
+*mipsV:
 *vr5000:
 {
   unsigned32 instruction = instruction_0;
 "round.l.%s<FMT> f<FD>, f<FS>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 
 010001,10,3.FMT,00000,5.FS,5.FD,010110:COP1:32::RSQRT.fmt
 *mipsIV:
+*mipsV:
 "rsqrt.%s<FMT> f<FD>, f<FS>"
 *vr5000:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 010011,5.BASE,5.INDEX,5.FS,00000001001:COP1X:64::SDXC1
 "ldxc1 f<FS>, r<INDEX>(r<BASE>)"
 *mipsIV:
+*mipsV:
 *vr5000:
 {
   do_store (SD_, AccessLength_DOUBLEWORD, GPR[BASE], GPR[INDEX], COP_SD (1, FS));
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 010011,5.BASE,5.INDEX,5.FS,00000,001000:COP1X:32::SWXC1
 "swxc1 f<FS>, r<INDEX>(r<BASE>)"
 *mipsIV:
+*mipsV:
 *vr5000:
 {
   unsigned32 instruction = instruction_0;
 "trunc.l.%s<FMT> f<FD>, f<FS>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 
 
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 
 101111,5.BASE,5.OP,16.OFFSET:NORMAL:32::CACHE
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 
 "dmfc0 r<RT>, r<RD>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 {
   DecodeCoproc (instruction_0);
 }
 "dmtc0 r<RT>, r<RD>"
 *mipsIII:
 *mipsIV:
+*mipsV:
 {
   DecodeCoproc (instruction_0);
 }
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 
 "eret"
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 *r3900:
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *r3900:
 {
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000:
 
 *mipsII:
 *mipsIII:
 *mipsIV:
+*mipsV:
 *vr4100:
 *vr5000: