summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2010-12-04 00:20:40 +0000
committerJim Grosbach <grosbach@apple.com>2010-12-04 00:20:40 +0000
commitce18d7ebb5e17df724c1e0289c9897b0c717a691 (patch)
tree09f6fb5ba53e5e28b65f9897dbef7b6ecf1812c3 /llvm/lib
parenteed4b5b2303b55b56804a23c12ff17dda48ba096 (diff)
downloadbcm5719-llvm-ce18d7ebb5e17df724c1e0289c9897b0c717a691.tar.gz
bcm5719-llvm-ce18d7ebb5e17df724c1e0289c9897b0c717a691.zip
Encode condition code for Thumb1 conditional branch instruction.
llvm-svn: 120865
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/ARM/ARMInstrThumb.td9
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrThumb.td b/llvm/lib/Target/ARM/ARMInstrThumb.td
index f0fcdd49966..a8681aef3c8 100644
--- a/llvm/lib/Target/ARM/ARMInstrThumb.td
+++ b/llvm/lib/Target/ARM/ARMInstrThumb.td
@@ -475,10 +475,13 @@ let isBranch = 1, isTerminator = 1, isBarrier = 1 in {
// FIXME: should be able to write a pattern for ARMBrcond, but can't use
// a two-value operand where a dag node expects two operands. :(
let isBranch = 1, isTerminator = 1 in
- def tBcc : T1I<(outs), (ins brtarget:$target, pred:$cc), IIC_Br,
- "b$cc\t$target",
+ def tBcc : T1I<(outs), (ins brtarget:$target, pred:$p), IIC_Br,
+ "b${p}\t$target",
[/*(ARMbrcond bb:$target, imm:$cc)*/]>,
- T1Encoding<{1,1,0,1,?,?}>;
+ T1Encoding<{1,1,0,1,?,?}> {
+ bits<4> p;
+ let Inst{11-8} = p;
+}
// Compare and branch on zero / non-zero
let isBranch = 1, isTerminator = 1 in {
OpenPOWER on IntegriCloud