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