aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2011-07-08 22:25:23 +0000
committerJim Grosbach <grosbach@apple.com>2011-07-08 22:25:23 +0000
commitaa8d1b80ff35a4370a75b9d08a3e94f19e0d3dae (patch)
tree9ff3282dc955b37c1d78d074c9854e93d9ba7ce5 /lib
parentf06ff4eae3ed2277555b25ee8e95b539f589b63c (diff)
Pseudo-ize tBRIND.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134755 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Target/ARM/ARMInstrThumb.td18
1 files changed, 6 insertions, 12 deletions
diff --git a/lib/Target/ARM/ARMInstrThumb.td b/lib/Target/ARM/ARMInstrThumb.td
index bba0ab6450..056cbfce74 100644
--- a/lib/Target/ARM/ARMInstrThumb.td
+++ b/lib/Target/ARM/ARMInstrThumb.td
@@ -370,18 +370,6 @@ let isBranch = 1, isTerminator = 1, isBarrier = 1, isIndirectBranch = 1 in {
let Inst{6-3} = Rm;
let Inst{2-0} = 0b000;
}
-
- def tBRIND : TI<(outs), (ins GPR:$Rm),
- IIC_Br,
- "mov\tpc, $Rm",
- [(brind GPR:$Rm)]>,
- T1Special<{1,0,?,?}> {
- // A8.6.97
- bits<4> Rm;
- let Inst{7} = 1; // <Rd> = Inst{7:2-0} = pc
- let Inst{6-3} = Rm;
- let Inst{2-0} = 0b111;
- }
}
let isReturn = 1, isTerminator = 1, isBarrier = 1 in {
@@ -1496,3 +1484,9 @@ def tPOP_RET : tPseudoExpand<(outs), (ins pred:$p, reglist:$regs, variable_ops),
Size2Bytes, IIC_iPop_Br, [],
(tPOP pred:$p, reglist:$regs)>;
+// Indirect branch using "mov pc, $Rm"
+let isBranch = 1, isTerminator = 1, isBarrier = 1, isIndirectBranch = 1 in {
+ def tBRIND : tPseudoExpand<(outs), (ins GPR:$Rm),
+ Size2Bytes, IIC_Br, [(brind GPR:$Rm)],
+ (tMOVr PC, GPR:$Rm, (ops 14, zero_reg))>;
+}