Make ARM::B isPredicable; Make Bcc and MOVCC condition option a normal operand so...
[oota-llvm.git] / lib / Target / ARM / ARMInstrInfo.td
index b8f5b8a421ed3dab82f744dd93023b8e43a42548..9616a07a1d99c4e71eb5ab32f3eaf45a63a7e356 100644 (file)
@@ -278,7 +278,7 @@ def addrmodepc : Operand<i32>,
 }
 
 // ARM branch / cmov condition code operand.
-def ccop : PredicateOperand<i32, (ops i32imm), (ops)> {
+def ccop : Operand<i32> {
   let PrintMethod = "printPredicateOperand";
 }
 
@@ -364,7 +364,7 @@ class PseudoInst<dag ops, string asm, list<dag> pattern>
   let Pattern = pattern;
 }
 
-// Almost all ARM instructions are predicatable.
+// Almost all ARM instructions are predicable.
 class I<dag oprnds, AddrMode am, SizeFlagVal sz, IndexMode im,
         string opc, string asm, string cstr, list<dag> pattern>
   // FIXME: Set all opcodes to 0 for now.
@@ -591,10 +591,11 @@ let isCall = 1, noResults = 1,
 }
 
 let isBranch = 1, isTerminator = 1, noResults = 1 in {
-  // B can changed into a Bcc, but it is not "predicated".
+  // B is "predicable" since it can be xformed into a Bcc.
   let isBarrier = 1 in {
-  def B : AXI<(ops brtarget:$dst), "b $dst",
-              [(br bb:$dst)]>;
+    let isPredicable = 1 in
+    def B : AXI<(ops brtarget:$dst), "b $dst",
+                [(br bb:$dst)]>;
 
   def BR_JTr : JTI<(ops GPR:$dst, jtblock_operand:$jt, i32imm:$id),
                     "mov", " pc, $dst \n$jt",