1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00

tBfar is bl, which clobbers LR.

llvm-svn: 78370
This commit is contained in:
Evan Cheng 2009-08-07 05:45:07 +00:00
parent 1738d18060
commit 5af3c8154b
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",[]>;