diff options
| author | Evan Cheng <evan.cheng@apple.com> | 2007-01-30 01:13:37 +0000 |
|---|---|---|
| committer | Evan Cheng <evan.cheng@apple.com> | 2007-01-30 01:13:37 +0000 |
| commit | 863736b0ad3fd26fc60f8d9ba0ff24cfc92a5624 (patch) | |
| tree | feec2a7c4a064626495fb8064eb0cdc64ee27951 /llvm/lib | |
| parent | 6acab41edecd9035be568553e54672fed13c89af (diff) | |
| download | bcm5719-llvm-863736b0ad3fd26fc60f8d9ba0ff24cfc92a5624.tar.gz bcm5719-llvm-863736b0ad3fd26fc60f8d9ba0ff24cfc92a5624.zip | |
Use BL to implement Thumb far jumps.
llvm-svn: 33649
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMInstrThumb.td | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrThumb.td b/llvm/lib/Target/ARM/ARMInstrThumb.td index c494be47056..b99569d4a00 100644 --- a/llvm/lib/Target/ARM/ARMInstrThumb.td +++ b/llvm/lib/Target/ARM/ARMInstrThumb.td @@ -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)]>; |

