PrologEpilogInserter: Rewrite API to determine callee save regsiters.
[oota-llvm.git] / test / CodeGen / ARM / globals.ll
1 ; RUN: llc < %s -mtriple=armv6-apple-darwin -relocation-model=static | FileCheck %s -check-prefix=DarwinStatic
2 ; RUN: llc < %s -mtriple=armv6-apple-darwin -relocation-model=dynamic-no-pic | FileCheck %s -check-prefix=DarwinDynamic
3 ; RUN: llc < %s -mtriple=armv6-apple-darwin -relocation-model=pic | FileCheck %s -check-prefix=DarwinPIC
4 ; RUN: llc < %s -mtriple=armv6-linux-gnueabi -relocation-model=pic | FileCheck %s -check-prefix=LinuxPIC
5
6 @G = external global i32
7
8 define i32 @test1() {
9         %tmp = load i32, i32* @G
10         ret i32 %tmp
11 }
12
13 ; DarwinStatic: _test1:
14 ; DarwinStatic:         ldr r0, LCPI0_0
15 ; DarwinStatic:         ldr r0, [r0]
16 ; DarwinStatic:         bx lr
17
18 ; DarwinStatic:         .align  2
19 ; DarwinStatic: LCPI0_0:
20 ; DarwinStatic:         .long   {{_G$}}
21
22
23 ; DarwinDynamic: _test1:
24 ; DarwinDynamic:        ldr r0, LCPI0_0
25 ; DarwinDynamic:        ldr r0, [r0]
26 ; DarwinDynamic:        ldr r0, [r0]
27 ; DarwinDynamic:        bx lr
28
29 ; DarwinDynamic:        .align  2
30 ; DarwinDynamic:        LCPI0_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, LCPI0_0
43 ; DarwinPIC: LPC0_0:
44 ; DarwinPIC:    ldr r0, [pc, r0]
45 ; DarwinPIC:    ldr r0, [r0]
46 ; DarwinPIC-NOT: ldr
47 ; DarwinPIC:    bx lr
48
49 ; DarwinPIC:    .align  2
50 ; DarwinPIC: LCPI0_0:
51 ; DarwinPIC:    .long   L_G$non_lazy_ptr-(LPC0_0+8)
52
53 ; DarwinPIC:    .section __DATA,__nl_symbol_ptr,non_lazy_symbol_pointers
54 ; DarwinPIC:    .align  2
55 ; DarwinPIC: L_G$non_lazy_ptr:
56 ; DarwinPIC:    .indirect_symbol _G
57 ; DarwinPIC:    .long   0
58
59
60
61 ; LinuxPIC-LABEL: test1:
62 ; LinuxPIC:     ldr r0, .LCPI0_0
63 ; LinuxPIC:     ldr r1, .LCPI0_1
64         
65 ; LinuxPIC: .LPC0_0:
66 ; LinuxPIC:     add r0, pc, r0
67 ; LinuxPIC:     ldr r0, [r1, r0]
68 ; LinuxPIC:     ldr r0, [r0]
69 ; LinuxPIC:     bx lr
70
71 ; LinuxPIC: .align 2
72 ; LinuxPIC: .LCPI0_0:
73 ; LinuxPIC:     .long _GLOBAL_OFFSET_TABLE_-(.LPC0_0+8)
74 ; LinuxPIC: .LCPI0_1:
75 ; LinuxPIC:     .long   G(GOT)