Fixing improperly encoded reverse subtract instructions in MBlaze backend.
authorWesley Peck <peckw@wesleypeck.com>
Fri, 12 Nov 2010 23:41:10 +0000 (23:41 +0000)
committerWesley Peck <peckw@wesleypeck.com>
Fri, 12 Nov 2010 23:41:10 +0000 (23:41 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118943 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/MBlaze/MBlazeInstrFormats.td
lib/Target/MBlaze/MBlazeInstrInfo.td
test/MC/MBlaze/mblaze_typea.s

index 27fa049f809bb06d7eb7bd94bd3dfb89bff1799e..d62574d0edee2b88aa83b966b886bbad99bc8eb7 100644 (file)
@@ -125,18 +125,17 @@ class TB<bits<6> op, dag outs, dag ins, string asmstr, list<dag> pattern,
 
 class TAR<bits<6> op, bits<11> flags, dag outs, dag ins, string asmstr,
           list<dag> pattern, InstrItinClass itin> :
-          MBlazeInst<op,FRRR,outs, ins, asmstr, pattern, itin>
+          TA<op, flags, outs, ins, asmstr, pattern, itin>
 {
-  bits<5> rd;
-  bits<5> rb;
-  bits<5> ra;
+  bits<5> rrd;
+  bits<5> rrb;
+  bits<5> rra;
 
   let Form = FRRRR;
 
-  let Inst{6-10}  = rd;
-  let Inst{11-15} = ra;
-  let Inst{16-20} = rb;
-  let Inst{21-31} = flags;
+  let rd = rrd;
+  let ra = rra;
+  let rb = rrb;
 }
 
 //===----------------------------------------------------------------------===//
index 9802361c51d22bb9d4c9b384a81019db68b383e4..ae05b736b5a5bce32c7f8af7bffb2dd50ba55b65 100644 (file)
@@ -177,7 +177,7 @@ class ShiftI<bits<6> op, bits<2> flags, string instr_asm, SDNode OpNode,
 
 class ArithR<bits<6> op, bits<11> flags, string instr_asm, SDNode OpNode,
             InstrItinClass itin> :
-            TAR<op, flags, (outs GPR:$dst), (ins GPR:$c, GPR:$b),
+            TAR<op, flags, (outs GPR:$dst), (ins GPR:$b, GPR:$c),
                 !strconcat(instr_asm, "   $dst, $c, $b"),
                 [(set GPR:$dst, (OpNode GPR:$b, GPR:$c))], itin>;
 
index be260447b4a0e67fb5c231b5310a9205c2927a0c..a0735e482cbbd56afb1e8acdd8b313552c98c090 100644 (file)
 # CHECK:    encoding: [0x80,0x22,0x18,0x00]
             or      r1, r2, r3
 
-# FIXMEC:   rsub
+# CHECK:    rsub
 # BINARY:   000001 00001 00010 00011 00000000000
-# FIXMEC:   encoding: [0x04,0x22,0x18,0x00]
+# CHECK:    encoding: [0x04,0x22,0x18,0x00]
             rsub    r1, r2, r3
 
-# FIXMEC:   rsubc
+# CHECK:    rsubc
 # BINARY:   000011 00001 00010 00011 00000000000
-# FIXMEC:   encoding: [0x0c,0x22,0x18,0x00]
+# CHECK:    encoding: [0x0c,0x22,0x18,0x00]
             rsubc   r1, r2, r3
 
-# FIXMEC:   rsubk
+# CHECK:    rsubk
 # BINARY:   000101 00001 00010 00011 00000000000
-# FIXMEC:   encoding: [0x14,0x22,0x18,0x00]
+# CHECK:    encoding: [0x14,0x22,0x18,0x00]
             rsubk   r1, r2, r3
 
-# FIXMEC:   rsubkc
+# CHECK:    rsubkc
 # BINARY:   000111 00001 00010 00011 00000000000
-# FIXMEC:   encoding: [0x1c,0x22,0x18,0x00]
+# CHECK:    encoding: [0x1c,0x22,0x18,0x00]
             rsubkc  r1, r2, r3
 
 # CHECK:    sext16