1 // RUN
: llvm-mc
-triple x86_64
%s | FileCheck
%s
--check-prefix
=ASM
2 // RUN
: llvm-mc
-filetype
=obj
-triple x86_64-pc-linux-gnu
%s
-o
- | llvm-readobj
-S
--sr --sd
- | FileCheck
%s
3 // RUN
: not llvm-mc
-triple
=x86_64
-o
- -defsym
=ERR
=1 %s
2>&1 | FileCheck
%s
--check-prefix
=ERR
5 // ASM
: .cfi_lsda 3, bar
7 // ASM
: .cfi_personality 0, foo
8 // ASM-NEXT
: .cfi_lsda 3, bar
18 .cfi_personality 0x00, foo
31 .cfi_personality 0x00, foo
38 .cfi_personality 0x02, foo
44 .cfi_personality 0x03, foo
50 .cfi_personality 0x04, foo
56 .cfi_personality 0x0a, foo
62 .cfi_personality 0x0b, foo
68 .cfi_personality 0x0c, foo
74 .cfi_personality 0x08, foo
80 .cfi_personality 0x10, foo
86 .cfi_personality 0x12, foo
92 .cfi_personality 0x13, foo
98 .cfi_personality 0x14, foo
104 .cfi_personality 0x1a, foo
110 .cfi_personality 0x1b, foo
116 .cfi_personality 0x1c, foo
122 .cfi_personality 0x18, foo
128 .cfi_personality 0x80, foo
134 .cfi_personality 0x82, foo
140 .cfi_personality 0x83, foo
146 .cfi_personality 0x84, foo
152 .cfi_personality 0x8a, foo
158 .cfi_personality 0x8b, foo
164 .cfi_personality 0x8c, foo
170 .cfi_personality 0x88, foo
176 .cfi_personality 0x90, foo
182 .cfi_personality 0x92, foo
188 .cfi_personality 0x93, foo
194 .cfi_personality 0x94, foo
200 .cfi_personality 0x9a, foo
206 .cfi_personality 0x9b, foo
212 .cfi_personality 0x9c, foo
218 .cfi_personality 0x98, foo
223 .cfi_startproc simple
229 // CHECK
: Name
: .eh_frame
230 // CHECK-NEXT
: Type
: SHT_X86_64_UNWIND
231 // CHECK-NEXT
: Flags
[
232 // CHECK-NEXT
: SHF_ALLOC
234 // CHECK-NEXT
: Address
: 0x0
235 // CHECK-NEXT
: Offset
: 0x68
236 // CHECK-NEXT
: Size
: 1776
237 // CHECK-NEXT
: Link
: 0
238 // CHECK-NEXT
: Info
: 0
239 // CHECK-NEXT
: AddressAlignment
: 8
240 // CHECK-NEXT
: EntrySize
: 0
241 // CHECK-NEXT
: Relocations
[
243 // CHECK-NEXT
: SectionData
(
244 // CHECK-NEXT
: 0000: 10000000 00000000 017A5200
01781001 |
.........zR..x..|
245 // CHECK-NEXT
: 0010: 1B000000
10000000 18000000 00000000 |
................|
246 // CHECK-NEXT
: 0020: 01000000 00000000 14000000 00000000 |
................|
247 // CHECK-NEXT
: 0030: 017A4C52
00017810 02031B0C
07089001 |
.zLR..x.........|
248 // CHECK-NEXT
: 0040: 14000000 1C000000
00000000 01000000 |
................|
249 // CHECK-NEXT
: 0050: 04000000 00000000 14000000 34000000 |
............4...|
250 // CHECK-NEXT
: 0060: 00000000 01000000 04000000 00000000 |
................|
251 // CHECK-NEXT
: 0070: 20000000 00000000 017A504C
52000178 |
........zPLR..x|
252 // CHECK-NEXT
: 0080: 100B0000
00000000 00000002 1B0C0708 |
................|
253 // CHECK-NEXT
: 0090: 90010000 10000000 28000000 00000000 |
........(.......|
254 // CHECK-NEXT
: 00A0
: 01000000 02000000 20000000 00000000 |
........ .......|
255 // CHECK-NEXT
: 00B0
: 017A504C
52000178 100B0000
00000000 |
.zPLR..x........|
256 // CHECK-NEXT
: 00C0
: 00000003 1B0C0708
90010000 14000000 |
................|
257 // CHECK-NEXT
: 00D0
: 28000000 00000000 01000000 04000000 |
(...............|
258 // CHECK-NEXT
: 00E0
: 00000000 18000000 00000000 017A5052 |
.............zPR|
259 // CHECK-NEXT
: 00F0: 00017810 04020000 1B0C0708
90010000 |
..x.............|
260 // CHECK-NEXT
: 0100: 10000000 20000000 00000000 01000000 |
.... ...........|
261 // CHECK-NEXT
: 0110: 00000000 18000000 00000000 017A5052 |
.............zPR|
262 // CHECK-NEXT
: 0120: 00017810 06030000 00001B0C
07089001 |
..x.............|
263 // CHECK-NEXT
: 0130: 10000000 20000000 00000000 01000000 |
.... ...........|
264 // CHECK-NEXT
: 0140: 00000000 1C000000
00000000 017A5052 |
.............zPR|
265 // CHECK-NEXT
: 0150: 00017810 0A040000
00000000 00001B0C |
..x.............|
266 // CHECK-NEXT
: 0160: 07089001 10000000 24000000 00000000 |
........$.......|
267 // CHECK-NEXT
: 0170: 01000000 00000000 1C000000
00000000 |
................|
268 // CHECK-NEXT
: 0180: 017A5052
00017810 0A080000
00000000 |
.zPR..x.........|
269 // CHECK-NEXT
: 0190: 00001B0C
07089001 10000000 24000000 |
............$...|
270 // CHECK-NEXT
: 01A0
: 00000000 01000000 00000000 18000000 |
................|
271 // CHECK-NEXT
: 01B0
: 00000000 017A5052
00017810 040A0000 |
.....zPR..x.....|
272 // CHECK-NEXT
: 01C0
: 1B0C0708
90010000 10000000 20000000 |
............ ...|
273 // CHECK-NEXT
: 01D0
: 00000000 01000000 00000000 18000000 |
................|
274 // CHECK-NEXT
: 01E0
: 00000000 017A5052
00017810 060B0000 |
.....zPR..x.....|
275 // CHECK-NEXT
: 01F0: 00001B0C
07089001 10000000 20000000 |
............ ...|
276 // CHECK-NEXT
: 0200: 00000000 01000000 00000000 1C000000 |
................|
277 // CHECK-NEXT
: 0210: 00000000 017A5052
00017810 0A0C0000 |
.....zPR..x.....|
278 // CHECK-NEXT
: 0220: 00000000 00001B0C
07089001 10000000 |
................|
279 // CHECK-NEXT
: 0230: 24000000 00000000 01000000 00000000 |$
...............|
280 // CHECK-NEXT
: 0240: 1C000000
00000000 017A5052
00017810 |
.........zPR..x.|
281 // CHECK-NEXT
: 0250: 0A100000
00000000 00001B0C
07089001 |
................|
282 // CHECK-NEXT
: 0260: 10000000 24000000 00000000 01000000 |
....$...........|
283 // CHECK-NEXT
: 0270: 00000000 18000000 00000000 017A5052 |
.............zPR|
284 // CHECK-NEXT
: 0280: 00017810 04120000 1B0C0708
90010000 |
..x.............|
285 // CHECK-NEXT
: 0290: 10000000 20000000 00000000 01000000 |
.... ...........|
286 // CHECK-NEXT
: 02A0
: 00000000 18000000 00000000 017A5052 |
.............zPR|
287 // CHECK-NEXT
: 02B0
: 00017810 06130000 00001B0C
07089001 |
..x.............|
288 // CHECK-NEXT
: 02C0
: 10000000 20000000 00000000 01000000 |
.... ...........|
289 // CHECK-NEXT
: 02D0
: 00000000 1C000000
00000000 017A5052 |
.............zPR|
290 // CHECK-NEXT
: 02E0
: 00017810 0A140000
00000000 00001B0C |
..x.............|
291 // CHECK-NEXT
: 02F0: 07089001 10000000 24000000 00000000 |
........$.......|
292 // CHECK-NEXT
: 0300: 01000000 00000000 1C000000
00000000 |
................|
293 // CHECK-NEXT
: 0310: 017A5052
00017810 0A180000
00000000 |
.zPR..x.........|
294 // CHECK-NEXT
: 0320: 00001B0C
07089001 10000000 24000000 |
............$...|
295 // CHECK-NEXT
: 0330: 00000000 01000000 00000000 18000000 |
................|
296 // CHECK-NEXT
: 0340: 00000000 017A5052
00017810 041A0000 |
.....zPR..x.....|
297 // CHECK-NEXT
: 0350: 1B0C0708
90010000 10000000 20000000 |
............ ...|
298 // CHECK-NEXT
: 0360: 00000000 01000000 00000000 18000000 |
................|
299 // CHECK-NEXT
: 0370: 00000000 017A5052
00017810 061B0000 |
.....zPR..x.....|
300 // CHECK-NEXT
: 0380: 00001B0C
07089001 10000000 20000000 |
............ ...|
301 // CHECK-NEXT
: 0390: 00000000 01000000 00000000 1C000000 |
................|
302 // CHECK-NEXT
: 03A0
: 00000000 017A5052
00017810 0A1C0000 |
.....zPR..x.....|
303 // CHECK-NEXT
: 03B0
: 00000000 00001B0C
07089001 10000000 |
................|
304 // CHECK-NEXT
: 03C0
: 24000000 00000000 01000000 00000000 |$
...............|
305 // CHECK-NEXT
: 03D0
: 1C000000
00000000 017A5052
00017810 |
.........zPR..x.|
306 // CHECK-NEXT
: 03E0
: 0A800000
00000000 00001B0C
07089001 |
................|
307 // CHECK-NEXT
: 03F0: 10000000 24000000 00000000 01000000 |
....$...........|
308 // CHECK-NEXT
: 0400: 00000000 18000000 00000000 017A5052 |
.............zPR|
309 // CHECK-NEXT
: 0410: 00017810 04820000 1B0C0708
90010000 |
..x.............|
310 // CHECK-NEXT
: 0420: 10000000 20000000 00000000 01000000 |
.... ...........|
311 // CHECK-NEXT
: 0430: 00000000 18000000 00000000 017A5052 |
.............zPR|
312 // CHECK-NEXT
: 0440: 00017810 06830000 00001B0C
07089001 |
..x.............|
313 // CHECK-NEXT
: 0450: 10000000 20000000 00000000 01000000 |
.... ...........|
314 // CHECK-NEXT
: 0460: 00000000 1C000000
00000000 017A5052 |
.............zPR|
315 // CHECK-NEXT
: 0470: 00017810 0A840000
00000000 00001B0C |
..x.............|
316 // CHECK-NEXT
: 0480: 07089001 10000000 24000000 00000000 |
........$.......|
317 // CHECK-NEXT
: 0490: 01000000 00000000 1C000000
00000000 |
................|
318 // CHECK-NEXT
: 04A0
: 017A5052
00017810 0A880000
00000000 |
.zPR..x.........|
319 // CHECK-NEXT
: 04B0
: 00001B0C
07089001 10000000 24000000 |
............$...|
320 // CHECK-NEXT
: 04C0
: 00000000 01000000 00000000 18000000 |
................|
321 // CHECK-NEXT
: 04D0
: 00000000 017A5052
00017810 048A0000 |
.....zPR..x.....|
322 // CHECK-NEXT
: 04E0
: 1B0C0708
90010000 10000000 20000000 |
............ ...|
323 // CHECK-NEXT
: 04F0: 00000000 01000000 00000000 18000000 |
................|
324 // CHECK-NEXT
: 0500: 00000000 017A5052
00017810 068B0000 |
.....zPR..x.....|
325 // CHECK-NEXT
: 0510: 00001B0C
07089001 10000000 20000000 |
............ ...|
326 // CHECK-NEXT
: 0520: 00000000 01000000 00000000 1C000000 |
................|
327 // CHECK-NEXT
: 0530: 00000000 017A5052
00017810 0A8C0000 |
.....zPR..x.....|
328 // CHECK-NEXT
: 0540: 00000000 00001B0C
07089001 10000000 |
................|
329 // CHECK-NEXT
: 0550: 24000000 00000000 01000000 00000000 |$
...............|
330 // CHECK-NEXT
: 0560: 1C000000
00000000 017A5052
00017810 |
.........zPR..x.|
331 // CHECK-NEXT
: 0570: 0A900000
00000000 00001B0C
07089001 |
................|
332 // CHECK-NEXT
: 0580: 10000000 24000000 00000000 01000000 |
....$...........|
333 // CHECK-NEXT
: 0590: 00000000 18000000 00000000 017A5052 |
.............zPR|
334 // CHECK-NEXT
: 05A0
: 00017810 04920000 1B0C0708
90010000 |
..x.............|
335 // CHECK-NEXT
: 05B0
: 10000000 20000000 00000000 01000000 |
.... ...........|
336 // CHECK-NEXT
: 05C0
: 00000000 18000000 00000000 017A5052 |
.............zPR|
337 // CHECK-NEXT
: 05D0
: 00017810 06930000 00001B0C
07089001 |
..x.............|
338 // CHECK-NEXT
: 05E0
: 10000000 20000000 00000000 01000000 |
.... ...........|
339 // CHECK-NEXT
: 05F0: 00000000 1C000000
00000000 017A5052 |
.............zPR|
340 // CHECK-NEXT
: 0600: 00017810 0A940000
00000000 00001B0C |
..x.............|
341 // CHECK-NEXT
: 0610: 07089001 10000000 24000000 00000000 |
........$.......|
342 // CHECK-NEXT
: 0620: 01000000 00000000 1C000000
00000000 |
................|
343 // CHECK-NEXT
: 0630: 017A5052
00017810 0A980000
00000000 |
.zPR..x.........|
344 // CHECK-NEXT
: 0640: 00001B0C
07089001 10000000 24000000 |
............$...|
345 // CHECK-NEXT
: 0650: 00000000 01000000 00000000 18000000 |
................|
346 // CHECK-NEXT
: 0660: 00000000 017A5052
00017810 049A0000 |
.....zPR..x.....|
347 // CHECK-NEXT
: 0670: 1B0C0708
90010000 10000000 20000000 |
............ ...|
348 // CHECK-NEXT
: 0680: 00000000 01000000 00000000 18000000 |
................|
349 // CHECK-NEXT
: 0690: 00000000 017A5052
00017810 069B0000 |
.....zPR..x.....|
350 // CHECK-NEXT
: 06A0
: 00001B0C
07089001 10000000 20000000 |
............ ...|
351 // CHECK-NEXT
: 06B0
: 00000000 01000000 00000000 1C000000 |
................|
352 // CHECK-NEXT
: 06C0
: 00000000 017A5052
00017810 0A9C0000 |
.....zPR..x.....|
353 // CHECK-NEXT
: 06D0
: 00000000 00001B0C
07089001 10000000 |
................|
354 // CHECK-NEXT
: 06E0
: 24000000 00000000 01000000 00000000 |$
...............|
358 // CHECK
: Name
: .rela.eh_frame
359 // CHECK-NEXT
: Type
: SHT_RELA
360 // CHECK-NEXT
: Flags
[
361 // CHECK-NEXT
: SHF_INFO_LINK
363 // CHECK-NEXT
: Address
: 0x0
364 // CHECK-NEXT
: Offset
:
365 // CHECK-NEXT
: Size
: 1752
368 // CHECK-NEXT
: AddressAlignment
: 8
369 // CHECK-NEXT
: EntrySize
: 24
370 // CHECK-NEXT
: Relocations
[
371 // CHECK-NEXT
: 0x1C R_X86_64_PC32
.text 0x23
372 // CHECK-NEXT
: 0x48 R_X86_64_PC32
.text 0x0
373 // CHECK-NEXT
: 0x51 R_X86_64_32 bar
0x0
374 // CHECK-NEXT
: 0x60 R_X86_64_PC32
.text 0x2
375 // CHECK-NEXT
: 0x69 R_X86_64_32 bar
0x0
376 // CHECK-NEXT
: 0x83 R_X86_64_64 foo
0x0
377 // CHECK-NEXT
: 0x9C R_X86_64_PC32
.text 0x3
378 // CHECK-NEXT
: 0xA5 R_X86_64_16 bar
0x0
379 // CHECK-NEXT
: 0xBB R_X86_64_64 foo
0x0
380 // CHECK-NEXT
: 0xD4 R_X86_64_PC32
.text 0x1
381 // CHECK-NEXT
: 0xDD R_X86_64_32 bar
0x0
382 // CHECK-NEXT
: 0xF6 R_X86_64_16 foo
0x0
383 // CHECK-NEXT
: 0x108 R_X86_64_PC32
.text 0x4
384 // CHECK-NEXT
: 0x126 R_X86_64_32 foo
0x0
385 // CHECK-NEXT
: 0x138 R_X86_64_PC32
.text 0x5
386 // CHECK-NEXT
: 0x156 R_X86_64_64 foo
0x0
387 // CHECK-NEXT
: 0x16C R_X86_64_PC32
.text 0x6
388 // CHECK-NEXT
: 0x18A R_X86_64_64 foo
0x0
389 // CHECK-NEXT
: 0x1A0 R_X86_64_PC32
.text 0xA
390 // CHECK-NEXT
: 0x1BE R_X86_64_16 foo
0x0
391 // CHECK-NEXT
: 0x1D0 R_X86_64_PC32
.text 0x7
392 // CHECK-NEXT
: 0x1EE R_X86_64_32 foo
0x0
393 // CHECK-NEXT
: 0x200 R_X86_64_PC32
.text 0x8
394 // CHECK-NEXT
: 0x21E R_X86_64_64 foo
0x0
395 // CHECK-NEXT
: 0x234 R_X86_64_PC32
.text 0x9
396 // CHECK-NEXT
: 0x252 R_X86_64_PC64 foo
0x0
397 // CHECK-NEXT
: 0x268 R_X86_64_PC32
.text 0xB
398 // CHECK-NEXT
: 0x286 R_X86_64_PC16 foo
0x0
399 // CHECK-NEXT
: 0x298 R_X86_64_PC32
.text 0xC
400 // CHECK-NEXT
: 0x2B6 R_X86_64_PC32 foo
0x0
401 // CHECK-NEXT
: 0x2C8 R_X86_64_PC32
.text 0xD
402 // CHECK-NEXT
: 0x2E6 R_X86_64_PC64 foo
0x0
403 // CHECK-NEXT
: 0x2FC R_X86_64_PC32
.text 0xE
404 // CHECK-NEXT
: 0x31A R_X86_64_PC64 foo
0x0
405 // CHECK-NEXT
: 0x330 R_X86_64_PC32
.text 0x12
406 // CHECK-NEXT
: 0x34E R_X86_64_PC16 foo
0x0
407 // CHECK-NEXT
: 0x360 R_X86_64_PC32
.text 0xF
408 // CHECK-NEXT
: 0x37E R_X86_64_PC32 foo
0x0
409 // CHECK-NEXT
: 0x390 R_X86_64_PC32
.text 0x10
410 // CHECK-NEXT
: 0x3AE R_X86_64_PC64 foo
0x0
411 // CHECK-NEXT
: 0x3C4 R_X86_64_PC32
.text 0x11
412 // CHECK-NEXT
: 0x3E2 R_X86_64_64 foo
0x0
413 // CHECK-NEXT
: 0x3F8 R_X86_64_PC32
.text 0x13
414 // CHECK-NEXT
: 0x416 R_X86_64_16 foo
0x0
415 // CHECK-NEXT
: 0x428 R_X86_64_PC32
.text 0x14
416 // CHECK-NEXT
: 0x446 R_X86_64_32 foo
0x0
417 // CHECK-NEXT
: 0x458 R_X86_64_PC32
.text 0x15
418 // CHECK-NEXT
: 0x476 R_X86_64_64 foo
0x0
419 // CHECK-NEXT
: 0x48C R_X86_64_PC32
.text 0x16
420 // CHECK-NEXT
: 0x4AA R_X86_64_64 foo
0x0
421 // CHECK-NEXT
: 0x4C0 R_X86_64_PC32
.text 0x1A
422 // CHECK-NEXT
: 0x4DE R_X86_64_16 foo
0x0
423 // CHECK-NEXT
: 0x4F0 R_X86_64_PC32
.text 0x17
424 // CHECK-NEXT
: 0x50E R_X86_64_32 foo
0x0
425 // CHECK-NEXT
: 0x520 R_X86_64_PC32
.text 0x18
426 // CHECK-NEXT
: 0x53E R_X86_64_64 foo
0x0
427 // CHECK-NEXT
: 0x554 R_X86_64_PC32
.text 0x19
428 // CHECK-NEXT
: 0x572 R_X86_64_PC64 foo
0x0
429 // CHECK-NEXT
: 0x588 R_X86_64_PC32
.text 0x1B
430 // CHECK-NEXT
: 0x5A6 R_X86_64_PC16 foo
0x0
431 // CHECK-NEXT
: 0x5B8 R_X86_64_PC32
.text 0x1C
432 // CHECK-NEXT
: 0x5D6 R_X86_64_PC32 foo
0x0
433 // CHECK-NEXT
: 0x5E8 R_X86_64_PC32
.text 0x1D
434 // CHECK-NEXT
: 0x606 R_X86_64_PC64 foo
0x0
435 // CHECK-NEXT
: 0x61C R_X86_64_PC32
.text 0x1E
436 // CHECK-NEXT
: 0x63A R_X86_64_PC64 foo
0x0
437 // CHECK-NEXT
: 0x650 R_X86_64_PC32
.text 0x22
438 // CHECK-NEXT
: 0x66E R_X86_64_PC16 foo
0x0
439 // CHECK-NEXT
: 0x680 R_X86_64_PC32
.text 0x1F
440 // CHECK-NEXT
: 0x69E R_X86_64_PC32 foo
0x0
441 // CHECK-NEXT
: 0x6B0 R_X86_64_PC32
.text 0x20
442 // CHECK-NEXT
: 0x6CE R_X86_64_PC64 foo
0x0
443 // CHECK-NEXT
: 0x6E4 R_X86_64_PC32
.text 0x21
448 // ERR
: [[#@LINE+1]]:15: error: expected .eh_frame or .debug_frame
450 // ERR
: [[#@LINE+1]]:28: error: expected comma
451 .cfi_sections .debug_frame $
452 // ERR
: [[#@LINE+1]]:39: error: expected comma
453 .cfi_sections .debug_frame, .eh_frame $
455 // ERR
: [[#@LINE+1]]:16: error: unexpected token
457 // ERR
: [[#@LINE+1]]:23: error: expected newline
458 .cfi_startproc simple $
460 // ERR
: [[#@LINE+1]]:14: error: expected newline