[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / PowerPC / hello-reloc.s
blob66bc9a84f5c204ad3dbe037907145c2b4b4cc60e
1 ; This tests for the basic implementation of PPCMachObjectWriter.cpp,
2 ; which is responsible for writing mach-o relocation entries for (PIC)
3 ; PowerPC objects.
5 ; RUN: llvm-mc -filetype=obj -mcpu=g4 -triple=powerpc-apple-darwin8 %s -o - | llvm-readobj -r --expand-relocs | FileCheck -check-prefix=DARWIN-G4-DUMP %s
7 .machine ppc7400
8 .section __TEXT,__textcoal_nt,coalesced,pure_instructions
9 .section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32
10 .section __TEXT,__text,regular,pure_instructions
11 .globl _main
12 .align 4
13 _main: ; @main
14 ; %bb.0: ; %entry
15 mflr r0
16 stw r31, -4(r1)
17 stw r0, 8(r1)
18 stwu r1, -80(r1)
19 bl L0$pb
20 L0$pb:
21 mr r31, r1
22 li r5, 0
23 mflr 2
24 stw r3, 68(r31)
25 stw r5, 72(r31)
26 stw r4, 64(r31)
27 addis r2, r2, ha16(L_.str-L0$pb)
28 la r3, lo16(L_.str-L0$pb)(r2)
29 bl L_puts$stub
30 li r3, 0
31 addi r1, r1, 80
32 lwz r0, 8(r1)
33 lwz r31, -4(r1)
34 mtlr r0
35 blr
37 .section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32
38 .align 4
39 L_puts$stub:
40 .indirect_symbol _puts
41 mflr r0
42 bcl 20, 31, L_puts$stub$tmp
43 L_puts$stub$tmp:
44 mflr r11
45 addis r11, r11, ha16(L_puts$lazy_ptr-L_puts$stub$tmp)
46 mtlr r0
47 lwzu r12, lo16(L_puts$lazy_ptr-L_puts$stub$tmp)(r11)
48 mtctr r12
49 bctr
50 .section __DATA,__la_symbol_ptr,lazy_symbol_pointers
51 L_puts$lazy_ptr:
52 .indirect_symbol _puts
53 .long dyld_stub_binding_helper
55 .subsections_via_symbols
56 .section __TEXT,__cstring,cstring_literals
57 L_.str: ; @.str
58 .asciz "Hello, world!"
60 ; DARWIN-G4-DUMP:Format: Mach-O 32-bit ppc
61 ; DARWIN-G4-DUMP:Arch: powerpc
62 ; DARWIN-G4-DUMP:AddressSize: 32bit
63 ; DARWIN-G4-DUMP:Relocations [
64 ; DARWIN-G4-DUMP: Section __text {
65 ; DARWIN-G4-DUMP: Relocation {
66 ; DARWIN-G4-DUMP: Offset: 0x34
67 ; DARWIN-G4-DUMP: PCRel: 1
68 ; DARWIN-G4-DUMP: Length: 2
69 ; DARWIN-G4-DUMP: Type: PPC_RELOC_BR24 (3)
70 ; DARWIN-G4-DUMP: Section: __picsymbolstub1
71 ; DARWIN-G4-DUMP: }
72 ; DARWIN-G4-DUMP: Relocation {
73 ; DARWIN-G4-DUMP: Offset: 0x30
74 ; DARWIN-G4-DUMP: PCRel: 0
75 ; DARWIN-G4-DUMP: Length: 2
76 ; DARWIN-G4-DUMP: Type: PPC_RELOC_LO16_SECTDIFF (11)
77 ; DARWIN-G4-DUMP: Value: 0x74
78 ; DARWIN-G4-DUMP: }
79 ; DARWIN-G4-DUMP: Relocation {
80 ; DARWIN-G4-DUMP: Offset: 0x0
81 ; DARWIN-G4-DUMP: PCRel: 0
82 ; DARWIN-G4-DUMP: Length: 2
83 ; DARWIN-G4-DUMP: Type: PPC_RELOC_PAIR (1)
84 ; DARWIN-G4-DUMP: Value: 0x14
85 ; DARWIN-G4-DUMP: }
86 ; DARWIN-G4-DUMP: Relocation {
87 ; DARWIN-G4-DUMP: Offset: 0x2C
88 ; DARWIN-G4-DUMP: PCRel: 0
89 ; DARWIN-G4-DUMP: Length: 2
90 ; DARWIN-G4-DUMP: Type: PPC_RELOC_HA16_SECTDIFF (12)
91 ; DARWIN-G4-DUMP: Value: 0x74
92 ; DARWIN-G4-DUMP: }
93 ; DARWIN-G4-DUMP: Relocation {
94 ; DARWIN-G4-DUMP: Offset: 0x60
95 ; DARWIN-G4-DUMP: PCRel: 0
96 ; DARWIN-G4-DUMP: Length: 2
97 ; DARWIN-G4-DUMP: Type: PPC_RELOC_PAIR (1)
98 ; DARWIN-G4-DUMP: Value: 0x14
99 ; DARWIN-G4-DUMP: }
100 ; DARWIN-G4-DUMP: }
101 ; DARWIN-G4-DUMP: Section __picsymbolstub1 {
102 ; DARWIN-G4-DUMP: Relocation {
103 ; DARWIN-G4-DUMP: Offset: 0x14
104 ; DARWIN-G4-DUMP: PCRel: 0
105 ; DARWIN-G4-DUMP: Length: 2
106 ; DARWIN-G4-DUMP: Type: PPC_RELOC_LO16_SECTDIFF (11)
107 ; DARWIN-G4-DUMP: Value: 0x70
108 ; DARWIN-G4-DUMP: }
109 ; DARWIN-G4-DUMP: Relocation {
110 ; DARWIN-G4-DUMP: Offset: 0x0
111 ; DARWIN-G4-DUMP: PCRel: 0
112 ; DARWIN-G4-DUMP: Length: 2
113 ; DARWIN-G4-DUMP: Type: PPC_RELOC_PAIR (1)
114 ; DARWIN-G4-DUMP: Value: 0x58
115 ; DARWIN-G4-DUMP: }
116 ; DARWIN-G4-DUMP: Relocation {
117 ; DARWIN-G4-DUMP: Offset: 0xC
118 ; DARWIN-G4-DUMP: PCRel: 0
119 ; DARWIN-G4-DUMP: Length: 2
120 ; DARWIN-G4-DUMP: Type: PPC_RELOC_HA16_SECTDIFF (12)
121 ; DARWIN-G4-DUMP: Value: 0x70
122 ; DARWIN-G4-DUMP: }
123 ; DARWIN-G4-DUMP: Relocation {
124 ; DARWIN-G4-DUMP: Offset: 0x18
125 ; DARWIN-G4-DUMP: PCRel: 0
126 ; DARWIN-G4-DUMP: Length: 2
127 ; DARWIN-G4-DUMP: Type: PPC_RELOC_PAIR (1)
128 ; DARWIN-G4-DUMP: Value: 0x58
129 ; DARWIN-G4-DUMP: }
130 ; DARWIN-G4-DUMP: }
131 ; DARWIN-G4-DUMP: Section __la_symbol_ptr {
132 ; DARWIN-G4-DUMP: Relocation {
133 ; DARWIN-G4-DUMP: Offset: 0x0
134 ; DARWIN-G4-DUMP: PCRel: 0
135 ; DARWIN-G4-DUMP: Length: 2
136 ; DARWIN-G4-DUMP: Type: PPC_RELOC_VANILLA (0)
137 ; DARWIN-G4-DUMP: Symbol: dyld_stub_binding_helper
138 ; DARWIN-G4-DUMP: }
139 ; DARWIN-G4-DUMP: }
140 ; DARWIN-G4-DUMP:]