[ThinLTO] Add code comment. NFC
[llvm-complete.git] / test / MC / ELF / cfi.s
blobb11cd8a00b2f0e81247877fb50e730e7ea8a8233
1 // RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -S --sr --sd | FileCheck %s
3 f1:
4 .cfi_startproc
5 .cfi_lsda 0x3, bar
6 nop
7 .cfi_endproc
9 f2:
10 .cfi_startproc
11 .cfi_personality 0x00, foo
12 .cfi_lsda 0x3, bar
13 nop
14 .cfi_endproc
16 f3:
17 .cfi_startproc
18 .cfi_lsda 0x3, bar
19 nop
20 .cfi_endproc
22 f4:
23 .cfi_startproc
24 .cfi_personality 0x00, foo
25 .cfi_lsda 0x2, bar
26 nop
27 .cfi_endproc
29 f5:
30 .cfi_startproc
31 .cfi_personality 0x02, foo
32 nop
33 .cfi_endproc
35 f6:
36 .cfi_startproc
37 .cfi_personality 0x03, foo
38 nop
39 .cfi_endproc
41 f7:
42 .cfi_startproc
43 .cfi_personality 0x04, foo
44 nop
45 .cfi_endproc
47 f8:
48 .cfi_startproc
49 .cfi_personality 0x0a, foo
50 nop
51 .cfi_endproc
53 f9:
54 .cfi_startproc
55 .cfi_personality 0x0b, foo
56 nop
57 .cfi_endproc
59 f10:
60 .cfi_startproc
61 .cfi_personality 0x0c, foo
62 nop
63 .cfi_endproc
65 f11:
66 .cfi_startproc
67 .cfi_personality 0x08, foo
68 nop
69 .cfi_endproc
71 f12:
72 .cfi_startproc
73 .cfi_personality 0x10, foo
74 nop
75 .cfi_endproc
77 f13:
78 .cfi_startproc
79 .cfi_personality 0x12, foo
80 nop
81 .cfi_endproc
83 f14:
84 .cfi_startproc
85 .cfi_personality 0x13, foo
86 nop
87 .cfi_endproc
89 f15:
90 .cfi_startproc
91 .cfi_personality 0x14, foo
92 nop
93 .cfi_endproc
95 f16:
96 .cfi_startproc
97 .cfi_personality 0x1a, foo
98 nop
99 .cfi_endproc
101 f17:
102 .cfi_startproc
103 .cfi_personality 0x1b, foo
105 .cfi_endproc
107 f18:
108 .cfi_startproc
109 .cfi_personality 0x1c, foo
111 .cfi_endproc
113 f19:
114 .cfi_startproc
115 .cfi_personality 0x18, foo
117 .cfi_endproc
119 f20:
120 .cfi_startproc
121 .cfi_personality 0x80, foo
123 .cfi_endproc
125 f21:
126 .cfi_startproc
127 .cfi_personality 0x82, foo
129 .cfi_endproc
131 f22:
132 .cfi_startproc
133 .cfi_personality 0x83, foo
135 .cfi_endproc
137 f23:
138 .cfi_startproc
139 .cfi_personality 0x84, foo
141 .cfi_endproc
143 f24:
144 .cfi_startproc
145 .cfi_personality 0x8a, foo
147 .cfi_endproc
149 f25:
150 .cfi_startproc
151 .cfi_personality 0x8b, foo
153 .cfi_endproc
155 f26:
156 .cfi_startproc
157 .cfi_personality 0x8c, foo
159 .cfi_endproc
161 f27:
162 .cfi_startproc
163 .cfi_personality 0x88, foo
165 .cfi_endproc
167 f28:
168 .cfi_startproc
169 .cfi_personality 0x90, foo
171 .cfi_endproc
173 f29:
174 .cfi_startproc
175 .cfi_personality 0x92, foo
177 .cfi_endproc
179 f30:
180 .cfi_startproc
181 .cfi_personality 0x93, foo
183 .cfi_endproc
185 f31:
186 .cfi_startproc
187 .cfi_personality 0x94, foo
189 .cfi_endproc
191 f32:
192 .cfi_startproc
193 .cfi_personality 0x9a, foo
195 .cfi_endproc
197 f33:
198 .cfi_startproc
199 .cfi_personality 0x9b, foo
201 .cfi_endproc
203 f34:
204 .cfi_startproc
205 .cfi_personality 0x9c, foo
207 .cfi_endproc
209 f36:
210 .cfi_startproc
211 .cfi_personality 0x98, foo
213 .cfi_endproc
215 f37:
216 .cfi_startproc simple
218 .cfi_endproc
220 // CHECK: Section {
221 // CHECK: Index:
222 // CHECK: Name: .eh_frame
223 // CHECK-NEXT: Type: SHT_X86_64_UNWIND
224 // CHECK-NEXT: Flags [
225 // CHECK-NEXT: SHF_ALLOC
226 // CHECK-NEXT: ]
227 // CHECK-NEXT: Address: 0x0
228 // CHECK-NEXT: Offset: 0x68
229 // CHECK-NEXT: Size: 1776
230 // CHECK-NEXT: Link: 0
231 // CHECK-NEXT: Info: 0
232 // CHECK-NEXT: AddressAlignment: 8
233 // CHECK-NEXT: EntrySize: 0
234 // CHECK-NEXT: Relocations [
235 // CHECK-NEXT: ]
236 // CHECK-NEXT: SectionData (
237 // CHECK-NEXT: 0000: 10000000 00000000 017A5200 01781001 |.........zR..x..|
238 // CHECK-NEXT: 0010: 1B000000 10000000 18000000 00000000 |................|
239 // CHECK-NEXT: 0020: 01000000 00000000 14000000 00000000 |................|
240 // CHECK-NEXT: 0030: 017A4C52 00017810 02031B0C 07089001 |.zLR..x.........|
241 // CHECK-NEXT: 0040: 14000000 1C000000 00000000 01000000 |................|
242 // CHECK-NEXT: 0050: 04000000 00000000 14000000 34000000 |............4...|
243 // CHECK-NEXT: 0060: 00000000 01000000 04000000 00000000 |................|
244 // CHECK-NEXT: 0070: 20000000 00000000 017A504C 52000178 | ........zPLR..x|
245 // CHECK-NEXT: 0080: 100B0000 00000000 00000002 1B0C0708 |................|
246 // CHECK-NEXT: 0090: 90010000 10000000 28000000 00000000 |........(.......|
247 // CHECK-NEXT: 00A0: 01000000 02000000 20000000 00000000 |........ .......|
248 // CHECK-NEXT: 00B0: 017A504C 52000178 100B0000 00000000 |.zPLR..x........|
249 // CHECK-NEXT: 00C0: 00000003 1B0C0708 90010000 14000000 |................|
250 // CHECK-NEXT: 00D0: 28000000 00000000 01000000 04000000 |(...............|
251 // CHECK-NEXT: 00E0: 00000000 18000000 00000000 017A5052 |.............zPR|
252 // CHECK-NEXT: 00F0: 00017810 04020000 1B0C0708 90010000 |..x.............|
253 // CHECK-NEXT: 0100: 10000000 20000000 00000000 01000000 |.... ...........|
254 // CHECK-NEXT: 0110: 00000000 18000000 00000000 017A5052 |.............zPR|
255 // CHECK-NEXT: 0120: 00017810 06030000 00001B0C 07089001 |..x.............|
256 // CHECK-NEXT: 0130: 10000000 20000000 00000000 01000000 |.... ...........|
257 // CHECK-NEXT: 0140: 00000000 1C000000 00000000 017A5052 |.............zPR|
258 // CHECK-NEXT: 0150: 00017810 0A040000 00000000 00001B0C |..x.............|
259 // CHECK-NEXT: 0160: 07089001 10000000 24000000 00000000 |........$.......|
260 // CHECK-NEXT: 0170: 01000000 00000000 1C000000 00000000 |................|
261 // CHECK-NEXT: 0180: 017A5052 00017810 0A080000 00000000 |.zPR..x.........|
262 // CHECK-NEXT: 0190: 00001B0C 07089001 10000000 24000000 |............$...|
263 // CHECK-NEXT: 01A0: 00000000 01000000 00000000 18000000 |................|
264 // CHECK-NEXT: 01B0: 00000000 017A5052 00017810 040A0000 |.....zPR..x.....|
265 // CHECK-NEXT: 01C0: 1B0C0708 90010000 10000000 20000000 |............ ...|
266 // CHECK-NEXT: 01D0: 00000000 01000000 00000000 18000000 |................|
267 // CHECK-NEXT: 01E0: 00000000 017A5052 00017810 060B0000 |.....zPR..x.....|
268 // CHECK-NEXT: 01F0: 00001B0C 07089001 10000000 20000000 |............ ...|
269 // CHECK-NEXT: 0200: 00000000 01000000 00000000 1C000000 |................|
270 // CHECK-NEXT: 0210: 00000000 017A5052 00017810 0A0C0000 |.....zPR..x.....|
271 // CHECK-NEXT: 0220: 00000000 00001B0C 07089001 10000000 |................|
272 // CHECK-NEXT: 0230: 24000000 00000000 01000000 00000000 |$...............|
273 // CHECK-NEXT: 0240: 1C000000 00000000 017A5052 00017810 |.........zPR..x.|
274 // CHECK-NEXT: 0250: 0A100000 00000000 00001B0C 07089001 |................|
275 // CHECK-NEXT: 0260: 10000000 24000000 00000000 01000000 |....$...........|
276 // CHECK-NEXT: 0270: 00000000 18000000 00000000 017A5052 |.............zPR|
277 // CHECK-NEXT: 0280: 00017810 04120000 1B0C0708 90010000 |..x.............|
278 // CHECK-NEXT: 0290: 10000000 20000000 00000000 01000000 |.... ...........|
279 // CHECK-NEXT: 02A0: 00000000 18000000 00000000 017A5052 |.............zPR|
280 // CHECK-NEXT: 02B0: 00017810 06130000 00001B0C 07089001 |..x.............|
281 // CHECK-NEXT: 02C0: 10000000 20000000 00000000 01000000 |.... ...........|
282 // CHECK-NEXT: 02D0: 00000000 1C000000 00000000 017A5052 |.............zPR|
283 // CHECK-NEXT: 02E0: 00017810 0A140000 00000000 00001B0C |..x.............|
284 // CHECK-NEXT: 02F0: 07089001 10000000 24000000 00000000 |........$.......|
285 // CHECK-NEXT: 0300: 01000000 00000000 1C000000 00000000 |................|
286 // CHECK-NEXT: 0310: 017A5052 00017810 0A180000 00000000 |.zPR..x.........|
287 // CHECK-NEXT: 0320: 00001B0C 07089001 10000000 24000000 |............$...|
288 // CHECK-NEXT: 0330: 00000000 01000000 00000000 18000000 |................|
289 // CHECK-NEXT: 0340: 00000000 017A5052 00017810 041A0000 |.....zPR..x.....|
290 // CHECK-NEXT: 0350: 1B0C0708 90010000 10000000 20000000 |............ ...|
291 // CHECK-NEXT: 0360: 00000000 01000000 00000000 18000000 |................|
292 // CHECK-NEXT: 0370: 00000000 017A5052 00017810 061B0000 |.....zPR..x.....|
293 // CHECK-NEXT: 0380: 00001B0C 07089001 10000000 20000000 |............ ...|
294 // CHECK-NEXT: 0390: 00000000 01000000 00000000 1C000000 |................|
295 // CHECK-NEXT: 03A0: 00000000 017A5052 00017810 0A1C0000 |.....zPR..x.....|
296 // CHECK-NEXT: 03B0: 00000000 00001B0C 07089001 10000000 |................|
297 // CHECK-NEXT: 03C0: 24000000 00000000 01000000 00000000 |$...............|
298 // CHECK-NEXT: 03D0: 1C000000 00000000 017A5052 00017810 |.........zPR..x.|
299 // CHECK-NEXT: 03E0: 0A800000 00000000 00001B0C 07089001 |................|
300 // CHECK-NEXT: 03F0: 10000000 24000000 00000000 01000000 |....$...........|
301 // CHECK-NEXT: 0400: 00000000 18000000 00000000 017A5052 |.............zPR|
302 // CHECK-NEXT: 0410: 00017810 04820000 1B0C0708 90010000 |..x.............|
303 // CHECK-NEXT: 0420: 10000000 20000000 00000000 01000000 |.... ...........|
304 // CHECK-NEXT: 0430: 00000000 18000000 00000000 017A5052 |.............zPR|
305 // CHECK-NEXT: 0440: 00017810 06830000 00001B0C 07089001 |..x.............|
306 // CHECK-NEXT: 0450: 10000000 20000000 00000000 01000000 |.... ...........|
307 // CHECK-NEXT: 0460: 00000000 1C000000 00000000 017A5052 |.............zPR|
308 // CHECK-NEXT: 0470: 00017810 0A840000 00000000 00001B0C |..x.............|
309 // CHECK-NEXT: 0480: 07089001 10000000 24000000 00000000 |........$.......|
310 // CHECK-NEXT: 0490: 01000000 00000000 1C000000 00000000 |................|
311 // CHECK-NEXT: 04A0: 017A5052 00017810 0A880000 00000000 |.zPR..x.........|
312 // CHECK-NEXT: 04B0: 00001B0C 07089001 10000000 24000000 |............$...|
313 // CHECK-NEXT: 04C0: 00000000 01000000 00000000 18000000 |................|
314 // CHECK-NEXT: 04D0: 00000000 017A5052 00017810 048A0000 |.....zPR..x.....|
315 // CHECK-NEXT: 04E0: 1B0C0708 90010000 10000000 20000000 |............ ...|
316 // CHECK-NEXT: 04F0: 00000000 01000000 00000000 18000000 |................|
317 // CHECK-NEXT: 0500: 00000000 017A5052 00017810 068B0000 |.....zPR..x.....|
318 // CHECK-NEXT: 0510: 00001B0C 07089001 10000000 20000000 |............ ...|
319 // CHECK-NEXT: 0520: 00000000 01000000 00000000 1C000000 |................|
320 // CHECK-NEXT: 0530: 00000000 017A5052 00017810 0A8C0000 |.....zPR..x.....|
321 // CHECK-NEXT: 0540: 00000000 00001B0C 07089001 10000000 |................|
322 // CHECK-NEXT: 0550: 24000000 00000000 01000000 00000000 |$...............|
323 // CHECK-NEXT: 0560: 1C000000 00000000 017A5052 00017810 |.........zPR..x.|
324 // CHECK-NEXT: 0570: 0A900000 00000000 00001B0C 07089001 |................|
325 // CHECK-NEXT: 0580: 10000000 24000000 00000000 01000000 |....$...........|
326 // CHECK-NEXT: 0590: 00000000 18000000 00000000 017A5052 |.............zPR|
327 // CHECK-NEXT: 05A0: 00017810 04920000 1B0C0708 90010000 |..x.............|
328 // CHECK-NEXT: 05B0: 10000000 20000000 00000000 01000000 |.... ...........|
329 // CHECK-NEXT: 05C0: 00000000 18000000 00000000 017A5052 |.............zPR|
330 // CHECK-NEXT: 05D0: 00017810 06930000 00001B0C 07089001 |..x.............|
331 // CHECK-NEXT: 05E0: 10000000 20000000 00000000 01000000 |.... ...........|
332 // CHECK-NEXT: 05F0: 00000000 1C000000 00000000 017A5052 |.............zPR|
333 // CHECK-NEXT: 0600: 00017810 0A940000 00000000 00001B0C |..x.............|
334 // CHECK-NEXT: 0610: 07089001 10000000 24000000 00000000 |........$.......|
335 // CHECK-NEXT: 0620: 01000000 00000000 1C000000 00000000 |................|
336 // CHECK-NEXT: 0630: 017A5052 00017810 0A980000 00000000 |.zPR..x.........|
337 // CHECK-NEXT: 0640: 00001B0C 07089001 10000000 24000000 |............$...|
338 // CHECK-NEXT: 0650: 00000000 01000000 00000000 18000000 |................|
339 // CHECK-NEXT: 0660: 00000000 017A5052 00017810 049A0000 |.....zPR..x.....|
340 // CHECK-NEXT: 0670: 1B0C0708 90010000 10000000 20000000 |............ ...|
341 // CHECK-NEXT: 0680: 00000000 01000000 00000000 18000000 |................|
342 // CHECK-NEXT: 0690: 00000000 017A5052 00017810 069B0000 |.....zPR..x.....|
343 // CHECK-NEXT: 06A0: 00001B0C 07089001 10000000 20000000 |............ ...|
344 // CHECK-NEXT: 06B0: 00000000 01000000 00000000 1C000000 |................|
345 // CHECK-NEXT: 06C0: 00000000 017A5052 00017810 0A9C0000 |.....zPR..x.....|
346 // CHECK-NEXT: 06D0: 00000000 00001B0C 07089001 10000000 |................|
347 // CHECK-NEXT: 06E0: 24000000 00000000 01000000 00000000 |$...............|
349 // CHECK: Section {
350 // CHECK: Index:
351 // CHECK: Name: .rela.eh_frame
352 // CHECK-NEXT: Type: SHT_RELA
353 // CHECK-NEXT: Flags [
354 // CHECK-NEXT: ]
355 // CHECK-NEXT: Address: 0x0
356 // CHECK-NEXT: Offset:
357 // CHECK-NEXT: Size: 1752
358 // CHECK-NEXT: Link:
359 // CHECK-NEXT: Info:
360 // CHECK-NEXT: AddressAlignment: 8
361 // CHECK-NEXT: EntrySize: 24
362 // CHECK-NEXT: Relocations [
363 // CHECK-NEXT: 0x1C R_X86_64_PC32 .text 0x23
364 // CHECK-NEXT: 0x48 R_X86_64_PC32 .text 0x0
365 // CHECK-NEXT: 0x51 R_X86_64_32 bar 0x0
366 // CHECK-NEXT: 0x60 R_X86_64_PC32 .text 0x2
367 // CHECK-NEXT: 0x69 R_X86_64_32 bar 0x0
368 // CHECK-NEXT: 0x83 R_X86_64_64 foo 0x0
369 // CHECK-NEXT: 0x9C R_X86_64_PC32 .text 0x3
370 // CHECK-NEXT: 0xA5 R_X86_64_16 bar 0x0
371 // CHECK-NEXT: 0xBB R_X86_64_64 foo 0x0
372 // CHECK-NEXT: 0xD4 R_X86_64_PC32 .text 0x1
373 // CHECK-NEXT: 0xDD R_X86_64_32 bar 0x0
374 // CHECK-NEXT: 0xF6 R_X86_64_16 foo 0x0
375 // CHECK-NEXT: 0x108 R_X86_64_PC32 .text 0x4
376 // CHECK-NEXT: 0x126 R_X86_64_32 foo 0x0
377 // CHECK-NEXT: 0x138 R_X86_64_PC32 .text 0x5
378 // CHECK-NEXT: 0x156 R_X86_64_64 foo 0x0
379 // CHECK-NEXT: 0x16C R_X86_64_PC32 .text 0x6
380 // CHECK-NEXT: 0x18A R_X86_64_64 foo 0x0
381 // CHECK-NEXT: 0x1A0 R_X86_64_PC32 .text 0xA
382 // CHECK-NEXT: 0x1BE R_X86_64_16 foo 0x0
383 // CHECK-NEXT: 0x1D0 R_X86_64_PC32 .text 0x7
384 // CHECK-NEXT: 0x1EE R_X86_64_32 foo 0x0
385 // CHECK-NEXT: 0x200 R_X86_64_PC32 .text 0x8
386 // CHECK-NEXT: 0x21E R_X86_64_64 foo 0x0
387 // CHECK-NEXT: 0x234 R_X86_64_PC32 .text 0x9
388 // CHECK-NEXT: 0x252 R_X86_64_PC64 foo 0x0
389 // CHECK-NEXT: 0x268 R_X86_64_PC32 .text 0xB
390 // CHECK-NEXT: 0x286 R_X86_64_PC16 foo 0x0
391 // CHECK-NEXT: 0x298 R_X86_64_PC32 .text 0xC
392 // CHECK-NEXT: 0x2B6 R_X86_64_PC32 foo 0x0
393 // CHECK-NEXT: 0x2C8 R_X86_64_PC32 .text 0xD
394 // CHECK-NEXT: 0x2E6 R_X86_64_PC64 foo 0x0
395 // CHECK-NEXT: 0x2FC R_X86_64_PC32 .text 0xE
396 // CHECK-NEXT: 0x31A R_X86_64_PC64 foo 0x0
397 // CHECK-NEXT: 0x330 R_X86_64_PC32 .text 0x12
398 // CHECK-NEXT: 0x34E R_X86_64_PC16 foo 0x0
399 // CHECK-NEXT: 0x360 R_X86_64_PC32 .text 0xF
400 // CHECK-NEXT: 0x37E R_X86_64_PC32 foo 0x0
401 // CHECK-NEXT: 0x390 R_X86_64_PC32 .text 0x10
402 // CHECK-NEXT: 0x3AE R_X86_64_PC64 foo 0x0
403 // CHECK-NEXT: 0x3C4 R_X86_64_PC32 .text 0x11
404 // CHECK-NEXT: 0x3E2 R_X86_64_64 foo 0x0
405 // CHECK-NEXT: 0x3F8 R_X86_64_PC32 .text 0x13
406 // CHECK-NEXT: 0x416 R_X86_64_16 foo 0x0
407 // CHECK-NEXT: 0x428 R_X86_64_PC32 .text 0x14
408 // CHECK-NEXT: 0x446 R_X86_64_32 foo 0x0
409 // CHECK-NEXT: 0x458 R_X86_64_PC32 .text 0x15
410 // CHECK-NEXT: 0x476 R_X86_64_64 foo 0x0
411 // CHECK-NEXT: 0x48C R_X86_64_PC32 .text 0x16
412 // CHECK-NEXT: 0x4AA R_X86_64_64 foo 0x0
413 // CHECK-NEXT: 0x4C0 R_X86_64_PC32 .text 0x1A
414 // CHECK-NEXT: 0x4DE R_X86_64_16 foo 0x0
415 // CHECK-NEXT: 0x4F0 R_X86_64_PC32 .text 0x17
416 // CHECK-NEXT: 0x50E R_X86_64_32 foo 0x0
417 // CHECK-NEXT: 0x520 R_X86_64_PC32 .text 0x18
418 // CHECK-NEXT: 0x53E R_X86_64_64 foo 0x0
419 // CHECK-NEXT: 0x554 R_X86_64_PC32 .text 0x19
420 // CHECK-NEXT: 0x572 R_X86_64_PC64 foo 0x0
421 // CHECK-NEXT: 0x588 R_X86_64_PC32 .text 0x1B
422 // CHECK-NEXT: 0x5A6 R_X86_64_PC16 foo 0x0
423 // CHECK-NEXT: 0x5B8 R_X86_64_PC32 .text 0x1C
424 // CHECK-NEXT: 0x5D6 R_X86_64_PC32 foo 0x0
425 // CHECK-NEXT: 0x5E8 R_X86_64_PC32 .text 0x1D
426 // CHECK-NEXT: 0x606 R_X86_64_PC64 foo 0x0
427 // CHECK-NEXT: 0x61C R_X86_64_PC32 .text 0x1E
428 // CHECK-NEXT: 0x63A R_X86_64_PC64 foo 0x0
429 // CHECK-NEXT: 0x650 R_X86_64_PC32 .text 0x22
430 // CHECK-NEXT: 0x66E R_X86_64_PC16 foo 0x0
431 // CHECK-NEXT: 0x680 R_X86_64_PC32 .text 0x1F
432 // CHECK-NEXT: 0x69E R_X86_64_PC32 foo 0x0
433 // CHECK-NEXT: 0x6B0 R_X86_64_PC32 .text 0x20
434 // CHECK-NEXT: 0x6CE R_X86_64_PC64 foo 0x0
435 // CHECK-NEXT: 0x6E4 R_X86_64_PC32 .text 0x21
436 // CHECK-NEXT: ]
437 // CHECK: }