• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1## Check obj2yaml is able to decode all PPC64 relocations.
2
3# RUN: yaml2obj %s -o %t
4# RUN: obj2yaml %t | FileCheck %s
5
6# CHECK:      --- !ELF
7# CHECK-NEXT: FileHeader:
8# CHECK-NEXT:   Class:   ELFCLASS64
9# CHECK-NEXT:   Data:    ELFDATA2MSB
10# CHECK-NEXT:   Type:    ET_REL
11# CHECK-NEXT:   Machine: EM_PPC64
12# CHECK-NEXT: Sections:
13# CHECK-NEXT:   - Name: .rela.text
14# CHECK-NEXT:     Type: SHT_RELA
15# CHECK-NEXT:     Relocations:
16# CHECK-NEXT:       - Type: R_PPC64_NONE
17# CHECK-NEXT:       - Type: R_PPC64_ADDR32
18# CHECK-NEXT:       - Type: R_PPC64_ADDR24
19# CHECK-NEXT:       - Type: R_PPC64_ADDR16
20# CHECK-NEXT:       - Type: R_PPC64_ADDR16_LO
21# CHECK-NEXT:       - Type: R_PPC64_ADDR16_HI
22# CHECK-NEXT:       - Type: R_PPC64_ADDR16_HA
23# CHECK-NEXT:       - Type: R_PPC64_ADDR14
24# CHECK-NEXT:       - Type: R_PPC64_ADDR14_BRTAKEN
25# CHECK-NEXT:       - Type: R_PPC64_ADDR14_BRNTAKEN
26# CHECK-NEXT:       - Type: R_PPC64_REL24
27# CHECK-NEXT:       - Type: R_PPC64_REL14
28# CHECK-NEXT:       - Type: R_PPC64_REL14_BRTAKEN
29# CHECK-NEXT:       - Type: R_PPC64_REL14_BRNTAKEN
30# CHECK-NEXT:       - Type: R_PPC64_GOT16
31# CHECK-NEXT:       - Type: R_PPC64_GOT16_LO
32# CHECK-NEXT:       - Type: R_PPC64_GOT16_HI
33# CHECK-NEXT:       - Type: R_PPC64_GOT16_HA
34# CHECK-NEXT:       - Type: R_PPC64_GLOB_DAT
35# CHECK-NEXT:       - Type: R_PPC64_JMP_SLOT
36# CHECK-NEXT:       - Type: R_PPC64_RELATIVE
37# CHECK-NEXT:       - Type: R_PPC64_REL32
38# CHECK-NEXT:       - Type: R_PPC64_ADDR64
39# CHECK-NEXT:       - Type: R_PPC64_ADDR16_HIGHER
40# CHECK-NEXT:       - Type: R_PPC64_ADDR16_HIGHERA
41# CHECK-NEXT:       - Type: R_PPC64_ADDR16_HIGHEST
42# CHECK-NEXT:       - Type: R_PPC64_ADDR16_HIGHESTA
43# CHECK-NEXT:       - Type: R_PPC64_REL64
44# CHECK-NEXT:       - Type: R_PPC64_TOC16
45# CHECK-NEXT:       - Type: R_PPC64_TOC16_LO
46# CHECK-NEXT:       - Type: R_PPC64_TOC16_HI
47# CHECK-NEXT:       - Type: R_PPC64_TOC16_HA
48# CHECK-NEXT:       - Type: R_PPC64_TOC
49# CHECK-NEXT:       - Type: R_PPC64_ADDR16_DS
50# CHECK-NEXT:       - Type: R_PPC64_ADDR16_LO_DS
51# CHECK-NEXT:       - Type: R_PPC64_GOT16_DS
52# CHECK-NEXT:       - Type: R_PPC64_GOT16_LO_DS
53# CHECK-NEXT:       - Type: R_PPC64_TOC16_DS
54# CHECK-NEXT:       - Type: R_PPC64_TOC16_LO_DS
55# CHECK-NEXT:       - Type: R_PPC64_TLS
56# CHECK-NEXT:       - Type: R_PPC64_DTPMOD64
57# CHECK-NEXT:       - Type: R_PPC64_TPREL16
58# CHECK-NEXT:       - Type: R_PPC64_TPREL16_LO
59# CHECK-NEXT:       - Type: R_PPC64_TPREL16_HI
60# CHECK-NEXT:       - Type: R_PPC64_TPREL16_HA
61# CHECK-NEXT:       - Type: R_PPC64_TPREL64
62# CHECK-NEXT:       - Type: R_PPC64_DTPREL16
63# CHECK-NEXT:       - Type: R_PPC64_DTPREL16_LO
64# CHECK-NEXT:       - Type: R_PPC64_DTPREL16_HI
65# CHECK-NEXT:       - Type: R_PPC64_DTPREL16_HA
66# CHECK-NEXT:       - Type: R_PPC64_DTPREL64
67# CHECK-NEXT:       - Type: R_PPC64_GOT_TLSGD16
68# CHECK-NEXT:       - Type: R_PPC64_GOT_TLSGD16_LO
69# CHECK-NEXT:       - Type: R_PPC64_GOT_TLSGD16_HI
70# CHECK-NEXT:       - Type: R_PPC64_GOT_TLSGD16_HA
71# CHECK-NEXT:       - Type: R_PPC64_GOT_TLSLD16
72# CHECK-NEXT:       - Type: R_PPC64_GOT_TLSLD16_LO
73# CHECK-NEXT:       - Type: R_PPC64_GOT_TLSLD16_HI
74# CHECK-NEXT:       - Type: R_PPC64_GOT_TLSLD16_HA
75# CHECK-NEXT:       - Type: R_PPC64_GOT_TPREL16_DS
76# CHECK-NEXT:       - Type: R_PPC64_GOT_TPREL16_LO_DS
77# CHECK-NEXT:       - Type: R_PPC64_GOT_TPREL16_HI
78# CHECK-NEXT:       - Type: R_PPC64_GOT_TPREL16_HA
79# CHECK-NEXT:       - Type: R_PPC64_GOT_DTPREL16_DS
80# CHECK-NEXT:       - Type: R_PPC64_GOT_DTPREL16_LO_DS
81# CHECK-NEXT:       - Type: R_PPC64_GOT_DTPREL16_HI
82# CHECK-NEXT:       - Type: R_PPC64_GOT_DTPREL16_HA
83# CHECK-NEXT:       - Type: R_PPC64_TPREL16_DS
84# CHECK-NEXT:       - Type: R_PPC64_TPREL16_LO_DS
85# CHECK-NEXT:       - Type: R_PPC64_TPREL16_HIGHER
86# CHECK-NEXT:       - Type: R_PPC64_TPREL16_HIGHERA
87# CHECK-NEXT:       - Type: R_PPC64_TPREL16_HIGHEST
88# CHECK-NEXT:       - Type: R_PPC64_TPREL16_HIGHESTA
89# CHECK-NEXT:       - Type: R_PPC64_DTPREL16_DS
90# CHECK-NEXT:       - Type: R_PPC64_DTPREL16_LO_DS
91# CHECK-NEXT:       - Type: R_PPC64_DTPREL16_HIGHER
92# CHECK-NEXT:       - Type: R_PPC64_DTPREL16_HIGHERA
93# CHECK-NEXT:       - Type: R_PPC64_DTPREL16_HIGHEST
94# CHECK-NEXT:       - Type: R_PPC64_DTPREL16_HIGHESTA
95# CHECK-NEXT:       - Type: R_PPC64_TLSGD
96# CHECK-NEXT:       - Type: R_PPC64_TLSLD
97# CHECK-NEXT:       - Type: R_PPC64_ADDR16_HIGH
98# CHECK-NEXT:       - Type: R_PPC64_ADDR16_HIGHA
99# CHECK-NEXT:       - Type: R_PPC64_TPREL16_HIGH
100# CHECK-NEXT:       - Type: R_PPC64_TPREL16_HIGHA
101# CHECK-NEXT:       - Type: R_PPC64_DTPREL16_HIGH
102# CHECK-NEXT:       - Type: R_PPC64_DTPREL16_HIGHA
103# CHECK-NEXT:       - Type: R_PPC64_IRELATIVE
104# CHECK-NEXT:       - Type: R_PPC64_REL16
105# CHECK-NEXT:       - Type: R_PPC64_REL16_LO
106# CHECK-NEXT:       - Type: R_PPC64_REL16_HI
107# CHECK-NEXT:       - Type: R_PPC64_REL16_HA
108
109--- !ELF
110FileHeader:
111  Class:   ELFCLASS64
112  Data:    ELFDATA2MSB
113  Type:    ET_REL
114  Machine: EM_PPC64
115Sections:
116  - Name: .rela.text
117    Type: SHT_RELA
118    Relocations:
119      - Type: R_PPC64_NONE
120      - Type: R_PPC64_ADDR32
121      - Type: R_PPC64_ADDR24
122      - Type: R_PPC64_ADDR16
123      - Type: R_PPC64_ADDR16_LO
124      - Type: R_PPC64_ADDR16_HI
125      - Type: R_PPC64_ADDR16_HA
126      - Type: R_PPC64_ADDR14
127      - Type: R_PPC64_ADDR14_BRTAKEN
128      - Type: R_PPC64_ADDR14_BRNTAKEN
129      - Type: R_PPC64_REL24
130      - Type: R_PPC64_REL14
131      - Type: R_PPC64_REL14_BRTAKEN
132      - Type: R_PPC64_REL14_BRNTAKEN
133      - Type: R_PPC64_GOT16
134      - Type: R_PPC64_GOT16_LO
135      - Type: R_PPC64_GOT16_HI
136      - Type: R_PPC64_GOT16_HA
137      - Type: R_PPC64_GLOB_DAT
138      - Type: R_PPC64_JMP_SLOT
139      - Type: R_PPC64_RELATIVE
140      - Type: R_PPC64_REL32
141      - Type: R_PPC64_ADDR64
142      - Type: R_PPC64_ADDR16_HIGHER
143      - Type: R_PPC64_ADDR16_HIGHERA
144      - Type: R_PPC64_ADDR16_HIGHEST
145      - Type: R_PPC64_ADDR16_HIGHESTA
146      - Type: R_PPC64_REL64
147      - Type: R_PPC64_TOC16
148      - Type: R_PPC64_TOC16_LO
149      - Type: R_PPC64_TOC16_HI
150      - Type: R_PPC64_TOC16_HA
151      - Type: R_PPC64_TOC
152      - Type: R_PPC64_ADDR16_DS
153      - Type: R_PPC64_ADDR16_LO_DS
154      - Type: R_PPC64_GOT16_DS
155      - Type: R_PPC64_GOT16_LO_DS
156      - Type: R_PPC64_TOC16_DS
157      - Type: R_PPC64_TOC16_LO_DS
158      - Type: R_PPC64_TLS
159      - Type: R_PPC64_DTPMOD64
160      - Type: R_PPC64_TPREL16
161      - Type: R_PPC64_TPREL16_LO
162      - Type: R_PPC64_TPREL16_HI
163      - Type: R_PPC64_TPREL16_HA
164      - Type: R_PPC64_TPREL64
165      - Type: R_PPC64_DTPREL16
166      - Type: R_PPC64_DTPREL16_LO
167      - Type: R_PPC64_DTPREL16_HI
168      - Type: R_PPC64_DTPREL16_HA
169      - Type: R_PPC64_DTPREL64
170      - Type: R_PPC64_GOT_TLSGD16
171      - Type: R_PPC64_GOT_TLSGD16_LO
172      - Type: R_PPC64_GOT_TLSGD16_HI
173      - Type: R_PPC64_GOT_TLSGD16_HA
174      - Type: R_PPC64_GOT_TLSLD16
175      - Type: R_PPC64_GOT_TLSLD16_LO
176      - Type: R_PPC64_GOT_TLSLD16_HI
177      - Type: R_PPC64_GOT_TLSLD16_HA
178      - Type: R_PPC64_GOT_TPREL16_DS
179      - Type: R_PPC64_GOT_TPREL16_LO_DS
180      - Type: R_PPC64_GOT_TPREL16_HI
181      - Type: R_PPC64_GOT_TPREL16_HA
182      - Type: R_PPC64_GOT_DTPREL16_DS
183      - Type: R_PPC64_GOT_DTPREL16_LO_DS
184      - Type: R_PPC64_GOT_DTPREL16_HI
185      - Type: R_PPC64_GOT_DTPREL16_HA
186      - Type: R_PPC64_TPREL16_DS
187      - Type: R_PPC64_TPREL16_LO_DS
188      - Type: R_PPC64_TPREL16_HIGHER
189      - Type: R_PPC64_TPREL16_HIGHERA
190      - Type: R_PPC64_TPREL16_HIGHEST
191      - Type: R_PPC64_TPREL16_HIGHESTA
192      - Type: R_PPC64_DTPREL16_DS
193      - Type: R_PPC64_DTPREL16_LO_DS
194      - Type: R_PPC64_DTPREL16_HIGHER
195      - Type: R_PPC64_DTPREL16_HIGHERA
196      - Type: R_PPC64_DTPREL16_HIGHEST
197      - Type: R_PPC64_DTPREL16_HIGHESTA
198      - Type: R_PPC64_TLSGD
199      - Type: R_PPC64_TLSLD
200      - Type: R_PPC64_ADDR16_HIGH
201      - Type: R_PPC64_ADDR16_HIGHA
202      - Type: R_PPC64_TPREL16_HIGH
203      - Type: R_PPC64_TPREL16_HIGHA
204      - Type: R_PPC64_DTPREL16_HIGH
205      - Type: R_PPC64_DTPREL16_HIGHA
206      - Type: R_PPC64_IRELATIVE
207      - Type: R_PPC64_REL16
208      - Type: R_PPC64_REL16_LO
209      - Type: R_PPC64_REL16_HI
210      - Type: R_PPC64_REL16_HA
211