[llvm-commits] [llvm] r135778 - in /llvm/trunk/lib/Target/ARM: ARMInstrThumb.td Disassembler/ThumbDisassemblerCore.h

Jim Grosbach grosbach at apple.com
Fri Jul 22 10:52:23 PDT 2011


Author: grosbach
Date: Fri Jul 22 12:52:23 2011
New Revision: 135778

URL: http://llvm.org/viewvc/llvm-project?rev=135778&view=rev
Log:
Thumb assembly support for SETEND instruction.

Modified:
    llvm/trunk/lib/Target/ARM/ARMInstrThumb.td
    llvm/trunk/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h

Modified: llvm/trunk/lib/Target/ARM/ARMInstrThumb.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMInstrThumb.td?rev=135778&r1=135777&r2=135778&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMInstrThumb.td (original)
+++ llvm/trunk/lib/Target/ARM/ARMInstrThumb.td Fri Jul 22 12:52:23 2011
@@ -245,23 +245,13 @@
   let Inst{7-0} = val;
 }
 
-def tSETENDBE : T1I<(outs), (ins), NoItinerary, "setend\tbe",
-                    [/* For disassembly only; pattern left blank */]>,
-                T1Encoding<0b101101> {
+def tSETEND : T1I<(outs), (ins setend_op:$end), NoItinerary, "setend\t$end",
+                  []>, T1Encoding<0b101101> {
+  bits<1> end;
   // A8.6.156
   let Inst{9-5} = 0b10010;
   let Inst{4}   = 1;
-  let Inst{3}   = 1;            // Big-Endian
-  let Inst{2-0} = 0b000;
-}
-
-def tSETENDLE : T1I<(outs), (ins), NoItinerary, "setend\tle",
-                    [/* For disassembly only; pattern left blank */]>,
-                T1Encoding<0b101101> {
-  // A8.6.156
-  let Inst{9-5} = 0b10010;
-  let Inst{4}   = 1;
-  let Inst{3}   = 0;            // Little-Endian
+  let Inst{3}   = end;
   let Inst{2-0} = 0b000;
 }
 

Modified: llvm/trunk/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h?rev=135778&r1=135777&r2=135778&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h (original)
+++ llvm/trunk/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h Fri Jul 22 12:52:23 2011
@@ -798,8 +798,7 @@
 // tBKPT:            imm8
 // tNOP, tSEV, tYIELD, tWFE, tWFI:
 //   no operand (except predicate pair)
-// tSETENDBE, tSETENDLE, :
-//   no operand
+// tSETEND: i1
 // Others:           tRd tRn
 static bool DisassembleThumb1Misc(MCInst &MI, unsigned Opcode, uint32_t insn,
     unsigned short NumOps, unsigned &NumOpsAdded, BO B) {
@@ -860,6 +859,12 @@
     return true;
   }
 
+  if (Opcode == ARM::tSETEND) {
+    MI.addOperand(MCOperand::CreateImm(slice(insn, 3, 1)));
+    NumOpsAdded = 1;
+    return true;
+  }
+
   assert(NumOps >= 2 && OpInfo[0].RegClass == ARM::tGPRRegClassID &&
          (OpInfo[1].RegClass < 0 || OpInfo[1].RegClass==ARM::tGPRRegClassID)
          && "Expect >=2 operands");





More information about the llvm-commits mailing list