llvm-6502/test/CodeGen/ARM/2010-11-30-reloc-movt.ll
Evan Cheng 5de5d4b6d0 Materialize GA addresses with movw + movt pairs for Darwin in PIC mode. e.g.
movw    r0, :lower16:(L_foo$non_lazy_ptr-(LPC0_0+4))
        movt    r0, :upper16:(L_foo$non_lazy_ptr-(LPC0_0+4))
LPC0_0:
        add     r0, pc, r0

It's not yet enabled by default as some tests are failing. I suspect bugs in
down stream tools.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123619 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-17 08:03:18 +00:00

43 lines
1.2 KiB
LLVM

; RUN: llc %s -mtriple=armv7-linux-gnueabi -filetype=obj -o - | \
; RUN: elf-dump --dump-section-data | FileCheck -check-prefix=OBJ %s
target triple = "armv7-none-linux-gnueabi"
@a = external global i8
define arm_aapcs_vfpcc i32 @barf() nounwind {
entry:
%0 = tail call arm_aapcs_vfpcc i32 @foo(i8* @a) nounwind
ret i32 %0
; OBJ: '.text'
; OBJ-NEXT: 'sh_type'
; OBJ-NEXT: 'sh_flags'
; OBJ-NEXT: 'sh_addr'
; OBJ-NEXT: 'sh_offset'
; OBJ-NEXT: 'sh_size'
; OBJ-NEXT: 'sh_link'
; OBJ-NEXT: 'sh_info'
; OBJ-NEXT: 'sh_addralign'
; OBJ-NEXT: 'sh_entsize'
; OBJ-NEXT: '_section_data', '00482de9 000000e3 000040e3 feffffeb 0088bde8'
; OBJ: Relocation 0x00000000
; OBJ-NEXT: 'r_offset', 0x00000004
; OBJ-NEXT: 'r_sym', 0x00000007
; OBJ-NEXT: 'r_type', 0x0000002b
; OBJ: Relocation 0x00000001
; OBJ-NEXT: 'r_offset', 0x00000008
; OBJ-NEXT: 'r_sym'
; OBJ-NEXT: 'r_type', 0x0000002c
; OBJ: # Relocation 0x00000002
; OBJ-NEXT: 'r_offset', 0x0000000c
; OBJ-NEXT: 'r_sym', 0x00000008
; OBJ-NEXT: 'r_type', 0x0000001c
}
declare arm_aapcs_vfpcc i32 @foo(i8*)