1/* -*- c -*- 2 Declarations and definitions of codes relating to the DWARF2 and 3 DWARF3 symbolic debugging information formats. 4 Copyright (C) 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002, 5 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 6 Free Software Foundation, Inc. 7 8 Written by Gary Funck (gary@intrepid.com) The Ada Joint Program 9 Office (AJPO), Florida State University and Silicon Graphics Inc. 10 provided support for this effort -- June 21, 1995. 11 12 Derived from the DWARF 1 implementation written by Ron Guilmette 13 (rfg@netcom.com), November 1990. 14 15 This file is part of GCC. 16 17 GCC is free software; you can redistribute it and/or modify it under 18 the terms of the GNU General Public License as published by the Free 19 Software Foundation; either version 3, or (at your option) any later 20 version. 21 22 GCC is distributed in the hope that it will be useful, but WITHOUT 23 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 24 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 25 License for more details. 26 27 Under Section 7 of GPL version 3, you are granted additional 28 permissions described in the GCC Runtime Library Exception, version 29 3.1, as published by the Free Software Foundation. 30 31 You should have received a copy of the GNU General Public License and 32 a copy of the GCC Runtime Library Exception along with this program; 33 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 34 <http://www.gnu.org/licenses/>. */ 35 36/* This file is derived from the DWARF specification (a public document) 37 Revision 2.0.0 (July 27, 1993) developed by the UNIX International 38 Programming Languages Special Interest Group (UI/PLSIG) and distributed 39 by UNIX International. Copies of this specification are available from 40 UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054. 41 42 This file also now contains definitions from the DWARF 3 specification 43 published Dec 20, 2005, available from: http://dwarf.freestandards.org. 44 45 This file also now contains definitions from the DWARF 4 46 specification, available from: http://dwarfstd.org/ */ 47 48/* This file declares various DWARF-related constants using a set of 49 macros which can be redefined by the including file. 50 51 The macros are in sections. Each section corresponds to a single 52 set of DWARF constants and has a corresponding key. The key is 53 used in all the macro names. 54 55 The sections are TAG (for DW_TAG_ constants), FORM (DW_FORM_), AT 56 (DW_AT_), OP (DW_OP_), ATE (DW_ATE_), and CFA (DW_CFA_). 57 58 Using TAG as an example, the following macros may be used for each 59 key: 60 61 DW_FIRST_TAG(name, value) - Introduce the first DW_TAG constant. 62 63 DW_TAG(name, value) - Define a subsequent constant. 64 65 DW_TAG_DUP(name, value) - Define a subsequent constant whose value 66 is a duplicate of some other constant. Not all keys use the _DUP 67 macro form. If more than one name shares a value, then the base 68 (DW_TAG) form will be the preferred name and DW_TAG_DUP will hold 69 any alternate names. 70 71 DW_END_TAG - Invoked at the end of the DW_TAG constants. */ 72 73DW_FIRST_TAG (DW_TAG_padding, 0x00) 74DW_TAG (DW_TAG_array_type, 0x01) 75DW_TAG (DW_TAG_class_type, 0x02) 76DW_TAG (DW_TAG_entry_point, 0x03) 77DW_TAG (DW_TAG_enumeration_type, 0x04) 78DW_TAG (DW_TAG_formal_parameter, 0x05) 79DW_TAG (DW_TAG_imported_declaration, 0x08) 80DW_TAG (DW_TAG_label, 0x0a) 81DW_TAG (DW_TAG_lexical_block, 0x0b) 82DW_TAG (DW_TAG_member, 0x0d) 83DW_TAG (DW_TAG_pointer_type, 0x0f) 84DW_TAG (DW_TAG_reference_type, 0x10) 85DW_TAG (DW_TAG_compile_unit, 0x11) 86DW_TAG (DW_TAG_string_type, 0x12) 87DW_TAG (DW_TAG_structure_type, 0x13) 88DW_TAG (DW_TAG_subroutine_type, 0x15) 89DW_TAG (DW_TAG_typedef, 0x16) 90DW_TAG (DW_TAG_union_type, 0x17) 91DW_TAG (DW_TAG_unspecified_parameters, 0x18) 92DW_TAG (DW_TAG_variant, 0x19) 93DW_TAG (DW_TAG_common_block, 0x1a) 94DW_TAG (DW_TAG_common_inclusion, 0x1b) 95DW_TAG (DW_TAG_inheritance, 0x1c) 96DW_TAG (DW_TAG_inlined_subroutine, 0x1d) 97DW_TAG (DW_TAG_module, 0x1e) 98DW_TAG (DW_TAG_ptr_to_member_type, 0x1f) 99DW_TAG (DW_TAG_set_type, 0x20) 100DW_TAG (DW_TAG_subrange_type, 0x21) 101DW_TAG (DW_TAG_with_stmt, 0x22) 102DW_TAG (DW_TAG_access_declaration, 0x23) 103DW_TAG (DW_TAG_base_type, 0x24) 104DW_TAG (DW_TAG_catch_block, 0x25) 105DW_TAG (DW_TAG_const_type, 0x26) 106DW_TAG (DW_TAG_constant, 0x27) 107DW_TAG (DW_TAG_enumerator, 0x28) 108DW_TAG (DW_TAG_file_type, 0x29) 109DW_TAG (DW_TAG_friend, 0x2a) 110DW_TAG (DW_TAG_namelist, 0x2b) 111DW_TAG (DW_TAG_namelist_item, 0x2c) 112DW_TAG (DW_TAG_packed_type, 0x2d) 113DW_TAG (DW_TAG_subprogram, 0x2e) 114DW_TAG (DW_TAG_template_type_param, 0x2f) 115DW_TAG (DW_TAG_template_value_param, 0x30) 116DW_TAG (DW_TAG_thrown_type, 0x31) 117DW_TAG (DW_TAG_try_block, 0x32) 118DW_TAG (DW_TAG_variant_part, 0x33) 119DW_TAG (DW_TAG_variable, 0x34) 120DW_TAG (DW_TAG_volatile_type, 0x35) 121/* DWARF 3. */ 122DW_TAG (DW_TAG_dwarf_procedure, 0x36) 123DW_TAG (DW_TAG_restrict_type, 0x37) 124DW_TAG (DW_TAG_interface_type, 0x38) 125DW_TAG (DW_TAG_namespace, 0x39) 126DW_TAG (DW_TAG_imported_module, 0x3a) 127DW_TAG (DW_TAG_unspecified_type, 0x3b) 128DW_TAG (DW_TAG_partial_unit, 0x3c) 129DW_TAG (DW_TAG_imported_unit, 0x3d) 130DW_TAG (DW_TAG_condition, 0x3f) 131DW_TAG (DW_TAG_shared_type, 0x40) 132/* DWARF 4. */ 133DW_TAG (DW_TAG_type_unit, 0x41) 134DW_TAG (DW_TAG_rvalue_reference_type, 0x42) 135DW_TAG (DW_TAG_template_alias, 0x43) 136 137DW_TAG_DUP (DW_TAG_lo_user, 0x4080) 138DW_TAG_DUP (DW_TAG_hi_user, 0xffff) 139 140/* SGI/MIPS Extensions. */ 141DW_TAG (DW_TAG_MIPS_loop, 0x4081) 142 143/* HP extensions. See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz . */ 144DW_TAG (DW_TAG_HP_array_descriptor, 0x4090) 145DW_TAG (DW_TAG_HP_Bliss_field, 0x4091) 146DW_TAG (DW_TAG_HP_Bliss_field_set, 0x4092) 147 148/* GNU extensions. */ 149DW_TAG (DW_TAG_format_label, 0x4101) /* For FORTRAN 77 and Fortran 90. */ 150DW_TAG (DW_TAG_function_template, 0x4102) /* For C++. */ 151DW_TAG (DW_TAG_class_template, 0x4103) /* For C++. */ 152DW_TAG (DW_TAG_GNU_BINCL, 0x4104) 153DW_TAG (DW_TAG_GNU_EINCL, 0x4105) 154/* Template template parameter. 155 See http://gcc.gnu.org/wiki/TemplateParmsDwarf . */ 156DW_TAG (DW_TAG_GNU_template_template_param, 0x4106) 157 158/* Template parameter pack extension, specified at 159 http://wiki.dwarfstd.org/index.php?title=C%2B%2B0x:_Variadic_templates 160 The values of these two TAGS are in the DW_TAG_GNU_* space until the tags 161 are properly part of DWARF 5. */ 162DW_TAG (DW_TAG_GNU_template_parameter_pack, 0x4107) 163DW_TAG (DW_TAG_GNU_formal_parameter_pack, 0x4108) 164/* The GNU call site extension, specified at 165 http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open . 166 The values of these two TAGS are in the DW_TAG_GNU_* space until the tags 167 are properly part of DWARF 5. */ 168DW_TAG (DW_TAG_GNU_call_site, 0x4109) 169DW_TAG (DW_TAG_GNU_call_site_parameter, 0x410a) 170/* Extensions for UPC. See: http://dwarfstd.org/doc/DWARF4.pdf. */ 171DW_TAG (DW_TAG_upc_shared_type, 0x8765) 172DW_TAG (DW_TAG_upc_strict_type, 0x8766) 173DW_TAG (DW_TAG_upc_relaxed_type, 0x8767) 174/* PGI (STMicroelectronics) extensions. No documentation available. */ 175DW_TAG (DW_TAG_PGI_kanji_type, 0xA000) 176DW_TAG (DW_TAG_PGI_interface_block, 0xA020) 177DW_END_TAG 178 179DW_FIRST_FORM (DW_FORM_addr, 0x01) 180DW_FORM (DW_FORM_block2, 0x03) 181DW_FORM (DW_FORM_block4, 0x04) 182DW_FORM (DW_FORM_data2, 0x05) 183DW_FORM (DW_FORM_data4, 0x06) 184DW_FORM (DW_FORM_data8, 0x07) 185DW_FORM (DW_FORM_string, 0x08) 186DW_FORM (DW_FORM_block, 0x09) 187DW_FORM (DW_FORM_block1, 0x0a) 188DW_FORM (DW_FORM_data1, 0x0b) 189DW_FORM (DW_FORM_flag, 0x0c) 190DW_FORM (DW_FORM_sdata, 0x0d) 191DW_FORM (DW_FORM_strp, 0x0e) 192DW_FORM (DW_FORM_udata, 0x0f) 193DW_FORM (DW_FORM_ref_addr, 0x10) 194DW_FORM (DW_FORM_ref1, 0x11) 195DW_FORM (DW_FORM_ref2, 0x12) 196DW_FORM (DW_FORM_ref4, 0x13) 197DW_FORM (DW_FORM_ref8, 0x14) 198DW_FORM (DW_FORM_ref_udata, 0x15) 199DW_FORM (DW_FORM_indirect, 0x16) 200/* DWARF 4. */ 201DW_FORM (DW_FORM_sec_offset, 0x17) 202DW_FORM (DW_FORM_exprloc, 0x18) 203DW_FORM (DW_FORM_flag_present, 0x19) 204DW_FORM (DW_FORM_ref_sig8, 0x20) 205/* DWARF 5. */ 206DW_FORM (DW_FORM_line_strp, 0x1f) 207/* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */ 208DW_FORM (DW_FORM_GNU_addr_index, 0x1f01) 209DW_FORM (DW_FORM_GNU_str_index, 0x1f02) 210/* Extensions for DWZ multifile. 211 See http://www.dwarfstd.org/ShowIssue.php?issue=120604.1&type=open . */ 212DW_FORM (DW_FORM_GNU_ref_alt, 0x1f20) 213DW_FORM (DW_FORM_GNU_strp_alt, 0x1f21) 214DW_END_FORM 215 216DW_FIRST_AT (DW_AT_sibling, 0x01) 217DW_AT (DW_AT_location, 0x02) 218DW_AT (DW_AT_name, 0x03) 219DW_AT (DW_AT_ordering, 0x09) 220DW_AT (DW_AT_subscr_data, 0x0a) 221DW_AT (DW_AT_byte_size, 0x0b) 222DW_AT (DW_AT_bit_offset, 0x0c) 223DW_AT (DW_AT_bit_size, 0x0d) 224DW_AT (DW_AT_element_list, 0x0f) 225DW_AT (DW_AT_stmt_list, 0x10) 226DW_AT (DW_AT_low_pc, 0x11) 227DW_AT (DW_AT_high_pc, 0x12) 228DW_AT (DW_AT_language, 0x13) 229DW_AT (DW_AT_member, 0x14) 230DW_AT (DW_AT_discr, 0x15) 231DW_AT (DW_AT_discr_value, 0x16) 232DW_AT (DW_AT_visibility, 0x17) 233DW_AT (DW_AT_import, 0x18) 234DW_AT (DW_AT_string_length, 0x19) 235DW_AT (DW_AT_common_reference, 0x1a) 236DW_AT (DW_AT_comp_dir, 0x1b) 237DW_AT (DW_AT_const_value, 0x1c) 238DW_AT (DW_AT_containing_type, 0x1d) 239DW_AT (DW_AT_default_value, 0x1e) 240DW_AT (DW_AT_inline, 0x20) 241DW_AT (DW_AT_is_optional, 0x21) 242DW_AT (DW_AT_lower_bound, 0x22) 243DW_AT (DW_AT_producer, 0x25) 244DW_AT (DW_AT_prototyped, 0x27) 245DW_AT (DW_AT_return_addr, 0x2a) 246DW_AT (DW_AT_start_scope, 0x2c) 247DW_AT (DW_AT_bit_stride, 0x2e) 248DW_AT (DW_AT_upper_bound, 0x2f) 249DW_AT (DW_AT_abstract_origin, 0x31) 250DW_AT (DW_AT_accessibility, 0x32) 251DW_AT (DW_AT_address_class, 0x33) 252DW_AT (DW_AT_artificial, 0x34) 253DW_AT (DW_AT_base_types, 0x35) 254DW_AT (DW_AT_calling_convention, 0x36) 255DW_AT (DW_AT_count, 0x37) 256DW_AT (DW_AT_data_member_location, 0x38) 257DW_AT (DW_AT_decl_column, 0x39) 258DW_AT (DW_AT_decl_file, 0x3a) 259DW_AT (DW_AT_decl_line, 0x3b) 260DW_AT (DW_AT_declaration, 0x3c) 261DW_AT (DW_AT_discr_list, 0x3d) 262DW_AT (DW_AT_encoding, 0x3e) 263DW_AT (DW_AT_external, 0x3f) 264DW_AT (DW_AT_frame_base, 0x40) 265DW_AT (DW_AT_friend, 0x41) 266DW_AT (DW_AT_identifier_case, 0x42) 267DW_AT (DW_AT_macro_info, 0x43) 268DW_AT (DW_AT_namelist_items, 0x44) 269DW_AT (DW_AT_priority, 0x45) 270DW_AT (DW_AT_segment, 0x46) 271DW_AT (DW_AT_specification, 0x47) 272DW_AT (DW_AT_static_link, 0x48) 273DW_AT (DW_AT_type, 0x49) 274DW_AT (DW_AT_use_location, 0x4a) 275DW_AT (DW_AT_variable_parameter, 0x4b) 276DW_AT (DW_AT_virtuality, 0x4c) 277DW_AT (DW_AT_vtable_elem_location, 0x4d) 278/* DWARF 3 values. */ 279DW_AT (DW_AT_allocated, 0x4e) 280DW_AT (DW_AT_associated, 0x4f) 281DW_AT (DW_AT_data_location, 0x50) 282DW_AT (DW_AT_byte_stride, 0x51) 283DW_AT (DW_AT_entry_pc, 0x52) 284DW_AT (DW_AT_use_UTF8, 0x53) 285DW_AT (DW_AT_extension, 0x54) 286DW_AT (DW_AT_ranges, 0x55) 287DW_AT (DW_AT_trampoline, 0x56) 288DW_AT (DW_AT_call_column, 0x57) 289DW_AT (DW_AT_call_file, 0x58) 290DW_AT (DW_AT_call_line, 0x59) 291DW_AT (DW_AT_description, 0x5a) 292DW_AT (DW_AT_binary_scale, 0x5b) 293DW_AT (DW_AT_decimal_scale, 0x5c) 294DW_AT (DW_AT_small, 0x5d) 295DW_AT (DW_AT_decimal_sign, 0x5e) 296DW_AT (DW_AT_digit_count, 0x5f) 297DW_AT (DW_AT_picture_string, 0x60) 298DW_AT (DW_AT_mutable, 0x61) 299DW_AT (DW_AT_threads_scaled, 0x62) 300DW_AT (DW_AT_explicit, 0x63) 301DW_AT (DW_AT_object_pointer, 0x64) 302DW_AT (DW_AT_endianity, 0x65) 303DW_AT (DW_AT_elemental, 0x66) 304DW_AT (DW_AT_pure, 0x67) 305DW_AT (DW_AT_recursive, 0x68) 306/* DWARF 4. */ 307DW_AT (DW_AT_signature, 0x69) 308DW_AT (DW_AT_main_subprogram, 0x6a) 309DW_AT (DW_AT_data_bit_offset, 0x6b) 310DW_AT (DW_AT_const_expr, 0x6c) 311DW_AT (DW_AT_enum_class, 0x6d) 312DW_AT (DW_AT_linkage_name, 0x6e) 313 314DW_AT_DUP (DW_AT_lo_user, 0x2000) /* Implementation-defined range start. */ 315DW_AT_DUP (DW_AT_hi_user, 0x3fff) /* Implementation-defined range end. */ 316 317/* SGI/MIPS extensions. */ 318DW_AT (DW_AT_MIPS_fde, 0x2001) 319DW_AT (DW_AT_MIPS_loop_begin, 0x2002) 320DW_AT (DW_AT_MIPS_tail_loop_begin, 0x2003) 321DW_AT (DW_AT_MIPS_epilog_begin, 0x2004) 322DW_AT (DW_AT_MIPS_loop_unroll_factor, 0x2005) 323DW_AT (DW_AT_MIPS_software_pipeline_depth, 0x2006) 324DW_AT (DW_AT_MIPS_linkage_name, 0x2007) 325DW_AT (DW_AT_MIPS_stride, 0x2008) 326DW_AT (DW_AT_MIPS_abstract_name, 0x2009) 327DW_AT (DW_AT_MIPS_clone_origin, 0x200a) 328DW_AT (DW_AT_MIPS_has_inlines, 0x200b) 329/* HP extensions. */ 330DW_AT (DW_AT_HP_block_index, 0x2000) 331DW_AT_DUP (DW_AT_HP_unmodifiable, 0x2001) /* Same as DW_AT_MIPS_fde. */ 332DW_AT_DUP (DW_AT_HP_prologue, 0x2005) /* Same as DW_AT_MIPS_loop_unroll. */ 333DW_AT_DUP (DW_AT_HP_epilogue, 0x2008) /* Same as DW_AT_MIPS_stride. */ 334DW_AT (DW_AT_HP_actuals_stmt_list, 0x2010) 335DW_AT (DW_AT_HP_proc_per_section, 0x2011) 336DW_AT (DW_AT_HP_raw_data_ptr, 0x2012) 337DW_AT (DW_AT_HP_pass_by_reference, 0x2013) 338DW_AT (DW_AT_HP_opt_level, 0x2014) 339DW_AT (DW_AT_HP_prof_version_id, 0x2015) 340DW_AT (DW_AT_HP_opt_flags, 0x2016) 341DW_AT (DW_AT_HP_cold_region_low_pc, 0x2017) 342DW_AT (DW_AT_HP_cold_region_high_pc, 0x2018) 343DW_AT (DW_AT_HP_all_variables_modifiable, 0x2019) 344DW_AT (DW_AT_HP_linkage_name, 0x201a) 345DW_AT (DW_AT_HP_prof_flags, 0x201b) /* In comp unit of procs_info for -g. */ 346DW_AT (DW_AT_HP_unit_name, 0x201f) 347DW_AT (DW_AT_HP_unit_size, 0x2020) 348DW_AT (DW_AT_HP_widened_byte_size, 0x2021) 349DW_AT (DW_AT_HP_definition_points, 0x2022) 350DW_AT (DW_AT_HP_default_location, 0x2023) 351DW_AT (DW_AT_HP_is_result_param, 0x2029) 352 353/* GNU extensions. */ 354DW_AT (DW_AT_sf_names, 0x2101) 355DW_AT (DW_AT_src_info, 0x2102) 356DW_AT (DW_AT_mac_info, 0x2103) 357DW_AT (DW_AT_src_coords, 0x2104) 358DW_AT (DW_AT_body_begin, 0x2105) 359DW_AT (DW_AT_body_end, 0x2106) 360DW_AT (DW_AT_GNU_vector, 0x2107) 361/* Thread-safety annotations. 362 See http://gcc.gnu.org/wiki/ThreadSafetyAnnotation . */ 363DW_AT (DW_AT_GNU_guarded_by, 0x2108) 364DW_AT (DW_AT_GNU_pt_guarded_by, 0x2109) 365DW_AT (DW_AT_GNU_guarded, 0x210a) 366DW_AT (DW_AT_GNU_pt_guarded, 0x210b) 367DW_AT (DW_AT_GNU_locks_excluded, 0x210c) 368DW_AT (DW_AT_GNU_exclusive_locks_required, 0x210d) 369DW_AT (DW_AT_GNU_shared_locks_required, 0x210e) 370/* One-definition rule violation detection. 371 See http://gcc.gnu.org/wiki/DwarfSeparateTypeInfo . */ 372DW_AT (DW_AT_GNU_odr_signature, 0x210f) 373/* Template template argument name. 374 See http://gcc.gnu.org/wiki/TemplateParmsDwarf . */ 375DW_AT (DW_AT_GNU_template_name, 0x2110) 376/* The GNU call site extension. 377 See http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open . */ 378DW_AT (DW_AT_GNU_call_site_value, 0x2111) 379DW_AT (DW_AT_GNU_call_site_data_value, 0x2112) 380DW_AT (DW_AT_GNU_call_site_target, 0x2113) 381DW_AT (DW_AT_GNU_call_site_target_clobbered, 0x2114) 382DW_AT (DW_AT_GNU_tail_call, 0x2115) 383DW_AT (DW_AT_GNU_all_tail_call_sites, 0x2116) 384DW_AT (DW_AT_GNU_all_call_sites, 0x2117) 385DW_AT (DW_AT_GNU_all_source_call_sites, 0x2118) 386/* Section offset into .debug_macro section. */ 387DW_AT (DW_AT_GNU_macros, 0x2119) 388/* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */ 389DW_AT (DW_AT_GNU_dwo_name, 0x2130) 390DW_AT (DW_AT_GNU_dwo_id, 0x2131) 391DW_AT (DW_AT_GNU_ranges_base, 0x2132) 392DW_AT (DW_AT_GNU_addr_base, 0x2133) 393DW_AT (DW_AT_GNU_pubnames, 0x2134) 394DW_AT (DW_AT_GNU_pubtypes, 0x2135) 395/* Attribute for discriminator. 396 See http://gcc.gnu.org/wiki/Discriminator */ 397DW_AT (DW_AT_GNU_discriminator, 0x2136) 398/* VMS extensions. */ 399DW_AT (DW_AT_VMS_rtnbeg_pd_address, 0x2201) 400/* GNAT extensions. */ 401/* GNAT descriptive type. 402 See http://gcc.gnu.org/wiki/DW_AT_GNAT_descriptive_type . */ 403DW_AT (DW_AT_use_GNAT_descriptive_type, 0x2301) 404DW_AT (DW_AT_GNAT_descriptive_type, 0x2302) 405/* UPC extension. */ 406DW_AT (DW_AT_upc_threads_scaled, 0x3210) 407/* PGI (STMicroelectronics) extensions. */ 408DW_AT (DW_AT_PGI_lbase, 0x3a00) 409DW_AT (DW_AT_PGI_soffset, 0x3a01) 410DW_AT (DW_AT_PGI_lstride, 0x3a02) 411DW_END_AT 412 413DW_FIRST_OP (DW_OP_addr, 0x03) 414DW_OP (DW_OP_deref, 0x06) 415DW_OP (DW_OP_const1u, 0x08) 416DW_OP (DW_OP_const1s, 0x09) 417DW_OP (DW_OP_const2u, 0x0a) 418DW_OP (DW_OP_const2s, 0x0b) 419DW_OP (DW_OP_const4u, 0x0c) 420DW_OP (DW_OP_const4s, 0x0d) 421DW_OP (DW_OP_const8u, 0x0e) 422DW_OP (DW_OP_const8s, 0x0f) 423DW_OP (DW_OP_constu, 0x10) 424DW_OP (DW_OP_consts, 0x11) 425DW_OP (DW_OP_dup, 0x12) 426DW_OP (DW_OP_drop, 0x13) 427DW_OP (DW_OP_over, 0x14) 428DW_OP (DW_OP_pick, 0x15) 429DW_OP (DW_OP_swap, 0x16) 430DW_OP (DW_OP_rot, 0x17) 431DW_OP (DW_OP_xderef, 0x18) 432DW_OP (DW_OP_abs, 0x19) 433DW_OP (DW_OP_and, 0x1a) 434DW_OP (DW_OP_div, 0x1b) 435DW_OP (DW_OP_minus, 0x1c) 436DW_OP (DW_OP_mod, 0x1d) 437DW_OP (DW_OP_mul, 0x1e) 438DW_OP (DW_OP_neg, 0x1f) 439DW_OP (DW_OP_not, 0x20) 440DW_OP (DW_OP_or, 0x21) 441DW_OP (DW_OP_plus, 0x22) 442DW_OP (DW_OP_plus_uconst, 0x23) 443DW_OP (DW_OP_shl, 0x24) 444DW_OP (DW_OP_shr, 0x25) 445DW_OP (DW_OP_shra, 0x26) 446DW_OP (DW_OP_xor, 0x27) 447DW_OP (DW_OP_bra, 0x28) 448DW_OP (DW_OP_eq, 0x29) 449DW_OP (DW_OP_ge, 0x2a) 450DW_OP (DW_OP_gt, 0x2b) 451DW_OP (DW_OP_le, 0x2c) 452DW_OP (DW_OP_lt, 0x2d) 453DW_OP (DW_OP_ne, 0x2e) 454DW_OP (DW_OP_skip, 0x2f) 455DW_OP (DW_OP_lit0, 0x30) 456DW_OP (DW_OP_lit1, 0x31) 457DW_OP (DW_OP_lit2, 0x32) 458DW_OP (DW_OP_lit3, 0x33) 459DW_OP (DW_OP_lit4, 0x34) 460DW_OP (DW_OP_lit5, 0x35) 461DW_OP (DW_OP_lit6, 0x36) 462DW_OP (DW_OP_lit7, 0x37) 463DW_OP (DW_OP_lit8, 0x38) 464DW_OP (DW_OP_lit9, 0x39) 465DW_OP (DW_OP_lit10, 0x3a) 466DW_OP (DW_OP_lit11, 0x3b) 467DW_OP (DW_OP_lit12, 0x3c) 468DW_OP (DW_OP_lit13, 0x3d) 469DW_OP (DW_OP_lit14, 0x3e) 470DW_OP (DW_OP_lit15, 0x3f) 471DW_OP (DW_OP_lit16, 0x40) 472DW_OP (DW_OP_lit17, 0x41) 473DW_OP (DW_OP_lit18, 0x42) 474DW_OP (DW_OP_lit19, 0x43) 475DW_OP (DW_OP_lit20, 0x44) 476DW_OP (DW_OP_lit21, 0x45) 477DW_OP (DW_OP_lit22, 0x46) 478DW_OP (DW_OP_lit23, 0x47) 479DW_OP (DW_OP_lit24, 0x48) 480DW_OP (DW_OP_lit25, 0x49) 481DW_OP (DW_OP_lit26, 0x4a) 482DW_OP (DW_OP_lit27, 0x4b) 483DW_OP (DW_OP_lit28, 0x4c) 484DW_OP (DW_OP_lit29, 0x4d) 485DW_OP (DW_OP_lit30, 0x4e) 486DW_OP (DW_OP_lit31, 0x4f) 487DW_OP (DW_OP_reg0, 0x50) 488DW_OP (DW_OP_reg1, 0x51) 489DW_OP (DW_OP_reg2, 0x52) 490DW_OP (DW_OP_reg3, 0x53) 491DW_OP (DW_OP_reg4, 0x54) 492DW_OP (DW_OP_reg5, 0x55) 493DW_OP (DW_OP_reg6, 0x56) 494DW_OP (DW_OP_reg7, 0x57) 495DW_OP (DW_OP_reg8, 0x58) 496DW_OP (DW_OP_reg9, 0x59) 497DW_OP (DW_OP_reg10, 0x5a) 498DW_OP (DW_OP_reg11, 0x5b) 499DW_OP (DW_OP_reg12, 0x5c) 500DW_OP (DW_OP_reg13, 0x5d) 501DW_OP (DW_OP_reg14, 0x5e) 502DW_OP (DW_OP_reg15, 0x5f) 503DW_OP (DW_OP_reg16, 0x60) 504DW_OP (DW_OP_reg17, 0x61) 505DW_OP (DW_OP_reg18, 0x62) 506DW_OP (DW_OP_reg19, 0x63) 507DW_OP (DW_OP_reg20, 0x64) 508DW_OP (DW_OP_reg21, 0x65) 509DW_OP (DW_OP_reg22, 0x66) 510DW_OP (DW_OP_reg23, 0x67) 511DW_OP (DW_OP_reg24, 0x68) 512DW_OP (DW_OP_reg25, 0x69) 513DW_OP (DW_OP_reg26, 0x6a) 514DW_OP (DW_OP_reg27, 0x6b) 515DW_OP (DW_OP_reg28, 0x6c) 516DW_OP (DW_OP_reg29, 0x6d) 517DW_OP (DW_OP_reg30, 0x6e) 518DW_OP (DW_OP_reg31, 0x6f) 519DW_OP (DW_OP_breg0, 0x70) 520DW_OP (DW_OP_breg1, 0x71) 521DW_OP (DW_OP_breg2, 0x72) 522DW_OP (DW_OP_breg3, 0x73) 523DW_OP (DW_OP_breg4, 0x74) 524DW_OP (DW_OP_breg5, 0x75) 525DW_OP (DW_OP_breg6, 0x76) 526DW_OP (DW_OP_breg7, 0x77) 527DW_OP (DW_OP_breg8, 0x78) 528DW_OP (DW_OP_breg9, 0x79) 529DW_OP (DW_OP_breg10, 0x7a) 530DW_OP (DW_OP_breg11, 0x7b) 531DW_OP (DW_OP_breg12, 0x7c) 532DW_OP (DW_OP_breg13, 0x7d) 533DW_OP (DW_OP_breg14, 0x7e) 534DW_OP (DW_OP_breg15, 0x7f) 535DW_OP (DW_OP_breg16, 0x80) 536DW_OP (DW_OP_breg17, 0x81) 537DW_OP (DW_OP_breg18, 0x82) 538DW_OP (DW_OP_breg19, 0x83) 539DW_OP (DW_OP_breg20, 0x84) 540DW_OP (DW_OP_breg21, 0x85) 541DW_OP (DW_OP_breg22, 0x86) 542DW_OP (DW_OP_breg23, 0x87) 543DW_OP (DW_OP_breg24, 0x88) 544DW_OP (DW_OP_breg25, 0x89) 545DW_OP (DW_OP_breg26, 0x8a) 546DW_OP (DW_OP_breg27, 0x8b) 547DW_OP (DW_OP_breg28, 0x8c) 548DW_OP (DW_OP_breg29, 0x8d) 549DW_OP (DW_OP_breg30, 0x8e) 550DW_OP (DW_OP_breg31, 0x8f) 551DW_OP (DW_OP_regx, 0x90) 552DW_OP (DW_OP_fbreg, 0x91) 553DW_OP (DW_OP_bregx, 0x92) 554DW_OP (DW_OP_piece, 0x93) 555DW_OP (DW_OP_deref_size, 0x94) 556DW_OP (DW_OP_xderef_size, 0x95) 557DW_OP (DW_OP_nop, 0x96) 558/* DWARF 3 extensions. */ 559DW_OP (DW_OP_push_object_address, 0x97) 560DW_OP (DW_OP_call2, 0x98) 561DW_OP (DW_OP_call4, 0x99) 562DW_OP (DW_OP_call_ref, 0x9a) 563DW_OP (DW_OP_form_tls_address, 0x9b) 564DW_OP (DW_OP_call_frame_cfa, 0x9c) 565DW_OP (DW_OP_bit_piece, 0x9d) 566 567/* DWARF 4 extensions. */ 568DW_OP (DW_OP_implicit_value, 0x9e) 569DW_OP (DW_OP_stack_value, 0x9f) 570 571DW_OP_DUP (DW_OP_lo_user, 0xe0) /* Implementation-defined range start. */ 572DW_OP_DUP (DW_OP_hi_user, 0xff) /* Implementation-defined range end. */ 573 574/* GNU extensions. */ 575DW_OP (DW_OP_GNU_push_tls_address, 0xe0) 576/* The following is for marking variables that are uninitialized. */ 577DW_OP (DW_OP_GNU_uninit, 0xf0) 578DW_OP (DW_OP_GNU_encoded_addr, 0xf1) 579/* The GNU implicit pointer extension. 580 See http://www.dwarfstd.org/ShowIssue.php?issue=100831.1&type=open . */ 581DW_OP (DW_OP_GNU_implicit_pointer, 0xf2) 582/* The GNU entry value extension. 583 See http://www.dwarfstd.org/ShowIssue.php?issue=100909.1&type=open . */ 584DW_OP (DW_OP_GNU_entry_value, 0xf3) 585/* The GNU typed stack extension. 586 See http://www.dwarfstd.org/doc/040408.1.html . */ 587DW_OP (DW_OP_GNU_const_type, 0xf4) 588DW_OP (DW_OP_GNU_regval_type, 0xf5) 589DW_OP (DW_OP_GNU_deref_type, 0xf6) 590DW_OP (DW_OP_GNU_convert, 0xf7) 591DW_OP (DW_OP_GNU_reinterpret, 0xf9) 592/* The GNU parameter ref extension. */ 593DW_OP (DW_OP_GNU_parameter_ref, 0xfa) 594/* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */ 595DW_OP (DW_OP_GNU_addr_index, 0xfb) 596DW_OP (DW_OP_GNU_const_index, 0xfc) 597/* HP extensions. */ 598DW_OP_DUP (DW_OP_HP_unknown, 0xe0) /* Ouch, the same as GNU_push_tls_address. */ 599DW_OP (DW_OP_HP_is_value, 0xe1) 600DW_OP (DW_OP_HP_fltconst4, 0xe2) 601DW_OP (DW_OP_HP_fltconst8, 0xe3) 602DW_OP (DW_OP_HP_mod_range, 0xe4) 603DW_OP (DW_OP_HP_unmod_range, 0xe5) 604DW_OP (DW_OP_HP_tls, 0xe6) 605/* PGI (STMicroelectronics) extensions. */ 606DW_OP (DW_OP_PGI_omp_thread_num, 0xf8) 607DW_END_OP 608 609DW_FIRST_ATE (DW_ATE_void, 0x0) 610DW_ATE (DW_ATE_address, 0x1) 611DW_ATE (DW_ATE_boolean, 0x2) 612DW_ATE (DW_ATE_complex_float, 0x3) 613DW_ATE (DW_ATE_float, 0x4) 614DW_ATE (DW_ATE_signed, 0x5) 615DW_ATE (DW_ATE_signed_char, 0x6) 616DW_ATE (DW_ATE_unsigned, 0x7) 617DW_ATE (DW_ATE_unsigned_char, 0x8) 618/* DWARF 3. */ 619DW_ATE (DW_ATE_imaginary_float, 0x9) 620DW_ATE (DW_ATE_packed_decimal, 0xa) 621DW_ATE (DW_ATE_numeric_string, 0xb) 622DW_ATE (DW_ATE_edited, 0xc) 623DW_ATE (DW_ATE_signed_fixed, 0xd) 624DW_ATE (DW_ATE_unsigned_fixed, 0xe) 625DW_ATE (DW_ATE_decimal_float, 0xf) 626/* DWARF 4. */ 627DW_ATE (DW_ATE_UTF, 0x10) 628 629DW_ATE_DUP (DW_ATE_lo_user, 0x80) 630DW_ATE_DUP (DW_ATE_hi_user, 0xff) 631 632/* HP extensions. */ 633DW_ATE (DW_ATE_HP_float80, 0x80) /* Floating-point (80 bit). */ 634DW_ATE (DW_ATE_HP_complex_float80, 0x81) /* Complex floating-point (80 bit). */ 635DW_ATE (DW_ATE_HP_float128, 0x82) /* Floating-point (128 bit). */ 636DW_ATE (DW_ATE_HP_complex_float128, 0x83) /* Complex fp (128 bit). */ 637DW_ATE (DW_ATE_HP_floathpintel, 0x84) /* Floating-point (82 bit IA64). */ 638DW_ATE (DW_ATE_HP_imaginary_float80, 0x85) 639DW_ATE (DW_ATE_HP_imaginary_float128, 0x86) 640DW_ATE (DW_ATE_HP_VAX_float, 0x88) /* F or G floating. */ 641DW_ATE (DW_ATE_HP_VAX_float_d, 0x89) /* D floating. */ 642DW_ATE (DW_ATE_HP_packed_decimal, 0x8a) /* Cobol. */ 643DW_ATE (DW_ATE_HP_zoned_decimal, 0x8b) /* Cobol. */ 644DW_ATE (DW_ATE_HP_edited, 0x8c) /* Cobol. */ 645DW_ATE (DW_ATE_HP_signed_fixed, 0x8d) /* Cobol. */ 646DW_ATE (DW_ATE_HP_unsigned_fixed, 0x8e) /* Cobol. */ 647DW_ATE (DW_ATE_HP_VAX_complex_float, 0x8f) /* F or G floating complex. */ 648DW_ATE (DW_ATE_HP_VAX_complex_float_d, 0x90) /* D floating complex. */ 649 650DW_END_ATE 651 652DW_FIRST_CFA (DW_CFA_advance_loc, 0x40) 653DW_CFA (DW_CFA_offset, 0x80) 654DW_CFA (DW_CFA_restore, 0xc0) 655DW_CFA (DW_CFA_nop, 0x00) 656DW_CFA (DW_CFA_set_loc, 0x01) 657DW_CFA (DW_CFA_advance_loc1, 0x02) 658DW_CFA (DW_CFA_advance_loc2, 0x03) 659DW_CFA (DW_CFA_advance_loc4, 0x04) 660DW_CFA (DW_CFA_offset_extended, 0x05) 661DW_CFA (DW_CFA_restore_extended, 0x06) 662DW_CFA (DW_CFA_undefined, 0x07) 663DW_CFA (DW_CFA_same_value, 0x08) 664DW_CFA (DW_CFA_register, 0x09) 665DW_CFA (DW_CFA_remember_state, 0x0a) 666DW_CFA (DW_CFA_restore_state, 0x0b) 667DW_CFA (DW_CFA_def_cfa, 0x0c) 668DW_CFA (DW_CFA_def_cfa_register, 0x0d) 669DW_CFA (DW_CFA_def_cfa_offset, 0x0e) 670/* DWARF 3. */ 671DW_CFA (DW_CFA_def_cfa_expression, 0x0f) 672DW_CFA (DW_CFA_expression, 0x10) 673DW_CFA (DW_CFA_offset_extended_sf, 0x11) 674DW_CFA (DW_CFA_def_cfa_sf, 0x12) 675DW_CFA (DW_CFA_def_cfa_offset_sf, 0x13) 676DW_CFA (DW_CFA_val_offset, 0x14) 677DW_CFA (DW_CFA_val_offset_sf, 0x15) 678DW_CFA (DW_CFA_val_expression, 0x16) 679 680DW_CFA (DW_CFA_lo_user, 0x1c) 681DW_CFA (DW_CFA_hi_user, 0x3f) 682 683/* SGI/MIPS specific. */ 684DW_CFA (DW_CFA_MIPS_advance_loc8, 0x1d) 685/* GNU extensions. */ 686DW_CFA (DW_CFA_GNU_window_save, 0x2d) 687DW_CFA (DW_CFA_GNU_args_size, 0x2e) 688DW_CFA (DW_CFA_GNU_negative_offset_extended, 0x2f) 689 690DW_END_CFA 691