blob: adb4497397437a5a9a3471f215accc7e6de08c64 [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
Evan Chenge7e0d622009-11-06 22:24:13 +000043; DarwinPIC: LPC1_0:
Johnny Chen9e088762010-03-17 17:52:21 +000044; DarwinPIC: ldr r0, [pc, r0]
Chris Lattner7bf4bc52009-10-19 18:27:56 +000045; DarwinPIC: ldr r0, [r0]
46; DarwinPIC: bx lr
47
48; DarwinPIC: .align 2
49; DarwinPIC: LCPI1_0:
Evan Chenge7e0d622009-11-06 22:24:13 +000050; DarwinPIC: .long L_G$non_lazy_ptr-(LPC1_0+8)
Chris Lattner7bf4bc52009-10-19 18:27:56 +000051
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
Evan Chenge7e0d622009-11-06 22:24:13 +000064; LinuxPIC: .LPC1_0:
Chris Lattner7bf4bc52009-10-19 18:27:56 +000065; LinuxPIC: add r0, pc, r0
Johnny Chen9e088762010-03-17 17:52:21 +000066; LinuxPIC: ldr r0, [r1, r0]
Chris Lattner7bf4bc52009-10-19 18:27:56 +000067; LinuxPIC: ldr r0, [r0]
68; LinuxPIC: bx lr
69
Rafael Espindola2e2563b2010-01-26 20:21:43 +000070; LinuxPIC: .align 2
Chris Lattner7bf4bc52009-10-19 18:27:56 +000071; LinuxPIC: .LCPI1_0:
Evan Chenge7e0d622009-11-06 22:24:13 +000072; LinuxPIC: .long _GLOBAL_OFFSET_TABLE_-(.LPC1_0+8)
Rafael Espindola2e2563b2010-01-26 20:21:43 +000073; LinuxPIC: .align 2
Chris Lattner7bf4bc52009-10-19 18:27:56 +000074; LinuxPIC: .LCPI1_1:
75; LinuxPIC: .long G(GOT)