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