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