xref: /llvm-project/llvm/test/tools/llvm-readobj/ELF/reloc-types-aarch64.test (revision a9ad9e27caba2153b82fb3029694bfadaa5803cb)
1## Test that llvm-readobj/llvm-readelf shows proper relocation type
2## names and values for aarch64 target.
3
4# RUN: yaml2obj %s -o %t-aarch64.o
5# RUN: llvm-readobj -r --expand-relocs %t-aarch64.o | FileCheck %s
6
7# CHECK: Type: R_AARCH64_NONE (0)
8# CHECK: Type: R_AARCH64_ABS64 (257)
9# CHECK: Type: R_AARCH64_ABS32 (258)
10# CHECK: Type: R_AARCH64_ABS16 (259)
11# CHECK: Type: R_AARCH64_PREL64 (260)
12# CHECK: Type: R_AARCH64_PREL32 (261)
13# CHECK: Type: R_AARCH64_PREL16 (262)
14# CHECK: Type: R_AARCH64_MOVW_UABS_G0 (263)
15# CHECK: Type: R_AARCH64_MOVW_UABS_G0_NC (264)
16# CHECK: Type: R_AARCH64_MOVW_UABS_G1 (265)
17# CHECK: Type: R_AARCH64_MOVW_UABS_G1_NC (266)
18# CHECK: Type: R_AARCH64_MOVW_UABS_G2 (267)
19# CHECK: Type: R_AARCH64_MOVW_UABS_G2_NC (268)
20# CHECK: Type: R_AARCH64_MOVW_UABS_G3 (269)
21# CHECK: Type: R_AARCH64_MOVW_SABS_G0 (270)
22# CHECK: Type: R_AARCH64_MOVW_SABS_G1 (271)
23# CHECK: Type: R_AARCH64_MOVW_SABS_G2 (272)
24# CHECK: Type: R_AARCH64_LD_PREL_LO19 (273)
25# CHECK: Type: R_AARCH64_ADR_PREL_LO21 (274)
26# CHECK: Type: R_AARCH64_ADR_PREL_PG_HI21 (275)
27# CHECK: Type: R_AARCH64_ADR_PREL_PG_HI21_NC (276)
28# CHECK: Type: R_AARCH64_ADD_ABS_LO12_NC (277)
29# CHECK: Type: R_AARCH64_LDST8_ABS_LO12_NC (278)
30# CHECK: Type: R_AARCH64_TSTBR14 (279)
31# CHECK: Type: R_AARCH64_CONDBR19 (280)
32# CHECK: Type: R_AARCH64_JUMP26 (282)
33# CHECK: Type: R_AARCH64_CALL26 (283)
34# CHECK: Type: R_AARCH64_LDST16_ABS_LO12_NC (284)
35# CHECK: Type: R_AARCH64_LDST32_ABS_LO12_NC (285)
36# CHECK: Type: R_AARCH64_LDST64_ABS_LO12_NC (286)
37# CHECK: Type: R_AARCH64_MOVW_PREL_G0 (287)
38# CHECK: Type: R_AARCH64_MOVW_PREL_G0_NC (288)
39# CHECK: Type: R_AARCH64_MOVW_PREL_G1 (289)
40# CHECK: Type: R_AARCH64_MOVW_PREL_G1_NC (290)
41# CHECK: Type: R_AARCH64_MOVW_PREL_G2 (291)
42# CHECK: Type: R_AARCH64_MOVW_PREL_G2_NC (292)
43# CHECK: Type: R_AARCH64_MOVW_PREL_G3 (293)
44# CHECK: Type: R_AARCH64_LDST128_ABS_LO12_NC (299)
45# CHECK: Type: R_AARCH64_MOVW_GOTOFF_G0 (300)
46# CHECK: Type: R_AARCH64_MOVW_GOTOFF_G0_NC (301)
47# CHECK: Type: R_AARCH64_MOVW_GOTOFF_G1 (302)
48# CHECK: Type: R_AARCH64_MOVW_GOTOFF_G1_NC (303)
49# CHECK: Type: R_AARCH64_MOVW_GOTOFF_G2 (304)
50# CHECK: Type: R_AARCH64_MOVW_GOTOFF_G2_NC (305)
51# CHECK: Type: R_AARCH64_MOVW_GOTOFF_G3 (306)
52# CHECK: Type: R_AARCH64_GOTREL64 (307)
53# CHECK: Type: R_AARCH64_GOTREL32 (308)
54# CHECK: Type: R_AARCH64_GOT_LD_PREL19 (309)
55# CHECK: Type: R_AARCH64_LD64_GOTOFF_LO15 (310)
56# CHECK: Type: R_AARCH64_ADR_GOT_PAGE (311)
57# CHECK: Type: R_AARCH64_LD64_GOT_LO12_NC (312)
58# CHECK: Type: R_AARCH64_LD64_GOTPAGE_LO15 (313)
59# CHECK: Type: R_AARCH64_PLT32 (314)
60# CHECK: Type: R_AARCH64_TLSGD_ADR_PREL21 (512)
61# CHECK: Type: R_AARCH64_TLSGD_ADR_PAGE21 (513)
62# CHECK: Type: R_AARCH64_TLSGD_ADD_LO12_NC (514)
63# CHECK: Type: R_AARCH64_TLSGD_MOVW_G1 (515)
64# CHECK: Type: R_AARCH64_TLSGD_MOVW_G0_NC (516)
65# CHECK: Type: R_AARCH64_TLSLD_ADR_PREL21 (517)
66# CHECK: Type: R_AARCH64_TLSLD_ADR_PAGE21 (518)
67# CHECK: Type: R_AARCH64_TLSLD_ADD_LO12_NC (519)
68# CHECK: Type: R_AARCH64_TLSLD_MOVW_G1 (520)
69# CHECK: Type: R_AARCH64_TLSLD_MOVW_G0_NC (521)
70# CHECK: Type: R_AARCH64_TLSLD_LD_PREL19 (522)
71# CHECK: Type: R_AARCH64_TLSLD_MOVW_DTPREL_G2 (523)
72# CHECK: Type: R_AARCH64_TLSLD_MOVW_DTPREL_G1 (524)
73# CHECK: Type: R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC (525)
74# CHECK: Type: R_AARCH64_TLSLD_MOVW_DTPREL_G0 (526)
75# CHECK: Type: R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC (527)
76# CHECK: Type: R_AARCH64_TLSLD_ADD_DTPREL_HI12 (528)
77# CHECK: Type: R_AARCH64_TLSLD_ADD_DTPREL_LO12 (529)
78# CHECK: Type: R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC (530)
79# CHECK: Type: R_AARCH64_TLSLD_LDST8_DTPREL_LO12 (531)
80# CHECK: Type: R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC (532)
81# CHECK: Type: R_AARCH64_TLSLD_LDST16_DTPREL_LO12 (533)
82# CHECK: Type: R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC (534)
83# CHECK: Type: R_AARCH64_TLSLD_LDST32_DTPREL_LO12 (535)
84# CHECK: Type: R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC (536)
85# CHECK: Type: R_AARCH64_TLSLD_LDST64_DTPREL_LO12 (537)
86# CHECK: Type: R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC (538)
87# CHECK: Type: R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 (539)
88# CHECK: Type: R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC (540)
89# CHECK: Type: R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 (541)
90# CHECK: Type: R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC (542)
91# CHECK: Type: R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 (543)
92# CHECK: Type: R_AARCH64_TLSLE_MOVW_TPREL_G2 (544)
93# CHECK: Type: R_AARCH64_TLSLE_MOVW_TPREL_G1 (545)
94# CHECK: Type: R_AARCH64_TLSLE_MOVW_TPREL_G1_NC (546)
95# CHECK: Type: R_AARCH64_TLSLE_MOVW_TPREL_G0 (547)
96# CHECK: Type: R_AARCH64_TLSLE_MOVW_TPREL_G0_NC (548)
97# CHECK: Type: R_AARCH64_TLSLE_ADD_TPREL_HI12 (549)
98# CHECK: Type: R_AARCH64_TLSLE_ADD_TPREL_LO12 (550)
99# CHECK: Type: R_AARCH64_TLSLE_ADD_TPREL_LO12_NC (551)
100# CHECK: Type: R_AARCH64_TLSLE_LDST8_TPREL_LO12 (552)
101# CHECK: Type: R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC (553)
102# CHECK: Type: R_AARCH64_TLSLE_LDST16_TPREL_LO12 (554)
103# CHECK: Type: R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC (555)
104# CHECK: Type: R_AARCH64_TLSLE_LDST32_TPREL_LO12 (556)
105# CHECK: Type: R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC (557)
106# CHECK: Type: R_AARCH64_TLSLE_LDST64_TPREL_LO12 (558)
107# CHECK: Type: R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC (559)
108# CHECK: Type: R_AARCH64_TLSDESC_LD_PREL19 (560)
109# CHECK: Type: R_AARCH64_TLSDESC_ADR_PREL21 (561)
110# CHECK: Type: R_AARCH64_TLSDESC_ADR_PAGE21 (562)
111# CHECK: Type: R_AARCH64_TLSDESC_LD64_LO12 (563)
112# CHECK: Type: R_AARCH64_TLSDESC_ADD_LO12 (564)
113# CHECK: Type: R_AARCH64_TLSDESC_OFF_G1 (565)
114# CHECK: Type: R_AARCH64_TLSDESC_OFF_G0_NC (566)
115# CHECK: Type: R_AARCH64_TLSDESC_LDR (567)
116# CHECK: Type: R_AARCH64_TLSDESC_ADD (568)
117# CHECK: Type: R_AARCH64_TLSDESC_CALL (569)
118# CHECK: Type: R_AARCH64_TLSLE_LDST128_TPREL_LO12 (570)
119# CHECK: Type: R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC (571)
120# CHECK: Type: R_AARCH64_TLSLD_LDST128_DTPREL_LO12 (572)
121# CHECK: Type: R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC (573)
122# CHECK: Type: R_AARCH64_AUTH_ABS64 (580)
123# CHECK: Type: R_AARCH64_AUTH_MOVW_GOTOFF_G0 (581)
124# CHECK: Type: R_AARCH64_AUTH_MOVW_GOTOFF_G0_NC (582)
125# CHECK: Type: R_AARCH64_AUTH_MOVW_GOTOFF_G1 (583)
126# CHECK: Type: R_AARCH64_AUTH_MOVW_GOTOFF_G1_NC (584)
127# CHECK: Type: R_AARCH64_AUTH_MOVW_GOTOFF_G2 (585)
128# CHECK: Type: R_AARCH64_AUTH_MOVW_GOTOFF_G2_NC (586)
129# CHECK: Type: R_AARCH64_AUTH_MOVW_GOTOFF_G3 (587)
130# CHECK: Type: R_AARCH64_AUTH_GOT_LD_PREL19 (588)
131# CHECK: Type: R_AARCH64_AUTH_LD64_GOTOFF_LO15 (589)
132# CHECK: Type: R_AARCH64_AUTH_ADR_GOT_PAGE (590)
133# CHECK: Type: R_AARCH64_AUTH_LD64_GOT_LO12_NC (591)
134# CHECK: Type: R_AARCH64_AUTH_LD64_GOTPAGE_LO15 (592)
135# CHECK: Type: R_AARCH64_AUTH_GOT_ADD_LO12_NC (593)
136# CHECK: Type: R_AARCH64_AUTH_GOT_ADR_PREL_LO21 (594)
137# CHECK: Type: R_AARCH64_AUTH_TLSDESC_ADR_PAGE21 (595)
138# CHECK: Type: R_AARCH64_AUTH_TLSDESC_LD64_LO12 (596)
139# CHECK: Type: R_AARCH64_AUTH_TLSDESC_ADD_LO12 (597)
140# CHECK: Type: R_AARCH64_COPY (1024)
141# CHECK: Type: R_AARCH64_GLOB_DAT (1025)
142# CHECK: Type: R_AARCH64_JUMP_SLOT (1026)
143# CHECK: Type: R_AARCH64_RELATIVE (1027)
144# CHECK: Type: R_AARCH64_TLS_DTPMOD64 (1028)
145# CHECK: Type: R_AARCH64_TLS_DTPREL64 (1029)
146# CHECK: Type: R_AARCH64_TLS_TPREL64 (1030)
147# CHECK: Type: R_AARCH64_TLSDESC (1031)
148# CHECK: Type: R_AARCH64_IRELATIVE (1032)
149# CHECK: Type: R_AARCH64_AUTH_RELATIVE (1041)
150# CHECK: Type: R_AARCH64_AUTH_GLOB_DAT (1042)
151# CHECK: Type: R_AARCH64_AUTH_TLSDESC (1043)
152# CHECK: Type: R_AARCH64_AUTH_IRELATIVE (1044)
153
154--- !ELF
155FileHeader:
156  Class:   ELFCLASS64
157  Data:    ELFDATA2LSB
158  Type:    ET_REL
159  Machine: EM_AARCH64
160Sections:
161  - Name: .rela.text
162    Type: SHT_RELA
163    Relocations:
164      - Type: R_AARCH64_NONE
165      - Type: R_AARCH64_ABS64
166      - Type: R_AARCH64_ABS32
167      - Type: R_AARCH64_ABS16
168      - Type: R_AARCH64_PREL64
169      - Type: R_AARCH64_PREL32
170      - Type: R_AARCH64_PREL16
171      - Type: R_AARCH64_MOVW_UABS_G0
172      - Type: R_AARCH64_MOVW_UABS_G0_NC
173      - Type: R_AARCH64_MOVW_UABS_G1
174      - Type: R_AARCH64_MOVW_UABS_G1_NC
175      - Type: R_AARCH64_MOVW_UABS_G2
176      - Type: R_AARCH64_MOVW_UABS_G2_NC
177      - Type: R_AARCH64_MOVW_UABS_G3
178      - Type: R_AARCH64_MOVW_SABS_G0
179      - Type: R_AARCH64_MOVW_SABS_G1
180      - Type: R_AARCH64_MOVW_SABS_G2
181      - Type: R_AARCH64_LD_PREL_LO19
182      - Type: R_AARCH64_ADR_PREL_LO21
183      - Type: R_AARCH64_ADR_PREL_PG_HI21
184      - Type: R_AARCH64_ADR_PREL_PG_HI21_NC
185      - Type: R_AARCH64_ADD_ABS_LO12_NC
186      - Type: R_AARCH64_LDST8_ABS_LO12_NC
187      - Type: R_AARCH64_TSTBR14
188      - Type: R_AARCH64_CONDBR19
189      - Type: R_AARCH64_JUMP26
190      - Type: R_AARCH64_CALL26
191      - Type: R_AARCH64_LDST16_ABS_LO12_NC
192      - Type: R_AARCH64_LDST32_ABS_LO12_NC
193      - Type: R_AARCH64_LDST64_ABS_LO12_NC
194      - Type: R_AARCH64_MOVW_PREL_G0
195      - Type: R_AARCH64_MOVW_PREL_G0_NC
196      - Type: R_AARCH64_MOVW_PREL_G1
197      - Type: R_AARCH64_MOVW_PREL_G1_NC
198      - Type: R_AARCH64_MOVW_PREL_G2
199      - Type: R_AARCH64_MOVW_PREL_G2_NC
200      - Type: R_AARCH64_MOVW_PREL_G3
201      - Type: R_AARCH64_LDST128_ABS_LO12_NC
202      - Type: R_AARCH64_MOVW_GOTOFF_G0
203      - Type: R_AARCH64_MOVW_GOTOFF_G0_NC
204      - Type: R_AARCH64_MOVW_GOTOFF_G1
205      - Type: R_AARCH64_MOVW_GOTOFF_G1_NC
206      - Type: R_AARCH64_MOVW_GOTOFF_G2
207      - Type: R_AARCH64_MOVW_GOTOFF_G2_NC
208      - Type: R_AARCH64_MOVW_GOTOFF_G3
209      - Type: R_AARCH64_GOTREL64
210      - Type: R_AARCH64_GOTREL32
211      - Type: R_AARCH64_GOT_LD_PREL19
212      - Type: R_AARCH64_LD64_GOTOFF_LO15
213      - Type: R_AARCH64_ADR_GOT_PAGE
214      - Type: R_AARCH64_LD64_GOT_LO12_NC
215      - Type: R_AARCH64_LD64_GOTPAGE_LO15
216      - Type: R_AARCH64_PLT32
217      - Type: R_AARCH64_TLSGD_ADR_PREL21
218      - Type: R_AARCH64_TLSGD_ADR_PAGE21
219      - Type: R_AARCH64_TLSGD_ADD_LO12_NC
220      - Type: R_AARCH64_TLSGD_MOVW_G1
221      - Type: R_AARCH64_TLSGD_MOVW_G0_NC
222      - Type: R_AARCH64_TLSLD_ADR_PREL21
223      - Type: R_AARCH64_TLSLD_ADR_PAGE21
224      - Type: R_AARCH64_TLSLD_ADD_LO12_NC
225      - Type: R_AARCH64_TLSLD_MOVW_G1
226      - Type: R_AARCH64_TLSLD_MOVW_G0_NC
227      - Type: R_AARCH64_TLSLD_LD_PREL19
228      - Type: R_AARCH64_TLSLD_MOVW_DTPREL_G2
229      - Type: R_AARCH64_TLSLD_MOVW_DTPREL_G1
230      - Type: R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC
231      - Type: R_AARCH64_TLSLD_MOVW_DTPREL_G0
232      - Type: R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC
233      - Type: R_AARCH64_TLSLD_ADD_DTPREL_HI12
234      - Type: R_AARCH64_TLSLD_ADD_DTPREL_LO12
235      - Type: R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC
236      - Type: R_AARCH64_TLSLD_LDST8_DTPREL_LO12
237      - Type: R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC
238      - Type: R_AARCH64_TLSLD_LDST16_DTPREL_LO12
239      - Type: R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC
240      - Type: R_AARCH64_TLSLD_LDST32_DTPREL_LO12
241      - Type: R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC
242      - Type: R_AARCH64_TLSLD_LDST64_DTPREL_LO12
243      - Type: R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC
244      - Type: R_AARCH64_TLSIE_MOVW_GOTTPREL_G1
245      - Type: R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC
246      - Type: R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21
247      - Type: R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC
248      - Type: R_AARCH64_TLSIE_LD_GOTTPREL_PREL19
249      - Type: R_AARCH64_TLSLE_MOVW_TPREL_G2
250      - Type: R_AARCH64_TLSLE_MOVW_TPREL_G1
251      - Type: R_AARCH64_TLSLE_MOVW_TPREL_G1_NC
252      - Type: R_AARCH64_TLSLE_MOVW_TPREL_G0
253      - Type: R_AARCH64_TLSLE_MOVW_TPREL_G0_NC
254      - Type: R_AARCH64_TLSLE_ADD_TPREL_HI12
255      - Type: R_AARCH64_TLSLE_ADD_TPREL_LO12
256      - Type: R_AARCH64_TLSLE_ADD_TPREL_LO12_NC
257      - Type: R_AARCH64_TLSLE_LDST8_TPREL_LO12
258      - Type: R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC
259      - Type: R_AARCH64_TLSLE_LDST16_TPREL_LO12
260      - Type: R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC
261      - Type: R_AARCH64_TLSLE_LDST32_TPREL_LO12
262      - Type: R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC
263      - Type: R_AARCH64_TLSLE_LDST64_TPREL_LO12
264      - Type: R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC
265      - Type: R_AARCH64_TLSDESC_LD_PREL19
266      - Type: R_AARCH64_TLSDESC_ADR_PREL21
267      - Type: R_AARCH64_TLSDESC_ADR_PAGE21
268      - Type: R_AARCH64_TLSDESC_LD64_LO12
269      - Type: R_AARCH64_TLSDESC_ADD_LO12
270      - Type: R_AARCH64_TLSDESC_OFF_G1
271      - Type: R_AARCH64_TLSDESC_OFF_G0_NC
272      - Type: R_AARCH64_TLSDESC_LDR
273      - Type: R_AARCH64_TLSDESC_ADD
274      - Type: R_AARCH64_TLSDESC_CALL
275      - Type: R_AARCH64_TLSLE_LDST128_TPREL_LO12
276      - Type: R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC
277      - Type: R_AARCH64_TLSLD_LDST128_DTPREL_LO12
278      - Type: R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC
279      - Type: R_AARCH64_AUTH_ABS64
280      - Type: R_AARCH64_AUTH_MOVW_GOTOFF_G0
281      - Type: R_AARCH64_AUTH_MOVW_GOTOFF_G0_NC
282      - Type: R_AARCH64_AUTH_MOVW_GOTOFF_G1
283      - Type: R_AARCH64_AUTH_MOVW_GOTOFF_G1_NC
284      - Type: R_AARCH64_AUTH_MOVW_GOTOFF_G2
285      - Type: R_AARCH64_AUTH_MOVW_GOTOFF_G2_NC
286      - Type: R_AARCH64_AUTH_MOVW_GOTOFF_G3
287      - Type: R_AARCH64_AUTH_GOT_LD_PREL19
288      - Type: R_AARCH64_AUTH_LD64_GOTOFF_LO15
289      - Type: R_AARCH64_AUTH_ADR_GOT_PAGE
290      - Type: R_AARCH64_AUTH_LD64_GOT_LO12_NC
291      - Type: R_AARCH64_AUTH_LD64_GOTPAGE_LO15
292      - Type: R_AARCH64_AUTH_GOT_ADD_LO12_NC
293      - Type: R_AARCH64_AUTH_GOT_ADR_PREL_LO21
294      - Type: R_AARCH64_AUTH_TLSDESC_ADR_PAGE21
295      - Type: R_AARCH64_AUTH_TLSDESC_LD64_LO12
296      - Type: R_AARCH64_AUTH_TLSDESC_ADD_LO12
297      - Type: R_AARCH64_COPY
298      - Type: R_AARCH64_GLOB_DAT
299      - Type: R_AARCH64_JUMP_SLOT
300      - Type: R_AARCH64_RELATIVE
301      - Type: R_AARCH64_TLS_DTPMOD64
302      - Type: R_AARCH64_TLS_DTPREL64
303      - Type: R_AARCH64_TLS_TPREL64
304      - Type: R_AARCH64_TLSDESC
305      - Type: R_AARCH64_IRELATIVE
306      - Type: R_AARCH64_AUTH_RELATIVE
307      - Type: R_AARCH64_AUTH_GLOB_DAT
308      - Type: R_AARCH64_AUTH_TLSDESC
309      - Type: R_AARCH64_AUTH_IRELATIVE
310