xref: /openbsd-src/usr.bin/ctfconv/dwarf.h (revision 283ced89295eb8dc056ac371250a6c974c74a688)
1*283ced89Sclaudio /*	$OpenBSD: dwarf.h,v 1.3 2024/02/21 13:16:14 claudio Exp $ */
20687c322Sjasper 
3192095f7Smpi /*
4192095f7Smpi  * Copyright (c) 2016 Martin Pieuchot <mpi@openbsd.org>
5192095f7Smpi  * Copyright (c) 2007 John Birrell (jb@freebsd.org).
6192095f7Smpi  * All rights reserved.
7192095f7Smpi  *
8192095f7Smpi  * Redistribution and use in source and binary forms, with or without
9192095f7Smpi  * modification, are permitted provided that the following conditions
10192095f7Smpi  * are met:
11192095f7Smpi  * 1. Redistributions of source code must retain the above copyright
12192095f7Smpi  *    notice, this list of conditions and the following disclaimer.
13192095f7Smpi  * 2. Redistributions in binary form must reproduce the above copyright
14192095f7Smpi  *    notice, this list of conditions and the following disclaimer in the
15192095f7Smpi  *    documentation and/or other materials provided with the distribution.
16192095f7Smpi  *
17192095f7Smpi  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18192095f7Smpi  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19192095f7Smpi  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20192095f7Smpi  * ARE DISCLAIMED.IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21192095f7Smpi  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22192095f7Smpi  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23192095f7Smpi  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24192095f7Smpi  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25192095f7Smpi  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26192095f7Smpi  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27192095f7Smpi  * SUCH DAMAGE.
28192095f7Smpi  */
29192095f7Smpi 
30192095f7Smpi #ifndef	_DWARF_H_
31192095f7Smpi #define	_DWARF_H_
32192095f7Smpi 
33192095f7Smpi #define DW_TAG_array_type		0x01
34192095f7Smpi #define DW_TAG_class_type		0x02
35192095f7Smpi #define DW_TAG_entry_point		0x03
36192095f7Smpi #define DW_TAG_enumeration_type		0x04
37192095f7Smpi #define DW_TAG_formal_parameter		0x05
38192095f7Smpi #define DW_TAG_imported_declaration	0x08
39192095f7Smpi #define DW_TAG_label			0x0a
40192095f7Smpi #define DW_TAG_lexical_block		0x0b
41192095f7Smpi #define DW_TAG_member			0x0d
42192095f7Smpi #define DW_TAG_pointer_type		0x0f
43192095f7Smpi #define DW_TAG_reference_type		0x10
44192095f7Smpi #define DW_TAG_compile_unit		0x11
45192095f7Smpi #define DW_TAG_string_type		0x12
46192095f7Smpi #define DW_TAG_structure_type		0x13
47192095f7Smpi #define DW_TAG_subroutine_type		0x15
48192095f7Smpi #define DW_TAG_typedef			0x16
49192095f7Smpi #define DW_TAG_union_type		0x17
50192095f7Smpi #define DW_TAG_unspecified_parameters	0x18
51192095f7Smpi #define DW_TAG_variant			0x19
52192095f7Smpi #define DW_TAG_common_block		0x1a
53192095f7Smpi #define DW_TAG_common_inclusion		0x1b
54192095f7Smpi #define DW_TAG_inheritance		0x1c
55192095f7Smpi #define DW_TAG_inlined_subroutine	0x1d
56192095f7Smpi #define DW_TAG_module			0x1e
57192095f7Smpi #define DW_TAG_ptr_to_member_type	0x1f
58192095f7Smpi #define DW_TAG_set_type			0x20
59192095f7Smpi #define DW_TAG_subrange_type		0x21
60192095f7Smpi #define DW_TAG_with_stmt		0x22
61192095f7Smpi #define DW_TAG_access_declaration	0x23
62192095f7Smpi #define DW_TAG_base_type		0x24
63192095f7Smpi #define DW_TAG_catch_block		0x25
64192095f7Smpi #define DW_TAG_const_type		0x26
65192095f7Smpi #define DW_TAG_constant			0x27
66192095f7Smpi #define DW_TAG_enumerator		0x28
67192095f7Smpi #define DW_TAG_friend			0x2a
68192095f7Smpi #define DW_TAG_namelist			0x2b
69192095f7Smpi #define DW_TAG_namelist_item		0x2c
70192095f7Smpi #define DW_TAG_packed_type		0x2d
71192095f7Smpi #define DW_TAG_subprogram		0x2e
72192095f7Smpi #define DW_TAG_template_type_parameter	0x2f
73192095f7Smpi #define DW_TAG_template_value_parameter	0x30
74192095f7Smpi #define DW_TAG_thrown_type		0x31
75192095f7Smpi #define DW_TAG_try_block		0x32
76192095f7Smpi #define DW_TAG_variant_part		0x33
77192095f7Smpi #define DW_TAG_variable			0x34
78192095f7Smpi #define DW_TAG_volatile_type		0x35
79192095f7Smpi #define DW_TAG_dwarf_procedure          0x36
80192095f7Smpi #define DW_TAG_restrict_type            0x37
81192095f7Smpi #define DW_TAG_interface_type           0x38
82192095f7Smpi #define DW_TAG_namespace                0x39
83192095f7Smpi #define DW_TAG_imported_module          0x3a
84192095f7Smpi #define DW_TAG_unspecified_type         0x3b
85192095f7Smpi #define DW_TAG_partial_unit             0x3c
86192095f7Smpi #define DW_TAG_imported_unit            0x3d
87192095f7Smpi #define DW_TAG_condition                0x3f
88192095f7Smpi #define DW_TAG_shared_type              0x40
89192095f7Smpi #define DW_TAG_type_unit		0x41
90192095f7Smpi #define DW_TAG_rvalue_reference_type	0x42
91192095f7Smpi #define DW_TAG_template_alias		0x43
92192095f7Smpi #define DW_TAG_lo_user			0x4080
93192095f7Smpi #define DW_TAG_hi_user			0xffff
94192095f7Smpi 
95192095f7Smpi /* GNU extensions. */
96192095f7Smpi #define	DW_TAG_format_label		0x4101
97192095f7Smpi #define	DW_TAG_function_template	0x4102
98192095f7Smpi #define	DW_TAG_class_template		0x4103
99192095f7Smpi #define	DW_TAG_GNU_BINCL		0x4104
100192095f7Smpi #define	DW_TAG_GNU_EINCL		0x4105
101192095f7Smpi #define	DW_TAG_GNU_template_template_parameter	0x4106
102192095f7Smpi #define	DW_TAG_GNU_template_template_param	0x4106
103192095f7Smpi #define	DW_TAG_GNU_template_parameter_pack	0x4107
104192095f7Smpi #define	DW_TAG_GNU_formal_parameter_pack	0x4108
105192095f7Smpi #define	DW_TAG_GNU_call_site			0x4109
106192095f7Smpi #define	DW_TAG_GNU_call_site_parameter		0x410a
107192095f7Smpi 
108192095f7Smpi #define DW_TAG_NAMES							\
109192095f7Smpi 	"DW_TAG_array_type",						\
110192095f7Smpi 	"DW_TAG_class_type",						\
111192095f7Smpi 	"DW_TAG_entry_point",						\
112192095f7Smpi 	"DW_TAG_enumeration_type",					\
113192095f7Smpi 	"DW_TAG_formal_parameter",					\
114192095f7Smpi 	NULL,								\
115192095f7Smpi 	NULL,								\
116192095f7Smpi 	"DW_TAG_imported_declaration",					\
117192095f7Smpi 	NULL,								\
118192095f7Smpi 	"DW_TAG_label",							\
119192095f7Smpi 	"DW_TAG_lexical_block",						\
120192095f7Smpi 	NULL,								\
121192095f7Smpi 	"DW_TAG_member",						\
122192095f7Smpi 	NULL,								\
123192095f7Smpi 	"DW_TAG_pointer_type",						\
124192095f7Smpi 	"DW_TAG_reference_type",					\
125192095f7Smpi 	"DW_TAG_compile_unit",						\
126192095f7Smpi 	"DW_TAG_string_type",						\
127192095f7Smpi 	"DW_TAG_structure_type",					\
128192095f7Smpi 	NULL,								\
129192095f7Smpi 	"DW_TAG_subroutine_type",					\
130192095f7Smpi 	"DW_TAG_typedef",						\
131192095f7Smpi 	"DW_TAG_union_type",						\
132192095f7Smpi 	"DW_TAG_unspecified_parameters",				\
133192095f7Smpi 	"DW_TAG_variant",						\
134192095f7Smpi 	"DW_TAG_common_block",						\
135192095f7Smpi 	"DW_TAG_common_inclusion",					\
136192095f7Smpi 	"DW_TAG_inheritance",						\
137192095f7Smpi 	"DW_TAG_inlined_subroutine",					\
138192095f7Smpi 	"DW_TAG_module",						\
139192095f7Smpi 	"DW_TAG_ptr_to_member_type",					\
140192095f7Smpi 	"DW_TAG_set_type",						\
141192095f7Smpi 	"DW_TAG_subrange_type",						\
142192095f7Smpi 	"DW_TAG_with_stmt",						\
143192095f7Smpi 	"DW_TAG_access_declaration",					\
144192095f7Smpi 	"DW_TAG_base_type",						\
145192095f7Smpi 	"DW_TAG_catch_block",						\
146192095f7Smpi 	"DW_TAG_const_type",						\
147192095f7Smpi 	"DW_TAG_constant",						\
148192095f7Smpi 	"DW_TAG_enumerator",						\
149192095f7Smpi 	NULL,								\
150192095f7Smpi 	"DW_TAG_friend",						\
151192095f7Smpi 	"DW_TAG_namelist",						\
152192095f7Smpi 	"DW_TAG_namelist_item",						\
153192095f7Smpi 	"DW_TAG_packed_type",						\
154192095f7Smpi 	"DW_TAG_subprogram",						\
155192095f7Smpi 	"DW_TAG_template_type_parameter",				\
156192095f7Smpi 	"DW_TAG_template_value_parameter",				\
157192095f7Smpi 	"DW_TAG_thrown_type",						\
158192095f7Smpi 	"DW_TAG_try_block",						\
159192095f7Smpi 	"DW_TAG_variant_part",						\
160192095f7Smpi 	"DW_TAG_variable",						\
161192095f7Smpi 	"DW_TAG_volatile_type",						\
162192095f7Smpi 	"DW_TAG_dwarf_procedure",					\
163192095f7Smpi 	"DW_TAG_restrict_type",						\
164192095f7Smpi 	"DW_TAG_interface_type",					\
165192095f7Smpi 	"DW_TAG_namespace",						\
166192095f7Smpi 	"DW_TAG_imported_module",					\
167192095f7Smpi 	"DW_TAG_unspecified_type",					\
168192095f7Smpi 	"DW_TAG_partial_unit",						\
169192095f7Smpi 	"DW_TAG_imported_unit",						\
170192095f7Smpi 	NULL,								\
171192095f7Smpi 	"DW_TAG_condition",						\
172192095f7Smpi 	"DW_TAG_shared_type",						\
173192095f7Smpi 	"DW_TAG_type_unit",						\
174192095f7Smpi 	"DW_TAG_rvalue_reference_type",					\
175192095f7Smpi 	"DW_TAG_template_alias",
176192095f7Smpi 
177192095f7Smpi #define DW_CHILDREN_no			0x00
178192095f7Smpi #define DW_CHILDREN_yes			0x01
179192095f7Smpi 
180192095f7Smpi #define DW_AT_sibling			0x01
181192095f7Smpi #define DW_AT_location			0x02
182192095f7Smpi #define DW_AT_name			0x03
183192095f7Smpi #define DW_AT_ordering			0x09
184192095f7Smpi #define DW_AT_subscr_data		0x0a
185192095f7Smpi #define DW_AT_byte_size			0x0b
186192095f7Smpi #define DW_AT_bit_offset		0x0c
187192095f7Smpi #define DW_AT_bit_size			0x0d
188192095f7Smpi #define DW_AT_element_list		0x0f
189192095f7Smpi #define DW_AT_stmt_list			0x10
190192095f7Smpi #define DW_AT_low_pc			0x11
191192095f7Smpi #define DW_AT_high_pc			0x12
192192095f7Smpi #define DW_AT_language			0x13
193192095f7Smpi #define DW_AT_member			0x14
194192095f7Smpi #define DW_AT_discr			0x15
195192095f7Smpi #define DW_AT_discr_value		0x16
196192095f7Smpi #define DW_AT_visibility		0x17
197192095f7Smpi #define DW_AT_import			0x18
198192095f7Smpi #define DW_AT_string_length		0x19
199192095f7Smpi #define DW_AT_common_reference		0x1a
200192095f7Smpi #define DW_AT_comp_dir			0x1b
201192095f7Smpi #define DW_AT_const_value		0x1c
202192095f7Smpi #define DW_AT_containing_type		0x1d
203192095f7Smpi #define DW_AT_default_value		0x1e
204192095f7Smpi #define DW_AT_inline			0x20
205192095f7Smpi #define DW_AT_is_optional		0x21
206192095f7Smpi #define DW_AT_lower_bound		0x22
207192095f7Smpi #define DW_AT_producer			0x25
208192095f7Smpi #define DW_AT_prototyped		0x27
209192095f7Smpi #define DW_AT_return_addr		0x2a
210192095f7Smpi #define DW_AT_start_scope		0x2c
211192095f7Smpi #define DW_AT_bit_stride		0x2e
212192095f7Smpi #define DW_AT_stride_size		0x2e
213192095f7Smpi #define DW_AT_upper_bound		0x2f
214192095f7Smpi #define DW_AT_abstract_origin		0x31
215192095f7Smpi #define DW_AT_accessibility		0x32
216192095f7Smpi #define DW_AT_address_class		0x33
217192095f7Smpi #define DW_AT_artificial		0x34
218192095f7Smpi #define DW_AT_base_types		0x35
219192095f7Smpi #define DW_AT_calling_convention	0x36
220192095f7Smpi #define DW_AT_count			0x37
221192095f7Smpi #define DW_AT_data_member_location	0x38
222192095f7Smpi #define DW_AT_decl_column		0x39
223192095f7Smpi #define DW_AT_decl_file			0x3a
224192095f7Smpi #define DW_AT_decl_line			0x3b
225192095f7Smpi #define DW_AT_declaration		0x3c
226192095f7Smpi #define DW_AT_discr_list		0x3d
227192095f7Smpi #define DW_AT_encoding			0x3e
228192095f7Smpi #define DW_AT_external			0x3f
229192095f7Smpi #define DW_AT_frame_base		0x40
230192095f7Smpi #define DW_AT_friend			0x41
231192095f7Smpi #define DW_AT_identifier_case		0x42
232192095f7Smpi #define DW_AT_macro_info		0x43
233192095f7Smpi #define DW_AT_namelist_item		0x44
234192095f7Smpi #define DW_AT_priority			0x45
235192095f7Smpi #define DW_AT_segment			0x46
236192095f7Smpi #define DW_AT_specification		0x47
237192095f7Smpi #define DW_AT_static_link		0x48
238192095f7Smpi #define DW_AT_type			0x49
239192095f7Smpi #define DW_AT_use_location		0x4a
240192095f7Smpi #define DW_AT_variable_parameter	0x4b
241192095f7Smpi #define DW_AT_virtuality		0x4c
242192095f7Smpi #define DW_AT_vtable_elem_location	0x4d
243192095f7Smpi #define DW_AT_allocated			0x4e
244192095f7Smpi #define DW_AT_associated		0x4f
245192095f7Smpi #define DW_AT_data_location		0x50
246192095f7Smpi #define DW_AT_byte_stride		0x51
247192095f7Smpi #define DW_AT_entry_pc			0x52
248192095f7Smpi #define DW_AT_use_UTF8			0x53
249192095f7Smpi #define DW_AT_extension			0x54
250192095f7Smpi #define DW_AT_ranges			0x55
251192095f7Smpi #define DW_AT_trampoline		0x56
252192095f7Smpi #define DW_AT_call_column		0x57
253192095f7Smpi #define DW_AT_call_file			0x58
254192095f7Smpi #define DW_AT_call_line			0x59
255192095f7Smpi #define DW_AT_description		0x5a
256192095f7Smpi #define DW_AT_binary_scale		0x5b
257192095f7Smpi #define DW_AT_decimal_scale		0x5c
258192095f7Smpi #define DW_AT_small			0x5d
259192095f7Smpi #define DW_AT_decimal_sign		0x5e
260192095f7Smpi #define DW_AT_digit_count		0x5f
261192095f7Smpi #define DW_AT_picture_string		0x60
262192095f7Smpi #define DW_AT_mutable			0x61
263192095f7Smpi #define DW_AT_threads_scaled		0x62
264192095f7Smpi #define DW_AT_explicit			0x63
265192095f7Smpi #define DW_AT_object_pointer		0x64
266192095f7Smpi #define DW_AT_endianity			0x65
267192095f7Smpi #define DW_AT_elemental			0x66
268192095f7Smpi #define DW_AT_pure			0x67
269192095f7Smpi #define DW_AT_recursive			0x68
270192095f7Smpi #define DW_AT_signature			0x69
271192095f7Smpi #define DW_AT_main_subprogram		0x6a
272192095f7Smpi #define DW_AT_data_bit_offset		0x6b
273192095f7Smpi #define DW_AT_const_expr		0x6c
274192095f7Smpi #define DW_AT_enum_class		0x6d
275192095f7Smpi #define DW_AT_linkage_name		0x6e
276*283ced89Sclaudio #define DW_AT_noreturn			0x87
277192095f7Smpi #define DW_AT_lo_user			0x2000
278192095f7Smpi #define DW_AT_hi_user			0x3fff
279192095f7Smpi 
280192095f7Smpi /* GNU extensions. */
281192095f7Smpi #define	DW_AT_sf_names				0x2101
282192095f7Smpi #define	DW_AT_src_info				0x2102
283192095f7Smpi #define	DW_AT_mac_info				0x2103
284192095f7Smpi #define	DW_AT_src_coords			0x2104
285192095f7Smpi #define	DW_AT_body_begin			0x2105
286192095f7Smpi #define	DW_AT_body_end				0x2106
287192095f7Smpi #define	DW_AT_GNU_vector			0x2107
288192095f7Smpi #define	DW_AT_GNU_guarded_by			0x2108
289192095f7Smpi #define	DW_AT_GNU_pt_guarded_by			0x2109
290192095f7Smpi #define	DW_AT_GNU_guarded			0x210a
291192095f7Smpi #define	DW_AT_GNU_pt_guarded			0x210b
292192095f7Smpi #define	DW_AT_GNU_locks_excluded		0x210c
293192095f7Smpi #define	DW_AT_GNU_exclusive_locks_required	0x210d
294192095f7Smpi #define	DW_AT_GNU_shared_locks_required		0x210e
295192095f7Smpi #define	DW_AT_GNU_odr_signature			0x210f
296192095f7Smpi #define	DW_AT_GNU_template_name			0x2110
297192095f7Smpi #define	DW_AT_GNU_call_site_value		0x2111
298192095f7Smpi #define	DW_AT_GNU_call_site_data_value		0x2112
299192095f7Smpi #define	DW_AT_GNU_call_site_target		0x2113
300192095f7Smpi #define	DW_AT_GNU_call_site_target_clobbered	0x2114
301192095f7Smpi #define	DW_AT_GNU_tail_call			0x2115
302192095f7Smpi #define	DW_AT_GNU_all_tail_call_sites		0x2116
303192095f7Smpi #define	DW_AT_GNU_all_call_sites		0x2117
304192095f7Smpi #define	DW_AT_GNU_all_source_call_sites		0x2118
305192095f7Smpi 
306192095f7Smpi #define DW_AT_NAMES							\
307192095f7Smpi 	"DW_AT_sibling",						\
308192095f7Smpi 	"DW_AT_location",						\
309192095f7Smpi 	"DW_AT_name",							\
310192095f7Smpi 	NULL,								\
311192095f7Smpi 	NULL,								\
312192095f7Smpi 	NULL,								\
313192095f7Smpi 	NULL,								\
314192095f7Smpi 	NULL,								\
315192095f7Smpi 	"DW_AT_ordering",						\
316192095f7Smpi 	"DW_AT_subscr_data",						\
317192095f7Smpi 	"DW_AT_byte_size",						\
318192095f7Smpi 	"DW_AT_bit_offset",						\
319192095f7Smpi 	"DW_AT_bit_size",						\
320192095f7Smpi 	NULL,								\
321192095f7Smpi 	"DW_AT_element_list",						\
322192095f7Smpi 	"DW_AT_stmt_list",						\
323192095f7Smpi 	"DW_AT_low_pc",							\
324192095f7Smpi 	"DW_AT_high_pc",						\
325192095f7Smpi 	"DW_AT_language",						\
326192095f7Smpi 	"DW_AT_member",							\
327192095f7Smpi 	"DW_AT_discr",							\
328192095f7Smpi 	"DW_AT_discr_value",						\
329192095f7Smpi 	"DW_AT_visibility",						\
330192095f7Smpi 	"DW_AT_import",							\
331192095f7Smpi 	"DW_AT_string_length",						\
332192095f7Smpi 	"DW_AT_common_reference",					\
333192095f7Smpi 	"DW_AT_comp_dir",						\
334192095f7Smpi 	"DW_AT_const_value",						\
335192095f7Smpi 	"DW_AT_containing_type",					\
336192095f7Smpi 	"DW_AT_default_value",						\
337192095f7Smpi 	NULL,								\
338192095f7Smpi 	"DW_AT_inline",							\
339192095f7Smpi 	"DW_AT_is_optional",						\
340192095f7Smpi 	"DW_AT_lower_bound",						\
341192095f7Smpi 	NULL,								\
342192095f7Smpi 	NULL,								\
343192095f7Smpi 	"DW_AT_producer",						\
344192095f7Smpi 	NULL,								\
345192095f7Smpi 	"DW_AT_prototyped",						\
346192095f7Smpi 	NULL,								\
347192095f7Smpi 	NULL,								\
348192095f7Smpi 	"DW_AT_return_addr",						\
349192095f7Smpi 	NULL,								\
350192095f7Smpi 	"DW_AT_start_scope",						\
351192095f7Smpi 	NULL,								\
352192095f7Smpi 	"DW_AT_bit_stride",						\
353192095f7Smpi 	"DW_AT_upper_bound",						\
354192095f7Smpi 	NULL,								\
355192095f7Smpi 	"DW_AT_abstract_origin",					\
356192095f7Smpi 	"DW_AT_accessibility",						\
357192095f7Smpi 	"DW_AT_address_class",						\
358192095f7Smpi 	"DW_AT_artificial",						\
359192095f7Smpi 	"DW_AT_base_types",						\
360192095f7Smpi 	"DW_AT_calling_convention",					\
361192095f7Smpi 	"DW_AT_count",							\
362192095f7Smpi 	"DW_AT_data_member_location",					\
363192095f7Smpi 	"DW_AT_decl_column",						\
364192095f7Smpi 	"DW_AT_decl_file",						\
365192095f7Smpi 	"DW_AT_decl_line",						\
366192095f7Smpi 	"DW_AT_declaration",						\
367192095f7Smpi 	"DW_AT_discr_list",						\
368192095f7Smpi 	"DW_AT_encoding",						\
369192095f7Smpi 	"DW_AT_external",						\
370192095f7Smpi 	"DW_AT_frame_base",						\
371192095f7Smpi 	"DW_AT_friend",							\
372192095f7Smpi 	"DW_AT_identifier_case",					\
373192095f7Smpi 	"DW_AT_macro_info",						\
374192095f7Smpi 	"DW_AT_namelist_item",						\
375192095f7Smpi 	"DW_AT_priority",						\
376192095f7Smpi 	"DW_AT_segment",						\
377192095f7Smpi 	"DW_AT_specification",						\
378192095f7Smpi 	"DW_AT_static_link",						\
379192095f7Smpi 	"DW_AT_type",							\
380192095f7Smpi 	"DW_AT_use_location",						\
381192095f7Smpi 	"DW_AT_variable_parameter",					\
382192095f7Smpi 	"DW_AT_virtuality",						\
383192095f7Smpi 	"DW_AT_vtable_elem_location",					\
384192095f7Smpi 	"DW_AT_allocated",						\
385192095f7Smpi 	"DW_AT_associated",						\
386192095f7Smpi 	"DW_AT_data_location",						\
387192095f7Smpi 	"DW_AT_byte_stride",						\
388192095f7Smpi 	"DW_AT_entry_pc",						\
389192095f7Smpi 	"DW_AT_use_UTF8",						\
390192095f7Smpi 	"DW_AT_extension",						\
391192095f7Smpi 	"DW_AT_ranges",							\
392192095f7Smpi 	"DW_AT_trampoline",						\
393192095f7Smpi 	"DW_AT_call_column",						\
394192095f7Smpi 	"DW_AT_call_file",						\
395192095f7Smpi 	"DW_AT_call_line",						\
396192095f7Smpi 	"DW_AT_description",						\
397192095f7Smpi 	"DW_AT_binary_scale",						\
398192095f7Smpi 	"DW_AT_decimal_scale",						\
399192095f7Smpi 	"DW_AT_small",							\
400192095f7Smpi 	"DW_AT_decimal_sign",						\
401192095f7Smpi 	"DW_AT_digit_count",						\
402192095f7Smpi 	"DW_AT_picture_string",						\
403192095f7Smpi 	"DW_AT_mutable",						\
404192095f7Smpi 	"DW_AT_threads_scaled",						\
405192095f7Smpi 	"DW_AT_explicit",						\
406192095f7Smpi 	"DW_AT_object_pointer",						\
407192095f7Smpi 	"DW_AT_endianity",						\
408192095f7Smpi 	"DW_AT_elemental",						\
409192095f7Smpi 	"DW_AT_pure",							\
410192095f7Smpi 	"DW_AT_recursive",						\
411192095f7Smpi 	"DW_AT_signature",						\
412192095f7Smpi 	"DW_AT_main_subprogram",					\
413192095f7Smpi 	"DW_AT_data_bit_offset",					\
414192095f7Smpi 	"DW_AT_const_expr",						\
415192095f7Smpi 	"DW_AT_enum_class",						\
416192095f7Smpi 	"DW_AT_linkage_name",						\
417*283ced89Sclaudio 	[0x87 - 1] = "DW_AT_noreturn",					\
418192095f7Smpi 
419192095f7Smpi #define DW_FORM_addr			0x01
420192095f7Smpi #define DW_FORM_block2			0x03
421192095f7Smpi #define DW_FORM_block4			0x04
422192095f7Smpi #define DW_FORM_data2			0x05
423192095f7Smpi #define DW_FORM_data4			0x06
424192095f7Smpi #define DW_FORM_data8			0x07
425192095f7Smpi #define DW_FORM_string			0x08
426192095f7Smpi #define DW_FORM_block			0x09
427192095f7Smpi #define DW_FORM_block1			0x0a
428192095f7Smpi #define DW_FORM_data1			0x0b
429192095f7Smpi #define DW_FORM_flag			0x0c
430192095f7Smpi #define DW_FORM_sdata			0x0d
431192095f7Smpi #define DW_FORM_strp			0x0e
432192095f7Smpi #define DW_FORM_udata			0x0f
433192095f7Smpi #define DW_FORM_ref_addr		0x10
434192095f7Smpi #define DW_FORM_ref1			0x11
435192095f7Smpi #define DW_FORM_ref2			0x12
436192095f7Smpi #define DW_FORM_ref4			0x13
437192095f7Smpi #define DW_FORM_ref8			0x14
438192095f7Smpi #define DW_FORM_ref_udata		0x15
439192095f7Smpi #define DW_FORM_indirect		0x16
440192095f7Smpi #define DW_FORM_sec_offset		0x17
441192095f7Smpi #define DW_FORM_exprloc			0x18
442192095f7Smpi #define DW_FORM_flag_present		0x19
443192095f7Smpi #define DW_FORM_ref_sig8		0x20
444192095f7Smpi #define	DW_FORM_GNU_ref_alt		0x1f20
445192095f7Smpi #define	DW_FORM_GNU_strp_alt		0x1f21
446192095f7Smpi 
447192095f7Smpi #define DW_FORM_NAMES							\
448192095f7Smpi 	"DW_FORM_addr",							\
449192095f7Smpi 	NULL,								\
450192095f7Smpi 	"DW_FORM_block2",						\
451192095f7Smpi 	"DW_FORM_block4",						\
452192095f7Smpi 	"DW_FORM_data2",						\
453192095f7Smpi 	"DW_FORM_data4",						\
454192095f7Smpi 	"DW_FORM_data8",						\
455192095f7Smpi 	"DW_FORM_string",						\
456192095f7Smpi 	"DW_FORM_block",						\
457192095f7Smpi 	"DW_FORM_block1",						\
458192095f7Smpi 	"DW_FORM_data1",						\
459192095f7Smpi 	"DW_FORM_flag",							\
460192095f7Smpi 	"DW_FORM_sdata",						\
461192095f7Smpi 	"DW_FORM_strp",							\
462192095f7Smpi 	"DW_FORM_udata",						\
463192095f7Smpi 	"DW_FORM_ref_addr",						\
464192095f7Smpi 	"DW_FORM_ref1",							\
465192095f7Smpi 	"DW_FORM_ref2",							\
466192095f7Smpi 	"DW_FORM_ref4",							\
467192095f7Smpi 	"DW_FORM_ref8",							\
468192095f7Smpi 	"DW_FORM_ref_udata",						\
469192095f7Smpi 	"DW_FORM_indirect",						\
470192095f7Smpi 	"DW_FORM_sec_offset",						\
471192095f7Smpi 	"DW_FORM_exprloc",						\
472192095f7Smpi 	"DW_FORM_flag_present",						\
473192095f7Smpi 	NULL,								\
474192095f7Smpi 	NULL,								\
475192095f7Smpi 	NULL,								\
476192095f7Smpi 	NULL,								\
477192095f7Smpi 	NULL,								\
478192095f7Smpi 	NULL,								\
479192095f7Smpi 	"DW_FORM_ref_sig8",						\
480192095f7Smpi 
481192095f7Smpi #define DW_OP_addr			0x03
482192095f7Smpi #define DW_OP_deref			0x06
483192095f7Smpi #define DW_OP_const1u			0x08
484192095f7Smpi #define DW_OP_const1s			0x09
485192095f7Smpi #define DW_OP_const2u			0x0a
486192095f7Smpi #define DW_OP_const2s			0x0b
487192095f7Smpi #define DW_OP_const4u			0x0c
488192095f7Smpi #define DW_OP_const4s			0x0d
489192095f7Smpi #define DW_OP_const8u			0x0e
490192095f7Smpi #define DW_OP_const8s			0x0f
491192095f7Smpi #define DW_OP_constu			0x10
492192095f7Smpi #define DW_OP_consts			0x11
493192095f7Smpi #define DW_OP_dup			0x12
494192095f7Smpi #define DW_OP_drop			0x13
495192095f7Smpi #define DW_OP_over			0x14
496192095f7Smpi #define DW_OP_pick			0x15
497192095f7Smpi #define DW_OP_swap			0x16
498192095f7Smpi #define DW_OP_rot			0x17
499192095f7Smpi #define DW_OP_xderef			0x18
500192095f7Smpi #define DW_OP_abs			0x19
501192095f7Smpi #define DW_OP_and			0x1a
502192095f7Smpi #define DW_OP_div			0x1b
503192095f7Smpi #define DW_OP_minus			0x1c
504192095f7Smpi #define DW_OP_mod			0x1d
505192095f7Smpi #define DW_OP_mul			0x1e
506192095f7Smpi #define DW_OP_neg			0x1f
507192095f7Smpi #define DW_OP_not			0x20
508192095f7Smpi #define DW_OP_or			0x21
509192095f7Smpi #define DW_OP_plus			0x22
510192095f7Smpi #define DW_OP_plus_uconst		0x23
511192095f7Smpi #define DW_OP_shl			0x24
512192095f7Smpi #define DW_OP_shr			0x25
513192095f7Smpi #define DW_OP_shra			0x26
514192095f7Smpi #define DW_OP_xor			0x27
515192095f7Smpi #define DW_OP_bra			0x28
516192095f7Smpi #define DW_OP_eq			0x29
517192095f7Smpi #define DW_OP_ge			0x2a
518192095f7Smpi #define DW_OP_gt			0x2b
519192095f7Smpi #define DW_OP_le			0x2c
520192095f7Smpi #define DW_OP_lt			0x2d
521192095f7Smpi #define DW_OP_ne			0x2e
522192095f7Smpi #define DW_OP_skip			0x2f
523192095f7Smpi #define DW_OP_lit0			0x30
524192095f7Smpi #define DW_OP_lit1			0x31
525192095f7Smpi #define DW_OP_lit2			0x32
526192095f7Smpi #define DW_OP_lit3			0x33
527192095f7Smpi #define DW_OP_lit4			0x34
528192095f7Smpi #define DW_OP_lit5			0x35
529192095f7Smpi #define DW_OP_lit6			0x36
530192095f7Smpi #define DW_OP_lit7			0x37
531192095f7Smpi #define DW_OP_lit8			0x38
532192095f7Smpi #define DW_OP_lit9			0x39
533192095f7Smpi #define DW_OP_lit10			0x3a
534192095f7Smpi #define DW_OP_lit11			0x3b
535192095f7Smpi #define DW_OP_lit12			0x3c
536192095f7Smpi #define DW_OP_lit13			0x3d
537192095f7Smpi #define DW_OP_lit14			0x3e
538192095f7Smpi #define DW_OP_lit15			0x3f
539192095f7Smpi #define DW_OP_lit16			0x40
540192095f7Smpi #define DW_OP_lit17			0x41
541192095f7Smpi #define DW_OP_lit18			0x42
542192095f7Smpi #define DW_OP_lit19			0x43
543192095f7Smpi #define DW_OP_lit20			0x44
544192095f7Smpi #define DW_OP_lit21			0x45
545192095f7Smpi #define DW_OP_lit22			0x46
546192095f7Smpi #define DW_OP_lit23			0x47
547192095f7Smpi #define DW_OP_lit24			0x48
548192095f7Smpi #define DW_OP_lit25			0x49
549192095f7Smpi #define DW_OP_lit26			0x4a
550192095f7Smpi #define DW_OP_lit27			0x4b
551192095f7Smpi #define DW_OP_lit28			0x4c
552192095f7Smpi #define DW_OP_lit29			0x4d
553192095f7Smpi #define DW_OP_lit30			0x4e
554192095f7Smpi #define DW_OP_lit31			0x4f
555192095f7Smpi #define DW_OP_reg0			0x50
556192095f7Smpi #define DW_OP_reg1			0x51
557192095f7Smpi #define DW_OP_reg2			0x52
558192095f7Smpi #define DW_OP_reg3			0x53
559192095f7Smpi #define DW_OP_reg4			0x54
560192095f7Smpi #define DW_OP_reg5			0x55
561192095f7Smpi #define DW_OP_reg6			0x56
562192095f7Smpi #define DW_OP_reg7			0x57
563192095f7Smpi #define DW_OP_reg8			0x58
564192095f7Smpi #define DW_OP_reg9			0x59
565192095f7Smpi #define DW_OP_reg10			0x5a
566192095f7Smpi #define DW_OP_reg11			0x5b
567192095f7Smpi #define DW_OP_reg12			0x5c
568192095f7Smpi #define DW_OP_reg13			0x5d
569192095f7Smpi #define DW_OP_reg14			0x5e
570192095f7Smpi #define DW_OP_reg15			0x5f
571192095f7Smpi #define DW_OP_reg16			0x60
572192095f7Smpi #define DW_OP_reg17			0x61
573192095f7Smpi #define DW_OP_reg18			0x62
574192095f7Smpi #define DW_OP_reg19			0x63
575192095f7Smpi #define DW_OP_reg20			0x64
576192095f7Smpi #define DW_OP_reg21			0x65
577192095f7Smpi #define DW_OP_reg22			0x66
578192095f7Smpi #define DW_OP_reg23			0x67
579192095f7Smpi #define DW_OP_reg24			0x68
580192095f7Smpi #define DW_OP_reg25			0x69
581192095f7Smpi #define DW_OP_reg26			0x6a
582192095f7Smpi #define DW_OP_reg27			0x6b
583192095f7Smpi #define DW_OP_reg28			0x6c
584192095f7Smpi #define DW_OP_reg29			0x6d
585192095f7Smpi #define DW_OP_reg30			0x6e
586192095f7Smpi #define DW_OP_reg31			0x6f
587192095f7Smpi #define DW_OP_breg0			0x70
588192095f7Smpi #define DW_OP_breg1			0x71
589192095f7Smpi #define DW_OP_breg2			0x72
590192095f7Smpi #define DW_OP_breg3			0x73
591192095f7Smpi #define DW_OP_breg4			0x74
592192095f7Smpi #define DW_OP_breg5			0x75
593192095f7Smpi #define DW_OP_breg6			0x76
594192095f7Smpi #define DW_OP_breg7			0x77
595192095f7Smpi #define DW_OP_breg8			0x78
596192095f7Smpi #define DW_OP_breg9			0x79
597192095f7Smpi #define DW_OP_breg10			0x7a
598192095f7Smpi #define DW_OP_breg11			0x7b
599192095f7Smpi #define DW_OP_breg12			0x7c
600192095f7Smpi #define DW_OP_breg13			0x7d
601192095f7Smpi #define DW_OP_breg14			0x7e
602192095f7Smpi #define DW_OP_breg15			0x7f
603192095f7Smpi #define DW_OP_breg16			0x80
604192095f7Smpi #define DW_OP_breg17			0x81
605192095f7Smpi #define DW_OP_breg18			0x82
606192095f7Smpi #define DW_OP_breg19			0x83
607192095f7Smpi #define DW_OP_breg20			0x84
608192095f7Smpi #define DW_OP_breg21			0x85
609192095f7Smpi #define DW_OP_breg22			0x86
610192095f7Smpi #define DW_OP_breg23			0x87
611192095f7Smpi #define DW_OP_breg24			0x88
612192095f7Smpi #define DW_OP_breg25			0x89
613192095f7Smpi #define DW_OP_breg26			0x8a
614192095f7Smpi #define DW_OP_breg27			0x8b
615192095f7Smpi #define DW_OP_breg28			0x8c
616192095f7Smpi #define DW_OP_breg29			0x8d
617192095f7Smpi #define DW_OP_breg30			0x8e
618192095f7Smpi #define DW_OP_breg31			0x8f
619192095f7Smpi #define DW_OP_regx			0x90
620192095f7Smpi #define DW_OP_fbreg			0x91
621192095f7Smpi #define DW_OP_bregx			0x92
622192095f7Smpi #define DW_OP_piece			0x93
623192095f7Smpi #define DW_OP_deref_size		0x94
624192095f7Smpi #define DW_OP_xderef_size		0x95
625192095f7Smpi #define DW_OP_nop			0x96
626192095f7Smpi #define DW_OP_push_object_address	0x97
627192095f7Smpi #define DW_OP_call2			0x98
628192095f7Smpi #define DW_OP_call4			0x99
629192095f7Smpi #define DW_OP_call_ref			0x9a
630192095f7Smpi #define DW_OP_form_tls_address		0x9b
631192095f7Smpi #define DW_OP_call_frame_cfa		0x9c
632192095f7Smpi #define DW_OP_bit_piece			0x9d
633192095f7Smpi #define DW_OP_implicit_value		0x9e
634192095f7Smpi #define DW_OP_stack_value		0x9f
635192095f7Smpi #define DW_OP_lo_user		 	0xe0
636192095f7Smpi #define DW_OP_hi_user		 	0xff
637192095f7Smpi 
638192095f7Smpi /* GNU extensions. */
639192095f7Smpi #define	DW_OP_GNU_push_tls_address	0xe0
640192095f7Smpi #define	DW_OP_GNU_uninit		0xf0
641192095f7Smpi #define	DW_OP_GNU_encoded_addr		0xf1
642192095f7Smpi #define	DW_OP_GNU_implicit_pointer	0xf2
643192095f7Smpi #define	DW_OP_GNU_entry_value		0xf3
644192095f7Smpi #define	DW_OP_GNU_const_type		0xf4
645192095f7Smpi #define	DW_OP_GNU_regval_type		0xf5
646192095f7Smpi #define	DW_OP_GNU_deref_type		0xf6
647192095f7Smpi #define	DW_OP_GNU_convert		0xf7
648192095f7Smpi #define	DW_OP_GNU_reinterpret		0xf9
649192095f7Smpi #define	DW_OP_GNU_parameter_ref		0xfa
650192095f7Smpi #define	DW_OP_GNU_addr_index		0xfb
651192095f7Smpi #define	DW_OP_GNU_const_index		0xfc
652192095f7Smpi 
653192095f7Smpi #define DW_OP_NAMES							\
654192095f7Smpi 	NULL,								\
655192095f7Smpi 	NULL,								\
656192095f7Smpi 	"DW_OP_addr",							\
657192095f7Smpi 	NULL,								\
658192095f7Smpi 	NULL,								\
659192095f7Smpi 	"DW_OP_deref",							\
660192095f7Smpi 	NULL,								\
661192095f7Smpi 	"DW_OP_const1u",						\
662192095f7Smpi 	"DW_OP_const1s",						\
663192095f7Smpi 	"DW_OP_const2u",						\
664192095f7Smpi 	"DW_OP_const2s",						\
665192095f7Smpi 	"DW_OP_const4u",						\
666192095f7Smpi 	"DW_OP_const4s",						\
667192095f7Smpi 	"DW_OP_const8u",						\
668192095f7Smpi 	"DW_OP_const8s",						\
669192095f7Smpi 	"DW_OP_constu",							\
670192095f7Smpi 	"DW_OP_consts",							\
671192095f7Smpi 	"DW_OP_dup",							\
672192095f7Smpi 	"DW_OP_drop",							\
673192095f7Smpi 	"DW_OP_over",							\
674192095f7Smpi 	"DW_OP_pick",							\
675192095f7Smpi 	"DW_OP_swap",							\
676192095f7Smpi 	"DW_OP_rot",							\
677192095f7Smpi 	"DW_OP_xderef",							\
678192095f7Smpi 	"DW_OP_abs",							\
679192095f7Smpi 	"DW_OP_and",							\
680192095f7Smpi 	"DW_OP_div",							\
681192095f7Smpi 	"DW_OP_minus",							\
682192095f7Smpi 	"DW_OP_mod",							\
683192095f7Smpi 	"DW_OP_mul",							\
684192095f7Smpi 	"DW_OP_neg",							\
685192095f7Smpi 	"DW_OP_not",							\
686192095f7Smpi 	"DW_OP_or",							\
687192095f7Smpi 	"DW_OP_plus",							\
688192095f7Smpi 	"DW_OP_plus_uconst",						\
689192095f7Smpi 	"DW_OP_shl",							\
690192095f7Smpi 	"DW_OP_shr",							\
691192095f7Smpi 	"DW_OP_shra",							\
692192095f7Smpi 	"DW_OP_xor",							\
693192095f7Smpi 	"DW_OP_bra",							\
694192095f7Smpi 	"DW_OP_eq",							\
695192095f7Smpi 	"DW_OP_ge",							\
696192095f7Smpi 	"DW_OP_gt",							\
697192095f7Smpi 	"DW_OP_le",							\
698192095f7Smpi 	"DW_OP_lt",							\
699192095f7Smpi 	"DW_OP_ne",							\
700192095f7Smpi 	"DW_OP_skip",							\
701192095f7Smpi 	"DW_OP_lit0",							\
702192095f7Smpi 	"DW_OP_lit1",							\
703192095f7Smpi 	"DW_OP_lit2",							\
704192095f7Smpi 	"DW_OP_lit3",							\
705192095f7Smpi 	"DW_OP_lit4",							\
706192095f7Smpi 	"DW_OP_lit5",							\
707192095f7Smpi 	"DW_OP_lit6",							\
708192095f7Smpi 	"DW_OP_lit7",							\
709192095f7Smpi 	"DW_OP_lit8",							\
710192095f7Smpi 	"DW_OP_lit9",							\
711192095f7Smpi 	"DW_OP_lit10",							\
712192095f7Smpi 	"DW_OP_lit11",							\
713192095f7Smpi 	"DW_OP_lit12",							\
714192095f7Smpi 	"DW_OP_lit13",							\
715192095f7Smpi 	"DW_OP_lit14",							\
716192095f7Smpi 	"DW_OP_lit15",							\
717192095f7Smpi 	"DW_OP_lit16",							\
718192095f7Smpi 	"DW_OP_lit17",							\
719192095f7Smpi 	"DW_OP_lit18",							\
720192095f7Smpi 	"DW_OP_lit19",							\
721192095f7Smpi 	"DW_OP_lit20",							\
722192095f7Smpi 	"DW_OP_lit21",							\
723192095f7Smpi 	"DW_OP_lit22",							\
724192095f7Smpi 	"DW_OP_lit23",							\
725192095f7Smpi 	"DW_OP_lit24",							\
726192095f7Smpi 	"DW_OP_lit25",							\
727192095f7Smpi 	"DW_OP_lit26",							\
728192095f7Smpi 	"DW_OP_lit27",							\
729192095f7Smpi 	"DW_OP_lit28",							\
730192095f7Smpi 	"DW_OP_lit29",							\
731192095f7Smpi 	"DW_OP_lit30",							\
732192095f7Smpi 	"DW_OP_lit31",							\
733192095f7Smpi 	"DW_OP_reg0",							\
734192095f7Smpi 	"DW_OP_reg1",							\
735192095f7Smpi 	"DW_OP_reg2",							\
736192095f7Smpi 	"DW_OP_reg3",							\
737192095f7Smpi 	"DW_OP_reg4",							\
738192095f7Smpi 	"DW_OP_reg5",							\
739192095f7Smpi 	"DW_OP_reg6",							\
740192095f7Smpi 	"DW_OP_reg7",							\
741192095f7Smpi 	"DW_OP_reg8",							\
742192095f7Smpi 	"DW_OP_reg9",							\
743192095f7Smpi 	"DW_OP_reg10",							\
744192095f7Smpi 	"DW_OP_reg11",							\
745192095f7Smpi 	"DW_OP_reg12",							\
746192095f7Smpi 	"DW_OP_reg13",							\
747192095f7Smpi 	"DW_OP_reg14",							\
748192095f7Smpi 	"DW_OP_reg15",							\
749192095f7Smpi 	"DW_OP_reg16",							\
750192095f7Smpi 	"DW_OP_reg17",							\
751192095f7Smpi 	"DW_OP_reg18",							\
752192095f7Smpi 	"DW_OP_reg19",							\
753192095f7Smpi 	"DW_OP_reg20",							\
754192095f7Smpi 	"DW_OP_reg21",							\
755192095f7Smpi 	"DW_OP_reg22",							\
756192095f7Smpi 	"DW_OP_reg23",							\
757192095f7Smpi 	"DW_OP_reg24",							\
758192095f7Smpi 	"DW_OP_reg25",							\
759192095f7Smpi 	"DW_OP_reg26",							\
760192095f7Smpi 	"DW_OP_reg27",							\
761192095f7Smpi 	"DW_OP_reg28",							\
762192095f7Smpi 	"DW_OP_reg29",							\
763192095f7Smpi 	"DW_OP_reg30",							\
764192095f7Smpi 	"DW_OP_reg31",							\
765192095f7Smpi 	"DW_OP_breg0",							\
766192095f7Smpi 	"DW_OP_breg1",							\
767192095f7Smpi 	"DW_OP_breg2",							\
768192095f7Smpi 	"DW_OP_breg3",							\
769192095f7Smpi 	"DW_OP_breg4",							\
770192095f7Smpi 	"DW_OP_breg5",							\
771192095f7Smpi 	"DW_OP_breg6",							\
772192095f7Smpi 	"DW_OP_breg7",							\
773192095f7Smpi 	"DW_OP_breg8",							\
774192095f7Smpi 	"DW_OP_breg9",							\
775192095f7Smpi 	"DW_OP_breg10",							\
776192095f7Smpi 	"DW_OP_breg11",							\
777192095f7Smpi 	"DW_OP_breg12",							\
778192095f7Smpi 	"DW_OP_breg13",							\
779192095f7Smpi 	"DW_OP_breg14",							\
780192095f7Smpi 	"DW_OP_breg15",							\
781192095f7Smpi 	"DW_OP_breg16",							\
782192095f7Smpi 	"DW_OP_breg17",							\
783192095f7Smpi 	"DW_OP_breg18",							\
784192095f7Smpi 	"DW_OP_breg19",							\
785192095f7Smpi 	"DW_OP_breg20",							\
786192095f7Smpi 	"DW_OP_breg21",							\
787192095f7Smpi 	"DW_OP_breg22",							\
788192095f7Smpi 	"DW_OP_breg23",							\
789192095f7Smpi 	"DW_OP_breg24",							\
790192095f7Smpi 	"DW_OP_breg25",							\
791192095f7Smpi 	"DW_OP_breg26",							\
792192095f7Smpi 	"DW_OP_breg27",							\
793192095f7Smpi 	"DW_OP_breg28",							\
794192095f7Smpi 	"DW_OP_breg29",							\
795192095f7Smpi 	"DW_OP_breg30",							\
796192095f7Smpi 	"DW_OP_breg31",							\
797192095f7Smpi 	"DW_OP_regx",							\
798192095f7Smpi 	"DW_OP_fbreg",							\
799192095f7Smpi 	"DW_OP_bregx",							\
800192095f7Smpi 	"DW_OP_piece",							\
801192095f7Smpi 	"DW_OP_deref_size",						\
802192095f7Smpi 	"DW_OP_xderef_size",						\
803192095f7Smpi 	"DW_OP_nop",							\
804192095f7Smpi 	"DW_OP_push_object_address",					\
805192095f7Smpi 	"DW_OP_call2",							\
806192095f7Smpi 	"DW_OP_call4",							\
807192095f7Smpi 	"DW_OP_call_ref",						\
808192095f7Smpi 	"DW_OP_form_tls_address",					\
809192095f7Smpi 	"DW_OP_call_frame_cfa",						\
810192095f7Smpi 	"DW_OP_bit_piece",						\
811192095f7Smpi 	"DW_OP_implicit_value",						\
812192095f7Smpi 	"DW_OP_stack_value",						\
813192095f7Smpi 
814192095f7Smpi #define DW_ATE_address		 	0x1
815192095f7Smpi #define DW_ATE_boolean		 	0x2
816192095f7Smpi #define DW_ATE_complex_float	 	0x3
817192095f7Smpi #define DW_ATE_float		 	0x4
818192095f7Smpi #define DW_ATE_signed		 	0x5
819192095f7Smpi #define DW_ATE_signed_char	 	0x6
820192095f7Smpi #define DW_ATE_unsigned		 	0x7
821192095f7Smpi #define DW_ATE_unsigned_char	 	0x8
822192095f7Smpi #define DW_ATE_imaginary_float	 	0x9
823192095f7Smpi #define DW_ATE_packed_decimal	 	0xa
824192095f7Smpi #define DW_ATE_numeric_string	 	0xb
825192095f7Smpi #define DW_ATE_edited		 	0xc
826192095f7Smpi #define DW_ATE_signed_fixed	 	0xd
827192095f7Smpi #define DW_ATE_unsigned_fixed	 	0xe
828192095f7Smpi #define DW_ATE_decimal_float	 	0xf
829192095f7Smpi #define DW_ATE_lo_user		 	0x80
830192095f7Smpi #define DW_ATE_hi_user		 	0xff
831192095f7Smpi 
832192095f7Smpi #define DW_ACCESS_public		0x01
833192095f7Smpi #define DW_ACCESS_protected	 	0x02
834192095f7Smpi #define DW_ACCESS_private	 	0x03
835192095f7Smpi 
836192095f7Smpi #define	DW_END_default			0x00
837192095f7Smpi #define	DW_END_big			0x01
838192095f7Smpi #define	DW_END_little			0x02
839192095f7Smpi #define	DW_END_lo_user			0x40
840192095f7Smpi #define	DW_END_high_user		0xff
841192095f7Smpi 
842192095f7Smpi #define DW_VIS_local		 	0x01
843192095f7Smpi #define DW_VIS_exported		 	0x02
844192095f7Smpi #define DW_VIS_qualified		0x03
845192095f7Smpi 
846192095f7Smpi #define DW_VIRTUALITY_none	 	0x00
847192095f7Smpi #define DW_VIRTUALITY_virtual	 	0x01
848192095f7Smpi #define DW_VIRTUALITY_pure_virtual 	0x02
849192095f7Smpi 
850192095f7Smpi #define DW_LANG_C89		 	0x0001
851192095f7Smpi #define DW_LANG_C		 	0x0002
852192095f7Smpi #define DW_LANG_Ada83		 	0x0003
853192095f7Smpi #define DW_LANG_C_plus_plus	 	0x0004
854192095f7Smpi #define DW_LANG_Cobol74		 	0x0005
855192095f7Smpi #define DW_LANG_Cobol85		 	0x0006
856192095f7Smpi #define DW_LANG_Fortran77	 	0x0007
857192095f7Smpi #define DW_LANG_Fortran90	 	0x0008
858192095f7Smpi #define DW_LANG_Pascal83		0x0009
859192095f7Smpi #define DW_LANG_Modula2		 	0x000a
860192095f7Smpi #define DW_LANG_Java		 	0x000b
861192095f7Smpi #define DW_LANG_C99		 	0x000c
862192095f7Smpi #define DW_LANG_Ada95		 	0x000d
863192095f7Smpi #define DW_LANG_Fortran95	 	0x000e
864192095f7Smpi #define DW_LANG_PLI		 	0x000f
865192095f7Smpi #define DW_LANG_ObjC		 	0x0010
866192095f7Smpi #define DW_LANG_ObjC_plus_plus	 	0x0011
867192095f7Smpi #define DW_LANG_UPC		 	0x0012
868192095f7Smpi #define DW_LANG_D		 	0x0013
869192095f7Smpi #define DW_LANG_lo_user		 	0x8000
870192095f7Smpi #define DW_LANG_hi_user		 	0xffff
871192095f7Smpi 
872192095f7Smpi #define DW_ID_case_sensitive	 	0x00
873192095f7Smpi #define DW_ID_up_case		 	0x01
874192095f7Smpi #define DW_ID_down_case		 	0x02
875192095f7Smpi #define DW_ID_case_insensitive	 	0x03
876192095f7Smpi 
877192095f7Smpi #define DW_CC_normal		 	0x01
878192095f7Smpi #define DW_CC_program		 	0x02
879192095f7Smpi #define DW_CC_nocall		 	0x03
880192095f7Smpi #define DW_CC_lo_user		 	0x40
881192095f7Smpi #define DW_CC_hi_user		 	0xff
882192095f7Smpi 
883192095f7Smpi #define DW_INL_not_inlined	 	0x00
884192095f7Smpi #define DW_INL_inlined		 	0x01
885192095f7Smpi #define DW_INL_declared_not_inlined 	0x02
886192095f7Smpi #define DW_INL_declared_inlined	 	0x03
887192095f7Smpi 
888192095f7Smpi #define DW_ORD_row_major		0x00
889192095f7Smpi #define DW_ORD_col_major		0x01
890192095f7Smpi 
891192095f7Smpi #define	DW_DS_unsigned			0x01
892192095f7Smpi #define	DW_DS_leading_overpunch		0x02
893192095f7Smpi #define	DW_DS_trailing_overpunch	0x03
894192095f7Smpi #define	DW_DS_leading_separate		0x04
895192095f7Smpi #define	DW_DS_trailing_separate		0x05
896192095f7Smpi 
897192095f7Smpi #define DW_DSC_label		 	0x00
898192095f7Smpi #define DW_DSC_range		 	0x01
899192095f7Smpi 
900192095f7Smpi #define DW_LNS_copy		 	0x01
901192095f7Smpi #define DW_LNS_advance_pc	 	0x02
902192095f7Smpi #define DW_LNS_advance_line	 	0x03
903192095f7Smpi #define DW_LNS_set_file		 	0x04
904192095f7Smpi #define DW_LNS_set_column	 	0x05
905192095f7Smpi #define DW_LNS_negate_stmt	 	0x06
906192095f7Smpi #define DW_LNS_set_basic_block	 	0x07
907192095f7Smpi #define DW_LNS_const_add_pc	 	0x08
908192095f7Smpi #define DW_LNS_fixed_advance_pc	 	0x09
909192095f7Smpi #define DW_LNS_set_prologue_end	 	0x0a
910192095f7Smpi #define DW_LNS_set_epilogue_begin 	0x0b
911192095f7Smpi #define DW_LNS_set_isa		 	0x0c
912192095f7Smpi 
913192095f7Smpi #define DW_LNE_end_sequence	 	0x01
914192095f7Smpi #define DW_LNE_set_address	 	0x02
915192095f7Smpi #define DW_LNE_define_file	 	0x03
916192095f7Smpi #define DW_LNE_lo_user		 	0x80
917192095f7Smpi #define DW_LNE_hi_user		 	0xff
918192095f7Smpi 
919192095f7Smpi #define DW_MACINFO_define	 	0x01
920192095f7Smpi #define DW_MACINFO_undef		0x02
921192095f7Smpi #define DW_MACINFO_start_file	 	0x03
922192095f7Smpi #define DW_MACINFO_end_file	 	0x04
923192095f7Smpi #define DW_MACINFO_vendor_ext	 	0xff
924192095f7Smpi 
925192095f7Smpi #define DW_CFA_advance_loc		0x40
926192095f7Smpi #define DW_CFA_offset	 		0x80
927192095f7Smpi #define DW_CFA_restore	 		0xc0
928192095f7Smpi #define DW_CFA_extended			0
929192095f7Smpi 
930192095f7Smpi #define DW_CFA_nop	 		0x00
931192095f7Smpi #define DW_CFA_set_loc	 		0x01
932192095f7Smpi #define DW_CFA_advance_loc1 		0x02
933192095f7Smpi #define DW_CFA_advance_loc2 		0x03
934192095f7Smpi #define DW_CFA_advance_loc4 		0x04
935192095f7Smpi #define DW_CFA_offset_extended 		0x05
936192095f7Smpi #define DW_CFA_restore_extended 	0x06
937192095f7Smpi #define DW_CFA_undefined		0x07
938192095f7Smpi #define DW_CFA_same_value 		0x08
939192095f7Smpi #define DW_CFA_register	 		0x09
940192095f7Smpi #define DW_CFA_remember_state 		0x0a
941192095f7Smpi #define DW_CFA_restore_state 		0x0b
942192095f7Smpi #define DW_CFA_def_cfa	 		0x0c
943192095f7Smpi #define DW_CFA_def_cfa_register 	0x0d
944192095f7Smpi #define DW_CFA_def_cfa_offset 		0x0e
945192095f7Smpi #define DW_CFA_def_cfa_expression 	0x0f
946192095f7Smpi #define DW_CFA_expression 		0x10
947192095f7Smpi #define DW_CFA_offset_extended_sf 	0x11
948192095f7Smpi #define DW_CFA_def_cfa_sf 		0x12
949192095f7Smpi #define DW_CFA_def_cfa_offset_sf 	0x13
950192095f7Smpi #define DW_CFA_val_offset		0x14
951192095f7Smpi #define DW_CFA_val_offset_sf 		0x15
952192095f7Smpi #define DW_CFA_val_expression 		0x16
953192095f7Smpi #define DW_CFA_lo_user	 		0x1c
954192095f7Smpi #define DW_CFA_high_user	 	0x3f
955192095f7Smpi 
956192095f7Smpi /*
957192095f7Smpi  * LSB(Linux Standard Base) extension to DWARF2.
958192095f7Smpi  */
959192095f7Smpi 
960192095f7Smpi #define	DW_EH_PE_absptr			0x00
961192095f7Smpi #define	DW_EH_PE_uleb128		0x01
962192095f7Smpi #define	DW_EH_PE_udata2			0x02
963192095f7Smpi #define	DW_EH_PE_udata4			0x03
964192095f7Smpi #define	DW_EH_PE_udata8			0x04
965192095f7Smpi #define	DW_EH_PE_sleb128		0x09
966192095f7Smpi #define	DW_EH_PE_sdata2			0x0a
967192095f7Smpi #define	DW_EH_PE_sdata4			0x0b
968192095f7Smpi #define	DW_EH_PE_sdata8			0x0c
969192095f7Smpi #define	DW_EH_PE_pcrel			0x10
970192095f7Smpi #define	DW_EH_PE_textrel		0x20
971192095f7Smpi #define	DW_EH_PE_datarel		0x30
972192095f7Smpi #define	DW_EH_PE_funcrel		0x40
973192095f7Smpi #define	DW_EH_PE_aligned		0x50
974192095f7Smpi #define	DW_EH_PE_omit			0xff
975192095f7Smpi 
976192095f7Smpi #endif /* !_DWARF_H_ */
977