llvm/test/CodeGen/ARM/local-call.ll
Tim Northover 8189e3d887 ARM: stop emitting blx instructions for most calls on MachO.
I'm really not sure why we were in the first place, it's the linker's job to
convert between BL/BLX as necessary. Even worse, using BLX left Thumb calls
that could be locally resolved completely unencodable since all offsets to BLX
are multiples of 4.

rdar://26182344

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269101 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-10 19:17:47 +00:00

20 lines
459 B
LLVM

; RUN: llc -mtriple=thumbv7-apple-ios -filetype=obj %s -o %t
; RUN: llvm-objdump -macho -d %t | FileCheck %s
; This function just messes up the offsets enough to make the libcall in
; test_local_call unencodable with a blx.
define void @thing() {
ret void
}
define i64 @__udivdi3(i64 %a, i64 %b) {
ret i64 %b
}
define i64 @test_local_call(i64 %a, i64 %b) {
; CHECK-LABEL: test_local_call:
; CHECK: bl ___udivdi3
%res = udiv i64 %a, %b
ret i64 %res
}