xref: /llvm-project/llvm/test/tools/llvm-dwarfdump/X86/tombstone.s (revision fe6cddef2020c8e103cff8180540d4e2e9102c6d)
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
3
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.
8
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
45
46
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)
60
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
84
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
89
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: ]
101
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>
117
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  ]
159
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)
199
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:
265
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
281
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:
389
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:
409
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:
476
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:
542
543