• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1//===- llvm/Support/Dwarf.def - Dwarf definitions ---------------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// Macros for running through Dwarf enumerators.
11//
12//===----------------------------------------------------------------------===//
13
14// TODO: Add other DW-based macros.
15#if !(                                                                         \
16    defined HANDLE_DW_TAG || defined HANDLE_DW_AT || defined HANDLE_DW_FORM || \
17    defined HANDLE_DW_OP || defined HANDLE_DW_LANG || defined HANDLE_DW_ATE || \
18    defined HANDLE_DW_VIRTUALITY || defined HANDLE_DW_DEFAULTED ||             \
19    defined HANDLE_DW_CC || defined HANDLE_DW_LNS || defined HANDLE_DW_LNE ||  \
20    defined HANDLE_DW_LNCT || defined HANDLE_DW_MACRO ||                       \
21    defined HANDLE_DW_RLE || defined HANDLE_DW_CFA ||                          \
22    defined HANDLE_DW_APPLE_PROPERTY || defined HANDLE_DW_UT ||                \
23    defined HANDLE_DWARF_SECTION || defined HANDLE_DW_IDX)
24#error "Missing macro definition of HANDLE_DW*"
25#endif
26
27#ifndef HANDLE_DW_TAG
28#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR)
29#endif
30
31#ifndef HANDLE_DW_AT
32#define HANDLE_DW_AT(ID, NAME, VERSION, VENDOR)
33#endif
34
35#ifndef HANDLE_DW_FORM
36#define HANDLE_DW_FORM(ID, NAME, VERSION, VENDOR)
37#endif
38
39#ifndef HANDLE_DW_OP
40#define HANDLE_DW_OP(ID, NAME, VERSION, VENDOR)
41#endif
42
43#ifndef HANDLE_DW_LANG
44#define HANDLE_DW_LANG(ID, NAME, VERSION, VENDOR)
45#endif
46
47#ifndef HANDLE_DW_ATE
48#define HANDLE_DW_ATE(ID, NAME, VERSION, VENDOR)
49#endif
50
51#ifndef HANDLE_DW_VIRTUALITY
52#define HANDLE_DW_VIRTUALITY(ID, NAME)
53#endif
54
55#ifndef HANDLE_DW_DEFAULTED
56#define HANDLE_DW_DEFAULTED(ID, NAME)
57#endif
58
59#ifndef HANDLE_DW_CC
60#define HANDLE_DW_CC(ID, NAME)
61#endif
62
63#ifndef HANDLE_DW_LNS
64#define HANDLE_DW_LNS(ID, NAME)
65#endif
66
67#ifndef HANDLE_DW_LNE
68#define HANDLE_DW_LNE(ID, NAME)
69#endif
70
71#ifndef HANDLE_DW_LNCT
72#define HANDLE_DW_LNCT(ID, NAME)
73#endif
74
75#ifndef HANDLE_DW_MACRO
76#define HANDLE_DW_MACRO(ID, NAME)
77#endif
78
79#ifndef HANDLE_DW_RLE
80#define HANDLE_DW_RLE(ID, NAME)
81#endif
82
83#ifndef HANDLE_DW_CFA
84#define HANDLE_DW_CFA(ID, NAME)
85#endif
86
87#ifndef HANDLE_DW_APPLE_PROPERTY
88#define HANDLE_DW_APPLE_PROPERTY(ID, NAME)
89#endif
90
91#ifndef HANDLE_DW_UT
92#define HANDLE_DW_UT(ID, NAME)
93#endif
94
95#ifndef HANDLE_DWARF_SECTION
96#define HANDLE_DWARF_SECTION(ENUM_NAME, ELF_NAME, CMDLINE_NAME)
97#endif
98
99#ifndef HANDLE_DW_IDX
100#define HANDLE_DW_IDX(ID, NAME)
101#endif
102
103HANDLE_DW_TAG(0x0000, null, 2, DWARF)
104HANDLE_DW_TAG(0x0001, array_type, 2, DWARF)
105HANDLE_DW_TAG(0x0002, class_type, 2, DWARF)
106HANDLE_DW_TAG(0x0003, entry_point, 2, DWARF)
107HANDLE_DW_TAG(0x0004, enumeration_type, 2, DWARF)
108HANDLE_DW_TAG(0x0005, formal_parameter, 2, DWARF)
109HANDLE_DW_TAG(0x0008, imported_declaration, 2, DWARF)
110HANDLE_DW_TAG(0x000a, label, 2, DWARF)
111HANDLE_DW_TAG(0x000b, lexical_block, 2, DWARF)
112HANDLE_DW_TAG(0x000d, member, 2, DWARF)
113HANDLE_DW_TAG(0x000f, pointer_type, 2, DWARF)
114HANDLE_DW_TAG(0x0010, reference_type, 2, DWARF)
115HANDLE_DW_TAG(0x0011, compile_unit, 2, DWARF)
116HANDLE_DW_TAG(0x0012, string_type, 2, DWARF)
117HANDLE_DW_TAG(0x0013, structure_type, 2, DWARF)
118HANDLE_DW_TAG(0x0015, subroutine_type, 2, DWARF)
119HANDLE_DW_TAG(0x0016, typedef, 2, DWARF)
120HANDLE_DW_TAG(0x0017, union_type, 2, DWARF)
121HANDLE_DW_TAG(0x0018, unspecified_parameters, 2, DWARF)
122HANDLE_DW_TAG(0x0019, variant, 2, DWARF)
123HANDLE_DW_TAG(0x001a, common_block, 2, DWARF)
124HANDLE_DW_TAG(0x001b, common_inclusion, 2, DWARF)
125HANDLE_DW_TAG(0x001c, inheritance, 2, DWARF)
126HANDLE_DW_TAG(0x001d, inlined_subroutine, 2, DWARF)
127HANDLE_DW_TAG(0x001e, module, 2, DWARF)
128HANDLE_DW_TAG(0x001f, ptr_to_member_type, 2, DWARF)
129HANDLE_DW_TAG(0x0020, set_type, 2, DWARF)
130HANDLE_DW_TAG(0x0021, subrange_type, 2, DWARF)
131HANDLE_DW_TAG(0x0022, with_stmt, 2, DWARF)
132HANDLE_DW_TAG(0x0023, access_declaration, 2, DWARF)
133HANDLE_DW_TAG(0x0024, base_type, 2, DWARF)
134HANDLE_DW_TAG(0x0025, catch_block, 2, DWARF)
135HANDLE_DW_TAG(0x0026, const_type, 2, DWARF)
136HANDLE_DW_TAG(0x0027, constant, 2, DWARF)
137HANDLE_DW_TAG(0x0028, enumerator, 2, DWARF)
138HANDLE_DW_TAG(0x0029, file_type, 2, DWARF)
139HANDLE_DW_TAG(0x002a, friend, 2, DWARF)
140HANDLE_DW_TAG(0x002b, namelist, 2, DWARF)
141HANDLE_DW_TAG(0x002c, namelist_item, 2, DWARF)
142HANDLE_DW_TAG(0x002d, packed_type, 2, DWARF)
143HANDLE_DW_TAG(0x002e, subprogram, 2, DWARF)
144HANDLE_DW_TAG(0x002f, template_type_parameter, 2, DWARF)
145HANDLE_DW_TAG(0x0030, template_value_parameter, 2, DWARF)
146HANDLE_DW_TAG(0x0031, thrown_type, 2, DWARF)
147HANDLE_DW_TAG(0x0032, try_block, 2, DWARF)
148HANDLE_DW_TAG(0x0033, variant_part, 2, DWARF)
149HANDLE_DW_TAG(0x0034, variable, 2, DWARF)
150HANDLE_DW_TAG(0x0035, volatile_type, 2, DWARF)
151// New in DWARF v3:
152HANDLE_DW_TAG(0x0036, dwarf_procedure, 3, DWARF)
153HANDLE_DW_TAG(0x0037, restrict_type, 3, DWARF)
154HANDLE_DW_TAG(0x0038, interface_type, 3, DWARF)
155HANDLE_DW_TAG(0x0039, namespace, 3, DWARF)
156HANDLE_DW_TAG(0x003a, imported_module, 3, DWARF)
157HANDLE_DW_TAG(0x003b, unspecified_type, 3, DWARF)
158HANDLE_DW_TAG(0x003c, partial_unit, 3, DWARF)
159HANDLE_DW_TAG(0x003d, imported_unit, 3, DWARF)
160HANDLE_DW_TAG(0x003f, condition, 3, DWARF)
161HANDLE_DW_TAG(0x0040, shared_type, 3, DWARF)
162// New in DWARF v4:
163HANDLE_DW_TAG(0x0041, type_unit, 4, DWARF)
164HANDLE_DW_TAG(0x0042, rvalue_reference_type, 4, DWARF)
165HANDLE_DW_TAG(0x0043, template_alias, 4, DWARF)
166// New in DWARF v5:
167HANDLE_DW_TAG(0x0044, coarray_type, 5, DWARF)
168HANDLE_DW_TAG(0x0045, generic_subrange, 5, DWARF)
169HANDLE_DW_TAG(0x0046, dynamic_type, 5, DWARF)
170HANDLE_DW_TAG(0x0047, atomic_type, 5, DWARF)
171HANDLE_DW_TAG(0x0048, call_site, 5, DWARF)
172HANDLE_DW_TAG(0x0049, call_site_parameter, 5, DWARF)
173HANDLE_DW_TAG(0x004a, skeleton_unit, 5, DWARF)
174HANDLE_DW_TAG(0x004b, immutable_type, 5, DWARF)
175// Vendor extensions:
176HANDLE_DW_TAG(0x4081, MIPS_loop, 0, MIPS)
177HANDLE_DW_TAG(0x4101, format_label, 0, GNU)
178HANDLE_DW_TAG(0x4102, function_template, 0, GNU)
179HANDLE_DW_TAG(0x4103, class_template, 0, GNU)
180HANDLE_DW_TAG(0x4106, GNU_template_template_param, 0, GNU)
181HANDLE_DW_TAG(0x4107, GNU_template_parameter_pack, 0, GNU)
182HANDLE_DW_TAG(0x4108, GNU_formal_parameter_pack, 0, GNU)
183HANDLE_DW_TAG(0x4109, GNU_call_site, 0, GNU)
184HANDLE_DW_TAG(0x410a, GNU_call_site_parameter, 0, GNU)
185HANDLE_DW_TAG(0x4200, APPLE_property, 0, APPLE)
186HANDLE_DW_TAG(0xb000, BORLAND_property, 0, BORLAND)
187HANDLE_DW_TAG(0xb001, BORLAND_Delphi_string, 0, BORLAND)
188HANDLE_DW_TAG(0xb002, BORLAND_Delphi_dynamic_array, 0, BORLAND)
189HANDLE_DW_TAG(0xb003, BORLAND_Delphi_set, 0, BORLAND)
190HANDLE_DW_TAG(0xb004, BORLAND_Delphi_variant, 0, BORLAND)
191
192// Attributes.
193HANDLE_DW_AT(0x01, sibling, 2, DWARF)
194HANDLE_DW_AT(0x02, location, 2, DWARF)
195HANDLE_DW_AT(0x03, name, 2, DWARF)
196HANDLE_DW_AT(0x09, ordering, 2, DWARF)
197HANDLE_DW_AT(0x0b, byte_size, 2, DWARF)
198HANDLE_DW_AT(0x0c, bit_offset, 2, DWARF)
199HANDLE_DW_AT(0x0d, bit_size, 2, DWARF)
200HANDLE_DW_AT(0x10, stmt_list, 2, DWARF)
201HANDLE_DW_AT(0x11, low_pc, 2, DWARF)
202HANDLE_DW_AT(0x12, high_pc, 2, DWARF)
203HANDLE_DW_AT(0x13, language, 2, DWARF)
204HANDLE_DW_AT(0x15, discr, 2, DWARF)
205HANDLE_DW_AT(0x16, discr_value, 2, DWARF)
206HANDLE_DW_AT(0x17, visibility, 2, DWARF)
207HANDLE_DW_AT(0x18, import, 2, DWARF)
208HANDLE_DW_AT(0x19, string_length, 2, DWARF)
209HANDLE_DW_AT(0x1a, common_reference, 2, DWARF)
210HANDLE_DW_AT(0x1b, comp_dir, 2, DWARF)
211HANDLE_DW_AT(0x1c, const_value, 2, DWARF)
212HANDLE_DW_AT(0x1d, containing_type, 2, DWARF)
213HANDLE_DW_AT(0x1e, default_value, 2, DWARF)
214HANDLE_DW_AT(0x20, inline, 2, DWARF)
215HANDLE_DW_AT(0x21, is_optional, 2, DWARF)
216HANDLE_DW_AT(0x22, lower_bound, 2, DWARF)
217HANDLE_DW_AT(0x25, producer, 2, DWARF)
218HANDLE_DW_AT(0x27, prototyped, 2, DWARF)
219HANDLE_DW_AT(0x2a, return_addr, 2, DWARF)
220HANDLE_DW_AT(0x2c, start_scope, 2, DWARF)
221HANDLE_DW_AT(0x2e, bit_stride, 2, DWARF)
222HANDLE_DW_AT(0x2f, upper_bound, 2, DWARF)
223HANDLE_DW_AT(0x31, abstract_origin, 2, DWARF)
224HANDLE_DW_AT(0x32, accessibility, 2, DWARF)
225HANDLE_DW_AT(0x33, address_class, 2, DWARF)
226HANDLE_DW_AT(0x34, artificial, 2, DWARF)
227HANDLE_DW_AT(0x35, base_types, 2, DWARF)
228HANDLE_DW_AT(0x36, calling_convention, 2, DWARF)
229HANDLE_DW_AT(0x37, count, 2, DWARF)
230HANDLE_DW_AT(0x38, data_member_location, 2, DWARF)
231HANDLE_DW_AT(0x39, decl_column, 2, DWARF)
232HANDLE_DW_AT(0x3a, decl_file, 2, DWARF)
233HANDLE_DW_AT(0x3b, decl_line, 2, DWARF)
234HANDLE_DW_AT(0x3c, declaration, 2, DWARF)
235HANDLE_DW_AT(0x3d, discr_list, 2, DWARF)
236HANDLE_DW_AT(0x3e, encoding, 2, DWARF)
237HANDLE_DW_AT(0x3f, external, 2, DWARF)
238HANDLE_DW_AT(0x40, frame_base, 2, DWARF)
239HANDLE_DW_AT(0x41, friend, 2, DWARF)
240HANDLE_DW_AT(0x42, identifier_case, 2, DWARF)
241HANDLE_DW_AT(0x43, macro_info, 2, DWARF)
242HANDLE_DW_AT(0x44, namelist_item, 2, DWARF)
243HANDLE_DW_AT(0x45, priority, 2, DWARF)
244HANDLE_DW_AT(0x46, segment, 2, DWARF)
245HANDLE_DW_AT(0x47, specification, 2, DWARF)
246HANDLE_DW_AT(0x48, static_link, 2, DWARF)
247HANDLE_DW_AT(0x49, type, 2, DWARF)
248HANDLE_DW_AT(0x4a, use_location, 2, DWARF)
249HANDLE_DW_AT(0x4b, variable_parameter, 2, DWARF)
250HANDLE_DW_AT(0x4c, virtuality, 2, DWARF)
251HANDLE_DW_AT(0x4d, vtable_elem_location, 2, DWARF)
252// New in DWARF v3:
253HANDLE_DW_AT(0x4e, allocated, 3, DWARF)
254HANDLE_DW_AT(0x4f, associated, 3, DWARF)
255HANDLE_DW_AT(0x50, data_location, 3, DWARF)
256HANDLE_DW_AT(0x51, byte_stride, 3, DWARF)
257HANDLE_DW_AT(0x52, entry_pc, 3, DWARF)
258HANDLE_DW_AT(0x53, use_UTF8, 3, DWARF)
259HANDLE_DW_AT(0x54, extension, 3, DWARF)
260HANDLE_DW_AT(0x55, ranges, 3, DWARF)
261HANDLE_DW_AT(0x56, trampoline, 3, DWARF)
262HANDLE_DW_AT(0x57, call_column, 3, DWARF)
263HANDLE_DW_AT(0x58, call_file, 3, DWARF)
264HANDLE_DW_AT(0x59, call_line, 3, DWARF)
265HANDLE_DW_AT(0x5a, description, 3, DWARF)
266HANDLE_DW_AT(0x5b, binary_scale, 3, DWARF)
267HANDLE_DW_AT(0x5c, decimal_scale, 3, DWARF)
268HANDLE_DW_AT(0x5d, small, 3, DWARF)
269HANDLE_DW_AT(0x5e, decimal_sign, 3, DWARF)
270HANDLE_DW_AT(0x5f, digit_count, 3, DWARF)
271HANDLE_DW_AT(0x60, picture_string, 3, DWARF)
272HANDLE_DW_AT(0x61, mutable, 3, DWARF)
273HANDLE_DW_AT(0x62, threads_scaled, 3, DWARF)
274HANDLE_DW_AT(0x63, explicit, 3, DWARF)
275HANDLE_DW_AT(0x64, object_pointer, 3, DWARF)
276HANDLE_DW_AT(0x65, endianity, 3, DWARF)
277HANDLE_DW_AT(0x66, elemental, 3, DWARF)
278HANDLE_DW_AT(0x67, pure, 3, DWARF)
279HANDLE_DW_AT(0x68, recursive, 3, DWARF)
280// New in DWARF v4:
281HANDLE_DW_AT(0x69, signature, 4, DWARF)
282HANDLE_DW_AT(0x6a, main_subprogram, 4, DWARF)
283HANDLE_DW_AT(0x6b, data_bit_offset, 4, DWARF)
284HANDLE_DW_AT(0x6c, const_expr, 4, DWARF)
285HANDLE_DW_AT(0x6d, enum_class, 4, DWARF)
286HANDLE_DW_AT(0x6e, linkage_name, 4, DWARF)
287// New in DWARF v5:
288HANDLE_DW_AT(0x6f, string_length_bit_size, 5, DWARF)
289HANDLE_DW_AT(0x70, string_length_byte_size, 5, DWARF)
290HANDLE_DW_AT(0x71, rank, 5, DWARF)
291HANDLE_DW_AT(0x72, str_offsets_base, 5, DWARF)
292HANDLE_DW_AT(0x73, addr_base, 5, DWARF)
293HANDLE_DW_AT(0x74, rnglists_base, 5, DWARF)
294HANDLE_DW_AT(0x75, dwo_id, 0, DWARF) ///< Retracted from DWARF v5.
295HANDLE_DW_AT(0x76, dwo_name, 5, DWARF)
296HANDLE_DW_AT(0x77, reference, 5, DWARF)
297HANDLE_DW_AT(0x78, rvalue_reference, 5, DWARF)
298HANDLE_DW_AT(0x79, macros, 5, DWARF)
299HANDLE_DW_AT(0x7a, call_all_calls, 5, DWARF)
300HANDLE_DW_AT(0x7b, call_all_source_calls, 5, DWARF)
301HANDLE_DW_AT(0x7c, call_all_tail_calls, 5, DWARF)
302HANDLE_DW_AT(0x7d, call_return_pc, 5, DWARF)
303HANDLE_DW_AT(0x7e, call_value, 5, DWARF)
304HANDLE_DW_AT(0x7f, call_origin, 5, DWARF)
305HANDLE_DW_AT(0x80, call_parameter, 5, DWARF)
306HANDLE_DW_AT(0x81, call_pc, 5, DWARF)
307HANDLE_DW_AT(0x82, call_tail_call, 5, DWARF)
308HANDLE_DW_AT(0x83, call_target, 5, DWARF)
309HANDLE_DW_AT(0x84, call_target_clobbered, 5, DWARF)
310HANDLE_DW_AT(0x85, call_data_location, 5, DWARF)
311HANDLE_DW_AT(0x86, call_data_value, 5, DWARF)
312HANDLE_DW_AT(0x87, noreturn, 5, DWARF)
313HANDLE_DW_AT(0x88, alignment, 5, DWARF)
314HANDLE_DW_AT(0x89, export_symbols, 5, DWARF)
315HANDLE_DW_AT(0x8a, deleted, 5, DWARF)
316HANDLE_DW_AT(0x8b, defaulted, 5, DWARF)
317HANDLE_DW_AT(0x8c, loclists_base, 5, DWARF)
318// Vendor extensions:
319HANDLE_DW_AT(0x2002, MIPS_loop_begin, 0, MIPS)
320HANDLE_DW_AT(0x2003, MIPS_tail_loop_begin, 0, MIPS)
321HANDLE_DW_AT(0x2004, MIPS_epilog_begin, 0, MIPS)
322HANDLE_DW_AT(0x2005, MIPS_loop_unroll_factor, 0, MIPS)
323HANDLE_DW_AT(0x2006, MIPS_software_pipeline_depth, 0, MIPS)
324HANDLE_DW_AT(0x2007, MIPS_linkage_name, 0, MIPS)
325HANDLE_DW_AT(0x2008, MIPS_stride, 0, MIPS)
326HANDLE_DW_AT(0x2009, MIPS_abstract_name, 0, MIPS)
327HANDLE_DW_AT(0x200a, MIPS_clone_origin, 0, MIPS)
328HANDLE_DW_AT(0x200b, MIPS_has_inlines, 0, MIPS)
329HANDLE_DW_AT(0x200c, MIPS_stride_byte, 0, MIPS)
330HANDLE_DW_AT(0x200d, MIPS_stride_elem, 0, MIPS)
331HANDLE_DW_AT(0x200e, MIPS_ptr_dopetype, 0, MIPS)
332HANDLE_DW_AT(0x200f, MIPS_allocatable_dopetype, 0, MIPS)
333HANDLE_DW_AT(0x2010, MIPS_assumed_shape_dopetype, 0, MIPS)
334// This one appears to have only been implemented by Open64 for
335// fortran and may conflict with other extensions.
336HANDLE_DW_AT(0x2011, MIPS_assumed_size, 0, MIPS)
337// GNU extensions
338HANDLE_DW_AT(0x2101, sf_names, 0, GNU)
339HANDLE_DW_AT(0x2102, src_info, 0, GNU)
340HANDLE_DW_AT(0x2103, mac_info, 0, GNU)
341HANDLE_DW_AT(0x2104, src_coords, 0, GNU)
342HANDLE_DW_AT(0x2105, body_begin, 0, GNU)
343HANDLE_DW_AT(0x2106, body_end, 0, GNU)
344HANDLE_DW_AT(0x2107, GNU_vector, 0, GNU)
345HANDLE_DW_AT(0x2110, GNU_template_name, 0, GNU)
346HANDLE_DW_AT(0x210f, GNU_odr_signature, 0, GNU)
347HANDLE_DW_AT(0x2111, GNU_call_site_value, 0, GNU)
348HANDLE_DW_AT(0x2117, GNU_all_call_sites, 0, GNU)
349HANDLE_DW_AT(0x2119, GNU_macros, 0, GNU)
350// Extensions for Fission proposal.
351HANDLE_DW_AT(0x2130, GNU_dwo_name, 0, GNU)
352HANDLE_DW_AT(0x2131, GNU_dwo_id, 0, GNU)
353HANDLE_DW_AT(0x2132, GNU_ranges_base, 0, GNU)
354HANDLE_DW_AT(0x2133, GNU_addr_base, 0, GNU)
355HANDLE_DW_AT(0x2134, GNU_pubnames, 0, GNU)
356HANDLE_DW_AT(0x2135, GNU_pubtypes, 0, GNU)
357HANDLE_DW_AT(0x2136, GNU_discriminator, 0, GNU)
358// Borland extensions.
359HANDLE_DW_AT(0x3b11, BORLAND_property_read, 0, BORLAND)
360HANDLE_DW_AT(0x3b12, BORLAND_property_write, 0, BORLAND)
361HANDLE_DW_AT(0x3b13, BORLAND_property_implements, 0, BORLAND)
362HANDLE_DW_AT(0x3b14, BORLAND_property_index, 0, BORLAND)
363HANDLE_DW_AT(0x3b15, BORLAND_property_default, 0, BORLAND)
364HANDLE_DW_AT(0x3b20, BORLAND_Delphi_unit, 0, BORLAND)
365HANDLE_DW_AT(0x3b21, BORLAND_Delphi_class, 0, BORLAND)
366HANDLE_DW_AT(0x3b22, BORLAND_Delphi_record, 0, BORLAND)
367HANDLE_DW_AT(0x3b23, BORLAND_Delphi_metaclass, 0, BORLAND)
368HANDLE_DW_AT(0x3b24, BORLAND_Delphi_constructor, 0, BORLAND)
369HANDLE_DW_AT(0x3b25, BORLAND_Delphi_destructor, 0, BORLAND)
370HANDLE_DW_AT(0x3b26, BORLAND_Delphi_anonymous_method, 0, BORLAND)
371HANDLE_DW_AT(0x3b27, BORLAND_Delphi_interface, 0, BORLAND)
372HANDLE_DW_AT(0x3b28, BORLAND_Delphi_ABI, 0, BORLAND)
373HANDLE_DW_AT(0x3b29, BORLAND_Delphi_return, 0, BORLAND)
374HANDLE_DW_AT(0x3b30, BORLAND_Delphi_frameptr, 0, BORLAND)
375HANDLE_DW_AT(0x3b31, BORLAND_closure, 0, BORLAND)
376// LLVM project extensions.
377HANDLE_DW_AT(0x3e00, LLVM_include_path, 0, LLVM)
378HANDLE_DW_AT(0x3e01, LLVM_config_macros, 0, LLVM)
379HANDLE_DW_AT(0x3e02, LLVM_isysroot, 0, LLVM)
380// Apple extensions.
381HANDLE_DW_AT(0x3fe1, APPLE_optimized, 0, APPLE)
382HANDLE_DW_AT(0x3fe2, APPLE_flags, 0, APPLE)
383HANDLE_DW_AT(0x3fe3, APPLE_isa, 0, APPLE)
384HANDLE_DW_AT(0x3fe4, APPLE_block, 0, APPLE)
385HANDLE_DW_AT(0x3fe5, APPLE_major_runtime_vers, 0, APPLE)
386HANDLE_DW_AT(0x3fe6, APPLE_runtime_class, 0, APPLE)
387HANDLE_DW_AT(0x3fe7, APPLE_omit_frame_ptr, 0, APPLE)
388HANDLE_DW_AT(0x3fe8, APPLE_property_name, 0, APPLE)
389HANDLE_DW_AT(0x3fe9, APPLE_property_getter, 0, APPLE)
390HANDLE_DW_AT(0x3fea, APPLE_property_setter, 0, APPLE)
391HANDLE_DW_AT(0x3feb, APPLE_property_attribute, 0, APPLE)
392HANDLE_DW_AT(0x3fec, APPLE_objc_complete_type, 0, APPLE)
393HANDLE_DW_AT(0x3fed, APPLE_property, 0, APPLE)
394
395// Attribute form encodings.
396HANDLE_DW_FORM(0x01, addr, 2, DWARF)
397HANDLE_DW_FORM(0x03, block2, 2, DWARF)
398HANDLE_DW_FORM(0x04, block4, 2, DWARF)
399HANDLE_DW_FORM(0x05, data2, 2, DWARF)
400HANDLE_DW_FORM(0x06, data4, 2, DWARF)
401HANDLE_DW_FORM(0x07, data8, 2, DWARF)
402HANDLE_DW_FORM(0x08, string, 2, DWARF)
403HANDLE_DW_FORM(0x09, block, 2, DWARF)
404HANDLE_DW_FORM(0x0a, block1, 2, DWARF)
405HANDLE_DW_FORM(0x0b, data1, 2, DWARF)
406HANDLE_DW_FORM(0x0c, flag, 2, DWARF)
407HANDLE_DW_FORM(0x0d, sdata, 2, DWARF)
408HANDLE_DW_FORM(0x0e, strp, 2, DWARF)
409HANDLE_DW_FORM(0x0f, udata, 2, DWARF)
410HANDLE_DW_FORM(0x10, ref_addr, 2, DWARF)
411HANDLE_DW_FORM(0x11, ref1, 2, DWARF)
412HANDLE_DW_FORM(0x12, ref2, 2, DWARF)
413HANDLE_DW_FORM(0x13, ref4, 2, DWARF)
414HANDLE_DW_FORM(0x14, ref8, 2, DWARF)
415HANDLE_DW_FORM(0x15, ref_udata, 2, DWARF)
416HANDLE_DW_FORM(0x16, indirect, 2, DWARF)
417// New in DWARF v4:
418HANDLE_DW_FORM(0x17, sec_offset, 4, DWARF)
419HANDLE_DW_FORM(0x18, exprloc, 4, DWARF)
420HANDLE_DW_FORM(0x19, flag_present, 4, DWARF)
421// This was defined out of sequence.
422HANDLE_DW_FORM(0x20, ref_sig8, 4, DWARF)
423// New in DWARF v5:
424HANDLE_DW_FORM(0x1a, strx, 5, DWARF)
425HANDLE_DW_FORM(0x1b, addrx, 5, DWARF)
426HANDLE_DW_FORM(0x1c, ref_sup4, 5, DWARF)
427HANDLE_DW_FORM(0x1d, strp_sup, 5, DWARF)
428HANDLE_DW_FORM(0x1e, data16, 5, DWARF)
429HANDLE_DW_FORM(0x1f, line_strp, 5, DWARF)
430HANDLE_DW_FORM(0x21, implicit_const, 5, DWARF)
431HANDLE_DW_FORM(0x22, loclistx, 5, DWARF)
432HANDLE_DW_FORM(0x23, rnglistx, 5, DWARF)
433HANDLE_DW_FORM(0x24, ref_sup8, 5, DWARF)
434HANDLE_DW_FORM(0x25, strx1, 5, DWARF)
435HANDLE_DW_FORM(0x26, strx2, 5, DWARF)
436HANDLE_DW_FORM(0x27, strx3, 5, DWARF)
437HANDLE_DW_FORM(0x28, strx4, 5, DWARF)
438HANDLE_DW_FORM(0x29, addrx1, 5, DWARF)
439HANDLE_DW_FORM(0x2a, addrx2, 5, DWARF)
440HANDLE_DW_FORM(0x2b, addrx3, 5, DWARF)
441HANDLE_DW_FORM(0x2c, addrx4, 5, DWARF)
442// Extensions for Fission proposal
443HANDLE_DW_FORM(0x1f01, GNU_addr_index, 0, GNU)
444HANDLE_DW_FORM(0x1f02, GNU_str_index, 0, GNU)
445// Alternate debug sections proposal (output of "dwz" tool).
446HANDLE_DW_FORM(0x1f20, GNU_ref_alt, 0, GNU)
447HANDLE_DW_FORM(0x1f21, GNU_strp_alt, 0, GNU)
448
449// DWARF Expression operators.
450HANDLE_DW_OP(0x03, addr, 2, DWARF)
451HANDLE_DW_OP(0x06, deref, 2, DWARF)
452HANDLE_DW_OP(0x08, const1u, 2, DWARF)
453HANDLE_DW_OP(0x09, const1s, 2, DWARF)
454HANDLE_DW_OP(0x0a, const2u, 2, DWARF)
455HANDLE_DW_OP(0x0b, const2s, 2, DWARF)
456HANDLE_DW_OP(0x0c, const4u, 2, DWARF)
457HANDLE_DW_OP(0x0d, const4s, 2, DWARF)
458HANDLE_DW_OP(0x0e, const8u, 2, DWARF)
459HANDLE_DW_OP(0x0f, const8s, 2, DWARF)
460HANDLE_DW_OP(0x10, constu, 2, DWARF)
461HANDLE_DW_OP(0x11, consts, 2, DWARF)
462HANDLE_DW_OP(0x12, dup, 2, DWARF)
463HANDLE_DW_OP(0x13, drop, 2, DWARF)
464HANDLE_DW_OP(0x14, over, 2, DWARF)
465HANDLE_DW_OP(0x15, pick, 2, DWARF)
466HANDLE_DW_OP(0x16, swap, 2, DWARF)
467HANDLE_DW_OP(0x17, rot, 2, DWARF)
468HANDLE_DW_OP(0x18, xderef, 2, DWARF)
469HANDLE_DW_OP(0x19, abs, 2, DWARF)
470HANDLE_DW_OP(0x1a, and, 2, DWARF)
471HANDLE_DW_OP(0x1b, div, 2, DWARF)
472HANDLE_DW_OP(0x1c, minus, 2, DWARF)
473HANDLE_DW_OP(0x1d, mod, 2, DWARF)
474HANDLE_DW_OP(0x1e, mul, 2, DWARF)
475HANDLE_DW_OP(0x1f, neg, 2, DWARF)
476HANDLE_DW_OP(0x20, not, 2, DWARF)
477HANDLE_DW_OP(0x21, or, 2, DWARF)
478HANDLE_DW_OP(0x22, plus, 2, DWARF)
479HANDLE_DW_OP(0x23, plus_uconst, 2, DWARF)
480HANDLE_DW_OP(0x24, shl, 2, DWARF)
481HANDLE_DW_OP(0x25, shr, 2, DWARF)
482HANDLE_DW_OP(0x26, shra, 2, DWARF)
483HANDLE_DW_OP(0x27, xor, 2, DWARF)
484HANDLE_DW_OP(0x28, bra, 2, DWARF)
485HANDLE_DW_OP(0x29, eq, 2, DWARF)
486HANDLE_DW_OP(0x2a, ge, 2, DWARF)
487HANDLE_DW_OP(0x2b, gt, 2, DWARF)
488HANDLE_DW_OP(0x2c, le, 2, DWARF)
489HANDLE_DW_OP(0x2d, lt, 2, DWARF)
490HANDLE_DW_OP(0x2e, ne, 2, DWARF)
491HANDLE_DW_OP(0x2f, skip, 2, DWARF)
492HANDLE_DW_OP(0x30, lit0, 2, DWARF)
493HANDLE_DW_OP(0x31, lit1, 2, DWARF)
494HANDLE_DW_OP(0x32, lit2, 2, DWARF)
495HANDLE_DW_OP(0x33, lit3, 2, DWARF)
496HANDLE_DW_OP(0x34, lit4, 2, DWARF)
497HANDLE_DW_OP(0x35, lit5, 2, DWARF)
498HANDLE_DW_OP(0x36, lit6, 2, DWARF)
499HANDLE_DW_OP(0x37, lit7, 2, DWARF)
500HANDLE_DW_OP(0x38, lit8, 2, DWARF)
501HANDLE_DW_OP(0x39, lit9, 2, DWARF)
502HANDLE_DW_OP(0x3a, lit10, 2, DWARF)
503HANDLE_DW_OP(0x3b, lit11, 2, DWARF)
504HANDLE_DW_OP(0x3c, lit12, 2, DWARF)
505HANDLE_DW_OP(0x3d, lit13, 2, DWARF)
506HANDLE_DW_OP(0x3e, lit14, 2, DWARF)
507HANDLE_DW_OP(0x3f, lit15, 2, DWARF)
508HANDLE_DW_OP(0x40, lit16, 2, DWARF)
509HANDLE_DW_OP(0x41, lit17, 2, DWARF)
510HANDLE_DW_OP(0x42, lit18, 2, DWARF)
511HANDLE_DW_OP(0x43, lit19, 2, DWARF)
512HANDLE_DW_OP(0x44, lit20, 2, DWARF)
513HANDLE_DW_OP(0x45, lit21, 2, DWARF)
514HANDLE_DW_OP(0x46, lit22, 2, DWARF)
515HANDLE_DW_OP(0x47, lit23, 2, DWARF)
516HANDLE_DW_OP(0x48, lit24, 2, DWARF)
517HANDLE_DW_OP(0x49, lit25, 2, DWARF)
518HANDLE_DW_OP(0x4a, lit26, 2, DWARF)
519HANDLE_DW_OP(0x4b, lit27, 2, DWARF)
520HANDLE_DW_OP(0x4c, lit28, 2, DWARF)
521HANDLE_DW_OP(0x4d, lit29, 2, DWARF)
522HANDLE_DW_OP(0x4e, lit30, 2, DWARF)
523HANDLE_DW_OP(0x4f, lit31, 2, DWARF)
524HANDLE_DW_OP(0x50, reg0, 2, DWARF)
525HANDLE_DW_OP(0x51, reg1, 2, DWARF)
526HANDLE_DW_OP(0x52, reg2, 2, DWARF)
527HANDLE_DW_OP(0x53, reg3, 2, DWARF)
528HANDLE_DW_OP(0x54, reg4, 2, DWARF)
529HANDLE_DW_OP(0x55, reg5, 2, DWARF)
530HANDLE_DW_OP(0x56, reg6, 2, DWARF)
531HANDLE_DW_OP(0x57, reg7, 2, DWARF)
532HANDLE_DW_OP(0x58, reg8, 2, DWARF)
533HANDLE_DW_OP(0x59, reg9, 2, DWARF)
534HANDLE_DW_OP(0x5a, reg10, 2, DWARF)
535HANDLE_DW_OP(0x5b, reg11, 2, DWARF)
536HANDLE_DW_OP(0x5c, reg12, 2, DWARF)
537HANDLE_DW_OP(0x5d, reg13, 2, DWARF)
538HANDLE_DW_OP(0x5e, reg14, 2, DWARF)
539HANDLE_DW_OP(0x5f, reg15, 2, DWARF)
540HANDLE_DW_OP(0x60, reg16, 2, DWARF)
541HANDLE_DW_OP(0x61, reg17, 2, DWARF)
542HANDLE_DW_OP(0x62, reg18, 2, DWARF)
543HANDLE_DW_OP(0x63, reg19, 2, DWARF)
544HANDLE_DW_OP(0x64, reg20, 2, DWARF)
545HANDLE_DW_OP(0x65, reg21, 2, DWARF)
546HANDLE_DW_OP(0x66, reg22, 2, DWARF)
547HANDLE_DW_OP(0x67, reg23, 2, DWARF)
548HANDLE_DW_OP(0x68, reg24, 2, DWARF)
549HANDLE_DW_OP(0x69, reg25, 2, DWARF)
550HANDLE_DW_OP(0x6a, reg26, 2, DWARF)
551HANDLE_DW_OP(0x6b, reg27, 2, DWARF)
552HANDLE_DW_OP(0x6c, reg28, 2, DWARF)
553HANDLE_DW_OP(0x6d, reg29, 2, DWARF)
554HANDLE_DW_OP(0x6e, reg30, 2, DWARF)
555HANDLE_DW_OP(0x6f, reg31, 2, DWARF)
556HANDLE_DW_OP(0x70, breg0, 2, DWARF)
557HANDLE_DW_OP(0x71, breg1, 2, DWARF)
558HANDLE_DW_OP(0x72, breg2, 2, DWARF)
559HANDLE_DW_OP(0x73, breg3, 2, DWARF)
560HANDLE_DW_OP(0x74, breg4, 2, DWARF)
561HANDLE_DW_OP(0x75, breg5, 2, DWARF)
562HANDLE_DW_OP(0x76, breg6, 2, DWARF)
563HANDLE_DW_OP(0x77, breg7, 2, DWARF)
564HANDLE_DW_OP(0x78, breg8, 2, DWARF)
565HANDLE_DW_OP(0x79, breg9, 2, DWARF)
566HANDLE_DW_OP(0x7a, breg10, 2, DWARF)
567HANDLE_DW_OP(0x7b, breg11, 2, DWARF)
568HANDLE_DW_OP(0x7c, breg12, 2, DWARF)
569HANDLE_DW_OP(0x7d, breg13, 2, DWARF)
570HANDLE_DW_OP(0x7e, breg14, 2, DWARF)
571HANDLE_DW_OP(0x7f, breg15, 2, DWARF)
572HANDLE_DW_OP(0x80, breg16, 2, DWARF)
573HANDLE_DW_OP(0x81, breg17, 2, DWARF)
574HANDLE_DW_OP(0x82, breg18, 2, DWARF)
575HANDLE_DW_OP(0x83, breg19, 2, DWARF)
576HANDLE_DW_OP(0x84, breg20, 2, DWARF)
577HANDLE_DW_OP(0x85, breg21, 2, DWARF)
578HANDLE_DW_OP(0x86, breg22, 2, DWARF)
579HANDLE_DW_OP(0x87, breg23, 2, DWARF)
580HANDLE_DW_OP(0x88, breg24, 2, DWARF)
581HANDLE_DW_OP(0x89, breg25, 2, DWARF)
582HANDLE_DW_OP(0x8a, breg26, 2, DWARF)
583HANDLE_DW_OP(0x8b, breg27, 2, DWARF)
584HANDLE_DW_OP(0x8c, breg28, 2, DWARF)
585HANDLE_DW_OP(0x8d, breg29, 2, DWARF)
586HANDLE_DW_OP(0x8e, breg30, 2, DWARF)
587HANDLE_DW_OP(0x8f, breg31, 2, DWARF)
588HANDLE_DW_OP(0x90, regx, 2, DWARF)
589HANDLE_DW_OP(0x91, fbreg, 2, DWARF)
590HANDLE_DW_OP(0x92, bregx, 2, DWARF)
591HANDLE_DW_OP(0x93, piece, 2, DWARF)
592HANDLE_DW_OP(0x94, deref_size, 2, DWARF)
593HANDLE_DW_OP(0x95, xderef_size, 2, DWARF)
594HANDLE_DW_OP(0x96, nop, 2, DWARF)
595// New in DWARF v3:
596HANDLE_DW_OP(0x97, push_object_address, 3, DWARF)
597HANDLE_DW_OP(0x98, call2, 3, DWARF)
598HANDLE_DW_OP(0x99, call4, 3, DWARF)
599HANDLE_DW_OP(0x9a, call_ref, 3, DWARF)
600HANDLE_DW_OP(0x9b, form_tls_address, 3, DWARF)
601HANDLE_DW_OP(0x9c, call_frame_cfa, 3, DWARF)
602HANDLE_DW_OP(0x9d, bit_piece, 3, DWARF)
603// New in DWARF v4:
604HANDLE_DW_OP(0x9e, implicit_value, 4, DWARF)
605HANDLE_DW_OP(0x9f, stack_value, 4, DWARF)
606// New in DWARF v5:
607HANDLE_DW_OP(0xa0, implicit_pointer, 5, DWARF)
608HANDLE_DW_OP(0xa1, addrx, 5, DWARF)
609HANDLE_DW_OP(0xa2, constx, 5, DWARF)
610HANDLE_DW_OP(0xa3, entry_value, 5, DWARF)
611HANDLE_DW_OP(0xa4, const_type, 5, DWARF)
612HANDLE_DW_OP(0xa5, regval_type, 5, DWARF)
613HANDLE_DW_OP(0xa6, deref_type, 5, DWARF)
614HANDLE_DW_OP(0xa7, xderef_type, 5, DWARF)
615HANDLE_DW_OP(0xa8, convert, 5, DWARF)
616HANDLE_DW_OP(0xa9, reinterpret, 5, DWARF)
617// Vendor extensions:
618// Extensions for GNU-style thread-local storage.
619HANDLE_DW_OP(0xe0, GNU_push_tls_address, 0, GNU)
620// Extensions for Fission proposal.
621HANDLE_DW_OP(0xfb, GNU_addr_index, 0, GNU)
622HANDLE_DW_OP(0xfc, GNU_const_index, 0, GNU)
623
624// DWARF languages.
625HANDLE_DW_LANG(0x0001, C89, 2, DWARF)
626HANDLE_DW_LANG(0x0002, C, 2, DWARF)
627HANDLE_DW_LANG(0x0003, Ada83, 2, DWARF)
628HANDLE_DW_LANG(0x0004, C_plus_plus, 2, DWARF)
629HANDLE_DW_LANG(0x0005, Cobol74, 2, DWARF)
630HANDLE_DW_LANG(0x0006, Cobol85, 2, DWARF)
631HANDLE_DW_LANG(0x0007, Fortran77, 2, DWARF)
632HANDLE_DW_LANG(0x0008, Fortran90, 2, DWARF)
633HANDLE_DW_LANG(0x0009, Pascal83, 2, DWARF)
634HANDLE_DW_LANG(0x000a, Modula2, 2, DWARF)
635// New in DWARF v3:
636HANDLE_DW_LANG(0x000b, Java, 3, DWARF)
637HANDLE_DW_LANG(0x000c, C99, 3, DWARF)
638HANDLE_DW_LANG(0x000d, Ada95, 3, DWARF)
639HANDLE_DW_LANG(0x000e, Fortran95, 3, DWARF)
640HANDLE_DW_LANG(0x000f, PLI, 3, DWARF)
641HANDLE_DW_LANG(0x0010, ObjC, 3, DWARF)
642HANDLE_DW_LANG(0x0011, ObjC_plus_plus, 3, DWARF)
643HANDLE_DW_LANG(0x0012, UPC, 3, DWARF)
644HANDLE_DW_LANG(0x0013, D, 3, DWARF)
645// New in DWARF v4:
646HANDLE_DW_LANG(0x0014, Python, 4, DWARF)
647// New in DWARF v5:
648HANDLE_DW_LANG(0x0015, OpenCL, 5, DWARF)
649HANDLE_DW_LANG(0x0016, Go, 5, DWARF)
650HANDLE_DW_LANG(0x0017, Modula3, 5, DWARF)
651HANDLE_DW_LANG(0x0018, Haskell, 5, DWARF)
652HANDLE_DW_LANG(0x0019, C_plus_plus_03, 5, DWARF)
653HANDLE_DW_LANG(0x001a, C_plus_plus_11, 5, DWARF)
654HANDLE_DW_LANG(0x001b, OCaml, 5, DWARF)
655HANDLE_DW_LANG(0x001c, Rust, 5, DWARF)
656HANDLE_DW_LANG(0x001d, C11, 5, DWARF)
657HANDLE_DW_LANG(0x001e, Swift, 5, DWARF)
658HANDLE_DW_LANG(0x001f, Julia, 5, DWARF)
659HANDLE_DW_LANG(0x0020, Dylan, 5, DWARF)
660HANDLE_DW_LANG(0x0021, C_plus_plus_14, 5, DWARF)
661HANDLE_DW_LANG(0x0022, Fortran03, 5, DWARF)
662HANDLE_DW_LANG(0x0023, Fortran08, 5, DWARF)
663HANDLE_DW_LANG(0x0024, RenderScript, 5, DWARF)
664HANDLE_DW_LANG(0x0025, BLISS, 5, DWARF)
665// Vendor extensions:
666HANDLE_DW_LANG(0x8001, Mips_Assembler, 0, MIPS)
667HANDLE_DW_LANG(0x8e57, GOOGLE_RenderScript, 0, GOOGLE)
668HANDLE_DW_LANG(0xb000, BORLAND_Delphi, 0, BORLAND)
669
670// DWARF attribute type encodings.
671HANDLE_DW_ATE(0x01, address, 2, DWARF)
672HANDLE_DW_ATE(0x02, boolean, 2, DWARF)
673HANDLE_DW_ATE(0x03, complex_float, 2, DWARF)
674HANDLE_DW_ATE(0x04, float, 2, DWARF)
675HANDLE_DW_ATE(0x05, signed, 2, DWARF)
676HANDLE_DW_ATE(0x06, signed_char, 2, DWARF)
677HANDLE_DW_ATE(0x07, unsigned, 2, DWARF)
678HANDLE_DW_ATE(0x08, unsigned_char, 2, DWARF)
679// New in DWARF v3:
680HANDLE_DW_ATE(0x09, imaginary_float, 3, DWARF)
681HANDLE_DW_ATE(0x0a, packed_decimal, 3, DWARF)
682HANDLE_DW_ATE(0x0b, numeric_string, 3, DWARF)
683HANDLE_DW_ATE(0x0c, edited, 3, DWARF)
684HANDLE_DW_ATE(0x0d, signed_fixed, 3, DWARF)
685HANDLE_DW_ATE(0x0e, unsigned_fixed, 3, DWARF)
686HANDLE_DW_ATE(0x0f, decimal_float, 3, DWARF)
687// New in DWARF v4:
688HANDLE_DW_ATE(0x10, UTF, 4, DWARF)
689// New in DWARF v5:
690HANDLE_DW_ATE(0x11, UCS, 5, DWARF)
691HANDLE_DW_ATE(0x12, ASCII, 5, DWARF)
692
693// DWARF virtuality codes.
694HANDLE_DW_VIRTUALITY(0x00, none)
695HANDLE_DW_VIRTUALITY(0x01, virtual)
696HANDLE_DW_VIRTUALITY(0x02, pure_virtual)
697
698// DWARF v5 Defaulted Member Encodings.
699HANDLE_DW_DEFAULTED(0x00, no)
700HANDLE_DW_DEFAULTED(0x01, in_class)
701HANDLE_DW_DEFAULTED(0x02, out_of_class)
702
703// DWARF calling convention codes.
704HANDLE_DW_CC(0x01, normal)
705HANDLE_DW_CC(0x02, program)
706HANDLE_DW_CC(0x03, nocall)
707// New in DWARF v5:
708HANDLE_DW_CC(0x04, pass_by_reference)
709HANDLE_DW_CC(0x05, pass_by_value)
710// Vendor extensions:
711HANDLE_DW_CC(0x40, GNU_renesas_sh)
712HANDLE_DW_CC(0x41, GNU_borland_fastcall_i386)
713HANDLE_DW_CC(0xb0, BORLAND_safecall)
714HANDLE_DW_CC(0xb1, BORLAND_stdcall)
715HANDLE_DW_CC(0xb2, BORLAND_pascal)
716HANDLE_DW_CC(0xb3, BORLAND_msfastcall)
717HANDLE_DW_CC(0xb4, BORLAND_msreturn)
718HANDLE_DW_CC(0xb5, BORLAND_thiscall)
719HANDLE_DW_CC(0xb6, BORLAND_fastcall)
720HANDLE_DW_CC(0xc0, LLVM_vectorcall)
721HANDLE_DW_CC(0xc1, LLVM_Win64)
722HANDLE_DW_CC(0xc2, LLVM_X86_64SysV)
723HANDLE_DW_CC(0xc3, LLVM_AAPCS)
724HANDLE_DW_CC(0xc4, LLVM_AAPCS_VFP)
725HANDLE_DW_CC(0xc5, LLVM_IntelOclBicc)
726HANDLE_DW_CC(0xc6, LLVM_SpirFunction)
727HANDLE_DW_CC(0xc7, LLVM_OpenCLKernel)
728HANDLE_DW_CC(0xc8, LLVM_Swift)
729HANDLE_DW_CC(0xc9, LLVM_PreserveMost)
730HANDLE_DW_CC(0xca, LLVM_PreserveAll)
731HANDLE_DW_CC(0xcb, LLVM_X86RegCall)
732// From GCC source code (include/dwarf2.h): This DW_CC_ value is not currently
733// generated by any toolchain.  It is used internally to GDB to indicate OpenCL C
734// functions that have been compiled with the IBM XL C for OpenCL compiler and use
735// a non-platform calling convention for passing OpenCL C vector types.
736HANDLE_DW_CC(0xff, GDB_IBM_OpenCL)
737
738// Line Number Extended Opcode Encodings
739HANDLE_DW_LNE(0x01, end_sequence)
740HANDLE_DW_LNE(0x02, set_address)
741HANDLE_DW_LNE(0x03, define_file)
742// New in DWARF v4:
743HANDLE_DW_LNE(0x04, set_discriminator)
744
745// Line Number Standard Opcode Encodings.
746HANDLE_DW_LNS(0x00, extended_op)
747HANDLE_DW_LNS(0x01, copy)
748HANDLE_DW_LNS(0x02, advance_pc)
749HANDLE_DW_LNS(0x03, advance_line)
750HANDLE_DW_LNS(0x04, set_file)
751HANDLE_DW_LNS(0x05, set_column)
752HANDLE_DW_LNS(0x06, negate_stmt)
753HANDLE_DW_LNS(0x07, set_basic_block)
754HANDLE_DW_LNS(0x08, const_add_pc)
755HANDLE_DW_LNS(0x09, fixed_advance_pc)
756// New in DWARF v3:
757HANDLE_DW_LNS(0x0a, set_prologue_end)
758HANDLE_DW_LNS(0x0b, set_epilogue_begin)
759HANDLE_DW_LNS(0x0c, set_isa)
760
761// DWARF v5 Line number header entry format.
762HANDLE_DW_LNCT(0x01, path)
763HANDLE_DW_LNCT(0x02, directory_index)
764HANDLE_DW_LNCT(0x03, timestamp)
765HANDLE_DW_LNCT(0x04, size)
766HANDLE_DW_LNCT(0x05, MD5)
767// A vendor extension until http://dwarfstd.org/ShowIssue.php?issue=180201.1 is
768// accepted and incorporated into the next DWARF standard.
769HANDLE_DW_LNCT(0x2001, LLVM_source)
770
771// DWARF v5 Macro information.
772HANDLE_DW_MACRO(0x01, define)
773HANDLE_DW_MACRO(0x02, undef)
774HANDLE_DW_MACRO(0x03, start_file)
775HANDLE_DW_MACRO(0x04, end_file)
776HANDLE_DW_MACRO(0x05, define_strp)
777HANDLE_DW_MACRO(0x06, undef_strp)
778HANDLE_DW_MACRO(0x07, import)
779HANDLE_DW_MACRO(0x08, define_sup)
780HANDLE_DW_MACRO(0x09, undef_sup)
781HANDLE_DW_MACRO(0x0a, import_sup)
782HANDLE_DW_MACRO(0x0b, define_strx)
783HANDLE_DW_MACRO(0x0c, undef_strx)
784
785// DWARF v5 Range List Entry encoding values.
786HANDLE_DW_RLE(0x00, end_of_list)
787HANDLE_DW_RLE(0x01, base_addressx)
788HANDLE_DW_RLE(0x02, startx_endx)
789HANDLE_DW_RLE(0x03, startx_length)
790HANDLE_DW_RLE(0x04, offset_pair)
791HANDLE_DW_RLE(0x05, base_address)
792HANDLE_DW_RLE(0x06, start_end)
793HANDLE_DW_RLE(0x07, start_length)
794
795// Call frame instruction encodings.
796HANDLE_DW_CFA(0x00, nop)
797HANDLE_DW_CFA(0x40, advance_loc)
798HANDLE_DW_CFA(0x80, offset)
799HANDLE_DW_CFA(0xc0, restore)
800HANDLE_DW_CFA(0x01, set_loc)
801HANDLE_DW_CFA(0x02, advance_loc1)
802HANDLE_DW_CFA(0x03, advance_loc2)
803HANDLE_DW_CFA(0x04, advance_loc4)
804HANDLE_DW_CFA(0x05, offset_extended)
805HANDLE_DW_CFA(0x06, restore_extended)
806HANDLE_DW_CFA(0x07, undefined)
807HANDLE_DW_CFA(0x08, same_value)
808HANDLE_DW_CFA(0x09, register)
809HANDLE_DW_CFA(0x0a, remember_state)
810HANDLE_DW_CFA(0x0b, restore_state)
811HANDLE_DW_CFA(0x0c, def_cfa)
812HANDLE_DW_CFA(0x0d, def_cfa_register)
813HANDLE_DW_CFA(0x0e, def_cfa_offset)
814// New in DWARF v3:
815HANDLE_DW_CFA(0x0f, def_cfa_expression)
816HANDLE_DW_CFA(0x10, expression)
817HANDLE_DW_CFA(0x11, offset_extended_sf)
818HANDLE_DW_CFA(0x12, def_cfa_sf)
819HANDLE_DW_CFA(0x13, def_cfa_offset_sf)
820HANDLE_DW_CFA(0x14, val_offset)
821HANDLE_DW_CFA(0x15, val_offset_sf)
822HANDLE_DW_CFA(0x16, val_expression)
823// Vendor extensions:
824HANDLE_DW_CFA(0x1d, MIPS_advance_loc8)
825HANDLE_DW_CFA(0x2d, GNU_window_save)
826HANDLE_DW_CFA(0x2e, GNU_args_size)
827
828// Apple Objective-C Property Attributes.
829// Keep this list in sync with clang's DeclSpec.h ObjCPropertyAttributeKind!
830HANDLE_DW_APPLE_PROPERTY(0x01, readonly)
831HANDLE_DW_APPLE_PROPERTY(0x02, getter)
832HANDLE_DW_APPLE_PROPERTY(0x04, assign)
833HANDLE_DW_APPLE_PROPERTY(0x08, readwrite)
834HANDLE_DW_APPLE_PROPERTY(0x10, retain)
835HANDLE_DW_APPLE_PROPERTY(0x20, copy)
836HANDLE_DW_APPLE_PROPERTY(0x40, nonatomic)
837HANDLE_DW_APPLE_PROPERTY(0x80, setter)
838HANDLE_DW_APPLE_PROPERTY(0x100, atomic)
839HANDLE_DW_APPLE_PROPERTY(0x200, weak)
840HANDLE_DW_APPLE_PROPERTY(0x400, strong)
841HANDLE_DW_APPLE_PROPERTY(0x800, unsafe_unretained)
842HANDLE_DW_APPLE_PROPERTY(0x1000, nullability)
843HANDLE_DW_APPLE_PROPERTY(0x2000, null_resettable)
844HANDLE_DW_APPLE_PROPERTY(0x4000, class)
845
846// DWARF v5 Unit Types.
847HANDLE_DW_UT(0x01, compile)
848HANDLE_DW_UT(0x02, type)
849HANDLE_DW_UT(0x03, partial)
850HANDLE_DW_UT(0x04, skeleton)
851HANDLE_DW_UT(0x05, split_compile)
852HANDLE_DW_UT(0x06, split_type)
853
854// DWARF section types. (enum name, ELF name, ELF DWO name, cmdline name)
855// Note that these IDs don't mean anything.
856// TODO: Add Mach-O and COFF names.
857// Official DWARF sections.
858HANDLE_DWARF_SECTION(DebugAbbrev, ".debug_abbrev", "debug-abbrev")
859HANDLE_DWARF_SECTION(DebugAddr, ".debug_addr", "debug-addr")
860HANDLE_DWARF_SECTION(DebugAranges, ".debug_aranges", "debug-aranges")
861HANDLE_DWARF_SECTION(DebugInfo, ".debug_info", "debug-info")
862HANDLE_DWARF_SECTION(DebugTypes, ".debug_types", "debug-types")
863HANDLE_DWARF_SECTION(DebugLine, ".debug_line", "debug-line")
864HANDLE_DWARF_SECTION(DebugLineStr, ".debug_line_str", "debug-line-str")
865HANDLE_DWARF_SECTION(DebugLoc, ".debug_loc", "debug-loc")
866HANDLE_DWARF_SECTION(DebugFrame, ".debug_frame", "debug-frame")
867HANDLE_DWARF_SECTION(DebugMacro, ".debug_macro", "debug-macro")
868HANDLE_DWARF_SECTION(DebugNames, ".debug_names", "debug-names")
869HANDLE_DWARF_SECTION(DebugPubnames, ".debug_pubnames", "debug-pubnames")
870HANDLE_DWARF_SECTION(DebugPubtypes, ".debug_pubtypes", "debug-pubtypes")
871HANDLE_DWARF_SECTION(DebugGnuPubnames, ".debug_gnu_pubnames", "debug-gnu-pubnames")
872HANDLE_DWARF_SECTION(DebugGnuPubtypes, ".debug_gnu_pubtypes", "debug-gnu-pubtypes")
873HANDLE_DWARF_SECTION(DebugRanges, ".debug_ranges", "debug-ranges")
874HANDLE_DWARF_SECTION(DebugRnglists, ".debug_rnglists", "debug-rnglists")
875HANDLE_DWARF_SECTION(DebugStr, ".debug_str", "debug-str")
876HANDLE_DWARF_SECTION(DebugStrOffsets, ".debug_str_offsets", "debug-str-offsets")
877HANDLE_DWARF_SECTION(DebugCUIndex, ".debug_cu_index", "debug-cu-index")
878HANDLE_DWARF_SECTION(DebugTUIndex, ".debug_tu_index", "debug-tu-index")
879// Vendor extensions.
880HANDLE_DWARF_SECTION(AppleNames, ".apple_names", "apple-names")
881HANDLE_DWARF_SECTION(AppleTypes, ".apple_types", "apple-types")
882HANDLE_DWARF_SECTION(AppleNamespaces, ".apple_namespaces", "apple-namespaces")
883HANDLE_DWARF_SECTION(AppleObjC, ".apple_objc", "apple-objc")
884HANDLE_DWARF_SECTION(GdbIndex, ".gdb_index", "gdb-index")
885
886HANDLE_DW_IDX(0x01, compile_unit)
887HANDLE_DW_IDX(0x02, type_unit)
888HANDLE_DW_IDX(0x03, die_offset)
889HANDLE_DW_IDX(0x04, parent)
890HANDLE_DW_IDX(0x05, type_hash)
891
892
893#undef HANDLE_DW_TAG
894#undef HANDLE_DW_AT
895#undef HANDLE_DW_FORM
896#undef HANDLE_DW_OP
897#undef HANDLE_DW_LANG
898#undef HANDLE_DW_ATE
899#undef HANDLE_DW_VIRTUALITY
900#undef HANDLE_DW_DEFAULTED
901#undef HANDLE_DW_CC
902#undef HANDLE_DW_LNS
903#undef HANDLE_DW_LNE
904#undef HANDLE_DW_LNCT
905#undef HANDLE_DW_MACRO
906#undef HANDLE_DW_RLE
907#undef HANDLE_DW_CFA
908#undef HANDLE_DW_APPLE_PROPERTY
909#undef HANDLE_DW_UT
910#undef HANDLE_DWARF_SECTION
911#undef HANDLE_DW_IDX
912