Use BL to implement Thumb far jumps.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33649 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng 2007-01-30 01:13:37 +00:00
parent f6310ab771
commit 225dfe973b

View File

@ -195,6 +195,9 @@ let isCall = 1, noResults = 1,
let isBranch = 1, isTerminator = 1, isBarrier = 1 in {
def tB : TI<(ops brtarget:$dst), "b $dst", [(br bb:$dst)]>;
// Far jump
def tBfar : TIx2<(ops brtarget:$dst), "bl $dst\t@ far jump", []>;
def tBR_JTr : TJTI<(ops GPR:$dst, jtblock_operand:$jt, i32imm:$id),
"cpy pc, $dst \n\t.align\t2\n$jt",
[(ARMbrjt GPR:$dst, tjumptable:$jt, imm:$id)]>;