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