xref: /llvm-project/llvm/test/MC/ELF/cfi-rel-offset.s (revision dfb7518df18ad420984f965ef5ccfb4e126d839b)
1# RUN: llvm-mc -triple x86_64 %s | FileCheck %s --check-prefix=ASM
2# RUN: llvm-mc -filetype=obj -triple x86_64 %s | llvm-readobj -S --sr --sd - | FileCheck %s
3
4# ASM:      .cfi_rel_offset %rbp, 16{{$}}
5# ASM-NEXT: nop
6# ASM:      .cfi_rel_offset %rbp, 0{{$}}
7# ASM-NEXT: .cfi_endproc
8
9f:
10	.cfi_startproc
11        nop
12        .cfi_def_cfa_offset 8
13        nop
14        .cfi_def_cfa_register 6
15        nop
16        .cfi_rel_offset 6,16
17        nop
18        .cfi_def_cfa_offset 16
19        nop
20        .cfi_rel_offset 6,0
21	.cfi_endproc
22
23// CHECK:        Section {
24// CHECK:          Index:
25// CHECK:          Name: .eh_frame
26// CHECK-NEXT:     Type: SHT_X86_64_UNWIND
27// CHECK-NEXT:     Flags [
28// CHECK-NEXT:       SHF_ALLOC
29// CHECK-NEXT:     ]
30// CHECK-NEXT:     Address: 0x0
31// CHECK-NEXT:     Offset: 0x48
32// CHECK-NEXT:     Size: 64
33// CHECK-NEXT:     Link: 0
34// CHECK-NEXT:     Info: 0
35// CHECK-NEXT:     AddressAlignment: 8
36// CHECK-NEXT:     EntrySize: 0
37// CHECK-NEXT:     Relocations [
38// CHECK-NEXT:     ]
39// CHECK-NEXT:     SectionData (
40// CHECK-NEXT:       0000: 14000000 00000000 017A5200 01781001
41// CHECK-NEXT:       0010: 1B0C0708 90010000 24000000 1C000000
42// CHECK-NEXT:       0020: 00000000 05000000 00410E08 410D0641
43// CHECK-NEXT:       0030: 11067F41 0E104186 02000000 00000000
44// CHECK-NEXT:     )
45// CHECK-NEXT:   }
46// CHECK-NEXT:   Section {
47// CHECK-NEXT:     Index:
48// CHECK-NEXT:     Name: .rela.eh_frame
49// CHECK-NEXT:     Type: SHT_RELA
50// CHECK-NEXT:     Flags [
51// CHECK-NEXT:       SHF_INFO_LINK
52// CHECK-NEXT:     ]
53// CHECK-NEXT:     Address: 0x0
54// CHECK-NEXT:     Offset:
55// CHECK-NEXT:     Size: 24
56// CHECK-NEXT:     Link:
57// CHECK-NEXT:     Info:
58// CHECK-NEXT:     AddressAlignment: 8
59// CHECK-NEXT:     EntrySize: 24
60// CHECK-NEXT:     Relocations [
61// CHECK-NEXT:       0x20 R_X86_64_PC32 .text 0x0
62// CHECK-NEXT:     ]
63// CHECK:        }
64