COFF/PE, so the relocation model is never static. Loosen the assertion accordingly. The relocation can still be emitted properly, as it will be converted to an IMAGE_REL_ARM_ADDR32 which will be resolved by the loader taking the base relocation into account. This is necessary to permit the emission of long calls which can be controlled via the -mlong-calls option in the driver. llvm-svn: 210399
19 lines
393 B
LLVM
19 lines
393 B
LLVM
; RUN: llc -mtriple=thumbv7-windows -mcpu=cortex-a9 -arm-long-calls -o - %s \
|
|
; RUN: | FileCheck %s
|
|
|
|
declare arm_aapcs_vfpcc void @callee()
|
|
|
|
define arm_aapcs_vfpcc void @caller() nounwind {
|
|
entry:
|
|
tail call void @callee()
|
|
ret void
|
|
}
|
|
|
|
; CHECK-LABEL: caller
|
|
; CHECK: ldr [[REG:r[0-9]+]], [[CPI:.LCPI[_0-9]+]]
|
|
; CHECK: bx [[REG]]
|
|
; CHECK: .align 2
|
|
; CHECK: [[CPI]]:
|
|
; CHECK: .long callee
|
|
|