summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2015-04-29 19:16:38 +0000
committerTim Northover <tnorthover@apple.com>2015-04-29 19:16:38 +0000
commit5211715360bf7ba8484cdd39469e3f9ef1909030 (patch)
tree31aedd69e507d357cc3ffff08c046429c8ab4c08
parente0ff282d189eac8780f4524524b1967055634156 (diff)
downloadbcm5719-llvm-5211715360bf7ba8484cdd39469e3f9ef1909030.tar.gz
bcm5719-llvm-5211715360bf7ba8484cdd39469e3f9ef1909030.zip
ARM: mark branch-like instructions with correct flags.
There's probably no way to test BXJ, but if the compiler ever did emit it during CodeGen it would have to be a block terminator so "isBranch" is appropriate. BLX is more tricky. Clearly a call, but it affects surprisingly little. rdar://18719544 llvm-svn: 236140
-rw-r--r--llvm/lib/Target/ARM/ARMInstrInfo.td2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrInfo.td b/llvm/lib/Target/ARM/ARMInstrInfo.td
index bda6c944ce3..9fb0d72f098 100644
--- a/llvm/lib/Target/ARM/ARMInstrInfo.td
+++ b/llvm/lib/Target/ARM/ARMInstrInfo.td
@@ -2256,6 +2256,7 @@ def BLXi : AXI<(outs), (ins blx_target:$target), BrMiscFrm, NoItinerary,
bits<25> target;
let Inst{23-0} = target{24-1};
let Inst{24} = target{0};
+ let isCall = 1;
}
// Branch and Exchange Jazelle
@@ -2266,6 +2267,7 @@ def BXJ : ABI<0b0001, (outs), (ins GPR:$func), NoItinerary, "bxj", "\t$func",
let Inst{19-8} = 0xfff;
let Inst{7-4} = 0b0010;
let Inst{3-0} = func;
+ let isBranch = 1;
}
// Tail calls.
OpenPOWER on IntegriCloud