Added BKPT/tBKPT (breakpoint) to the instruction table for disassembly purpose.
authorJohnny Chen <johnny.chen@apple.com>
Thu, 11 Feb 2010 18:12:29 +0000 (18:12 +0000)
committerJohnny Chen <johnny.chen@apple.com>
Thu, 11 Feb 2010 18:12:29 +0000 (18:12 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95884 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMInstrInfo.td
lib/Target/ARM/ARMInstrThumb.td

index 1e3847fcfde83f1b79e9d9434b9c1adc16ae9243..ea7a5692effbaa00c24d0c2fc4379f70325ddbc7 100644 (file)
@@ -612,6 +612,15 @@ def NOP : AI<(outs), (ins), Pseudo, NoItinerary, "nop", "",
   let Inst{7-0} = 0b00000000;
 }
 
+// The i32imm operand $val can be used by a debugger to store more information
+// about the breakpoint.
+def BKPT : AI<(outs), (ins i32imm:$val), Pseudo, NoItinerary, "bkpt", "\t$val",
+              [/* For disassembly only; pattern left blank */]>,
+           Requires<[IsARM]> {
+  let Inst{27-20} = 0b00010010;
+  let Inst{7-4} = 0b0111;
+}
+
 def DBG : AI<(outs), (ins i32imm:$opt), Pseudo, NoItinerary, "dbg", "\t$opt",
              [/* For disassembly only; pattern left blank */]>,
           Requires<[IsARM, HasV7]> {
index 1dcea26bc535dc02d20bee63291eae655a673be6..64142ad24bd65f961fb732581eac5300a0ef4762 100644 (file)
@@ -132,6 +132,14 @@ PseudoInst<(outs), (ins i32imm:$amt), NoItinerary,
            [(ARMcallseq_start imm:$amt)]>, Requires<[IsThumb1Only]>;
 }
 
+// The i32imm operand $val can be used by a debugger to store more information
+// about the breakpoint.
+def tBKPT : T1I<(outs), (ins i32imm:$val), NoItinerary, "bkpt\t$val",
+                [/* For disassembly only; pattern left blank */]>,
+            T1Encoding<0b101111> {
+  let Inst{9-8} = 0b10;
+}
+
 // For both thumb1 and thumb2.
 let isNotDuplicable = 1 in
 def tPICADD : TIt<(outs GPR:$dst), (ins GPR:$lhs, pclabel:$cp), IIC_iALUr,