| //===- llvm/Support/Dwarf.def - Dwarf definitions ---------------*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // Macros for running through Dwarf enumerators. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| // TODO: Add other DW-based macros. |
| #if !(defined HANDLE_DW_TAG || defined HANDLE_DW_AT || \ |
| defined HANDLE_DW_FORM || defined HANDLE_DW_OP || \ |
| defined HANDLE_DW_LANG || defined HANDLE_DW_ATE || \ |
| defined HANDLE_DW_VIRTUALITY || defined HANDLE_DW_DEFAULTED || \ |
| defined HANDLE_DW_CC || defined HANDLE_DW_LNS || \ |
| defined HANDLE_DW_LNE || defined HANDLE_DW_LNCT || \ |
| defined HANDLE_DW_MACRO || defined HANDLE_DW_RLE || \ |
| defined HANDLE_DW_CFA || defined HANDLE_DW_APPLE_PROPERTY || \ |
| defined HANDLE_DW_UT) |
| #error "Missing macro definition of HANDLE_DW*" |
| #endif |
| |
| #ifndef HANDLE_DW_TAG |
| #define HANDLE_DW_TAG(ID, NAME) |
| #endif |
| |
| #ifndef HANDLE_DW_AT |
| #define HANDLE_DW_AT(ID, NAME) |
| #endif |
| |
| #ifndef HANDLE_DW_FORM |
| #define HANDLE_DW_FORM(ID, NAME) |
| #endif |
| |
| #ifndef HANDLE_DW_OP |
| #define HANDLE_DW_OP(ID, NAME) |
| #endif |
| |
| #ifndef HANDLE_DW_LANG |
| #define HANDLE_DW_LANG(ID, NAME) |
| #endif |
| |
| #ifndef HANDLE_DW_ATE |
| #define HANDLE_DW_ATE(ID, NAME) |
| #endif |
| |
| #ifndef HANDLE_DW_VIRTUALITY |
| #define HANDLE_DW_VIRTUALITY(ID, NAME) |
| #endif |
| |
| #ifndef HANDLE_DW_DEFAULTED |
| #define HANDLE_DW_DEFAULTED(ID, NAME) |
| #endif |
| |
| #ifndef HANDLE_DW_CC |
| #define HANDLE_DW_CC(ID, NAME) |
| #endif |
| |
| #ifndef HANDLE_DW_LNS |
| #define HANDLE_DW_LNS(ID, NAME) |
| #endif |
| |
| #ifndef HANDLE_DW_LNE |
| #define HANDLE_DW_LNE(ID, NAME) |
| #endif |
| |
| #ifndef HANDLE_DW_LNCT |
| #define HANDLE_DW_LNCT(ID, NAME) |
| #endif |
| |
| #ifndef HANDLE_DW_MACRO |
| #define HANDLE_DW_MACRO(ID, NAME) |
| #endif |
| |
| #ifndef HANDLE_DW_RLE |
| #define HANDLE_DW_RLE(ID, NAME) |
| #endif |
| |
| #ifndef HANDLE_DW_CFA |
| #define HANDLE_DW_CFA(ID, NAME) |
| #endif |
| |
| #ifndef HANDLE_DW_APPLE_PROPERTY |
| #define HANDLE_DW_APPLE_PROPERTY(ID, NAME) |
| #endif |
| |
| #ifndef HANDLE_DW_UT |
| #define HANDLE_DW_UT(ID, NAME) |
| #endif |
| |
| HANDLE_DW_TAG(0x0000, null) |
| HANDLE_DW_TAG(0x0001, array_type) |
| HANDLE_DW_TAG(0x0002, class_type) |
| HANDLE_DW_TAG(0x0003, entry_point) |
| HANDLE_DW_TAG(0x0004, enumeration_type) |
| HANDLE_DW_TAG(0x0005, formal_parameter) |
| HANDLE_DW_TAG(0x0008, imported_declaration) |
| HANDLE_DW_TAG(0x000a, label) |
| HANDLE_DW_TAG(0x000b, lexical_block) |
| HANDLE_DW_TAG(0x000d, member) |
| HANDLE_DW_TAG(0x000f, pointer_type) |
| HANDLE_DW_TAG(0x0010, reference_type) |
| HANDLE_DW_TAG(0x0011, compile_unit) |
| HANDLE_DW_TAG(0x0012, string_type) |
| HANDLE_DW_TAG(0x0013, structure_type) |
| HANDLE_DW_TAG(0x0015, subroutine_type) |
| HANDLE_DW_TAG(0x0016, typedef) |
| HANDLE_DW_TAG(0x0017, union_type) |
| HANDLE_DW_TAG(0x0018, unspecified_parameters) |
| HANDLE_DW_TAG(0x0019, variant) |
| HANDLE_DW_TAG(0x001a, common_block) |
| HANDLE_DW_TAG(0x001b, common_inclusion) |
| HANDLE_DW_TAG(0x001c, inheritance) |
| HANDLE_DW_TAG(0x001d, inlined_subroutine) |
| HANDLE_DW_TAG(0x001e, module) |
| HANDLE_DW_TAG(0x001f, ptr_to_member_type) |
| HANDLE_DW_TAG(0x0020, set_type) |
| HANDLE_DW_TAG(0x0021, subrange_type) |
| HANDLE_DW_TAG(0x0022, with_stmt) |
| HANDLE_DW_TAG(0x0023, access_declaration) |
| HANDLE_DW_TAG(0x0024, base_type) |
| HANDLE_DW_TAG(0x0025, catch_block) |
| HANDLE_DW_TAG(0x0026, const_type) |
| HANDLE_DW_TAG(0x0027, constant) |
| HANDLE_DW_TAG(0x0028, enumerator) |
| HANDLE_DW_TAG(0x0029, file_type) |
| HANDLE_DW_TAG(0x002a, friend) |
| HANDLE_DW_TAG(0x002b, namelist) |
| HANDLE_DW_TAG(0x002c, namelist_item) |
| HANDLE_DW_TAG(0x002d, packed_type) |
| HANDLE_DW_TAG(0x002e, subprogram) |
| HANDLE_DW_TAG(0x002f, template_type_parameter) |
| HANDLE_DW_TAG(0x0030, template_value_parameter) |
| HANDLE_DW_TAG(0x0031, thrown_type) |
| HANDLE_DW_TAG(0x0032, try_block) |
| HANDLE_DW_TAG(0x0033, variant_part) |
| HANDLE_DW_TAG(0x0034, variable) |
| HANDLE_DW_TAG(0x0035, volatile_type) |
| // New in DWARF v3: |
| HANDLE_DW_TAG(0x0036, dwarf_procedure) |
| HANDLE_DW_TAG(0x0037, restrict_type) |
| HANDLE_DW_TAG(0x0038, interface_type) |
| HANDLE_DW_TAG(0x0039, namespace) |
| HANDLE_DW_TAG(0x003a, imported_module) |
| HANDLE_DW_TAG(0x003b, unspecified_type) |
| HANDLE_DW_TAG(0x003c, partial_unit) |
| HANDLE_DW_TAG(0x003d, imported_unit) |
| HANDLE_DW_TAG(0x003f, condition) |
| HANDLE_DW_TAG(0x0040, shared_type) |
| // New in DWARF v4: |
| HANDLE_DW_TAG(0x0041, type_unit) |
| HANDLE_DW_TAG(0x0042, rvalue_reference_type) |
| HANDLE_DW_TAG(0x0043, template_alias) |
| // New in DWARF v5: |
| HANDLE_DW_TAG(0x0044, coarray_type) |
| HANDLE_DW_TAG(0x0045, generic_subrange) |
| HANDLE_DW_TAG(0x0046, dynamic_type) |
| HANDLE_DW_TAG(0x0047, atomic_type) |
| HANDLE_DW_TAG(0x0048, call_site) |
| HANDLE_DW_TAG(0x0049, call_site_parameter) |
| HANDLE_DW_TAG(0x004a, skeleton_unit) |
| HANDLE_DW_TAG(0x004b, immutable_type) |
| // Vendor extensions: |
| HANDLE_DW_TAG(0x4081, MIPS_loop) |
| HANDLE_DW_TAG(0x4101, format_label) |
| HANDLE_DW_TAG(0x4102, function_template) |
| HANDLE_DW_TAG(0x4103, class_template) |
| HANDLE_DW_TAG(0x4106, GNU_template_template_param) |
| HANDLE_DW_TAG(0x4107, GNU_template_parameter_pack) |
| HANDLE_DW_TAG(0x4108, GNU_formal_parameter_pack) |
| HANDLE_DW_TAG(0x4200, APPLE_property) |
| HANDLE_DW_TAG(0xb000, BORLAND_property) |
| HANDLE_DW_TAG(0xb001, BORLAND_Delphi_string) |
| HANDLE_DW_TAG(0xb002, BORLAND_Delphi_dynamic_array) |
| HANDLE_DW_TAG(0xb003, BORLAND_Delphi_set) |
| HANDLE_DW_TAG(0xb004, BORLAND_Delphi_variant) |
| |
| // Attributes. |
| HANDLE_DW_AT(0x01, sibling) |
| HANDLE_DW_AT(0x02, location) |
| HANDLE_DW_AT(0x03, name) |
| HANDLE_DW_AT(0x09, ordering) |
| HANDLE_DW_AT(0x0b, byte_size) |
| HANDLE_DW_AT(0x0c, bit_offset) |
| HANDLE_DW_AT(0x0d, bit_size) |
| HANDLE_DW_AT(0x10, stmt_list) |
| HANDLE_DW_AT(0x11, low_pc) |
| HANDLE_DW_AT(0x12, high_pc) |
| HANDLE_DW_AT(0x13, language) |
| HANDLE_DW_AT(0x15, discr) |
| HANDLE_DW_AT(0x16, discr_value) |
| HANDLE_DW_AT(0x17, visibility) |
| HANDLE_DW_AT(0x18, import) |
| HANDLE_DW_AT(0x19, string_length) |
| HANDLE_DW_AT(0x1a, common_reference) |
| HANDLE_DW_AT(0x1b, comp_dir) |
| HANDLE_DW_AT(0x1c, const_value) |
| HANDLE_DW_AT(0x1d, containing_type) |
| HANDLE_DW_AT(0x1e, default_value) |
| HANDLE_DW_AT(0x20, inline) |
| HANDLE_DW_AT(0x21, is_optional) |
| HANDLE_DW_AT(0x22, lower_bound) |
| HANDLE_DW_AT(0x25, producer) |
| HANDLE_DW_AT(0x27, prototyped) |
| HANDLE_DW_AT(0x2a, return_addr) |
| HANDLE_DW_AT(0x2c, start_scope) |
| HANDLE_DW_AT(0x2e, bit_stride) |
| HANDLE_DW_AT(0x2f, upper_bound) |
| HANDLE_DW_AT(0x31, abstract_origin) |
| HANDLE_DW_AT(0x32, accessibility) |
| HANDLE_DW_AT(0x33, address_class) |
| HANDLE_DW_AT(0x34, artificial) |
| HANDLE_DW_AT(0x35, base_types) |
| HANDLE_DW_AT(0x36, calling_convention) |
| HANDLE_DW_AT(0x37, count) |
| HANDLE_DW_AT(0x38, data_member_location) |
| HANDLE_DW_AT(0x39, decl_column) |
| HANDLE_DW_AT(0x3a, decl_file) |
| HANDLE_DW_AT(0x3b, decl_line) |
| HANDLE_DW_AT(0x3c, declaration) |
| HANDLE_DW_AT(0x3d, discr_list) |
| HANDLE_DW_AT(0x3e, encoding) |
| HANDLE_DW_AT(0x3f, external) |
| HANDLE_DW_AT(0x40, frame_base) |
| HANDLE_DW_AT(0x41, friend) |
| HANDLE_DW_AT(0x42, identifier_case) |
| HANDLE_DW_AT(0x43, macro_info) |
| HANDLE_DW_AT(0x44, namelist_item) |
| HANDLE_DW_AT(0x45, priority) |
| HANDLE_DW_AT(0x46, segment) |
| HANDLE_DW_AT(0x47, specification) |
| HANDLE_DW_AT(0x48, static_link) |
| HANDLE_DW_AT(0x49, type) |
| HANDLE_DW_AT(0x4a, use_location) |
| HANDLE_DW_AT(0x4b, variable_parameter) |
| HANDLE_DW_AT(0x4c, virtuality) |
| HANDLE_DW_AT(0x4d, vtable_elem_location) |
| // New in DWARF v3: |
| HANDLE_DW_AT(0x4e, allocated) |
| HANDLE_DW_AT(0x4f, associated) |
| HANDLE_DW_AT(0x50, data_location) |
| HANDLE_DW_AT(0x51, byte_stride) |
| HANDLE_DW_AT(0x52, entry_pc) |
| HANDLE_DW_AT(0x53, use_UTF8) |
| HANDLE_DW_AT(0x54, extension) |
| HANDLE_DW_AT(0x55, ranges) |
| HANDLE_DW_AT(0x56, trampoline) |
| HANDLE_DW_AT(0x57, call_column) |
| HANDLE_DW_AT(0x58, call_file) |
| HANDLE_DW_AT(0x59, call_line) |
| HANDLE_DW_AT(0x5a, description) |
| HANDLE_DW_AT(0x5b, binary_scale) |
| HANDLE_DW_AT(0x5c, decimal_scale) |
| HANDLE_DW_AT(0x5d, small) |
| HANDLE_DW_AT(0x5e, decimal_sign) |
| HANDLE_DW_AT(0x5f, digit_count) |
| HANDLE_DW_AT(0x60, picture_string) |
| HANDLE_DW_AT(0x61, mutable) |
| HANDLE_DW_AT(0x62, threads_scaled) |
| HANDLE_DW_AT(0x63, explicit) |
| HANDLE_DW_AT(0x64, object_pointer) |
| HANDLE_DW_AT(0x65, endianity) |
| HANDLE_DW_AT(0x66, elemental) |
| HANDLE_DW_AT(0x67, pure) |
| HANDLE_DW_AT(0x68, recursive) |
| // New in DWARF v4: |
| HANDLE_DW_AT(0x69, signature) |
| HANDLE_DW_AT(0x6a, main_subprogram) |
| HANDLE_DW_AT(0x6b, data_bit_offset) |
| HANDLE_DW_AT(0x6c, const_expr) |
| HANDLE_DW_AT(0x6d, enum_class) |
| HANDLE_DW_AT(0x6e, linkage_name) |
| // New in DWARF v5: |
| HANDLE_DW_AT(0x6f, string_length_bit_size) |
| HANDLE_DW_AT(0x70, string_length_byte_size) |
| HANDLE_DW_AT(0x71, rank) |
| HANDLE_DW_AT(0x72, str_offsets_base) |
| HANDLE_DW_AT(0x73, addr_base) |
| HANDLE_DW_AT(0x74, rnglists_base) |
| HANDLE_DW_AT(0x75, dwo_id) ///< Retracted from DWARF 5. |
| HANDLE_DW_AT(0x76, dwo_name) |
| HANDLE_DW_AT(0x77, reference) |
| HANDLE_DW_AT(0x78, rvalue_reference) |
| HANDLE_DW_AT(0x79, macros) |
| HANDLE_DW_AT(0x7a, call_all_calls) |
| HANDLE_DW_AT(0x7b, call_all_source_calls) |
| HANDLE_DW_AT(0x7c, call_all_tail_calls) |
| HANDLE_DW_AT(0x7d, call_return_pc) |
| HANDLE_DW_AT(0x7e, call_value) |
| HANDLE_DW_AT(0x7f, call_origin) |
| HANDLE_DW_AT(0x80, call_parameter) |
| HANDLE_DW_AT(0x81, call_pc) |
| HANDLE_DW_AT(0x82, call_tail_call) |
| HANDLE_DW_AT(0x83, call_target) |
| HANDLE_DW_AT(0x84, call_target_clobbered) |
| HANDLE_DW_AT(0x85, call_data_location) |
| HANDLE_DW_AT(0x86, call_data_value) |
| HANDLE_DW_AT(0x87, noreturn) |
| HANDLE_DW_AT(0x88, alignment) |
| HANDLE_DW_AT(0x89, export_symbols) |
| HANDLE_DW_AT(0x8a, deleted) |
| HANDLE_DW_AT(0x8b, defaulted) |
| HANDLE_DW_AT(0x8c, loclists_base) |
| // Vendor extensions: |
| HANDLE_DW_AT(0x2002, MIPS_loop_begin) |
| HANDLE_DW_AT(0x2003, MIPS_tail_loop_begin) |
| HANDLE_DW_AT(0x2004, MIPS_epilog_begin) |
| HANDLE_DW_AT(0x2005, MIPS_loop_unroll_factor) |
| HANDLE_DW_AT(0x2006, MIPS_software_pipeline_depth) |
| HANDLE_DW_AT(0x2007, MIPS_linkage_name) |
| HANDLE_DW_AT(0x2008, MIPS_stride) |
| HANDLE_DW_AT(0x2009, MIPS_abstract_name) |
| HANDLE_DW_AT(0x200a, MIPS_clone_origin) |
| HANDLE_DW_AT(0x200b, MIPS_has_inlines) |
| HANDLE_DW_AT(0x200c, MIPS_stride_byte) |
| HANDLE_DW_AT(0x200d, MIPS_stride_elem) |
| HANDLE_DW_AT(0x200e, MIPS_ptr_dopetype) |
| HANDLE_DW_AT(0x200f, MIPS_allocatable_dopetype) |
| HANDLE_DW_AT(0x2010, MIPS_assumed_shape_dopetype) |
| // This one appears to have only been implemented by Open64 for |
| // fortran and may conflict with other extensions. |
| HANDLE_DW_AT(0x2011, MIPS_assumed_size) |
| // GNU extensions |
| HANDLE_DW_AT(0x2101, sf_names) |
| HANDLE_DW_AT(0x2102, src_info) |
| HANDLE_DW_AT(0x2103, mac_info) |
| HANDLE_DW_AT(0x2104, src_coords) |
| HANDLE_DW_AT(0x2105, body_begin) |
| HANDLE_DW_AT(0x2106, body_end) |
| HANDLE_DW_AT(0x2107, GNU_vector) |
| HANDLE_DW_AT(0x2110, GNU_template_name) |
| HANDLE_DW_AT(0x210f, GNU_odr_signature) |
| HANDLE_DW_AT(0x2119, GNU_macros) |
| // Extensions for Fission proposal. |
| HANDLE_DW_AT(0x2130, GNU_dwo_name) |
| HANDLE_DW_AT(0x2131, GNU_dwo_id) |
| HANDLE_DW_AT(0x2132, GNU_ranges_base) |
| HANDLE_DW_AT(0x2133, GNU_addr_base) |
| HANDLE_DW_AT(0x2134, GNU_pubnames) |
| HANDLE_DW_AT(0x2135, GNU_pubtypes) |
| HANDLE_DW_AT(0x2136, GNU_discriminator) |
| // Borland extensions. |
| HANDLE_DW_AT(0x3b11, BORLAND_property_read) |
| HANDLE_DW_AT(0x3b12, BORLAND_property_write) |
| HANDLE_DW_AT(0x3b13, BORLAND_property_implements) |
| HANDLE_DW_AT(0x3b14, BORLAND_property_index) |
| HANDLE_DW_AT(0x3b15, BORLAND_property_default) |
| HANDLE_DW_AT(0x3b20, BORLAND_Delphi_unit) |
| HANDLE_DW_AT(0x3b21, BORLAND_Delphi_class) |
| HANDLE_DW_AT(0x3b22, BORLAND_Delphi_record) |
| HANDLE_DW_AT(0x3b23, BORLAND_Delphi_metaclass) |
| HANDLE_DW_AT(0x3b24, BORLAND_Delphi_constructor) |
| HANDLE_DW_AT(0x3b25, BORLAND_Delphi_destructor) |
| HANDLE_DW_AT(0x3b26, BORLAND_Delphi_anonymous_method) |
| HANDLE_DW_AT(0x3b27, BORLAND_Delphi_interface) |
| HANDLE_DW_AT(0x3b28, BORLAND_Delphi_ABI) |
| HANDLE_DW_AT(0x3b29, BORLAND_Delphi_return) |
| HANDLE_DW_AT(0x3b30, BORLAND_Delphi_frameptr) |
| HANDLE_DW_AT(0x3b31, BORLAND_closure) |
| // LLVM project extensions. |
| HANDLE_DW_AT(0x3e00, LLVM_include_path) |
| HANDLE_DW_AT(0x3e01, LLVM_config_macros) |
| HANDLE_DW_AT(0x3e02, LLVM_isysroot) |
| // Apple extensions. |
| HANDLE_DW_AT(0x3fe1, APPLE_optimized) |
| HANDLE_DW_AT(0x3fe2, APPLE_flags) |
| HANDLE_DW_AT(0x3fe3, APPLE_isa) |
| HANDLE_DW_AT(0x3fe4, APPLE_block) |
| HANDLE_DW_AT(0x3fe5, APPLE_major_runtime_vers) |
| HANDLE_DW_AT(0x3fe6, APPLE_runtime_class) |
| HANDLE_DW_AT(0x3fe7, APPLE_omit_frame_ptr) |
| HANDLE_DW_AT(0x3fe8, APPLE_property_name) |
| HANDLE_DW_AT(0x3fe9, APPLE_property_getter) |
| HANDLE_DW_AT(0x3fea, APPLE_property_setter) |
| HANDLE_DW_AT(0x3feb, APPLE_property_attribute) |
| HANDLE_DW_AT(0x3fec, APPLE_objc_complete_type) |
| HANDLE_DW_AT(0x3fed, APPLE_property) |
| |
| // Attribute form encodings. |
| HANDLE_DW_FORM(0x01, addr) |
| HANDLE_DW_FORM(0x03, block2) |
| HANDLE_DW_FORM(0x04, block4) |
| HANDLE_DW_FORM(0x05, data2) |
| HANDLE_DW_FORM(0x06, data4) |
| HANDLE_DW_FORM(0x07, data8) |
| HANDLE_DW_FORM(0x08, string) |
| HANDLE_DW_FORM(0x09, block) |
| HANDLE_DW_FORM(0x0a, block1) |
| HANDLE_DW_FORM(0x0b, data1) |
| HANDLE_DW_FORM(0x0c, flag) |
| HANDLE_DW_FORM(0x0d, sdata) |
| HANDLE_DW_FORM(0x0e, strp) |
| HANDLE_DW_FORM(0x0f, udata) |
| HANDLE_DW_FORM(0x10, ref_addr) |
| HANDLE_DW_FORM(0x11, ref1) |
| HANDLE_DW_FORM(0x12, ref2) |
| HANDLE_DW_FORM(0x13, ref4) |
| HANDLE_DW_FORM(0x14, ref8) |
| HANDLE_DW_FORM(0x15, ref_udata) |
| HANDLE_DW_FORM(0x16, indirect) |
| // New in DWARF v4: |
| HANDLE_DW_FORM(0x17, sec_offset) |
| HANDLE_DW_FORM(0x18, exprloc) |
| HANDLE_DW_FORM(0x19, flag_present) |
| // This was defined out of sequence. |
| HANDLE_DW_FORM(0x20, ref_sig8) |
| // New in DWARF v5: |
| HANDLE_DW_FORM(0x1a, strx) |
| HANDLE_DW_FORM(0x1b, addrx) |
| HANDLE_DW_FORM(0x1c, ref_sup4) |
| HANDLE_DW_FORM(0x1d, strp_sup) |
| HANDLE_DW_FORM(0x1e, data16) |
| HANDLE_DW_FORM(0x1f, line_strp) |
| HANDLE_DW_FORM(0x21, implicit_const) |
| HANDLE_DW_FORM(0x22, loclistx) |
| HANDLE_DW_FORM(0x23, rnglistx) |
| HANDLE_DW_FORM(0x24, ref_sup8) |
| HANDLE_DW_FORM(0x25, strx1) |
| HANDLE_DW_FORM(0x26, strx2) |
| HANDLE_DW_FORM(0x27, strx3) |
| HANDLE_DW_FORM(0x28, strx4) |
| HANDLE_DW_FORM(0x29, addrx1) |
| HANDLE_DW_FORM(0x2a, addrx2) |
| HANDLE_DW_FORM(0x2b, addrx3) |
| HANDLE_DW_FORM(0x2c, addrx4) |
| // Extensions for Fission proposal |
| HANDLE_DW_FORM(0x1f01, GNU_addr_index) |
| HANDLE_DW_FORM(0x1f02, GNU_str_index) |
| // Alternate debug sections proposal (output of "dwz" tool). |
| HANDLE_DW_FORM(0x1f20, GNU_ref_alt) |
| HANDLE_DW_FORM(0x1f21, GNU_strp_alt) |
| |
| // DWARF Expression operators. |
| HANDLE_DW_OP(0x03, addr) |
| HANDLE_DW_OP(0x06, deref) |
| HANDLE_DW_OP(0x08, const1u) |
| HANDLE_DW_OP(0x09, const1s) |
| HANDLE_DW_OP(0x0a, const2u) |
| HANDLE_DW_OP(0x0b, const2s) |
| HANDLE_DW_OP(0x0c, const4u) |
| HANDLE_DW_OP(0x0d, const4s) |
| HANDLE_DW_OP(0x0e, const8u) |
| HANDLE_DW_OP(0x0f, const8s) |
| HANDLE_DW_OP(0x10, constu) |
| HANDLE_DW_OP(0x11, consts) |
| HANDLE_DW_OP(0x12, dup) |
| HANDLE_DW_OP(0x13, drop) |
| HANDLE_DW_OP(0x14, over) |
| HANDLE_DW_OP(0x15, pick) |
| HANDLE_DW_OP(0x16, swap) |
| HANDLE_DW_OP(0x17, rot) |
| HANDLE_DW_OP(0x18, xderef) |
| HANDLE_DW_OP(0x19, abs) |
| HANDLE_DW_OP(0x1a, and) |
| HANDLE_DW_OP(0x1b, div) |
| HANDLE_DW_OP(0x1c, minus) |
| HANDLE_DW_OP(0x1d, mod) |
| HANDLE_DW_OP(0x1e, mul) |
| HANDLE_DW_OP(0x1f, neg) |
| HANDLE_DW_OP(0x20, not) |
| HANDLE_DW_OP(0x21, or) |
| HANDLE_DW_OP(0x22, plus) |
| HANDLE_DW_OP(0x23, plus_uconst) |
| HANDLE_DW_OP(0x24, shl) |
| HANDLE_DW_OP(0x25, shr) |
| HANDLE_DW_OP(0x26, shra) |
| HANDLE_DW_OP(0x27, xor) |
| HANDLE_DW_OP(0x28, bra) |
| HANDLE_DW_OP(0x29, eq) |
| HANDLE_DW_OP(0x2a, ge) |
| HANDLE_DW_OP(0x2b, gt) |
| HANDLE_DW_OP(0x2c, le) |
| HANDLE_DW_OP(0x2d, lt) |
| HANDLE_DW_OP(0x2e, ne) |
| HANDLE_DW_OP(0x2f, skip) |
| HANDLE_DW_OP(0x30, lit0) |
| HANDLE_DW_OP(0x31, lit1) |
| HANDLE_DW_OP(0x32, lit2) |
| HANDLE_DW_OP(0x33, lit3) |
| HANDLE_DW_OP(0x34, lit4) |
| HANDLE_DW_OP(0x35, lit5) |
| HANDLE_DW_OP(0x36, lit6) |
| HANDLE_DW_OP(0x37, lit7) |
| HANDLE_DW_OP(0x38, lit8) |
| HANDLE_DW_OP(0x39, lit9) |
| HANDLE_DW_OP(0x3a, lit10) |
| HANDLE_DW_OP(0x3b, lit11) |
| HANDLE_DW_OP(0x3c, lit12) |
| HANDLE_DW_OP(0x3d, lit13) |
| HANDLE_DW_OP(0x3e, lit14) |
| HANDLE_DW_OP(0x3f, lit15) |
| HANDLE_DW_OP(0x40, lit16) |
| HANDLE_DW_OP(0x41, lit17) |
| HANDLE_DW_OP(0x42, lit18) |
| HANDLE_DW_OP(0x43, lit19) |
| HANDLE_DW_OP(0x44, lit20) |
| HANDLE_DW_OP(0x45, lit21) |
| HANDLE_DW_OP(0x46, lit22) |
| HANDLE_DW_OP(0x47, lit23) |
| HANDLE_DW_OP(0x48, lit24) |
| HANDLE_DW_OP(0x49, lit25) |
| HANDLE_DW_OP(0x4a, lit26) |
| HANDLE_DW_OP(0x4b, lit27) |
| HANDLE_DW_OP(0x4c, lit28) |
| HANDLE_DW_OP(0x4d, lit29) |
| HANDLE_DW_OP(0x4e, lit30) |
| HANDLE_DW_OP(0x4f, lit31) |
| HANDLE_DW_OP(0x50, reg0) |
| HANDLE_DW_OP(0x51, reg1) |
| HANDLE_DW_OP(0x52, reg2) |
| HANDLE_DW_OP(0x53, reg3) |
| HANDLE_DW_OP(0x54, reg4) |
| HANDLE_DW_OP(0x55, reg5) |
| HANDLE_DW_OP(0x56, reg6) |
| HANDLE_DW_OP(0x57, reg7) |
| HANDLE_DW_OP(0x58, reg8) |
| HANDLE_DW_OP(0x59, reg9) |
| HANDLE_DW_OP(0x5a, reg10) |
| HANDLE_DW_OP(0x5b, reg11) |
| HANDLE_DW_OP(0x5c, reg12) |
| HANDLE_DW_OP(0x5d, reg13) |
| HANDLE_DW_OP(0x5e, reg14) |
| HANDLE_DW_OP(0x5f, reg15) |
| HANDLE_DW_OP(0x60, reg16) |
| HANDLE_DW_OP(0x61, reg17) |
| HANDLE_DW_OP(0x62, reg18) |
| HANDLE_DW_OP(0x63, reg19) |
| HANDLE_DW_OP(0x64, reg20) |
| HANDLE_DW_OP(0x65, reg21) |
| HANDLE_DW_OP(0x66, reg22) |
| HANDLE_DW_OP(0x67, reg23) |
| HANDLE_DW_OP(0x68, reg24) |
| HANDLE_DW_OP(0x69, reg25) |
| HANDLE_DW_OP(0x6a, reg26) |
| HANDLE_DW_OP(0x6b, reg27) |
| HANDLE_DW_OP(0x6c, reg28) |
| HANDLE_DW_OP(0x6d, reg29) |
| HANDLE_DW_OP(0x6e, reg30) |
| HANDLE_DW_OP(0x6f, reg31) |
| HANDLE_DW_OP(0x70, breg0) |
| HANDLE_DW_OP(0x71, breg1) |
| HANDLE_DW_OP(0x72, breg2) |
| HANDLE_DW_OP(0x73, breg3) |
| HANDLE_DW_OP(0x74, breg4) |
| HANDLE_DW_OP(0x75, breg5) |
| HANDLE_DW_OP(0x76, breg6) |
| HANDLE_DW_OP(0x77, breg7) |
| HANDLE_DW_OP(0x78, breg8) |
| HANDLE_DW_OP(0x79, breg9) |
| HANDLE_DW_OP(0x7a, breg10) |
| HANDLE_DW_OP(0x7b, breg11) |
| HANDLE_DW_OP(0x7c, breg12) |
| HANDLE_DW_OP(0x7d, breg13) |
| HANDLE_DW_OP(0x7e, breg14) |
| HANDLE_DW_OP(0x7f, breg15) |
| HANDLE_DW_OP(0x80, breg16) |
| HANDLE_DW_OP(0x81, breg17) |
| HANDLE_DW_OP(0x82, breg18) |
| HANDLE_DW_OP(0x83, breg19) |
| HANDLE_DW_OP(0x84, breg20) |
| HANDLE_DW_OP(0x85, breg21) |
| HANDLE_DW_OP(0x86, breg22) |
| HANDLE_DW_OP(0x87, breg23) |
| HANDLE_DW_OP(0x88, breg24) |
| HANDLE_DW_OP(0x89, breg25) |
| HANDLE_DW_OP(0x8a, breg26) |
| HANDLE_DW_OP(0x8b, breg27) |
| HANDLE_DW_OP(0x8c, breg28) |
| HANDLE_DW_OP(0x8d, breg29) |
| HANDLE_DW_OP(0x8e, breg30) |
| HANDLE_DW_OP(0x8f, breg31) |
| HANDLE_DW_OP(0x90, regx) |
| HANDLE_DW_OP(0x91, fbreg) |
| HANDLE_DW_OP(0x92, bregx) |
| HANDLE_DW_OP(0x93, piece) |
| HANDLE_DW_OP(0x94, deref_size) |
| HANDLE_DW_OP(0x95, xderef_size) |
| HANDLE_DW_OP(0x96, nop) |
| // New in DWARF v3: |
| HANDLE_DW_OP(0x97, push_object_address) |
| HANDLE_DW_OP(0x98, call2) |
| HANDLE_DW_OP(0x99, call4) |
| HANDLE_DW_OP(0x9a, call_ref) |
| HANDLE_DW_OP(0x9b, form_tls_address) |
| HANDLE_DW_OP(0x9c, call_frame_cfa) |
| HANDLE_DW_OP(0x9d, bit_piece) |
| // New in DWARF v4: |
| HANDLE_DW_OP(0x9e, implicit_value) |
| HANDLE_DW_OP(0x9f, stack_value) |
| // New in DWARF v5: |
| HANDLE_DW_OP(0xa0, implicit_pointer) |
| HANDLE_DW_OP(0xa1, addrx) |
| HANDLE_DW_OP(0xa2, constx) |
| HANDLE_DW_OP(0xa3, entry_value) |
| HANDLE_DW_OP(0xa4, const_type) |
| HANDLE_DW_OP(0xa5, regval_type) |
| HANDLE_DW_OP(0xa6, deref_type) |
| HANDLE_DW_OP(0xa7, xderef_type) |
| HANDLE_DW_OP(0xa8, convert) |
| HANDLE_DW_OP(0xa9, reinterpret) |
| // Vendor extensions: |
| // Extensions for GNU-style thread-local storage. |
| HANDLE_DW_OP(0xe0, GNU_push_tls_address) |
| // Extensions for Fission proposal. |
| HANDLE_DW_OP(0xfb, GNU_addr_index) |
| HANDLE_DW_OP(0xfc, GNU_const_index) |
| |
| // DWARF languages. |
| HANDLE_DW_LANG(0x0001, C89) |
| HANDLE_DW_LANG(0x0002, C) |
| HANDLE_DW_LANG(0x0003, Ada83) |
| HANDLE_DW_LANG(0x0004, C_plus_plus) |
| HANDLE_DW_LANG(0x0005, Cobol74) |
| HANDLE_DW_LANG(0x0006, Cobol85) |
| HANDLE_DW_LANG(0x0007, Fortran77) |
| HANDLE_DW_LANG(0x0008, Fortran90) |
| HANDLE_DW_LANG(0x0009, Pascal83) |
| HANDLE_DW_LANG(0x000a, Modula2) |
| // New in DWARF v3: |
| HANDLE_DW_LANG(0x000b, Java) |
| HANDLE_DW_LANG(0x000c, C99) |
| HANDLE_DW_LANG(0x000d, Ada95) |
| HANDLE_DW_LANG(0x000e, Fortran95) |
| HANDLE_DW_LANG(0x000f, PLI) |
| HANDLE_DW_LANG(0x0010, ObjC) |
| HANDLE_DW_LANG(0x0011, ObjC_plus_plus) |
| HANDLE_DW_LANG(0x0012, UPC) |
| HANDLE_DW_LANG(0x0013, D) |
| // New in DWARF v4: |
| HANDLE_DW_LANG(0x0014, Python) |
| // New in DWARF v5: |
| HANDLE_DW_LANG(0x0015, OpenCL) |
| HANDLE_DW_LANG(0x0016, Go) |
| HANDLE_DW_LANG(0x0017, Modula3) |
| HANDLE_DW_LANG(0x0018, Haskell) |
| HANDLE_DW_LANG(0x0019, C_plus_plus_03) |
| HANDLE_DW_LANG(0x001a, C_plus_plus_11) |
| HANDLE_DW_LANG(0x001b, OCaml) |
| HANDLE_DW_LANG(0x001c, Rust) |
| HANDLE_DW_LANG(0x001d, C11) |
| HANDLE_DW_LANG(0x001e, Swift) |
| HANDLE_DW_LANG(0x001f, Julia) |
| HANDLE_DW_LANG(0x0020, Dylan) |
| HANDLE_DW_LANG(0x0021, C_plus_plus_14) |
| HANDLE_DW_LANG(0x0022, Fortran03) |
| HANDLE_DW_LANG(0x0023, Fortran08) |
| HANDLE_DW_LANG(0x0024, RenderScript) |
| HANDLE_DW_LANG(0x0025, BLISS) |
| // Vendor extensions: |
| HANDLE_DW_LANG(0x8001, Mips_Assembler) |
| HANDLE_DW_LANG(0x8e57, GOOGLE_RenderScript) |
| HANDLE_DW_LANG(0xb000, BORLAND_Delphi) |
| |
| // DWARF attribute type encodings. |
| HANDLE_DW_ATE(0x01, address) |
| HANDLE_DW_ATE(0x02, boolean) |
| HANDLE_DW_ATE(0x03, complex_float) |
| HANDLE_DW_ATE(0x04, float) |
| HANDLE_DW_ATE(0x05, signed) |
| HANDLE_DW_ATE(0x06, signed_char) |
| HANDLE_DW_ATE(0x07, unsigned) |
| HANDLE_DW_ATE(0x08, unsigned_char) |
| // New in DWARF v3: |
| HANDLE_DW_ATE(0x09, imaginary_float) |
| HANDLE_DW_ATE(0x0a, packed_decimal) |
| HANDLE_DW_ATE(0x0b, numeric_string) |
| HANDLE_DW_ATE(0x0c, edited) |
| HANDLE_DW_ATE(0x0d, signed_fixed) |
| HANDLE_DW_ATE(0x0e, unsigned_fixed) |
| HANDLE_DW_ATE(0x0f, decimal_float) |
| // New in DWARF v4: |
| HANDLE_DW_ATE(0x10, UTF) |
| // New in DWARF v5: |
| HANDLE_DW_ATE(0x11, UCS) |
| HANDLE_DW_ATE(0x12, ASCII) |
| |
| // DWARF virtuality codes. |
| HANDLE_DW_VIRTUALITY(0x00, none) |
| HANDLE_DW_VIRTUALITY(0x01, virtual) |
| HANDLE_DW_VIRTUALITY(0x02, pure_virtual) |
| |
| // DWARF v5 Defaulted Member Encodings. |
| HANDLE_DW_DEFAULTED(0x00, no) |
| HANDLE_DW_DEFAULTED(0x01, in_class) |
| HANDLE_DW_DEFAULTED(0x02, out_of_class) |
| |
| // DWARF calling convention codes. |
| HANDLE_DW_CC(0x01, normal) |
| HANDLE_DW_CC(0x02, program) |
| HANDLE_DW_CC(0x03, nocall) |
| // New in DWARF v5: |
| HANDLE_DW_CC(0x04, pass_by_reference) |
| HANDLE_DW_CC(0x05, pass_by_value) |
| // Vendor extensions: |
| HANDLE_DW_CC(0x41, GNU_borland_fastcall_i386) |
| HANDLE_DW_CC(0xb0, BORLAND_safecall) |
| HANDLE_DW_CC(0xb1, BORLAND_stdcall) |
| HANDLE_DW_CC(0xb2, BORLAND_pascal) |
| HANDLE_DW_CC(0xb3, BORLAND_msfastcall) |
| HANDLE_DW_CC(0xb4, BORLAND_msreturn) |
| HANDLE_DW_CC(0xb5, BORLAND_thiscall) |
| HANDLE_DW_CC(0xb6, BORLAND_fastcall) |
| HANDLE_DW_CC(0xc0, LLVM_vectorcall) |
| |
| // Line Number Extended Opcode Encodings |
| HANDLE_DW_LNE(0x01, end_sequence) |
| HANDLE_DW_LNE(0x02, set_address) |
| HANDLE_DW_LNE(0x03, define_file) |
| // New in DWARF v4: |
| HANDLE_DW_LNE(0x04, set_discriminator) |
| |
| // Line Number Standard Opcode Encodings. |
| HANDLE_DW_LNS(0x00, extended_op) |
| HANDLE_DW_LNS(0x01, copy) |
| HANDLE_DW_LNS(0x02, advance_pc) |
| HANDLE_DW_LNS(0x03, advance_line) |
| HANDLE_DW_LNS(0x04, set_file) |
| HANDLE_DW_LNS(0x05, set_column) |
| HANDLE_DW_LNS(0x06, negate_stmt) |
| HANDLE_DW_LNS(0x07, set_basic_block) |
| HANDLE_DW_LNS(0x08, const_add_pc) |
| HANDLE_DW_LNS(0x09, fixed_advance_pc) |
| // New in DWARF v3: |
| HANDLE_DW_LNS(0x0a, set_prologue_end) |
| HANDLE_DW_LNS(0x0b, set_epilogue_begin) |
| HANDLE_DW_LNS(0x0c, set_isa) |
| |
| // DWARF v5 Line number header entry format. |
| HANDLE_DW_LNCT(0x01, path) |
| HANDLE_DW_LNCT(0x02, directory_index) |
| HANDLE_DW_LNCT(0x03, timestamp) |
| HANDLE_DW_LNCT(0x04, size) |
| HANDLE_DW_LNCT(0x05, MD5) |
| |
| // DWARF v5 Macro information. |
| HANDLE_DW_MACRO(0x01, define) |
| HANDLE_DW_MACRO(0x02, undef) |
| HANDLE_DW_MACRO(0x03, start_file) |
| HANDLE_DW_MACRO(0x04, end_file) |
| HANDLE_DW_MACRO(0x05, define_strp) |
| HANDLE_DW_MACRO(0x06, undef_strp) |
| HANDLE_DW_MACRO(0x07, import) |
| HANDLE_DW_MACRO(0x08, define_sup) |
| HANDLE_DW_MACRO(0x09, undef_sup) |
| HANDLE_DW_MACRO(0x0a, import_sup) |
| HANDLE_DW_MACRO(0x0b, define_strx) |
| HANDLE_DW_MACRO(0x0c, undef_strx) |
| |
| // DWARF v5 Range List Entry encoding values. |
| HANDLE_DW_RLE(0x00, end_of_list) |
| HANDLE_DW_RLE(0x01, base_addressx) |
| HANDLE_DW_RLE(0x02, startx_endx) |
| HANDLE_DW_RLE(0x03, startx_length) |
| HANDLE_DW_RLE(0x04, offset_pair) |
| HANDLE_DW_RLE(0x05, base_address) |
| HANDLE_DW_RLE(0x06, start_end) |
| HANDLE_DW_RLE(0x07, start_length) |
| |
| // Call frame instruction encodings. |
| HANDLE_DW_CFA(0x00, nop) |
| HANDLE_DW_CFA(0x40, advance_loc) |
| HANDLE_DW_CFA(0x80, offset) |
| HANDLE_DW_CFA(0xc0, restore) |
| HANDLE_DW_CFA(0x01, set_loc) |
| HANDLE_DW_CFA(0x02, advance_loc1) |
| HANDLE_DW_CFA(0x03, advance_loc2) |
| HANDLE_DW_CFA(0x04, advance_loc4) |
| HANDLE_DW_CFA(0x05, offset_extended) |
| HANDLE_DW_CFA(0x06, restore_extended) |
| HANDLE_DW_CFA(0x07, undefined) |
| HANDLE_DW_CFA(0x08, same_value) |
| HANDLE_DW_CFA(0x09, register) |
| HANDLE_DW_CFA(0x0a, remember_state) |
| HANDLE_DW_CFA(0x0b, restore_state) |
| HANDLE_DW_CFA(0x0c, def_cfa) |
| HANDLE_DW_CFA(0x0d, def_cfa_register) |
| HANDLE_DW_CFA(0x0e, def_cfa_offset) |
| // New in DWARF v3: |
| HANDLE_DW_CFA(0x0f, def_cfa_expression) |
| HANDLE_DW_CFA(0x10, expression) |
| HANDLE_DW_CFA(0x11, offset_extended_sf) |
| HANDLE_DW_CFA(0x12, def_cfa_sf) |
| HANDLE_DW_CFA(0x13, def_cfa_offset_sf) |
| HANDLE_DW_CFA(0x14, val_offset) |
| HANDLE_DW_CFA(0x15, val_offset_sf) |
| HANDLE_DW_CFA(0x16, val_expression) |
| // Vendor extensions: |
| HANDLE_DW_CFA(0x1d, MIPS_advance_loc8) |
| HANDLE_DW_CFA(0x2d, GNU_window_save) |
| HANDLE_DW_CFA(0x2e, GNU_args_size) |
| |
| // Apple Objective-C Property Attributes. |
| // Keep this list in sync with clang's DeclSpec.h ObjCPropertyAttributeKind! |
| HANDLE_DW_APPLE_PROPERTY(0x01, readonly) |
| HANDLE_DW_APPLE_PROPERTY(0x02, getter) |
| HANDLE_DW_APPLE_PROPERTY(0x04, assign) |
| HANDLE_DW_APPLE_PROPERTY(0x08, readwrite) |
| HANDLE_DW_APPLE_PROPERTY(0x10, retain) |
| HANDLE_DW_APPLE_PROPERTY(0x20, copy) |
| HANDLE_DW_APPLE_PROPERTY(0x40, nonatomic) |
| HANDLE_DW_APPLE_PROPERTY(0x80, setter) |
| HANDLE_DW_APPLE_PROPERTY(0x100, atomic) |
| HANDLE_DW_APPLE_PROPERTY(0x200, weak) |
| HANDLE_DW_APPLE_PROPERTY(0x400, strong) |
| HANDLE_DW_APPLE_PROPERTY(0x800, unsafe_unretained) |
| HANDLE_DW_APPLE_PROPERTY(0x1000, nullability) |
| HANDLE_DW_APPLE_PROPERTY(0x2000, null_resettable) |
| HANDLE_DW_APPLE_PROPERTY(0x4000, class) |
| |
| // DWARF v5 Unit Types. |
| HANDLE_DW_UT(0x01, compile) |
| HANDLE_DW_UT(0x02, type) |
| HANDLE_DW_UT(0x03, partial) |
| HANDLE_DW_UT(0x04, skeleton) |
| HANDLE_DW_UT(0x05, split_compile) |
| HANDLE_DW_UT(0x06, split_type) |
| |
| #undef HANDLE_DW_TAG |
| #undef HANDLE_DW_AT |
| #undef HANDLE_DW_FORM |
| #undef HANDLE_DW_OP |
| #undef HANDLE_DW_LANG |
| #undef HANDLE_DW_ATE |
| #undef HANDLE_DW_VIRTUALITY |
| #undef HANDLE_DW_DEFAULTED |
| #undef HANDLE_DW_CC |
| #undef HANDLE_DW_LNS |
| #undef HANDLE_DW_LNE |
| #undef HANDLE_DW_LNCT |
| #undef HANDLE_DW_MACRO |
| #undef HANDLE_DW_RLE |
| #undef HANDLE_DW_CFA |
| #undef HANDLE_DW_APPLE_PROPERTY |
| #undef HANDLE_DW_UT |