tBfar is bl, which clobbers LR.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78370 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng 2009-08-07 05:45:07 +00:00
parent 85019e15eb
commit 53c67c0218
2 changed files with 3 additions and 1 deletions

View File

@ -1221,7 +1221,8 @@ bool
ARMConstantIslands::FixUpUnconditionalBr(MachineFunction &MF, ImmBranch &Br) {
MachineInstr *MI = Br.MI;
MachineBasicBlock *MBB = MI->getParent();
assert(isThumb && !isThumb2 && "Expected a Thumb1 function!");
if (!isThumb1)
llvm_unreachable("FixUpUnconditionalBr is Thumb1 only!");
// Use BL to implement far jump.
Br.MaxDisp = (1 << 21) * 2;

View File

@ -253,6 +253,7 @@ let isBranch = 1, isTerminator = 1 in {
"b $target", [(br bb:$target)]>;
// Far jump
let Defs = [LR] in
def tBfar : TIx2<(outs), (ins brtarget:$target), IIC_Br,
"bl $target\t@ far jump",[]>;