blob: 8ed58bd53fe3dfdcaec7d284b12710491e2e1671 [file] [log] [blame]
Chris Lattner7bf4bc52009-10-19 18:27:56 +00001; RUN: llc < %s -mtriple=arm-apple-darwin -relocation-model=static | FileCheck %s -check-prefix=DarwinStatic
2; RUN: llc < %s -mtriple=arm-apple-darwin -relocation-model=dynamic-no-pic | FileCheck %s -check-prefix=DarwinDynamic
3; RUN: llc < %s -mtriple=arm-apple-darwin -relocation-model=pic | FileCheck %s -check-prefix=DarwinPIC
4; RUN: llc < %s -mtriple=arm-linux-gnueabi -relocation-model=pic | FileCheck %s -check-prefix=LinuxPIC
Evan Cheng02b985c2007-01-19 09:20:23 +00005
Evan Cheng85350722007-05-04 00:29:34 +00006@G = external global i32
Evan Cheng02b985c2007-01-19 09:20:23 +00007
Evan Cheng85350722007-05-04 00:29:34 +00008define i32 @test1() {
9 %tmp = load i32* @G
10 ret i32 %tmp
Evan Cheng02b985c2007-01-19 09:20:23 +000011}
Chris Lattner7bf4bc52009-10-19 18:27:56 +000012
13; DarwinStatic: _test1:
14; DarwinStatic: ldr r0, LCPI1_0
15; DarwinStatic: ldr r0, [r0]
16; DarwinStatic: bx lr
17
18; DarwinStatic: .align 2
19; DarwinStatic: LCPI1_0:
20; DarwinStatic: .long {{_G$}}
21
22
23; DarwinDynamic: _test1:
24; DarwinDynamic: ldr r0, LCPI1_0
25; DarwinDynamic: ldr r0, [r0]
26; DarwinDynamic: ldr r0, [r0]
27; DarwinDynamic: bx lr
28
29; DarwinDynamic: .align 2
30; DarwinDynamic: LCPI1_0:
31; DarwinDynamic: .long L_G$non_lazy_ptr
32
33; DarwinDynamic: .section __DATA,__nl_symbol_ptr,non_lazy_symbol_pointers
34; DarwinDynamic: .align 2
35; DarwinDynamic: L_G$non_lazy_ptr:
36; DarwinDynamic: .indirect_symbol _G
37; DarwinDynamic: .long 0
38
39
40
41; DarwinPIC: _test1:
42; DarwinPIC: ldr r0, LCPI1_0
43; DarwinPIC: LPC0:
44; DarwinPIC: ldr r0, [pc, +r0]
45; DarwinPIC: ldr r0, [r0]
46; DarwinPIC: bx lr
47
48; DarwinPIC: .align 2
49; DarwinPIC: LCPI1_0:
50; DarwinPIC: .long L_G$non_lazy_ptr-(LPC0+8)
51
52; DarwinPIC: .section __DATA,__nl_symbol_ptr,non_lazy_symbol_pointers
53; DarwinPIC: .align 2
54; DarwinPIC: L_G$non_lazy_ptr:
55; DarwinPIC: .indirect_symbol _G
56; DarwinPIC: .long 0
57
58
59
60; LinuxPIC: test1:
61; LinuxPIC: ldr r0, .LCPI1_0
62; LinuxPIC: ldr r1, .LCPI1_1
63
64; LinuxPIC: .LPC0:
65; LinuxPIC: add r0, pc, r0
66; LinuxPIC: ldr r0, [r1, +r0]
67; LinuxPIC: ldr r0, [r0]
68; LinuxPIC: bx lr
69
70; LinuxPIC: .align 2
71; LinuxPIC: .LCPI1_0:
72; LinuxPIC: .long _GLOBAL_OFFSET_TABLE_-(.LPC0+8)
73; LinuxPIC: .align 2
74; LinuxPIC: .LCPI1_1:
75; LinuxPIC: .long G(GOT)