Follow up to d0858bffa11, add missing REQUIRES x86
[llvm-project.git] / llvm / test / tools / llvm-dwarfdump / X86 / tombstone.s
blobd72a6cbc17725fa6f594aaa363ba492d1ffc732f
1 # RUN: llvm-mc %s -filetype obj -triple i386-pc-linux -o %t.o
2 # RUN: llvm-dwarfdump -v -debug-info -debug-line -debug-addr -debug-rnglists -debug-ranges %t.o | FileCheck --implicit-check-not=DW_TAG --implicit-check-not=DW_AT %s
4 # Test that llvm - dwarfdump strips addresses relating to dead code(using the
5 # DWARFv6 - proposed tombstone constant & nearest equivalent for debug_ranges)
6 # Testing the tombstone use in debug_info (addr/addrx), debug_ranges,
7 # debug_rnglists, debug_ranges, and debug_line.
9 # CHECK-DAG: .debug_info contents:
10 # CHECK: DW_TAG_compile_unit
11 # CHECK: DW_AT_ranges [DW_FORM_sec_offset] (0x00000000
12 # CHECK-NEXT: [0x00000042, 0x00000048))
13 # CHECK: DW_TAG_subprogram
14 # CHECK: DW_AT_low_pc [DW_FORM_addr] (0xffffffff (dead code))
15 # CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000006)
16 # CHECK: DW_TAG_subprogram
17 # CHECK: DW_AT_low_pc [DW_FORM_addr] (0x00000042)
18 # CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000006)
19 # CHECK: DW_TAG_compile_unit
20 # CHECK: DW_AT_addr_base
21 # CHECK: DW_AT_ranges [DW_FORM_sec_offset] (0x0000000c
22 # CHECK-NEXT: [0x00000042, 0x00000048)
23 # CHECK-NEXT: [0x00000042, 0x00000048)
24 # CHECK-NEXT: [0x00000042, 0x00000048)
25 # CHECK-NEXT: [0x00000042, 0x00000042)
26 # CHECK-NEXT: [0x00000042, 0x00000048)
27 # CHECK-NEXT: [0x00000042, 0x00000048))
28 # CHECK: DW_TAG_subprogram
29 # CHECK: DW_AT_low_pc [DW_FORM_addrx] (indexed (00000000) address = 0xffffffff (dead code))
30 # CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000006)
31 # CHECK: DW_TAG_subprogram
32 # CHECK: DW_AT_low_pc [DW_FORM_addrx] (indexed (00000001) address = 0x00000042)
33 # CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000006)
34 # CHECK: DW_TAG_compile_unit
35 # CHECK: DW_AT_ranges [DW_FORM_sec_offset] (0x00000018
36 # CHECK-NEXT: [0x0000000000000042, 0x0000000000000048))
37 # CHECK: DW_TAG_subprogram
38 # CHECK: DW_AT_low_pc [DW_FORM_addr] (0xffffffffffffffff (dead code))
39 # CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000006)
40 # CHECK: DW_TAG_subprogram
41 # CHECK: DW_AT_low_pc [DW_FORM_addr] (0x0000000000000042)
42 # CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000006)
43 # CHECK: DW_TAG_compile_unit
44 # CHECK: DW_AT_addr_base
47 # CHECK: DW_AT_ranges
48 # CHECK-NEXT: [0x0000000000000042, 0x0000000000000048)
49 # CHECK-NEXT: [0x0000000000000042, 0x0000000000000048)
50 # CHECK-NEXT: [0x0000000000000042, 0x0000000000000048)
51 # CHECK-NEXT: [0x0000000000000042, 0x0000000000000042)
52 # CHECK-NEXT: [0x0000000000000042, 0x0000000000000048)
53 # CHECK-NEXT: [0x0000000000000042, 0x0000000000000048))
54 # CHECK: DW_TAG_subprogram
55 # CHECK: DW_AT_low_pc [DW_FORM_addrx] (indexed (00000000) address = 0xffffffffffffffff (dead code))
56 # CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000006)
57 # CHECK: DW_TAG_subprogram
58 # CHECK: DW_AT_low_pc [DW_FORM_addrx] (indexed (00000001) address = 0x0000000000000042)
59 # CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000006)
61 # CHECK-DAG: .debug_line contents:
62 # CHECK: Address Line
63 # CHECK-NEXT: --------------
64 # CHECK-NEXT: DW_LNE_set_address (0xffffffff)
65 # CHECK-NEXT: DW_LNS_copy
66 # CHECK-NEXT: DW_LNS_advance_pc (addr += 1, op-index += 0)
67 # CHECK-NEXT: DW_LNE_end_sequence
68 # CHECK-NEXT: DW_LNE_set_address (0x00000042)
69 # CHECK-NEXT: DW_LNS_copy
70 # CHECK-NEXT: 0x0000000000000042 1
71 # CHECK-NEXT: DW_LNS_advance_pc (addr += 1, op-index += 0)
72 # CHECK-NEXT: DW_LNE_end_sequence
73 # CHECK: Address Line
74 # CHECK-NEXT: --------------
75 # CHECK-NEXT: DW_LNE_set_address (0xffffffffffffffff)
76 # CHECK-NEXT: DW_LNS_copy
77 # CHECK-NEXT: DW_LNS_advance_pc (addr += 1, op-index += 0)
78 # CHECK-NEXT: DW_LNE_end_sequence
79 # CHECK-NEXT: DW_LNE_set_address (0x0000000000000042)
80 # CHECK-NEXT: DW_LNS_copy
81 # CHECK-NEXT: 0x0000000000000042 1
82 # CHECK-NEXT: DW_LNS_advance_pc (addr += 1, op-index += 0)
83 # CHECK-NEXT: DW_LNE_end_sequence
85 # Dumping of the debug_addr, ranges, and rnglists sections don't do anything
86 # different with tombstoned addresses, but dump them just for
87 # documentation/comparison with the tombstone-filtered renderings in the
88 # debug_info section above
90 # CHECK-DAG: .debug_addr contents:
91 # CHECK-NEXT: addr_size = 0x04
92 # CHECK-NEXT: Addrs: [
93 # CHECK-NEXT: 0xffffffff
94 # CHECK-NEXT: 0x00000042
95 # CHECK-NEXT: ]
96 # CHECK-NEXT: addr_size = 0x08
97 # CHECK-NEXT: Addrs: [
98 # CHECK-NEXT: 0xffffffffffffffff
99 # CHECK-NEXT: 0x0000000000000042
100 # CHECK-NEXT: ]
102 # CHECK-DAG: .debug_ranges contents:
103 # CHECK-NEXT: fffffffe fffffffe
104 # CHECK-NEXT: 00000042 00000048
105 # CHECK-NEXT: <End of list>
106 # FIXME: Would be nice if we didn't assume all the contributions were of the
107 # same address size, instead dumping them based on the address size of
108 # the unit that references them. Maybe optimistically guessing at any
109 # unreferenced chunks. (this would be more like libdwarf/dwarfdump).
110 # But for now, these 64bit address ranges are mangled/being rendered
111 # here as though they were a 32 bit address range.
112 # CHECK-NEXT: fffffffe ffffffff
113 # CHECK-NEXT: fffffffe ffffffff
114 # CHECK-NEXT: 00000042 00000000
115 # CHECK-NEXT: 00000048 00000000
116 # CHECK-NEXT: <End of list>
118 # CHECK-DAG: .debug_rnglists contents:
119 # CHECK-NEXT: addr_size = 0x04
120 # CHECK-NEXT: ranges:
121 # CHECK-NEXT: [DW_RLE_start_length ]: 0xffffffff, 0x00000006
122 # CHECK-NEXT: [DW_RLE_start_length ]: 0x00000042, 0x00000006
123 # CHECK-NEXT: [DW_RLE_startx_length]: 0x00000000, 0x00000006
124 # CHECK-NEXT: [DW_RLE_startx_length]: 0x00000001, 0x00000006
125 # CHECK-NEXT: [DW_RLE_start_end ]: [0xffffffff, 0xffffffff)
126 # CHECK-NEXT: [DW_RLE_start_end ]: [0x00000042, 0x00000048)
127 # CHECK-NEXT: [DW_RLE_startx_endx ]: 0x00000000, 0x00000000
128 # CHECK-NEXT: [DW_RLE_startx_endx ]: 0x00000001, 0x00000001
129 # CHECK-NEXT: [DW_RLE_base_address ]: 0x00000040
130 # CHECK-NEXT: [DW_RLE_offset_pair ]: 0x00000002, 0x00000008 => [0x00000042, 0x00000048)
131 # CHECK-NEXT: [DW_RLE_base_address ]: 0xffffffff
132 # CHECK-NEXT: [DW_RLE_offset_pair ]: 0x00000002, 0x00000008 => dead code
133 # CHECK-NEXT: [DW_RLE_base_addressx]: 0x00000000
134 # FIXME: Don't print "computed" values that aren't really computed/instead
135 # still refer to the index instead of the resulting address
136 # CHECK-NEXT: [DW_RLE_offset_pair ]: 0x00000000, 0x00000006 => [0x00000000, 0x00000006)
137 # CHECK-NEXT: [DW_RLE_base_addressx]: 0x00000001
138 # CHECK-NEXT: [DW_RLE_offset_pair ]: 0x00000000, 0x00000006 => [0x00000001, 0x00000007)
139 # CHECK-NEXT: [DW_RLE_end_of_list ]
140 # CHECK-NEXT: addr_size = 0x08
141 # CHECK-NEXT: ranges:
142 # CHECK-NEXT: [DW_RLE_start_length ]: 0xffffffffffffffff, 0x0000000000000006
143 # CHECK-NEXT: [DW_RLE_start_length ]: 0x0000000000000042, 0x0000000000000006
144 # CHECK-NEXT: [DW_RLE_startx_length]: 0x0000000000000000, 0x0000000000000006
145 # CHECK-NEXT: [DW_RLE_startx_length]: 0x0000000000000001, 0x0000000000000006
146 # CHECK-NEXT: [DW_RLE_start_end ]: [0xffffffffffffffff, 0xffffffffffffffff)
147 # CHECK-NEXT: [DW_RLE_start_end ]: [0x0000000000000042, 0x0000000000000048)
148 # CHECK-NEXT: [DW_RLE_startx_endx ]: 0x0000000000000000, 0x0000000000000000
149 # CHECK-NEXT: [DW_RLE_startx_endx ]: 0x0000000000000001, 0x0000000000000001
150 # CHECK-NEXT: [DW_RLE_base_address ]: 0x0000000000000040
151 # CHECK-NEXT: [DW_RLE_offset_pair ]: 0x0000000000000002, 0x0000000000000008 => [0x0000000000000042, 0x0000000000000048)
152 # CHECK-NEXT: [DW_RLE_base_address ]: 0xffffffffffffffff
153 # CHECK-NEXT: [DW_RLE_offset_pair ]: 0x0000000000000002, 0x0000000000000008 => dead code
154 # CHECK-NEXT: [DW_RLE_base_addressx]: 0x0000000000000000
155 # CHECK-NEXT: [DW_RLE_offset_pair ]: 0x0000000000000000, 0x0000000000000006 => [0x0000000000000000, 0x0000000000000006)
156 # CHECK-NEXT: [DW_RLE_base_addressx]: 0x0000000000000001
157 # CHECK-NEXT: [DW_RLE_offset_pair ]: 0x0000000000000000, 0x0000000000000006 => [0x0000000000000001, 0x0000000000000007)
158 # CHECK-NEXT: [DW_RLE_end_of_list ]
160 .section .debug_abbrev,"",@progbits
161 .Ldebug_abbrev4:
162 .byte 1 # Abbreviation Code
163 .byte 17 # DW_TAG_compile_unit
164 .byte 1 # DW_CHILDREN_yes
165 .byte 85 # DW_AT_ranges
166 .byte 23 # DW_FORM_sec_offset
167 .byte 0 # EOM(1)
168 .byte 0 # EOM(2)
169 .byte 2 # Abbreviation Code
170 .byte 46 # DW_TAG_subprogram
171 .byte 0 # DW_CHILDREN_no
172 .byte 17 # DW_AT_low_pc
173 .byte 1 # DW_FORM_addr
174 .byte 18 # DW_AT_high_pc
175 .byte 6 # DW_FORM_data4
176 .byte 0 # EOM(1)
177 .byte 0 # EOM(2)
178 .byte 0 # EOM(3)
179 .Ldebug_abbrev5:
180 .byte 1 # Abbreviation Code
181 .byte 17 # DW_TAG_compile_unit
182 .byte 1 # DW_CHILDREN_yes
183 .byte 115 # DW_AT_addr_base
184 .byte 23 # DW_FORM_sec_offset
185 .byte 85 # DW_AT_ranges
186 .byte 23 # DW_FORM_sec_offset
187 .byte 0 # EOM(1)
188 .byte 0 # EOM(2)
189 .byte 2 # Abbreviation Code
190 .byte 46 # DW_TAG_subprogram
191 .byte 0 # DW_CHILDREN_no
192 .byte 17 # DW_AT_low_pc
193 .byte 27 # DW_FORM_addrx
194 .byte 18 # DW_AT_high_pc
195 .byte 6 # DW_FORM_data4
196 .byte 0 # EOM(1)
197 .byte 0 # EOM(2)
198 .byte 0 # EOM(3)
200 .section .debug_info,"",@progbits
201 .long .Ldebug_info4_end-.Ldebug_info4_begin # Length of Unit
202 .Ldebug_info4_begin:
203 .short 4 # DWARF version number
204 .long .Ldebug_abbrev4 # Offset Into Abbrev. Section
205 .byte 4 # Address Size (in bytes)
206 .byte 1 # Abbrev [1] 0xb:0x4a DW_TAG_compile_unit
207 .long .Ldebug_ranges # DW_AT_ranges
208 .byte 2 # Abbrev [2] 0x2a:0x15 DW_TAG_subprogram
209 .long 0xffffffff # DW_AT_low_pc
210 .long 0x6 # DW_AT_high_pc
211 .byte 2 # Abbrev [2] 0x3f:0x15 DW_TAG_subprogram
212 .long 0x42 # DW_AT_low_pc
213 .long 0x6 # DW_AT_high_pc
214 .byte 0 # End Of Children Mark
215 .Ldebug_info4_end:
216 .long .Ldebug_info5_end-.Ldebug_info5_begin # Length of Unit
217 .Ldebug_info5_begin:
218 .short 5 # DWARF version number
219 .byte 1 # DWARF Unit Type
220 .byte 4 # Address Size (in bytes)
221 .long .Ldebug_abbrev5 # Offset Into Abbrev. Section
222 .byte 1 # Abbrev [1] 0xb:0x4a DW_TAG_compile_unit
223 .long .Ldebug_addr_base # DW_AT_addr_base
224 .long .Ldebug_rnglists # DW_AT_ranges
225 .byte 2 # Abbrev [2] 0x2a:0x15 DW_TAG_subprogram
226 .uleb128 0 # DW_AT_low_pc
227 .long 0x6 # DW_AT_high_pc
228 .byte 2 # Abbrev [2] 0x3f:0x15 DW_TAG_subprogram
229 .uleb128 1 # DW_AT_low_pc
230 .long 0x6 # DW_AT_high_pc
231 .byte 0 # End Of Children Mark
232 .Ldebug_info5_end:
233 .long .Ldebug_info4_64_end-.Ldebug_info4_64_begin # Length of Unit
234 .Ldebug_info4_64_begin:
235 .short 4 # DWARF version number
236 .long .Ldebug_abbrev4 # Offset Into Abbrev. Section
237 .byte 8 # Address Size (in bytes)
238 .byte 1 # Abbrev [1] 0xb:0x4a DW_TAG_compile_unit
239 .long .Ldebug_ranges_64 # DW_AT_ranges
240 .byte 2 # Abbrev [2] 0x2a:0x15 DW_TAG_subprogram
241 .quad 0xffffffffffffffff # DW_AT_low_pc
242 .long 0x6 # DW_AT_high_pc
243 .byte 2 # Abbrev [2] 0x3f:0x15 DW_TAG_subprogram
244 .quad 0x42 # DW_AT_low_pc
245 .long 0x6 # DW_AT_high_pc
246 .byte 0 # End Of Children Mark
247 .Ldebug_info4_64_end:
248 .long .Ldebug_info5_64_end-.Ldebug_info5_64_begin # Length of Unit
249 .Ldebug_info5_64_begin:
250 .short 5 # DWARF version number
251 .byte 1 # DWARF Unit Type
252 .byte 8 # Address Size (in bytes)
253 .long .Ldebug_abbrev5 # Offset Into Abbrev. Section
254 .byte 1 # Abbrev [1] 0xb:0x4a DW_TAG_compile_unit
255 .long .Ldebug_addr_64_base # DW_AT_addr_base
256 .long .Ldebug_rnglists_64 # DW_AT_ranges
257 .byte 2 # Abbrev [2] 0x2a:0x15 DW_TAG_subprogram
258 .uleb128 0 # DW_AT_low_pc
259 .long 0x6 # DW_AT_high_pc
260 .byte 2 # Abbrev [2] 0x3f:0x15 DW_TAG_subprogram
261 .uleb128 1 # DW_AT_low_pc
262 .long 0x6 # DW_AT_high_pc
263 .byte 0 # End Of Children Mark
264 .Ldebug_info5_64_end:
266 .section .debug_ranges,"",@progbits
267 .Ldebug_ranges:
268 .long 0xfffffffe
269 .long 0xfffffffe
270 .long 0x42
271 .long 0x48
272 .long 0
273 .long 0
274 .Ldebug_ranges_64:
275 .quad 0xfffffffffffffffe
276 .quad 0xfffffffffffffffe
277 .quad 0x42
278 .quad 0x48
279 .quad 0
280 .quad 0
282 .section .debug_rnglists,"",@progbits
283 .long .Ldebug_rnglists_end-.Ldebug_rnglists_begin # Length
284 .Ldebug_rnglists_begin:
285 .short 5 # Version
286 .byte 4 # Address size
287 .byte 0 # Segment selector size
288 .long 0 # Offset entry count
289 .Ldebug_rnglists:
290 .byte 7 # DW_RLE_start_length
291 .long 0xffffffff # start address
292 .uleb128 0x6 # length
293 .byte 7 # DW_RLE_start_length
294 .long 0x42 # start address
295 .uleb128 0x6 # length
296 .byte 3 # DW_RLE_startx_length
297 .uleb128 0 # start index
298 .uleb128 0x6 # length
299 .byte 3 # DW_RLE_startx_length
300 .uleb128 1 # start index
301 .uleb128 0x6 # length
302 .byte 6 # DW_RLE_start_end
303 .long 0xffffffff # start address
304 .long 0xffffffff # end address
305 .byte 6 # DW_RLE_start_end
306 .long 0x42 # start address
307 .long 0x48 # length
308 .byte 2 # DW_RLE_startx_endx
309 .uleb128 0 # start index
310 .uleb128 0 # end index
311 .byte 2 # DW_RLE_startx_endx
312 .uleb128 1 # start index
313 .uleb128 1 # end index
314 .byte 5 # DW_RLE_base_address
315 .long 0x40 # address
316 .byte 4 # DW_RLE_offset_pair
317 .uleb128 2 # start offset
318 .uleb128 8 # end offset
319 .byte 5 # DW_RLE_base_address
320 .long 0xffffffff # address
321 .byte 4 # DW_RLE_offset_pair
322 .uleb128 2 # start offset
323 .uleb128 8 # end offset
324 .byte 1 # DW_RLE_base_addressx
325 .uleb128 0 # address
326 .byte 4 # DW_RLE_offset_pair
327 .uleb128 0 # start offset
328 .uleb128 6 # end offset
329 .byte 1 # DW_RLE_base_addressx
330 .uleb128 1 # address
331 .byte 4 # DW_RLE_offset_pair
332 .uleb128 0 # start offset
333 .uleb128 6 # end offset
334 .byte 0 # DW_RLE_end_of_list
335 .Ldebug_rnglists_end:
336 .long .Ldebug_rnglists_64_end-.Ldebug_rnglists_64_begin # Length
337 .Ldebug_rnglists_64_begin:
338 .short 5 # Version
339 .byte 8 # Address size
340 .byte 0 # Segment selector size
341 .long 0 # Offset entry count
342 .Ldebug_rnglists_64:
343 .byte 7 # DW_RLE_start_length
344 .quad 0xffffffffffffffff # start address
345 .uleb128 0x6 # length
346 .byte 7 # DW_RLE_start_length
347 .quad 0x42 # start address
348 .uleb128 0x6 # length
349 .byte 3 # DW_RLE_startx_length
350 .uleb128 0 # start index
351 .uleb128 0x6 # length
352 .byte 3 # DW_RLE_startx_length
353 .uleb128 1 # start index
354 .uleb128 0x6 # length
355 .byte 6 # DW_RLE_start_end
356 .quad 0xffffffffffffffff # start address
357 .quad 0xffffffffffffffff # end address
358 .byte 6 # DW_RLE_start_end
359 .quad 0x42 # start address
360 .quad 0x48 # length
361 .byte 2 # DW_RLE_startx_endx
362 .uleb128 0 # start index
363 .uleb128 0 # end index
364 .byte 2 # DW_RLE_startx_endx
365 .uleb128 1 # start index
366 .uleb128 1 # end index
367 .byte 5 # DW_RLE_base_address
368 .quad 0x40 # address
369 .byte 4 # DW_RLE_offset_pair
370 .uleb128 2 # start offset
371 .uleb128 8 # end offset
372 .byte 5 # DW_RLE_base_address
373 .quad 0xffffffffffffffff # address
374 .byte 4 # DW_RLE_offset_pair
375 .uleb128 2 # start offset
376 .uleb128 8 # end offset
377 .byte 1 # DW_RLE_base_addressx
378 .uleb128 0 # address
379 .byte 4 # DW_RLE_offset_pair
380 .uleb128 0 # start offset
381 .uleb128 6 # end offset
382 .byte 1 # DW_RLE_base_addressx
383 .uleb128 1 # address
384 .byte 4 # DW_RLE_offset_pair
385 .uleb128 0 # start offset
386 .uleb128 6 # end offset
387 .byte 0 # DW_RLE_end_of_list
388 .Ldebug_rnglists_64_end:
390 .section .debug_addr,"",@progbits
391 .long .Ldebug_addr_end-.Ldebug_addr_begin # Length of contribution
392 .Ldebug_addr_begin:
393 .short 5 # DWARF version number
394 .byte 4 # Address size
395 .byte 0 # Segment selector size
396 .Ldebug_addr_base:
397 .long 0xffffffff
398 .long 0x42
399 .Ldebug_addr_end:
400 .long .Ldebug_addr_64_end-.Ldebug_addr_64_begin # Length of contribution
401 .Ldebug_addr_64_begin:
402 .short 5 # DWARF version number
403 .byte 8 # Address size
404 .byte 0 # Segment selector size
405 .Ldebug_addr_64_base:
406 .quad 0xffffffffffffffff
407 .quad 0x42
408 .Ldebug_addr_64_end:
410 .section .debug_line,"",@progbits
411 .Ldebug_line5:
412 .long .Ldebug_line5_end-.Ldebug_line5_begin # Length of Unit (DWARF-32 format)
413 .Ldebug_line5_begin:
414 .short 5 # DWARF version number
415 .byte 4 # Address Size
416 .byte 0 # Segment Selector Size
417 .long .Ldebug_line5_header_end-.Ldebug_line5_header_begin # Length of Prologue
418 .Ldebug_line5_header_begin:
419 .byte 1 # Minimum Instruction Length
420 .byte 1 # Maximum Operations per Instruction
421 .byte 1 # Default is_stmt
422 .byte -5 # Line Base
423 .byte 14 # Line Range
424 .byte 13 # Opcode Base
425 .byte 0 # Standard Opcode Lengths
426 .byte 1
427 .byte 1
428 .byte 1
429 .byte 1
430 .byte 0
431 .byte 0
432 .byte 0
433 .byte 1
434 .byte 0
435 .byte 0
436 .byte 1
437 # Directory table format
438 .byte 1 # One element per directory entry
439 .byte 1 # DW_LNCT_path
440 .byte 0x08 # DW_FORM_string
441 # Directory table entries
442 .byte 1 # Two directory entries
443 .asciz "dir1"
444 # File table format
445 .byte 2 # Four elements per file entry
446 .byte 2 # DW_LNCT_directory_index
447 .byte 0x0b # DW_FORM_data1
448 .byte 1 # DW_LNCT_path
449 .byte 0x08 # DW_FORM_string
450 # File table entries
451 .byte 1 # Two file entries
452 .byte 1
453 .asciz "file1"
454 .Ldebug_line5_header_end:
455 .byte 0 # Extended opcode
456 .byte 5 # Size 5
457 .byte 2 # Opcode: DW_LNE_set_address
458 .long 0xffffffff # address
459 .byte 1 # DW_LNS_copy
460 .byte 2 # DW_LNS_advance_pc
461 .uleb128 1 # instruction increment
462 .byte 0 # Extended opcode
463 .byte 1 # Size 1
464 .byte 1 # Opcode: DW_LNE_end_sequence
465 .byte 0 # Extended opcode
466 .byte 5 # Size 5
467 .byte 2 # Opcode: DW_LNE_set_address
468 .long 0x42 # address
469 .byte 1 # DW_LNS_copy
470 .byte 2 # DW_LNS_advance_pc
471 .uleb128 1 # instruction increment
472 .byte 0 # Extended opcode
473 .byte 1 # Size 1
474 .byte 1 # Opcode: DW_LNE_end_sequence
475 .Ldebug_line5_end:
477 .Ldebug_line5_64:
478 .long .Ldebug_line5_64_end-.Ldebug_line5_64_begin # Length of Unit (DWARF-32 format)
479 .Ldebug_line5_64_begin:
480 .short 5 # DWARF version number
481 .byte 8 # Address Size
482 .byte 0 # Segment Selector Size
483 .long .Ldebug_line5_64_header_end-.Ldebug_line5_64_header_begin # Length of Prologue
484 .Ldebug_line5_64_header_begin:
485 .byte 1 # Minimum Instruction Length
486 .byte 1 # Maximum Operations per Instruction
487 .byte 1 # Default is_stmt
488 .byte -5 # Line Base
489 .byte 14 # Line Range
490 .byte 13 # Opcode Base
491 .byte 0 # Standard Opcode Lengths
492 .byte 1
493 .byte 1
494 .byte 1
495 .byte 1
496 .byte 0
497 .byte 0
498 .byte 0
499 .byte 1
500 .byte 0
501 .byte 0
502 .byte 1
503 # Directory table format
504 .byte 1 # One element per directory entry
505 .byte 1 # DW_LNCT_path
506 .byte 0x08 # DW_FORM_string
507 # Directory table entries
508 .byte 1 # Two directory entries
509 .asciz "dir1"
510 # File table format
511 .byte 2 # Four elements per file entry
512 .byte 2 # DW_LNCT_directory_index
513 .byte 0x0b # DW_FORM_data1
514 .byte 1 # DW_LNCT_path
515 .byte 0x08 # DW_FORM_string
516 # File table entries
517 .byte 1 # Two file entries
518 .byte 1
519 .asciz "file1"
520 .Ldebug_line5_64_header_end:
521 .byte 0 # Extended opcode
522 .byte 9 # Size 9
523 .byte 2 # Opcode: DW_LNE_set_address
524 .quad 0xffffffffffffffff # address
525 .byte 1 # DW_LNS_copy
526 .byte 2 # DW_LNS_advance_pc
527 .uleb128 1 # instruction increment
528 .byte 0 # Extended opcode
529 .byte 1 # Size 1
530 .byte 1 # Opcode: DW_LNE_end_sequence
531 .byte 0 # Extended opcode
532 .byte 9 # Size 9
533 .byte 2 # Opcode: DW_LNE_set_address
534 .quad 0x42 # address
535 .byte 1 # DW_LNS_copy
536 .byte 2 # DW_LNS_advance_pc
537 .uleb128 1 # instruction increment
538 .byte 0 # Extended opcode
539 .byte 1 # Size 1
540 .byte 1 # Opcode: DW_LNE_end_sequence
541 .Ldebug_line5_64_end: