Refactor TLBIVAX and add tlbsx.
authorJoerg Sonnenberger <joerg@bec.de>
Wed, 30 Jul 2014 22:51:15 +0000 (22:51 +0000)
committerJoerg Sonnenberger <joerg@bec.de>
Wed, 30 Jul 2014 22:51:15 +0000 (22:51 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214354 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCInstrFormats.td
lib/Target/PowerPC/PPCInstrInfo.td
test/MC/Disassembler/PowerPC/ppc64-encoding-bookIII.txt
test/MC/PowerPC/ppc64-encoding-bookIII.s

index d40a9ab882a2b01ee8ccb04ce1a366ab67ffd37b..18d77cdd8034e7b82954bb1395d11a8ed75ddd6b 100644 (file)
@@ -380,6 +380,11 @@ class XForm_base_r3xo<bits<6> opcode, bits<10> xo, dag OOL, dag IOL, string asms
   let Inst{31}    = RC;
 }
 
+class XForm_tlb<bits<10> xo, dag OOL, dag IOL, string asmstr,
+                InstrItinClass itin> : XForm_base_r3xo<31, xo, OOL, IOL, asmstr, itin, []> {
+  let RST = 0;
+}
+
 // This is the same as XForm_base_r3xo, but the first two operands are swapped
 // when code is emitted.
 class XForm_base_r3xo_swapped
index c18e6d51bd9e9ff227a32741de08b5e25277498f..cd30848ceda53c548128558a8415597531c29fd5 100644 (file)
@@ -3103,14 +3103,11 @@ def TLBIEL : XForm_16b<31, 274, (outs), (ins gprc:$RB),
 def TLBIE : XForm_26<31, 306, (outs), (ins gprc:$RS, gprc:$RB),
                           "tlbie $RB,$RS", IIC_SprTLBIE, []>;
 
-def TLBIVAX : I<31, (outs), (ins gprc:$RA, gprc:$RB), "tlbivax $RA, $RB",
-                IIC_LdStLoad>, Requires<[IsBookE]> {
-  bits<5> RA;
-  bits<5> RB;
-  let Inst{11-15} = RA;
-  let Inst{16-20} = RB;
-  let Inst{21-30} = 786;
-}
+def TLBSX : XForm_tlb<914, (outs), (ins gprc:$A, gprc:$B), "tlbsx $A, $B",
+                IIC_LdStLoad>, Requires<[IsBookE]>;
+
+def TLBIVAX : XForm_tlb<786, (outs), (ins gprc:$A, gprc:$B), "tlbivax $A, $B",
+                IIC_LdStLoad>, Requires<[IsBookE]>;
 
 def TLBRE : XForm_24_eieio<31, 946, (outs), (ins),
                            "tlbre", IIC_LdStLoad, []>, Requires<[IsBookE]>;
index f341431f9a803ac7296ff8693514f1af439c1105..7996ed178a129ae6015833ba3c8b90a9173142a3 100644 (file)
 0x7c 0x00 0x07 0xa4
 # CHECK: tlbivax 11, 12
 0x7c 0x0b 0x66 0x24
+# CHECK: tlbsx 11, 12
+0x7c 0x0b 0x67 0x24
index 2dd98a3cd84f62bd850b50b2d356437bbc8deae2..9e784dbb5e98db6c193bfcbe057fc15ef7b5f3fa 100644 (file)
 # CHECK-BE: tlbivax 11, 12                  # encoding: [0x7c,0x0b,0x66,0x24]
 # CHECK-LE: tlbivax 11, 12                  # encoding: [0x24,0x66,0x0b,0x7c]
             tlbivax %r11, %r12
+# CHECK-BE: tlbsx 11, 12                    # encoding: [0x7c,0x0b,0x67,0x24]
+# CHECK-LE: tlbsx 11, 12                    # encoding: [0x24,0x67,0x0b,0x7c]
+            tlbsx %r11, %r12