[libc] Deprecate LLVM_ENABLE_PROJECTS in favor of LLVM_ENABLE_RUNTIMES. (#117265)
[llvm-project.git] / llvm / test / tools / llvm-objdump / X86 / elf-bbaddrmap-disassemble-symbolize-operands.yaml
blobcc7faea67bed2371d9301505b47ca5a9744810cd
1 ## Test that in the presence of SHT_LLVM_BB_ADDR_MAP sections,
2 ## --symbolize-operands can display <BB*> labels.
4 ## Executable object file with separate SHT_LLVM_BB_ADDR_MAP sections for multiple text sections.
5 ## RUN: yaml2obj --docnum=1 %s -o %t1
6 ## RUN: llvm-objdump %t1 -d --symbolize-operands -M intel --no-show-raw-insn --no-leading-addr | \
7 ## RUN:   FileCheck %s --match-full-lines --check-prefixes=INTEL
8 ## RUN: llvm-objdump %t1 -d --symbolize-operands -M att --no-show-raw-insn --no-leading-addr | \
9 ## RUN:   FileCheck %s --match-full-lines --check-prefixes=ATT
11 ## Executable object file with a single SHT_LLVM_BB_ADDR_MAP for multiple text sections.
12 # RUN: yaml2obj --docnum=2 %s -o %t2
13 # RUN: llvm-objdump %t2 -d --symbolize-operands -M intel --no-show-raw-insn --no-leading-addr | \
14 # RUN:   FileCheck %s --match-full-lines --check-prefixes=INTEL
15 # RUN: llvm-objdump %t2 -d --symbolize-operands -M att --no-show-raw-insn --no-leading-addr | \
16 # RUN:   FileCheck %s --match-full-lines --check-prefixes=ATT
18 ## Expect to find the branch and basic block labels and global variable name.
19 # ATT:      <foo>:
20 # ATT-NEXT: <BB3>:
21 # ATT-NEXT:   pushq %rax
22 # ATT-NEXT: <BB1>:
23 # ATT-NEXT:   cmpl  , %eax <symbol>
24 # ATT-NEXT:   nop
25 # ATT-NEXT: <BB2>:
26 # ATT-NEXT:   jge    <BB5>
27 # ATT-NEXT:   jmp    <BB1>
28 # ATT-NEXT: <BB4>:
29 # ATT-NEXT:   jge   <foo.cold>
30 # ATT-NEXT: <BB5>:
31 # ATT-NEXT:   retq
32 # ATT:      <bar>:
33 # ATT-NEXT: <BB0>:
34 # ATT-NEXT:   pushq  %rax
35 # ATT-NEXT:   movl   %edx, %eax
36 # ATT-NEXT:   je     <BB2>
37 # ATT-NEXT: <BB1>:
38 # ATT-NEXT:   xorl   %esi, %esi
39 # ATT-NEXT: <BB2>:
40 # ATT-NEXT:   callq  <bar>
41 # ATT-NEXT:   retq
42 # ATT:      <foo.cold>:
43 # ATT-NEXT: <BB6>:
44 # ATT-NEXT:   retq
46 # INTEL:      <foo>:
47 # INTEL-NEXT: <BB3>:
48 # INTEL-NEXT:   push rax
49 # INTEL-NEXT: <BB1>:
50 # INTEL-NEXT:   cmp  eax, dword ptr <symbol>
51 # INTEL-NEXT:   nop
52 # INTEL-NEXT: <BB2>:
53 # INTEL-NEXT:   jge   <BB5>
54 # INTEL-NEXT:   jmp   <BB1>
55 # INTEL-NEXT: <BB4>:
56 # INTEL-NEXT:   jge   <foo.cold>
57 # INTEL-NEXT: <BB5>:
58 # INTEL-NEXT:   ret
59 # INTEL:      <bar>:
60 # INTEL-NEXT: <BB0>:
61 # INTEL-NEXT:   push  rax
62 # INTEL-NEXT:   mov   eax, edx
63 # INTEL-NEXT:   je    <BB2>
64 # INTEL-NEXT: <BB1>:
65 # INTEL-NEXT:   xor   esi, esi
66 # INTEL-NEXT: <BB2>:
67 # INTEL-NEXT:   call  <bar>
68 # INTEL-NEXT:   ret
69 # INTEL:      <foo.cold>:
70 # INTEL-NEXT: <BB6>:
71 # INTEL-NEXT:   ret
73 ## This object file contains a separate text section and SHT_LLVM_BB_ADDR_MAP
74 ## section for each of the two functions foo and bar.
75 ## This is used to test --symbolize-operands on reloctable and non-relocotable
76 ## object files.
77 --- !ELF
78 FileHeader:
79   Class:   ELFCLASS64
80   Data:    ELFDATA2LSB
81   Type:    ET_EXEC
82   Machine: EM_X86_64
83 Sections:
84   - Name:    .text.foo
85     Type:    SHT_PROGBITS
86     Address: 0x4000
87     Flags:   [SHF_ALLOC, SHF_EXECINSTR]
88     Content: '503b0505300000907d08ebf50f8dee1f0000c3'
89   - Name:    .text.bar
90     Type:    SHT_PROGBITS
91     Address: 0x5000
92     Flags:   [SHF_ALLOC, SHF_EXECINSTR]
93     Content: '5089d0740231f6e8f4ffffffc3'
94   - Name:    .text.split
95     Type:    SHT_PROGBITS
96     Address: 0x6000
97     Flags:   [SHF_ALLOC, SHF_EXECINSTR]
98     Content: 'c3'
99   - Name:    .data
100     Type:    SHT_PROGBITS
101     Flags:   [SHF_ALLOC, SHF_WRITE]
102     Address: 0x7000
103   - Name:   .llvm_bb_addr_map.foo
104     Type:   SHT_LLVM_BB_ADDR_MAP
105     Link:   .text.foo
106     Entries:
107       - Version: 2
108         Feature: 0x8
109         BBRanges:
110           - BaseAddress: 0x4000
111             BBEntries:
112              - ID:            3
113                AddressOffset: 0x0
114                Size:          0x1
115                Metadata:      0x1
116              - ID:            1
117                AddressOffset: 0x0
118                Size:          0x6
119                Metadata:      0x0
120              - ID:            2
121                AddressOffset: 0x1
122                Size:          0x4
123                Metadata:      0x0
124              - ID:            4
125                AddressOffset: 0x0
126                Size:          0x6
127                Metadata:      0x1
128              - ID:            5
129                AddressOffset: 0x0
130                Size:          0x1
131                Metadata:      0x2
132           - BaseAddress: 0x6000
133             BBEntries:
134              - ID:            6
135                AddressOffset: 0x0
136                Size:          0x1
137                Metadata:      0x2
138   - Name:   .llvm_bb_addr_map.bar
139     Type:   SHT_LLVM_BB_ADDR_MAP
140     Link:   .text.bar
141     Entries:
142       - Version: 1
143         BBRanges:
144          - BaseAddress: 0x5000
145            BBEntries:
146             - AddressOffset: 0x0
147               Size:          0x1
148               Metadata:      0x1
149             - AddressOffset: 0x4
150               Size:          0x2
151               Metadata:      0x0
152             - AddressOffset: 0x0
153               Size:          0x6
154               Metadata:      0x0
156 Symbols:
157   - Name:    foo
158     Section: .text.foo
159     Value:   0x4000
160   - Name:    foo.cold
161     Section: .text.split
162     Value:   0x6000
163   - Name:    bar
164     Section: .text.bar
165     Value:   0x5000
166   - Name:    symbol
167     Section: .data
168     Value:   0x700c
170 ## This object file contains a single SHT_LLVM_BB_ADDR_MAP for two text
171 ## sections .text.foo and .text.bar.
172 --- !ELF
173 FileHeader:
174   Class:   ELFCLASS64
175   Data:    ELFDATA2LSB
176   Type:    ET_EXEC
177   Machine: EM_X86_64
178 Sections:
179   - Name:    .text.foo
180     Type:    SHT_PROGBITS
181     Address: 0x4000
182     Flags:   [SHF_ALLOC, SHF_EXECINSTR]
183     Content: '503b0505300000907d08ebf50f8dee1f0000c3'
184   - Name:    .text.bar
185     Type:    SHT_PROGBITS
186     Address: 0x5000
187     Flags:   [SHF_ALLOC, SHF_EXECINSTR]
188     Content: '5089d0740231f6e8f4ffffffc3'
189   - Name:    .text.split
190     Type:    SHT_PROGBITS
191     Address: 0x6000
192     Flags:   [SHF_ALLOC, SHF_EXECINSTR]
193     Content: 'c3'
194   - Name:    .data
195     Type:    SHT_PROGBITS
196     Flags:   [SHF_ALLOC, SHF_WRITE]
197     Address: 0x7000
198   - Name:   .llvm_bb_addr_map.foo
199     Type:   SHT_LLVM_BB_ADDR_MAP
200     Link:   .text.foo
201     Entries:
202       - Version: 2
203         Feature: 0x8
204         BBRanges:
205           - BaseAddress: 0x4000
206             BBEntries:
207              - ID:            3
208                AddressOffset: 0x0
209                Size:          0x1
210                Metadata:      0x1
211              - ID:            1
212                AddressOffset: 0x0
213                Size:          0x6
214                Metadata:      0x0
215              - ID:            2
216                AddressOffset: 0x1
217                Size:          0x4
218                Metadata:      0x0
219              - ID:            4
220                AddressOffset: 0x0
221                Size:          0x6
222                Metadata:      0x1
223              - ID:            5
224                AddressOffset: 0x0
225                Size:          0x1
226                Metadata:      0x2
227           - BaseAddress: 0x6000
228             BBEntries:
229              - ID:            6
230                AddressOffset: 0x0
231                Size:          0x1
232                Metadata:      0x2
233       - Version: 1
234         BBRanges:
235          - BaseAddress: 0x5000
236            BBEntries:
237             - AddressOffset: 0x0
238               Size:          0x1
239               Metadata:      0x1
240             - AddressOffset: 0x4
241               Size:          0x2
242               Metadata:      0x0
243             - AddressOffset: 0x0
244               Size:          0x6
245               Metadata:      0x0
247 Symbols:
248   - Name:    foo
249     Section: .text.foo
250     Value:   0x4000
251   - Name:    foo.cold
252     Section: .text.split
253     Value:   0x6000
254   - Name:    bar
255     Section: .text.bar
256     Value:   0x5000
257   - Name:    symbol
258     Section: .data
259     Value:   0x700c