1*f3e7f55eSRobert Mustacchi /* 2*f3e7f55eSRobert Mustacchi Copyright (C) 2000,2001,2003,2004,2005,2006 Silicon Graphics, Inc. All Rights Reserved. 3*f3e7f55eSRobert Mustacchi Portions Copyright 2002-2010 Sun Microsystems, Inc. All rights reserved. 4*f3e7f55eSRobert Mustacchi Portions Copyright 2007-2010 David Anderson. All rights reserved. 5*f3e7f55eSRobert Mustacchi 6*f3e7f55eSRobert Mustacchi This program is free software; you can redistribute it and/or modify it 7*f3e7f55eSRobert Mustacchi under the terms of version 2.1 of the GNU Lesser General Public License 8*f3e7f55eSRobert Mustacchi as published by the Free Software Foundation. 9*f3e7f55eSRobert Mustacchi 10*f3e7f55eSRobert Mustacchi This program is distributed in the hope that it would be useful, but 11*f3e7f55eSRobert Mustacchi WITHOUT ANY WARRANTY; without even the implied warranty of 12*f3e7f55eSRobert Mustacchi MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13*f3e7f55eSRobert Mustacchi 14*f3e7f55eSRobert Mustacchi Further, this software is distributed without any warranty that it is 15*f3e7f55eSRobert Mustacchi free of the rightful claim of any third person regarding infringement 16*f3e7f55eSRobert Mustacchi or the like. Any license provided herein, whether implied or 17*f3e7f55eSRobert Mustacchi otherwise, applies only to this software file. Patent licenses, if 18*f3e7f55eSRobert Mustacchi any, provided herein do not apply to combinations of this program with 19*f3e7f55eSRobert Mustacchi other software, or any other product whatsoever. 20*f3e7f55eSRobert Mustacchi 21*f3e7f55eSRobert Mustacchi You should have received a copy of the GNU Lesser General Public 22*f3e7f55eSRobert Mustacchi License along with this program; if not, write the Free Software 23*f3e7f55eSRobert Mustacchi Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301, 24*f3e7f55eSRobert Mustacchi USA. 25*f3e7f55eSRobert Mustacchi 26*f3e7f55eSRobert Mustacchi Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane, 27*f3e7f55eSRobert Mustacchi Mountain View, CA 94043, or: 28*f3e7f55eSRobert Mustacchi 29*f3e7f55eSRobert Mustacchi http://www.sgi.com 30*f3e7f55eSRobert Mustacchi 31*f3e7f55eSRobert Mustacchi For further information regarding this notice, see: 32*f3e7f55eSRobert Mustacchi 33*f3e7f55eSRobert Mustacchi http://oss.sgi.com/projects/GenInfo/NoticeExplan 34*f3e7f55eSRobert Mustacchi 35*f3e7f55eSRobert Mustacchi */ 36*f3e7f55eSRobert Mustacchi 37*f3e7f55eSRobert Mustacchi 38*f3e7f55eSRobert Mustacchi #ifndef __DWARF_H 39*f3e7f55eSRobert Mustacchi #define __DWARF_H 40*f3e7f55eSRobert Mustacchi #ifdef __cplusplus 41*f3e7f55eSRobert Mustacchi extern "C" { 42*f3e7f55eSRobert Mustacchi #endif 43*f3e7f55eSRobert Mustacchi 44*f3e7f55eSRobert Mustacchi /* 45*f3e7f55eSRobert Mustacchi dwarf.h DWARF debugging information values 46*f3e7f55eSRobert Mustacchi $Revision: 1.41 $ $Date: 2006/04/17 00:09:56 $ 47*f3e7f55eSRobert Mustacchi 48*f3e7f55eSRobert Mustacchi The comment "DWARF3" appears where there are 49*f3e7f55eSRobert Mustacchi new entries from DWARF3 as of 2004, "DWARF3f" 50*f3e7f55eSRobert Mustacchi where there are new entries as of the November 2005 51*f3e7f55eSRobert Mustacchi public review document and other comments apply 52*f3e7f55eSRobert Mustacchi where extension entries appear. 53*f3e7f55eSRobert Mustacchi 54*f3e7f55eSRobert Mustacchi Extensions part of DWARF4 are marked DWARF4. 55*f3e7f55eSRobert Mustacchi 56*f3e7f55eSRobert Mustacchi A few extension names have omitted the 'vendor id' 57*f3e7f55eSRobert Mustacchi (See chapter 7, "Vendor Extensibility"). Please 58*f3e7f55eSRobert Mustacchi always use a 'vendor id' string in extension names. 59*f3e7f55eSRobert Mustacchi 60*f3e7f55eSRobert Mustacchi Vendors should use a vendor string in names and 61*f3e7f55eSRobert Mustacchi whereever possible avoid duplicating values used by 62*f3e7f55eSRobert Mustacchi other vendor extensions 63*f3e7f55eSRobert Mustacchi 64*f3e7f55eSRobert Mustacchi */ 65*f3e7f55eSRobert Mustacchi 66*f3e7f55eSRobert Mustacchi 67*f3e7f55eSRobert Mustacchi #define DW_TAG_array_type 0x01 68*f3e7f55eSRobert Mustacchi #define DW_TAG_class_type 0x02 69*f3e7f55eSRobert Mustacchi #define DW_TAG_entry_point 0x03 70*f3e7f55eSRobert Mustacchi #define DW_TAG_enumeration_type 0x04 71*f3e7f55eSRobert Mustacchi #define DW_TAG_formal_parameter 0x05 72*f3e7f55eSRobert Mustacchi #define DW_TAG_imported_declaration 0x08 73*f3e7f55eSRobert Mustacchi #define DW_TAG_label 0x0a 74*f3e7f55eSRobert Mustacchi #define DW_TAG_lexical_block 0x0b 75*f3e7f55eSRobert Mustacchi #define DW_TAG_member 0x0d 76*f3e7f55eSRobert Mustacchi #define DW_TAG_pointer_type 0x0f 77*f3e7f55eSRobert Mustacchi #define DW_TAG_reference_type 0x10 78*f3e7f55eSRobert Mustacchi #define DW_TAG_compile_unit 0x11 79*f3e7f55eSRobert Mustacchi #define DW_TAG_string_type 0x12 80*f3e7f55eSRobert Mustacchi #define DW_TAG_structure_type 0x13 81*f3e7f55eSRobert Mustacchi #define DW_TAG_subroutine_type 0x15 82*f3e7f55eSRobert Mustacchi #define DW_TAG_typedef 0x16 83*f3e7f55eSRobert Mustacchi #define DW_TAG_union_type 0x17 84*f3e7f55eSRobert Mustacchi #define DW_TAG_unspecified_parameters 0x18 85*f3e7f55eSRobert Mustacchi #define DW_TAG_variant 0x19 86*f3e7f55eSRobert Mustacchi #define DW_TAG_common_block 0x1a 87*f3e7f55eSRobert Mustacchi #define DW_TAG_common_inclusion 0x1b 88*f3e7f55eSRobert Mustacchi #define DW_TAG_inheritance 0x1c 89*f3e7f55eSRobert Mustacchi #define DW_TAG_inlined_subroutine 0x1d 90*f3e7f55eSRobert Mustacchi #define DW_TAG_module 0x1e 91*f3e7f55eSRobert Mustacchi #define DW_TAG_ptr_to_member_type 0x1f 92*f3e7f55eSRobert Mustacchi #define DW_TAG_set_type 0x20 93*f3e7f55eSRobert Mustacchi #define DW_TAG_subrange_type 0x21 94*f3e7f55eSRobert Mustacchi #define DW_TAG_with_stmt 0x22 95*f3e7f55eSRobert Mustacchi #define DW_TAG_access_declaration 0x23 96*f3e7f55eSRobert Mustacchi #define DW_TAG_base_type 0x24 97*f3e7f55eSRobert Mustacchi #define DW_TAG_catch_block 0x25 98*f3e7f55eSRobert Mustacchi #define DW_TAG_const_type 0x26 99*f3e7f55eSRobert Mustacchi #define DW_TAG_constant 0x27 100*f3e7f55eSRobert Mustacchi #define DW_TAG_enumerator 0x28 101*f3e7f55eSRobert Mustacchi #define DW_TAG_file_type 0x29 102*f3e7f55eSRobert Mustacchi #define DW_TAG_friend 0x2a 103*f3e7f55eSRobert Mustacchi #define DW_TAG_namelist 0x2b 104*f3e7f55eSRobert Mustacchi /* Early releases of this header had the following 105*f3e7f55eSRobert Mustacchi misspelled with a trailing 's' */ 106*f3e7f55eSRobert Mustacchi #define DW_TAG_namelist_item 0x2c /* DWARF3/2 spelling */ 107*f3e7f55eSRobert Mustacchi #define DW_TAG_namelist_items 0x2c /* SGI misspelling/typo */ 108*f3e7f55eSRobert Mustacchi #define DW_TAG_packed_type 0x2d 109*f3e7f55eSRobert Mustacchi #define DW_TAG_subprogram 0x2e 110*f3e7f55eSRobert Mustacchi /* The DWARF2 document had two spellings of the following 111*f3e7f55eSRobert Mustacchi two TAGs, DWARF3 specifies the longer spelling. */ 112*f3e7f55eSRobert Mustacchi #define DW_TAG_template_type_parameter 0x2f /* DWARF3/2 spelling*/ 113*f3e7f55eSRobert Mustacchi #define DW_TAG_template_type_param 0x2f /* DWARF2 spelling*/ 114*f3e7f55eSRobert Mustacchi #define DW_TAG_template_value_parameter 0x30 /* DWARF3/2 spelling*/ 115*f3e7f55eSRobert Mustacchi #define DW_TAG_template_value_param 0x30 /* DWARF2 spelling*/ 116*f3e7f55eSRobert Mustacchi #define DW_TAG_thrown_type 0x31 117*f3e7f55eSRobert Mustacchi #define DW_TAG_try_block 0x32 118*f3e7f55eSRobert Mustacchi #define DW_TAG_variant_part 0x33 119*f3e7f55eSRobert Mustacchi #define DW_TAG_variable 0x34 120*f3e7f55eSRobert Mustacchi #define DW_TAG_volatile_type 0x35 121*f3e7f55eSRobert Mustacchi #define DW_TAG_dwarf_procedure 0x36 /* DWARF3 */ 122*f3e7f55eSRobert Mustacchi #define DW_TAG_restrict_type 0x37 /* DWARF3 */ 123*f3e7f55eSRobert Mustacchi #define DW_TAG_interface_type 0x38 /* DWARF3 */ 124*f3e7f55eSRobert Mustacchi #define DW_TAG_namespace 0x39 /* DWARF3 */ 125*f3e7f55eSRobert Mustacchi #define DW_TAG_imported_module 0x3a /* DWARF3 */ 126*f3e7f55eSRobert Mustacchi #define DW_TAG_unspecified_type 0x3b /* DWARF3 */ 127*f3e7f55eSRobert Mustacchi #define DW_TAG_partial_unit 0x3c /* DWARF3 */ 128*f3e7f55eSRobert Mustacchi #define DW_TAG_imported_unit 0x3d /* DWARF3 */ 129*f3e7f55eSRobert Mustacchi /* Do not use DW_TAG_mutable_type */ 130*f3e7f55eSRobert Mustacchi #define DW_TAG_mutable_type 0x3e /* Withdrawn from DWARF3 by DWARF3f. */ 131*f3e7f55eSRobert Mustacchi #define DW_TAG_condition 0x3f /* DWARF3f */ 132*f3e7f55eSRobert Mustacchi #define DW_TAG_shared_type 0x40 /* DWARF3f */ 133*f3e7f55eSRobert Mustacchi #define DW_TAG_type_unit 0x41 /* DWARF4 */ 134*f3e7f55eSRobert Mustacchi #define DW_TAG_rvalue_reference_type 0x42 /* DWARF4 */ 135*f3e7f55eSRobert Mustacchi #define DW_TAG_template_alias 0x43 /* DWARF4 */ 136*f3e7f55eSRobert Mustacchi #define DW_TAG_lo_user 0x4080 137*f3e7f55eSRobert Mustacchi 138*f3e7f55eSRobert Mustacchi #define DW_TAG_MIPS_loop 0x4081 139*f3e7f55eSRobert Mustacchi 140*f3e7f55eSRobert Mustacchi /* HP extensions: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz */ 141*f3e7f55eSRobert Mustacchi #define DW_TAG_HP_array_descriptor 0x4090 /* HP */ 142*f3e7f55eSRobert Mustacchi 143*f3e7f55eSRobert Mustacchi /* GNU extensions. The first 3 missing the GNU_. */ 144*f3e7f55eSRobert Mustacchi #define DW_TAG_format_label 0x4101 /* GNU. Fortran. */ 145*f3e7f55eSRobert Mustacchi #define DW_TAG_function_template 0x4102 /* GNU. For C++ */ 146*f3e7f55eSRobert Mustacchi #define DW_TAG_class_template 0x4103 /* GNU. For C++ */ 147*f3e7f55eSRobert Mustacchi #define DW_TAG_GNU_BINCL 0x4104 /* GNU */ 148*f3e7f55eSRobert Mustacchi #define DW_TAG_GNU_EINCL 0x4105 /* GNU */ 149*f3e7f55eSRobert Mustacchi 150*f3e7f55eSRobert Mustacchi 151*f3e7f55eSRobert Mustacchi /* GNU extension. http://gcc.gnu.org/wiki/TemplateParmsDwarf */ 152*f3e7f55eSRobert Mustacchi #define DW_TAG_GNU_template_template_parameter 0x4106 /* GNU */ 153*f3e7f55eSRobert Mustacchi #define DW_TAG_GNU_template_template_param 0x4106 /* GNU */ 154*f3e7f55eSRobert Mustacchi #define DW_TAG_GNU_template_parameter_pack 0x4107 /* GNU */ 155*f3e7f55eSRobert Mustacchi #define DW_TAG_GNU_formal_parameter_pack 0x4108 /* GNU */ 156*f3e7f55eSRobert Mustacchi 157*f3e7f55eSRobert Mustacchi /* ALTIUM extensions */ 158*f3e7f55eSRobert Mustacchi /* DSP-C/Starcore __circ qualifier */ 159*f3e7f55eSRobert Mustacchi #define DW_TAG_ALTIUM_circ_type 0x5101 /* ALTIUM */ 160*f3e7f55eSRobert Mustacchi /* Starcore __mwa_circ qualifier */ 161*f3e7f55eSRobert Mustacchi #define DW_TAG_ALTIUM_mwa_circ_type 0x5102 /* ALTIUM */ 162*f3e7f55eSRobert Mustacchi /* Starcore __rev_carry qualifier */ 163*f3e7f55eSRobert Mustacchi #define DW_TAG_ALTIUM_rev_carry_type 0x5103 /* ALTIUM */ 164*f3e7f55eSRobert Mustacchi /* M16 __rom qualifier */ 165*f3e7f55eSRobert Mustacchi #define DW_TAG_ALTIUM_rom 0x5111 /* ALTIUM */ 166*f3e7f55eSRobert Mustacchi 167*f3e7f55eSRobert Mustacchi /* The following 3 are extensions to support UPC */ 168*f3e7f55eSRobert Mustacchi #define DW_TAG_upc_shared_type 0x8765 /* UPC */ 169*f3e7f55eSRobert Mustacchi #define DW_TAG_upc_strict_type 0x8766 /* UPC */ 170*f3e7f55eSRobert Mustacchi #define DW_TAG_upc_relaxed_type 0x8767 /* UPC */ 171*f3e7f55eSRobert Mustacchi 172*f3e7f55eSRobert Mustacchi /* PGI (STMicroelectronics) extensions. */ 173*f3e7f55eSRobert Mustacchi #define DW_TAG_PGI_kanji_type 0xa000 /* PGI */ 174*f3e7f55eSRobert Mustacchi #define DW_TAG_PGI_interface_block 0xa020 /* PGI */ 175*f3e7f55eSRobert Mustacchi /* The following are SUN extensions */ 176*f3e7f55eSRobert Mustacchi #define DW_TAG_SUN_function_template 0x4201 /* SUN */ 177*f3e7f55eSRobert Mustacchi #define DW_TAG_SUN_class_template 0x4202 /* SUN */ 178*f3e7f55eSRobert Mustacchi #define DW_TAG_SUN_struct_template 0x4203 /* SUN */ 179*f3e7f55eSRobert Mustacchi #define DW_TAG_SUN_union_template 0x4204 /* SUN */ 180*f3e7f55eSRobert Mustacchi #define DW_TAG_SUN_indirect_inheritance 0x4205 /* SUN */ 181*f3e7f55eSRobert Mustacchi #define DW_TAG_SUN_codeflags 0x4206 /* SUN */ 182*f3e7f55eSRobert Mustacchi #define DW_TAG_SUN_memop_info 0x4207 /* SUN */ 183*f3e7f55eSRobert Mustacchi #define DW_TAG_SUN_omp_child_func 0x4208 /* SUN */ 184*f3e7f55eSRobert Mustacchi #define DW_TAG_SUN_rtti_descriptor 0x4209 /* SUN */ 185*f3e7f55eSRobert Mustacchi #define DW_TAG_SUN_dtor_info 0x420a /* SUN */ 186*f3e7f55eSRobert Mustacchi #define DW_TAG_SUN_dtor 0x420b /* SUN */ 187*f3e7f55eSRobert Mustacchi #define DW_TAG_SUN_f90_interface 0x420c /* SUN */ 188*f3e7f55eSRobert Mustacchi #define DW_TAG_SUN_fortran_vax_structure 0x420d /* SUN */ 189*f3e7f55eSRobert Mustacchi #define DW_TAG_SUN_hi 0x42ff /* SUN */ 190*f3e7f55eSRobert Mustacchi 191*f3e7f55eSRobert Mustacchi 192*f3e7f55eSRobert Mustacchi #define DW_TAG_hi_user 0xffff 193*f3e7f55eSRobert Mustacchi 194*f3e7f55eSRobert Mustacchi #define DW_children_no 0 195*f3e7f55eSRobert Mustacchi #define DW_children_yes 1 196*f3e7f55eSRobert Mustacchi 197*f3e7f55eSRobert Mustacchi 198*f3e7f55eSRobert Mustacchi 199*f3e7f55eSRobert Mustacchi #define DW_FORM_addr 0x01 200*f3e7f55eSRobert Mustacchi #define DW_FORM_block2 0x03 201*f3e7f55eSRobert Mustacchi #define DW_FORM_block4 0x04 202*f3e7f55eSRobert Mustacchi #define DW_FORM_data2 0x05 203*f3e7f55eSRobert Mustacchi #define DW_FORM_data4 0x06 204*f3e7f55eSRobert Mustacchi #define DW_FORM_data8 0x07 205*f3e7f55eSRobert Mustacchi #define DW_FORM_string 0x08 206*f3e7f55eSRobert Mustacchi #define DW_FORM_block 0x09 207*f3e7f55eSRobert Mustacchi #define DW_FORM_block1 0x0a 208*f3e7f55eSRobert Mustacchi #define DW_FORM_data1 0x0b 209*f3e7f55eSRobert Mustacchi #define DW_FORM_flag 0x0c 210*f3e7f55eSRobert Mustacchi #define DW_FORM_sdata 0x0d 211*f3e7f55eSRobert Mustacchi #define DW_FORM_strp 0x0e 212*f3e7f55eSRobert Mustacchi #define DW_FORM_udata 0x0f 213*f3e7f55eSRobert Mustacchi #define DW_FORM_ref_addr 0x10 214*f3e7f55eSRobert Mustacchi #define DW_FORM_ref1 0x11 215*f3e7f55eSRobert Mustacchi #define DW_FORM_ref2 0x12 216*f3e7f55eSRobert Mustacchi #define DW_FORM_ref4 0x13 217*f3e7f55eSRobert Mustacchi #define DW_FORM_ref8 0x14 218*f3e7f55eSRobert Mustacchi #define DW_FORM_ref_udata 0x15 219*f3e7f55eSRobert Mustacchi #define DW_FORM_indirect 0x16 220*f3e7f55eSRobert Mustacchi #define DW_FORM_sec_offset 0x17 /* DWARF4 */ 221*f3e7f55eSRobert Mustacchi #define DW_FORM_exprloc 0x18 /* DWARF4 */ 222*f3e7f55eSRobert Mustacchi #define DW_FORM_flag_present 0x19 /* DWARF4 */ 223*f3e7f55eSRobert Mustacchi /* 0x1a thru 0x1f were left unused accidentally. Reserved for future use. */ 224*f3e7f55eSRobert Mustacchi #define DW_FORM_ref_sig8 0x20 /* DWARF4 */ 225*f3e7f55eSRobert Mustacchi 226*f3e7f55eSRobert Mustacchi #define DW_AT_sibling 0x01 227*f3e7f55eSRobert Mustacchi #define DW_AT_location 0x02 228*f3e7f55eSRobert Mustacchi #define DW_AT_name 0x03 229*f3e7f55eSRobert Mustacchi #define DW_AT_ordering 0x09 230*f3e7f55eSRobert Mustacchi #define DW_AT_subscr_data 0x0a 231*f3e7f55eSRobert Mustacchi #define DW_AT_byte_size 0x0b 232*f3e7f55eSRobert Mustacchi #define DW_AT_bit_offset 0x0c 233*f3e7f55eSRobert Mustacchi #define DW_AT_bit_size 0x0d 234*f3e7f55eSRobert Mustacchi #define DW_AT_element_list 0x0f 235*f3e7f55eSRobert Mustacchi #define DW_AT_stmt_list 0x10 236*f3e7f55eSRobert Mustacchi #define DW_AT_low_pc 0x11 237*f3e7f55eSRobert Mustacchi #define DW_AT_high_pc 0x12 238*f3e7f55eSRobert Mustacchi #define DW_AT_language 0x13 239*f3e7f55eSRobert Mustacchi #define DW_AT_member 0x14 240*f3e7f55eSRobert Mustacchi #define DW_AT_discr 0x15 241*f3e7f55eSRobert Mustacchi #define DW_AT_discr_value 0x16 242*f3e7f55eSRobert Mustacchi #define DW_AT_visibility 0x17 243*f3e7f55eSRobert Mustacchi #define DW_AT_import 0x18 244*f3e7f55eSRobert Mustacchi #define DW_AT_string_length 0x19 245*f3e7f55eSRobert Mustacchi #define DW_AT_common_reference 0x1a 246*f3e7f55eSRobert Mustacchi #define DW_AT_comp_dir 0x1b 247*f3e7f55eSRobert Mustacchi #define DW_AT_const_value 0x1c 248*f3e7f55eSRobert Mustacchi #define DW_AT_containing_type 0x1d 249*f3e7f55eSRobert Mustacchi #define DW_AT_default_value 0x1e 250*f3e7f55eSRobert Mustacchi #define DW_AT_inline 0x20 251*f3e7f55eSRobert Mustacchi #define DW_AT_is_optional 0x21 252*f3e7f55eSRobert Mustacchi #define DW_AT_lower_bound 0x22 253*f3e7f55eSRobert Mustacchi #define DW_AT_producer 0x25 254*f3e7f55eSRobert Mustacchi #define DW_AT_prototyped 0x27 255*f3e7f55eSRobert Mustacchi #define DW_AT_return_addr 0x2a 256*f3e7f55eSRobert Mustacchi #define DW_AT_start_scope 0x2c 257*f3e7f55eSRobert Mustacchi #define DW_AT_bit_stride 0x2e /* DWARF3 name */ 258*f3e7f55eSRobert Mustacchi #define DW_AT_stride_size 0x2e /* DWARF2 name */ 259*f3e7f55eSRobert Mustacchi #define DW_AT_upper_bound 0x2f 260*f3e7f55eSRobert Mustacchi #define DW_AT_abstract_origin 0x31 261*f3e7f55eSRobert Mustacchi #define DW_AT_accessibility 0x32 262*f3e7f55eSRobert Mustacchi #define DW_AT_address_class 0x33 263*f3e7f55eSRobert Mustacchi #define DW_AT_artificial 0x34 264*f3e7f55eSRobert Mustacchi #define DW_AT_base_types 0x35 265*f3e7f55eSRobert Mustacchi #define DW_AT_calling_convention 0x36 266*f3e7f55eSRobert Mustacchi #define DW_AT_count 0x37 267*f3e7f55eSRobert Mustacchi #define DW_AT_data_member_location 0x38 268*f3e7f55eSRobert Mustacchi #define DW_AT_decl_column 0x39 269*f3e7f55eSRobert Mustacchi #define DW_AT_decl_file 0x3a 270*f3e7f55eSRobert Mustacchi #define DW_AT_decl_line 0x3b 271*f3e7f55eSRobert Mustacchi #define DW_AT_declaration 0x3c 272*f3e7f55eSRobert Mustacchi #define DW_AT_discr_list 0x3d 273*f3e7f55eSRobert Mustacchi #define DW_AT_encoding 0x3e 274*f3e7f55eSRobert Mustacchi #define DW_AT_external 0x3f 275*f3e7f55eSRobert Mustacchi #define DW_AT_frame_base 0x40 276*f3e7f55eSRobert Mustacchi #define DW_AT_friend 0x41 277*f3e7f55eSRobert Mustacchi #define DW_AT_identifier_case 0x42 278*f3e7f55eSRobert Mustacchi #define DW_AT_macro_info 0x43 279*f3e7f55eSRobert Mustacchi #define DW_AT_namelist_item 0x44 280*f3e7f55eSRobert Mustacchi #define DW_AT_priority 0x45 281*f3e7f55eSRobert Mustacchi #define DW_AT_segment 0x46 282*f3e7f55eSRobert Mustacchi #define DW_AT_specification 0x47 283*f3e7f55eSRobert Mustacchi #define DW_AT_static_link 0x48 284*f3e7f55eSRobert Mustacchi #define DW_AT_type 0x49 285*f3e7f55eSRobert Mustacchi #define DW_AT_use_location 0x4a 286*f3e7f55eSRobert Mustacchi #define DW_AT_variable_parameter 0x4b 287*f3e7f55eSRobert Mustacchi #define DW_AT_virtuality 0x4c 288*f3e7f55eSRobert Mustacchi #define DW_AT_vtable_elem_location 0x4d 289*f3e7f55eSRobert Mustacchi #define DW_AT_allocated 0x4e /* DWARF3 */ 290*f3e7f55eSRobert Mustacchi #define DW_AT_associated 0x4f /* DWARF3 */ 291*f3e7f55eSRobert Mustacchi #define DW_AT_data_location 0x50 /* DWARF3 */ 292*f3e7f55eSRobert Mustacchi #define DW_AT_byte_stride 0x51 /* DWARF3f */ 293*f3e7f55eSRobert Mustacchi #define DW_AT_stride 0x51 /* DWARF3 (do not use) */ 294*f3e7f55eSRobert Mustacchi #define DW_AT_entry_pc 0x52 /* DWARF3 */ 295*f3e7f55eSRobert Mustacchi #define DW_AT_use_UTF8 0x53 /* DWARF3 */ 296*f3e7f55eSRobert Mustacchi #define DW_AT_extension 0x54 /* DWARF3 */ 297*f3e7f55eSRobert Mustacchi #define DW_AT_ranges 0x55 /* DWARF3 */ 298*f3e7f55eSRobert Mustacchi #define DW_AT_trampoline 0x56 /* DWARF3 */ 299*f3e7f55eSRobert Mustacchi #define DW_AT_call_column 0x57 /* DWARF3 */ 300*f3e7f55eSRobert Mustacchi #define DW_AT_call_file 0x58 /* DWARF3 */ 301*f3e7f55eSRobert Mustacchi #define DW_AT_call_line 0x59 /* DWARF3 */ 302*f3e7f55eSRobert Mustacchi #define DW_AT_description 0x5a /* DWARF3 */ 303*f3e7f55eSRobert Mustacchi #define DW_AT_binary_scale 0x5b /* DWARF3f */ 304*f3e7f55eSRobert Mustacchi #define DW_AT_decimal_scale 0x5c /* DWARF3f */ 305*f3e7f55eSRobert Mustacchi #define DW_AT_small 0x5d /* DWARF3f */ 306*f3e7f55eSRobert Mustacchi #define DW_AT_decimal_sign 0x5e /* DWARF3f */ 307*f3e7f55eSRobert Mustacchi #define DW_AT_digit_count 0x5f /* DWARF3f */ 308*f3e7f55eSRobert Mustacchi #define DW_AT_picture_string 0x60 /* DWARF3f */ 309*f3e7f55eSRobert Mustacchi #define DW_AT_mutable 0x61 /* DWARF3f */ 310*f3e7f55eSRobert Mustacchi #define DW_AT_threads_scaled 0x62 /* DWARF3f */ 311*f3e7f55eSRobert Mustacchi #define DW_AT_explicit 0x63 /* DWARF3f */ 312*f3e7f55eSRobert Mustacchi #define DW_AT_object_pointer 0x64 /* DWARF3f */ 313*f3e7f55eSRobert Mustacchi #define DW_AT_endianity 0x65 /* DWARF3f */ 314*f3e7f55eSRobert Mustacchi #define DW_AT_elemental 0x66 /* DWARF3f */ 315*f3e7f55eSRobert Mustacchi #define DW_AT_pure 0x67 /* DWARF3f */ 316*f3e7f55eSRobert Mustacchi #define DW_AT_recursive 0x68 /* DWARF3f */ 317*f3e7f55eSRobert Mustacchi #define DW_AT_signature 0x69 /* DWARF4 */ 318*f3e7f55eSRobert Mustacchi #define DW_AT_main_subprogram 0x6a /* DWARF4 */ 319*f3e7f55eSRobert Mustacchi #define DW_AT_data_bit_offset 0x6b /* DWARF4 */ 320*f3e7f55eSRobert Mustacchi #define DW_AT_const_expr 0x6c /* DWARF4 */ 321*f3e7f55eSRobert Mustacchi #define DW_AT_enum_class 0x6d /* DWARF4 */ 322*f3e7f55eSRobert Mustacchi #define DW_AT_linkage_name 0x6e /* DWARF4 */ 323*f3e7f55eSRobert Mustacchi 324*f3e7f55eSRobert Mustacchi /* In extensions, we attempt to include the vendor extension 325*f3e7f55eSRobert Mustacchi in the name even when the vendor leaves it out. */ 326*f3e7f55eSRobert Mustacchi 327*f3e7f55eSRobert Mustacchi /* HP extensions. */ 328*f3e7f55eSRobert Mustacchi #define DW_AT_HP_block_index 0x2000 /* HP */ 329*f3e7f55eSRobert Mustacchi 330*f3e7f55eSRobert Mustacchi /* Follows extension so dwarfdump prints the most-likely-useful name. */ 331*f3e7f55eSRobert Mustacchi #define DW_AT_lo_user 0x2000 332*f3e7f55eSRobert Mustacchi 333*f3e7f55eSRobert Mustacchi #define DW_AT_MIPS_fde 0x2001 /* MIPS/SGI */ 334*f3e7f55eSRobert Mustacchi #define DW_AT_MIPS_loop_begin 0x2002 /* MIPS/SGI */ 335*f3e7f55eSRobert Mustacchi #define DW_AT_MIPS_tail_loop_begin 0x2003 /* MIPS/SGI */ 336*f3e7f55eSRobert Mustacchi #define DW_AT_MIPS_epilog_begin 0x2004 /* MIPS/SGI */ 337*f3e7f55eSRobert Mustacchi #define DW_AT_MIPS_loop_unroll_factor 0x2005 /* MIPS/SGI */ 338*f3e7f55eSRobert Mustacchi #define DW_AT_MIPS_software_pipeline_depth 0x2006 /* MIPS/SGI */ 339*f3e7f55eSRobert Mustacchi #define DW_AT_MIPS_linkage_name 0x2007 /* MIPS/SGI, GNU, and others.*/ 340*f3e7f55eSRobert Mustacchi #define DW_AT_MIPS_stride 0x2008 /* MIPS/SGI */ 341*f3e7f55eSRobert Mustacchi #define DW_AT_MIPS_abstract_name 0x2009 /* MIPS/SGI */ 342*f3e7f55eSRobert Mustacchi #define DW_AT_MIPS_clone_origin 0x200a /* MIPS/SGI */ 343*f3e7f55eSRobert Mustacchi #define DW_AT_MIPS_has_inlines 0x200b /* MIPS/SGI */ 344*f3e7f55eSRobert Mustacchi #define DW_AT_MIPS_stride_byte 0x200c /* MIPS/SGI */ 345*f3e7f55eSRobert Mustacchi #define DW_AT_MIPS_stride_elem 0x200d /* MIPS/SGI */ 346*f3e7f55eSRobert Mustacchi #define DW_AT_MIPS_ptr_dopetype 0x200e /* MIPS/SGI */ 347*f3e7f55eSRobert Mustacchi #define DW_AT_MIPS_allocatable_dopetype 0x200f /* MIPS/SGI */ 348*f3e7f55eSRobert Mustacchi #define DW_AT_MIPS_assumed_shape_dopetype 0x2010 /* MIPS/SGI */ 349*f3e7f55eSRobert Mustacchi #define DW_AT_MIPS_assumed_size 0x2011 /* MIPS/SGI */ 350*f3e7f55eSRobert Mustacchi 351*f3e7f55eSRobert Mustacchi /* HP extensions. */ 352*f3e7f55eSRobert Mustacchi #define DW_AT_HP_unmodifiable 0x2001 /* conflict: MIPS */ 353*f3e7f55eSRobert Mustacchi #define DW_AT_HP_actuals_stmt_list 0x2010 /* conflict: MIPS */ 354*f3e7f55eSRobert Mustacchi #define DW_AT_HP_proc_per_section 0x2011 /* conflict: MIPS */ 355*f3e7f55eSRobert Mustacchi #define DW_AT_HP_raw_data_ptr 0x2012 /* HP */ 356*f3e7f55eSRobert Mustacchi #define DW_AT_HP_pass_by_reference 0x2013 /* HP */ 357*f3e7f55eSRobert Mustacchi #define DW_AT_HP_opt_level 0x2014 /* HP */ 358*f3e7f55eSRobert Mustacchi #define DW_AT_HP_prof_version_id 0x2015 /* HP */ 359*f3e7f55eSRobert Mustacchi #define DW_AT_HP_opt_flags 0x2016 /* HP */ 360*f3e7f55eSRobert Mustacchi #define DW_AT_HP_cold_region_low_pc 0x2017 /* HP */ 361*f3e7f55eSRobert Mustacchi #define DW_AT_HP_cold_region_high_pc 0x2018 /* HP */ 362*f3e7f55eSRobert Mustacchi #define DW_AT_HP_all_variables_modifiable 0x2019 /* HP */ 363*f3e7f55eSRobert Mustacchi #define DW_AT_HP_linkage_name 0x201a /* HP */ 364*f3e7f55eSRobert Mustacchi #define DW_AT_HP_prof_flags 0x201b /* HP */ 365*f3e7f55eSRobert Mustacchi 366*f3e7f55eSRobert Mustacchi #define DW_AT_CPQ_discontig_ranges 0x2001 /* COMPAQ/HP */ 367*f3e7f55eSRobert Mustacchi #define DW_AT_CPQ_semantic_events 0x2002 /* COMPAQ/HP */ 368*f3e7f55eSRobert Mustacchi #define DW_AT_CPQ_split_lifetimes_var 0x2003 /* COMPAQ/HP */ 369*f3e7f55eSRobert Mustacchi #define DW_AT_CPQ_split_lifetimes_rtn 0x2004 /* COMPAQ/HP */ 370*f3e7f55eSRobert Mustacchi #define DW_AT_CPQ_prologue_length 0x2005 /* COMPAQ/HP */ 371*f3e7f55eSRobert Mustacchi 372*f3e7f55eSRobert Mustacchi #define DW_AT_INTEL_other_endian 0x2026 /* Intel, 1 if byte swapped. */ 373*f3e7f55eSRobert Mustacchi 374*f3e7f55eSRobert Mustacchi /* GNU extensions. */ 375*f3e7f55eSRobert Mustacchi #define DW_AT_sf_names 0x2101 /* GNU */ 376*f3e7f55eSRobert Mustacchi #define DW_AT_src_info 0x2102 /* GNU */ 377*f3e7f55eSRobert Mustacchi #define DW_AT_mac_info 0x2103 /* GNU */ 378*f3e7f55eSRobert Mustacchi #define DW_AT_src_coords 0x2104 /* GNU */ 379*f3e7f55eSRobert Mustacchi #define DW_AT_body_begin 0x2105 /* GNU */ 380*f3e7f55eSRobert Mustacchi #define DW_AT_body_end 0x2106 /* GNU */ 381*f3e7f55eSRobert Mustacchi #define DW_AT_GNU_vector 0x2107 /* GNU */ 382*f3e7f55eSRobert Mustacchi #define DW_AT_GNU_template_name 0x2108 /* GNU */ 383*f3e7f55eSRobert Mustacchi 384*f3e7f55eSRobert Mustacchi /* ALTIUM extension: ALTIUM Compliant location lists (flag) */ 385*f3e7f55eSRobert Mustacchi #define DW_AT_ALTIUM_loclist 0x2300 /* ALTIUM */ 386*f3e7f55eSRobert Mustacchi 387*f3e7f55eSRobert Mustacchi /* Sun extensions */ 388*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_template 0x2201 /* SUN */ 389*f3e7f55eSRobert Mustacchi #define DW_AT_VMS_rtnbeg_pd_address 0x2201 /* VMS */ 390*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_alignment 0x2202 /* SUN */ 391*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_vtable 0x2203 /* SUN */ 392*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_count_guarantee 0x2204 /* SUN */ 393*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_command_line 0x2205 /* SUN */ 394*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_vbase 0x2206 /* SUN */ 395*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_compile_options 0x2207 /* SUN */ 396*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_language 0x2208 /* SUN */ 397*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_browser_file 0x2209 /* SUN */ 398*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_vtable_abi 0x2210 /* SUN */ 399*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_func_offsets 0x2211 /* SUN */ 400*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_cf_kind 0x2212 /* SUN */ 401*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_vtable_index 0x2213 /* SUN */ 402*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_omp_tpriv_addr 0x2214 /* SUN */ 403*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_omp_child_func 0x2215 /* SUN */ 404*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_func_offset 0x2216 /* SUN */ 405*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_memop_type_ref 0x2217 /* SUN */ 406*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_profile_id 0x2218 /* SUN */ 407*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_memop_signature 0x2219 /* SUN */ 408*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_obj_dir 0x2220 /* SUN */ 409*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_obj_file 0x2221 /* SUN */ 410*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_original_name 0x2222 /* SUN */ 411*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_hwcprof_signature 0x2223 /* SUN */ 412*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_amd64_parmdump 0x2224 /* SUN */ 413*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_part_link_name 0x2225 /* SUN */ 414*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_link_name 0x2226 /* SUN */ 415*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_pass_with_const 0x2227 /* SUN */ 416*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_return_with_const 0x2228 /* SUN */ 417*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_import_by_name 0x2229 /* SUN */ 418*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_f90_pointer 0x222a /* SUN */ 419*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_pass_by_ref 0x222b /* SUN */ 420*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_f90_allocatable 0x222c /* SUN */ 421*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_f90_assumed_shape_array 0x222d /* SUN */ 422*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_c_vla 0x222e /* SUN */ 423*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_return_value_ptr 0x2230 /* SUN */ 424*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_dtor_start 0x2231 /* SUN */ 425*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_dtor_length 0x2232 /* SUN */ 426*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_dtor_state_initial 0x2233 /* SUN */ 427*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_dtor_state_final 0x2234 /* SUN */ 428*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_dtor_state_deltas 0x2235 /* SUN */ 429*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_import_by_lname 0x2236 /* SUN */ 430*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_f90_use_only 0x2237 /* SUN */ 431*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_namelist_spec 0x2238 /* SUN */ 432*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_is_omp_child_func 0x2239 /* SUN */ 433*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_fortran_main_alias 0x223a /* SUN */ 434*f3e7f55eSRobert Mustacchi #define DW_AT_SUN_fortran_based 0x223b /* SUN */ 435*f3e7f55eSRobert Mustacchi 436*f3e7f55eSRobert Mustacchi /* UPC extension */ 437*f3e7f55eSRobert Mustacchi #define DW_AT_upc_threads_scaled 0x3210 /* UPC */ 438*f3e7f55eSRobert Mustacchi 439*f3e7f55eSRobert Mustacchi /* PGI (STMicroelectronics) extensions. */ 440*f3e7f55eSRobert Mustacchi #define DW_AT_PGI_lbase 0x3a00 /* PGI. Block, constant, reference. This attribute is an ASTPLAB extension used to describe the array local base. */ 441*f3e7f55eSRobert Mustacchi #define DW_AT_PGI_soffset 0x3a01 /* PGI. Block, constant, reference. ASTPLAB adds this attribute to describe the section offset, or the offset to the first element in the dimension. */ 442*f3e7f55eSRobert Mustacchi #define DW_AT_PGI_lstride 0x3a02 /* PGI. Block, constant, reference. ASTPLAB adds this attribute to describe the linear stride or the distance between elements in the dimension. */ 443*f3e7f55eSRobert Mustacchi 444*f3e7f55eSRobert Mustacchi /* Apple Extensions for closures */ 445*f3e7f55eSRobert Mustacchi #define DW_AT_APPLE_closure 0x3fe4 /* Apple */ 446*f3e7f55eSRobert Mustacchi /* Apple Extensions for Objective-C runtime info */ 447*f3e7f55eSRobert Mustacchi #define DW_AT_APPLE_major_runtime_vers 0x3fe5 /* Apple */ 448*f3e7f55eSRobert Mustacchi #define DW_AT_APPLE_runtime_class 0x3fe6 /* Apple */ 449*f3e7f55eSRobert Mustacchi 450*f3e7f55eSRobert Mustacchi 451*f3e7f55eSRobert Mustacchi #define DW_AT_hi_user 0x3fff 452*f3e7f55eSRobert Mustacchi 453*f3e7f55eSRobert Mustacchi #define DW_OP_addr 0x03 454*f3e7f55eSRobert Mustacchi #define DW_OP_deref 0x06 455*f3e7f55eSRobert Mustacchi #define DW_OP_const1u 0x08 456*f3e7f55eSRobert Mustacchi #define DW_OP_const1s 0x09 457*f3e7f55eSRobert Mustacchi #define DW_OP_const2u 0x0a 458*f3e7f55eSRobert Mustacchi #define DW_OP_const2s 0x0b 459*f3e7f55eSRobert Mustacchi #define DW_OP_const4u 0x0c 460*f3e7f55eSRobert Mustacchi #define DW_OP_const4s 0x0d 461*f3e7f55eSRobert Mustacchi #define DW_OP_const8u 0x0e 462*f3e7f55eSRobert Mustacchi #define DW_OP_const8s 0x0f 463*f3e7f55eSRobert Mustacchi #define DW_OP_constu 0x10 464*f3e7f55eSRobert Mustacchi #define DW_OP_consts 0x11 465*f3e7f55eSRobert Mustacchi #define DW_OP_dup 0x12 466*f3e7f55eSRobert Mustacchi #define DW_OP_drop 0x13 467*f3e7f55eSRobert Mustacchi #define DW_OP_over 0x14 468*f3e7f55eSRobert Mustacchi #define DW_OP_pick 0x15 469*f3e7f55eSRobert Mustacchi #define DW_OP_swap 0x16 470*f3e7f55eSRobert Mustacchi #define DW_OP_rot 0x17 471*f3e7f55eSRobert Mustacchi #define DW_OP_xderef 0x18 472*f3e7f55eSRobert Mustacchi #define DW_OP_abs 0x19 473*f3e7f55eSRobert Mustacchi #define DW_OP_and 0x1a 474*f3e7f55eSRobert Mustacchi #define DW_OP_div 0x1b 475*f3e7f55eSRobert Mustacchi #define DW_OP_minus 0x1c 476*f3e7f55eSRobert Mustacchi #define DW_OP_mod 0x1d 477*f3e7f55eSRobert Mustacchi #define DW_OP_mul 0x1e 478*f3e7f55eSRobert Mustacchi #define DW_OP_neg 0x1f 479*f3e7f55eSRobert Mustacchi #define DW_OP_not 0x20 480*f3e7f55eSRobert Mustacchi #define DW_OP_or 0x21 481*f3e7f55eSRobert Mustacchi #define DW_OP_plus 0x22 482*f3e7f55eSRobert Mustacchi #define DW_OP_plus_uconst 0x23 483*f3e7f55eSRobert Mustacchi #define DW_OP_shl 0x24 484*f3e7f55eSRobert Mustacchi #define DW_OP_shr 0x25 485*f3e7f55eSRobert Mustacchi #define DW_OP_shra 0x26 486*f3e7f55eSRobert Mustacchi #define DW_OP_xor 0x27 487*f3e7f55eSRobert Mustacchi #define DW_OP_bra 0x28 488*f3e7f55eSRobert Mustacchi #define DW_OP_eq 0x29 489*f3e7f55eSRobert Mustacchi #define DW_OP_ge 0x2a 490*f3e7f55eSRobert Mustacchi #define DW_OP_gt 0x2b 491*f3e7f55eSRobert Mustacchi #define DW_OP_le 0x2c 492*f3e7f55eSRobert Mustacchi #define DW_OP_lt 0x2d 493*f3e7f55eSRobert Mustacchi #define DW_OP_ne 0x2e 494*f3e7f55eSRobert Mustacchi #define DW_OP_skip 0x2f 495*f3e7f55eSRobert Mustacchi #define DW_OP_lit0 0x30 496*f3e7f55eSRobert Mustacchi #define DW_OP_lit1 0x31 497*f3e7f55eSRobert Mustacchi #define DW_OP_lit2 0x32 498*f3e7f55eSRobert Mustacchi #define DW_OP_lit3 0x33 499*f3e7f55eSRobert Mustacchi #define DW_OP_lit4 0x34 500*f3e7f55eSRobert Mustacchi #define DW_OP_lit5 0x35 501*f3e7f55eSRobert Mustacchi #define DW_OP_lit6 0x36 502*f3e7f55eSRobert Mustacchi #define DW_OP_lit7 0x37 503*f3e7f55eSRobert Mustacchi #define DW_OP_lit8 0x38 504*f3e7f55eSRobert Mustacchi #define DW_OP_lit9 0x39 505*f3e7f55eSRobert Mustacchi #define DW_OP_lit10 0x3a 506*f3e7f55eSRobert Mustacchi #define DW_OP_lit11 0x3b 507*f3e7f55eSRobert Mustacchi #define DW_OP_lit12 0x3c 508*f3e7f55eSRobert Mustacchi #define DW_OP_lit13 0x3d 509*f3e7f55eSRobert Mustacchi #define DW_OP_lit14 0x3e 510*f3e7f55eSRobert Mustacchi #define DW_OP_lit15 0x3f 511*f3e7f55eSRobert Mustacchi #define DW_OP_lit16 0x40 512*f3e7f55eSRobert Mustacchi #define DW_OP_lit17 0x41 513*f3e7f55eSRobert Mustacchi #define DW_OP_lit18 0x42 514*f3e7f55eSRobert Mustacchi #define DW_OP_lit19 0x43 515*f3e7f55eSRobert Mustacchi #define DW_OP_lit20 0x44 516*f3e7f55eSRobert Mustacchi #define DW_OP_lit21 0x45 517*f3e7f55eSRobert Mustacchi #define DW_OP_lit22 0x46 518*f3e7f55eSRobert Mustacchi #define DW_OP_lit23 0x47 519*f3e7f55eSRobert Mustacchi #define DW_OP_lit24 0x48 520*f3e7f55eSRobert Mustacchi #define DW_OP_lit25 0x49 521*f3e7f55eSRobert Mustacchi #define DW_OP_lit26 0x4a 522*f3e7f55eSRobert Mustacchi #define DW_OP_lit27 0x4b 523*f3e7f55eSRobert Mustacchi #define DW_OP_lit28 0x4c 524*f3e7f55eSRobert Mustacchi #define DW_OP_lit29 0x4d 525*f3e7f55eSRobert Mustacchi #define DW_OP_lit30 0x4e 526*f3e7f55eSRobert Mustacchi #define DW_OP_lit31 0x4f 527*f3e7f55eSRobert Mustacchi #define DW_OP_reg0 0x50 528*f3e7f55eSRobert Mustacchi #define DW_OP_reg1 0x51 529*f3e7f55eSRobert Mustacchi #define DW_OP_reg2 0x52 530*f3e7f55eSRobert Mustacchi #define DW_OP_reg3 0x53 531*f3e7f55eSRobert Mustacchi #define DW_OP_reg4 0x54 532*f3e7f55eSRobert Mustacchi #define DW_OP_reg5 0x55 533*f3e7f55eSRobert Mustacchi #define DW_OP_reg6 0x56 534*f3e7f55eSRobert Mustacchi #define DW_OP_reg7 0x57 535*f3e7f55eSRobert Mustacchi #define DW_OP_reg8 0x58 536*f3e7f55eSRobert Mustacchi #define DW_OP_reg9 0x59 537*f3e7f55eSRobert Mustacchi #define DW_OP_reg10 0x5a 538*f3e7f55eSRobert Mustacchi #define DW_OP_reg11 0x5b 539*f3e7f55eSRobert Mustacchi #define DW_OP_reg12 0x5c 540*f3e7f55eSRobert Mustacchi #define DW_OP_reg13 0x5d 541*f3e7f55eSRobert Mustacchi #define DW_OP_reg14 0x5e 542*f3e7f55eSRobert Mustacchi #define DW_OP_reg15 0x5f 543*f3e7f55eSRobert Mustacchi #define DW_OP_reg16 0x60 544*f3e7f55eSRobert Mustacchi #define DW_OP_reg17 0x61 545*f3e7f55eSRobert Mustacchi #define DW_OP_reg18 0x62 546*f3e7f55eSRobert Mustacchi #define DW_OP_reg19 0x63 547*f3e7f55eSRobert Mustacchi #define DW_OP_reg20 0x64 548*f3e7f55eSRobert Mustacchi #define DW_OP_reg21 0x65 549*f3e7f55eSRobert Mustacchi #define DW_OP_reg22 0x66 550*f3e7f55eSRobert Mustacchi #define DW_OP_reg23 0x67 551*f3e7f55eSRobert Mustacchi #define DW_OP_reg24 0x68 552*f3e7f55eSRobert Mustacchi #define DW_OP_reg25 0x69 553*f3e7f55eSRobert Mustacchi #define DW_OP_reg26 0x6a 554*f3e7f55eSRobert Mustacchi #define DW_OP_reg27 0x6b 555*f3e7f55eSRobert Mustacchi #define DW_OP_reg28 0x6c 556*f3e7f55eSRobert Mustacchi #define DW_OP_reg29 0x6d 557*f3e7f55eSRobert Mustacchi #define DW_OP_reg30 0x6e 558*f3e7f55eSRobert Mustacchi #define DW_OP_reg31 0x6f 559*f3e7f55eSRobert Mustacchi #define DW_OP_breg0 0x70 560*f3e7f55eSRobert Mustacchi #define DW_OP_breg1 0x71 561*f3e7f55eSRobert Mustacchi #define DW_OP_breg2 0x72 562*f3e7f55eSRobert Mustacchi #define DW_OP_breg3 0x73 563*f3e7f55eSRobert Mustacchi #define DW_OP_breg4 0x74 564*f3e7f55eSRobert Mustacchi #define DW_OP_breg5 0x75 565*f3e7f55eSRobert Mustacchi #define DW_OP_breg6 0x76 566*f3e7f55eSRobert Mustacchi #define DW_OP_breg7 0x77 567*f3e7f55eSRobert Mustacchi #define DW_OP_breg8 0x78 568*f3e7f55eSRobert Mustacchi #define DW_OP_breg9 0x79 569*f3e7f55eSRobert Mustacchi #define DW_OP_breg10 0x7a 570*f3e7f55eSRobert Mustacchi #define DW_OP_breg11 0x7b 571*f3e7f55eSRobert Mustacchi #define DW_OP_breg12 0x7c 572*f3e7f55eSRobert Mustacchi #define DW_OP_breg13 0x7d 573*f3e7f55eSRobert Mustacchi #define DW_OP_breg14 0x7e 574*f3e7f55eSRobert Mustacchi #define DW_OP_breg15 0x7f 575*f3e7f55eSRobert Mustacchi #define DW_OP_breg16 0x80 576*f3e7f55eSRobert Mustacchi #define DW_OP_breg17 0x81 577*f3e7f55eSRobert Mustacchi #define DW_OP_breg18 0x82 578*f3e7f55eSRobert Mustacchi #define DW_OP_breg19 0x83 579*f3e7f55eSRobert Mustacchi #define DW_OP_breg20 0x84 580*f3e7f55eSRobert Mustacchi #define DW_OP_breg21 0x85 581*f3e7f55eSRobert Mustacchi #define DW_OP_breg22 0x86 582*f3e7f55eSRobert Mustacchi #define DW_OP_breg23 0x87 583*f3e7f55eSRobert Mustacchi #define DW_OP_breg24 0x88 584*f3e7f55eSRobert Mustacchi #define DW_OP_breg25 0x89 585*f3e7f55eSRobert Mustacchi #define DW_OP_breg26 0x8a 586*f3e7f55eSRobert Mustacchi #define DW_OP_breg27 0x8b 587*f3e7f55eSRobert Mustacchi #define DW_OP_breg28 0x8c 588*f3e7f55eSRobert Mustacchi #define DW_OP_breg29 0x8d 589*f3e7f55eSRobert Mustacchi #define DW_OP_breg30 0x8e 590*f3e7f55eSRobert Mustacchi #define DW_OP_breg31 0x8f 591*f3e7f55eSRobert Mustacchi #define DW_OP_regx 0x90 592*f3e7f55eSRobert Mustacchi #define DW_OP_fbreg 0x91 593*f3e7f55eSRobert Mustacchi #define DW_OP_bregx 0x92 594*f3e7f55eSRobert Mustacchi #define DW_OP_piece 0x93 595*f3e7f55eSRobert Mustacchi #define DW_OP_deref_size 0x94 596*f3e7f55eSRobert Mustacchi #define DW_OP_xderef_size 0x95 597*f3e7f55eSRobert Mustacchi #define DW_OP_nop 0x96 598*f3e7f55eSRobert Mustacchi #define DW_OP_push_object_address 0x97 /* DWARF3 */ 599*f3e7f55eSRobert Mustacchi #define DW_OP_call2 0x98 /* DWARF3 */ 600*f3e7f55eSRobert Mustacchi #define DW_OP_call4 0x99 /* DWARF3 */ 601*f3e7f55eSRobert Mustacchi #define DW_OP_call_ref 0x9a /* DWARF3 */ 602*f3e7f55eSRobert Mustacchi #define DW_OP_form_tls_address 0x9b /* DWARF3f */ 603*f3e7f55eSRobert Mustacchi #define DW_OP_call_frame_cfa 0x9c /* DWARF3f */ 604*f3e7f55eSRobert Mustacchi #define DW_OP_bit_piece 0x9d /* DWARF3f */ 605*f3e7f55eSRobert Mustacchi #define DW_OP_implicit_value 0x9e /* DWARF4 */ 606*f3e7f55eSRobert Mustacchi #define DW_OP_stack_value 0x9f /* DWARF4 */ 607*f3e7f55eSRobert Mustacchi 608*f3e7f55eSRobert Mustacchi 609*f3e7f55eSRobert Mustacchi /* GNU extensions. */ 610*f3e7f55eSRobert Mustacchi #define DW_OP_GNU_push_tls_address 0xe0 /* GNU */ 611*f3e7f55eSRobert Mustacchi 612*f3e7f55eSRobert Mustacchi /* Follows extension so dwarfdump prints the most-likely-useful name. */ 613*f3e7f55eSRobert Mustacchi #define DW_OP_lo_user 0xe0 614*f3e7f55eSRobert Mustacchi 615*f3e7f55eSRobert Mustacchi /* HP extensions. */ 616*f3e7f55eSRobert Mustacchi #define DW_OP_HP_unknown 0xe0 /* HP conflict: GNU */ 617*f3e7f55eSRobert Mustacchi #define DW_OP_HP_is_value 0xe1 /* HP */ 618*f3e7f55eSRobert Mustacchi #define DW_OP_HP_fltconst4 0xe2 /* HP */ 619*f3e7f55eSRobert Mustacchi #define DW_OP_HP_fltconst8 0xe3 /* HP */ 620*f3e7f55eSRobert Mustacchi #define DW_OP_HP_mod_range 0xe4 /* HP */ 621*f3e7f55eSRobert Mustacchi #define DW_OP_HP_unmod_range 0xe5 /* HP */ 622*f3e7f55eSRobert Mustacchi #define DW_OP_HP_tls 0xe6 /* HP */ 623*f3e7f55eSRobert Mustacchi 624*f3e7f55eSRobert Mustacchi #define DW_OP_INTEL_bit_piece 0xe8 /* Intel: made obsolete by DW_OP_bit_piece above. */ 625*f3e7f55eSRobert Mustacchi 626*f3e7f55eSRobert Mustacchi 627*f3e7f55eSRobert Mustacchi /* Apple extension. */ 628*f3e7f55eSRobert Mustacchi #define DW_OP_APPLE_uninit 0xf0 /* Apple */ 629*f3e7f55eSRobert Mustacchi 630*f3e7f55eSRobert Mustacchi #define DW_OP_hi_user 0xff 631*f3e7f55eSRobert Mustacchi 632*f3e7f55eSRobert Mustacchi #define DW_ATE_address 0x1 633*f3e7f55eSRobert Mustacchi #define DW_ATE_boolean 0x2 634*f3e7f55eSRobert Mustacchi #define DW_ATE_complex_float 0x3 635*f3e7f55eSRobert Mustacchi #define DW_ATE_float 0x4 636*f3e7f55eSRobert Mustacchi #define DW_ATE_signed 0x5 637*f3e7f55eSRobert Mustacchi #define DW_ATE_signed_char 0x6 638*f3e7f55eSRobert Mustacchi #define DW_ATE_unsigned 0x7 639*f3e7f55eSRobert Mustacchi #define DW_ATE_unsigned_char 0x8 640*f3e7f55eSRobert Mustacchi #define DW_ATE_imaginary_float 0x9 /* DWARF3 */ 641*f3e7f55eSRobert Mustacchi #define DW_ATE_packed_decimal 0xa /* DWARF3f */ 642*f3e7f55eSRobert Mustacchi #define DW_ATE_numeric_string 0xb /* DWARF3f */ 643*f3e7f55eSRobert Mustacchi #define DW_ATE_edited 0xc /* DWARF3f */ 644*f3e7f55eSRobert Mustacchi #define DW_ATE_signed_fixed 0xd /* DWARF3f */ 645*f3e7f55eSRobert Mustacchi #define DW_ATE_unsigned_fixed 0xe /* DWARF3f */ 646*f3e7f55eSRobert Mustacchi #define DW_ATE_decimal_float 0xf /* DWARF3f */ 647*f3e7f55eSRobert Mustacchi 648*f3e7f55eSRobert Mustacchi 649*f3e7f55eSRobert Mustacchi /* ALTIUM extensions. x80, x81 */ 650*f3e7f55eSRobert Mustacchi #define DW_ATE_ALTIUM_fract 0x80 /* ALTIUM __fract type */ 651*f3e7f55eSRobert Mustacchi 652*f3e7f55eSRobert Mustacchi /* Follows extension so dwarfdump prints the most-likely-useful name. */ 653*f3e7f55eSRobert Mustacchi #define DW_ATE_lo_user 0x80 654*f3e7f55eSRobert Mustacchi 655*f3e7f55eSRobert Mustacchi /* Shown here to help dwarfdump build script. */ 656*f3e7f55eSRobert Mustacchi #define DW_ATE_ALTIUM_accum 0x81 /* ALTIUM __accum type */ 657*f3e7f55eSRobert Mustacchi 658*f3e7f55eSRobert Mustacchi /* HP Floating point extensions. */ 659*f3e7f55eSRobert Mustacchi #define DW_ATE_HP_float80 0x80 /* (80 bit). HP */ 660*f3e7f55eSRobert Mustacchi 661*f3e7f55eSRobert Mustacchi 662*f3e7f55eSRobert Mustacchi #define DW_ATE_HP_complex_float80 0x81 /* Complex (80 bit). HP */ 663*f3e7f55eSRobert Mustacchi #define DW_ATE_HP_float128 0x82 /* (128 bit). HP */ 664*f3e7f55eSRobert Mustacchi #define DW_ATE_HP_complex_float128 0x83 /* Complex (128 bit). HP */ 665*f3e7f55eSRobert Mustacchi #define DW_ATE_HP_floathpintel 0x84 /* (82 bit IA64). HP */ 666*f3e7f55eSRobert Mustacchi #define DW_ATE_HP_imaginary_float80 0x85 /* HP */ 667*f3e7f55eSRobert Mustacchi #define DW_ATE_HP_imaginary_float128 0x86 /* HP */ 668*f3e7f55eSRobert Mustacchi 669*f3e7f55eSRobert Mustacchi /* Sun extensions */ 670*f3e7f55eSRobert Mustacchi #define DW_ATE_SUN_interval_float 0x91 671*f3e7f55eSRobert Mustacchi #define DW_ATE_SUN_imaginary_float 0x92 /* Obsolete: See DW_ATE_imaginary_float */ 672*f3e7f55eSRobert Mustacchi 673*f3e7f55eSRobert Mustacchi #define DW_ATE_hi_user 0xff 674*f3e7f55eSRobert Mustacchi 675*f3e7f55eSRobert Mustacchi 676*f3e7f55eSRobert Mustacchi /* Decimal Sign codes. */ 677*f3e7f55eSRobert Mustacchi #define DW_DS_unsigned 0x01 /* DWARF3f */ 678*f3e7f55eSRobert Mustacchi #define DW_DS_leading_overpunch 0x02 /* DWARF3f */ 679*f3e7f55eSRobert Mustacchi #define DW_DS_trailing_overpunch 0x03 /* DWARF3f */ 680*f3e7f55eSRobert Mustacchi #define DW_DS_leading_separate 0x04 /* DWARF3f */ 681*f3e7f55eSRobert Mustacchi 682*f3e7f55eSRobert Mustacchi #define DW_DS_trailing_separate 0x05 /* DWARF3f */ 683*f3e7f55eSRobert Mustacchi 684*f3e7f55eSRobert Mustacchi /* Endian code name. */ 685*f3e7f55eSRobert Mustacchi #define DW_END_default 0x00 /* DWARF3f */ 686*f3e7f55eSRobert Mustacchi #define DW_END_big 0x01 /* DWARF3f */ 687*f3e7f55eSRobert Mustacchi #define DW_END_little 0x02 /* DWARF3f */ 688*f3e7f55eSRobert Mustacchi 689*f3e7f55eSRobert Mustacchi #define DW_END_lo_user 0x40 /* DWARF3f */ 690*f3e7f55eSRobert Mustacchi #define DW_END_hi_user 0xff /* DWARF3f */ 691*f3e7f55eSRobert Mustacchi 692*f3e7f55eSRobert Mustacchi /* For use with DW_TAG_SUN_codeflags 693*f3e7f55eSRobert Mustacchi * If DW_TAG_SUN_codeflags is accepted as a dwarf standard, then 694*f3e7f55eSRobert Mustacchi * standard dwarf ATCF entries start at 0x01 695*f3e7f55eSRobert Mustacchi */ 696*f3e7f55eSRobert Mustacchi #define DW_ATCF_lo_user 0x40 /* SUN */ 697*f3e7f55eSRobert Mustacchi #define DW_ATCF_SUN_mop_bitfield 0x41 /* SUN */ 698*f3e7f55eSRobert Mustacchi #define DW_ATCF_SUN_mop_spill 0x42 /* SUN */ 699*f3e7f55eSRobert Mustacchi #define DW_ATCF_SUN_mop_scopy 0x43 /* SUN */ 700*f3e7f55eSRobert Mustacchi #define DW_ATCF_SUN_func_start 0x44 /* SUN */ 701*f3e7f55eSRobert Mustacchi #define DW_ATCF_SUN_end_ctors 0x45 /* SUN */ 702*f3e7f55eSRobert Mustacchi #define DW_ATCF_SUN_branch_target 0x46 /* SUN */ 703*f3e7f55eSRobert Mustacchi #define DW_ATCF_SUN_mop_stack_probe 0x47 /* SUN */ 704*f3e7f55eSRobert Mustacchi #define DW_ATCF_SUN_func_epilog 0x48 /* SUN */ 705*f3e7f55eSRobert Mustacchi #define DW_ATCF_hi_user 0xff /* SUN */ 706*f3e7f55eSRobert Mustacchi 707*f3e7f55eSRobert Mustacchi /* Accessibility code name. */ 708*f3e7f55eSRobert Mustacchi #define DW_ACCESS_public 0x01 709*f3e7f55eSRobert Mustacchi #define DW_ACCESS_protected 0x02 710*f3e7f55eSRobert Mustacchi #define DW_ACCESS_private 0x03 711*f3e7f55eSRobert Mustacchi 712*f3e7f55eSRobert Mustacchi /* Visibility code name. */ 713*f3e7f55eSRobert Mustacchi #define DW_VIS_local 0x01 714*f3e7f55eSRobert Mustacchi #define DW_VIS_exported 0x02 715*f3e7f55eSRobert Mustacchi #define DW_VIS_qualified 0x03 716*f3e7f55eSRobert Mustacchi 717*f3e7f55eSRobert Mustacchi /* Virtuality code name. */ 718*f3e7f55eSRobert Mustacchi #define DW_VIRTUALITY_none 0x00 719*f3e7f55eSRobert Mustacchi #define DW_VIRTUALITY_virtual 0x01 720*f3e7f55eSRobert Mustacchi #define DW_VIRTUALITY_pure_virtual 0x02 721*f3e7f55eSRobert Mustacchi 722*f3e7f55eSRobert Mustacchi #define DW_LANG_C89 0x0001 723*f3e7f55eSRobert Mustacchi #define DW_LANG_C 0x0002 724*f3e7f55eSRobert Mustacchi #define DW_LANG_Ada83 0x0003 725*f3e7f55eSRobert Mustacchi #define DW_LANG_C_plus_plus 0x0004 726*f3e7f55eSRobert Mustacchi #define DW_LANG_Cobol74 0x0005 727*f3e7f55eSRobert Mustacchi #define DW_LANG_Cobol85 0x0006 728*f3e7f55eSRobert Mustacchi #define DW_LANG_Fortran77 0x0007 729*f3e7f55eSRobert Mustacchi #define DW_LANG_Fortran90 0x0008 730*f3e7f55eSRobert Mustacchi #define DW_LANG_Pascal83 0x0009 731*f3e7f55eSRobert Mustacchi #define DW_LANG_Modula2 0x000a 732*f3e7f55eSRobert Mustacchi #define DW_LANG_Java 0x000b /* DWARF3 */ 733*f3e7f55eSRobert Mustacchi #define DW_LANG_C99 0x000c /* DWARF3 */ 734*f3e7f55eSRobert Mustacchi #define DW_LANG_Ada95 0x000d /* DWARF3 */ 735*f3e7f55eSRobert Mustacchi #define DW_LANG_Fortran95 0x000e /* DWARF3 */ 736*f3e7f55eSRobert Mustacchi #define DW_LANG_PLI 0x000f /* DWARF3 */ 737*f3e7f55eSRobert Mustacchi #define DW_LANG_ObjC 0x0010 /* DWARF3f */ 738*f3e7f55eSRobert Mustacchi #define DW_LANG_ObjC_plus_plus 0x0011 /* DWARF3f */ 739*f3e7f55eSRobert Mustacchi #define DW_LANG_UPC 0x0012 /* DWARF3f */ 740*f3e7f55eSRobert Mustacchi #define DW_LANG_D 0x0013 /* DWARF3f */ 741*f3e7f55eSRobert Mustacchi #define DW_LANG_Python 0x0014 /* DWARF4 */ 742*f3e7f55eSRobert Mustacchi /* The following 2 are not yet formally approved October 2010, but 743*f3e7f55eSRobert Mustacchi it seems extremely likely they will be approved as the committee 744*f3e7f55eSRobert Mustacchi chair agrees these should be ok and no one on the committee 745*f3e7f55eSRobert Mustacchi has objected. */ 746*f3e7f55eSRobert Mustacchi #define DW_LANG_OpenCL 0x0015 /* Provisionally DWARF5 */ 747*f3e7f55eSRobert Mustacchi #define DW_LANG_Go 0x0016 /* Provisionally DWARF5 */ 748*f3e7f55eSRobert Mustacchi #define DW_LANG_lo_user 0x8000 749*f3e7f55eSRobert Mustacchi #define DW_LANG_Mips_Assembler 0x8001 /* MIPS */ 750*f3e7f55eSRobert Mustacchi #define DW_LANG_Upc 0x8765 /* UPC, use 751*f3e7f55eSRobert Mustacchi DW_LANG_UPC instead. */ 752*f3e7f55eSRobert Mustacchi /* ALTIUM extension */ 753*f3e7f55eSRobert Mustacchi #define DW_LANG_ALTIUM_Assembler 0x9101 /* ALTIUM */ 754*f3e7f55eSRobert Mustacchi 755*f3e7f55eSRobert Mustacchi /* Sun extensions */ 756*f3e7f55eSRobert Mustacchi #define DW_LANG_SUN_Assembler 0x9001 /* SUN */ 757*f3e7f55eSRobert Mustacchi 758*f3e7f55eSRobert Mustacchi #define DW_LANG_hi_user 0xffff 759*f3e7f55eSRobert Mustacchi 760*f3e7f55eSRobert Mustacchi /* Identifier case name. */ 761*f3e7f55eSRobert Mustacchi #define DW_ID_case_sensitive 0x00 762*f3e7f55eSRobert Mustacchi #define DW_ID_up_case 0x01 763*f3e7f55eSRobert Mustacchi #define DW_ID_down_case 0x02 764*f3e7f55eSRobert Mustacchi #define DW_ID_case_insensitive 0x03 765*f3e7f55eSRobert Mustacchi 766*f3e7f55eSRobert Mustacchi /* Calling Convention Name. */ 767*f3e7f55eSRobert Mustacchi #define DW_CC_normal 0x01 768*f3e7f55eSRobert Mustacchi #define DW_CC_program 0x02 769*f3e7f55eSRobert Mustacchi #define DW_CC_nocall 0x03 770*f3e7f55eSRobert Mustacchi #define DW_CC_lo_user 0x40 771*f3e7f55eSRobert Mustacchi 772*f3e7f55eSRobert Mustacchi /* ALTIUM extensions. */ 773*f3e7f55eSRobert Mustacchi /* Function is an interrupt handler, return address on system stack. */ 774*f3e7f55eSRobert Mustacchi #define DW_CC_ALTIUM_interrupt 0x65 /* ALTIUM*/ 775*f3e7f55eSRobert Mustacchi 776*f3e7f55eSRobert Mustacchi /* Near function model, return address on system stack. */ 777*f3e7f55eSRobert Mustacchi #define DW_CC_ALTIUM_near_system_stack 0x66 /*ALTIUM */ 778*f3e7f55eSRobert Mustacchi 779*f3e7f55eSRobert Mustacchi /* Near function model, return address on user stack. */ 780*f3e7f55eSRobert Mustacchi #define DW_CC_ALTIUM_near_user_stack 0x67 /* ALTIUM */ 781*f3e7f55eSRobert Mustacchi 782*f3e7f55eSRobert Mustacchi /* Huge function model, return address on user stack. */ 783*f3e7f55eSRobert Mustacchi #define DW_CC_ALTIUM_huge_user_stack 0x68 /* ALTIUM */ 784*f3e7f55eSRobert Mustacchi 785*f3e7f55eSRobert Mustacchi 786*f3e7f55eSRobert Mustacchi #define DW_CC_hi_user 0xff 787*f3e7f55eSRobert Mustacchi 788*f3e7f55eSRobert Mustacchi /* Inline Code Name. */ 789*f3e7f55eSRobert Mustacchi #define DW_INL_not_inlined 0x00 790*f3e7f55eSRobert Mustacchi #define DW_INL_inlined 0x01 791*f3e7f55eSRobert Mustacchi #define DW_INL_declared_not_inlined 0x02 792*f3e7f55eSRobert Mustacchi #define DW_INL_declared_inlined 0x03 793*f3e7f55eSRobert Mustacchi 794*f3e7f55eSRobert Mustacchi /* Ordering Name. */ 795*f3e7f55eSRobert Mustacchi #define DW_ORD_row_major 0x00 796*f3e7f55eSRobert Mustacchi #define DW_ORD_col_major 0x01 797*f3e7f55eSRobert Mustacchi 798*f3e7f55eSRobert Mustacchi /* Discriminant Descriptor Name. */ 799*f3e7f55eSRobert Mustacchi #define DW_DSC_label 0x00 800*f3e7f55eSRobert Mustacchi #define DW_DSC_range 0x01 801*f3e7f55eSRobert Mustacchi 802*f3e7f55eSRobert Mustacchi /* Line number standard opcode name. */ 803*f3e7f55eSRobert Mustacchi #define DW_LNS_copy 0x01 804*f3e7f55eSRobert Mustacchi #define DW_LNS_advance_pc 0x02 805*f3e7f55eSRobert Mustacchi #define DW_LNS_advance_line 0x03 806*f3e7f55eSRobert Mustacchi #define DW_LNS_set_file 0x04 807*f3e7f55eSRobert Mustacchi #define DW_LNS_set_column 0x05 808*f3e7f55eSRobert Mustacchi #define DW_LNS_negate_stmt 0x06 809*f3e7f55eSRobert Mustacchi #define DW_LNS_set_basic_block 0x07 810*f3e7f55eSRobert Mustacchi #define DW_LNS_const_add_pc 0x08 811*f3e7f55eSRobert Mustacchi #define DW_LNS_fixed_advance_pc 0x09 812*f3e7f55eSRobert Mustacchi #define DW_LNS_set_prologue_end 0x0a /* DWARF3 */ 813*f3e7f55eSRobert Mustacchi #define DW_LNS_set_epilogue_begin 0x0b /* DWARF3 */ 814*f3e7f55eSRobert Mustacchi #define DW_LNS_set_isa 0x0c /* DWARF3 */ 815*f3e7f55eSRobert Mustacchi 816*f3e7f55eSRobert Mustacchi /* Line number extended opcode name. */ 817*f3e7f55eSRobert Mustacchi #define DW_LNE_end_sequence 0x01 818*f3e7f55eSRobert Mustacchi #define DW_LNE_set_address 0x02 819*f3e7f55eSRobert Mustacchi #define DW_LNE_define_file 0x03 820*f3e7f55eSRobert Mustacchi #define DW_LNE_set_discriminator 0x04 /* DWARF4 */ 821*f3e7f55eSRobert Mustacchi 822*f3e7f55eSRobert Mustacchi /* HP extensions. */ 823*f3e7f55eSRobert Mustacchi #define DW_LNE_HP_negate_is_UV_update 0x11 /* 17 HP */ 824*f3e7f55eSRobert Mustacchi #define DW_LNE_HP_push_context 0x12 /* 18 HP */ 825*f3e7f55eSRobert Mustacchi #define DW_LNE_HP_pop_context 0x13 /* 19 HP */ 826*f3e7f55eSRobert Mustacchi #define DW_LNE_HP_set_file_line_column 0x14 /* 20 HP */ 827*f3e7f55eSRobert Mustacchi #define DW_LNE_HP_set_routine_name 0x15 /* 21 HP */ 828*f3e7f55eSRobert Mustacchi #define DW_LNE_HP_set_sequence 0x16 /* 22 HP */ 829*f3e7f55eSRobert Mustacchi #define DW_LNE_HP_negate_post_semantics 0x17 /* 23 HP */ 830*f3e7f55eSRobert Mustacchi #define DW_LNE_HP_negate_function_exit 0x18 /* 24 HP */ 831*f3e7f55eSRobert Mustacchi #define DW_LNE_HP_negate_front_end_logical 0x19 /* 25 HP */ 832*f3e7f55eSRobert Mustacchi #define DW_LNE_HP_define_proc 0x20 /* 32 HP */ 833*f3e7f55eSRobert Mustacchi 834*f3e7f55eSRobert Mustacchi #define DW_LNE_lo_user 0x80 /* DWARF3 */ 835*f3e7f55eSRobert Mustacchi #define DW_LNE_hi_user 0xff /* DWARF3 */ 836*f3e7f55eSRobert Mustacchi 837*f3e7f55eSRobert Mustacchi /* These are known values for DW_LNS_set_isa. */ 838*f3e7f55eSRobert Mustacchi #define DW_ISA_UNKNOWN 0 839*f3e7f55eSRobert Mustacchi /* The following two are ARM specific. */ 840*f3e7f55eSRobert Mustacchi #define DW_ISA_ARM_thumb 1 /* ARM ISA */ 841*f3e7f55eSRobert Mustacchi #define DW_ISA_ARM_arm 2 /* ARM ISA */ 842*f3e7f55eSRobert Mustacchi 843*f3e7f55eSRobert Mustacchi /* Macro information. */ 844*f3e7f55eSRobert Mustacchi #define DW_MACINFO_define 0x01 845*f3e7f55eSRobert Mustacchi #define DW_MACINFO_undef 0x02 846*f3e7f55eSRobert Mustacchi #define DW_MACINFO_start_file 0x03 847*f3e7f55eSRobert Mustacchi #define DW_MACINFO_end_file 0x04 848*f3e7f55eSRobert Mustacchi #define DW_MACINFO_vendor_ext 0xff 849*f3e7f55eSRobert Mustacchi 850*f3e7f55eSRobert Mustacchi /* CFA operator compaction (a space saving measure, see 851*f3e7f55eSRobert Mustacchi the DWARF standard) means DW_CFA_extended and DW_CFA_nop 852*f3e7f55eSRobert Mustacchi have the same value here. */ 853*f3e7f55eSRobert Mustacchi #define DW_CFA_advance_loc 0x40 854*f3e7f55eSRobert Mustacchi #define DW_CFA_offset 0x80 855*f3e7f55eSRobert Mustacchi #define DW_CFA_restore 0xc0 856*f3e7f55eSRobert Mustacchi #define DW_CFA_extended 0 857*f3e7f55eSRobert Mustacchi 858*f3e7f55eSRobert Mustacchi #define DW_CFA_nop 0x00 859*f3e7f55eSRobert Mustacchi #define DW_CFA_set_loc 0x01 860*f3e7f55eSRobert Mustacchi #define DW_CFA_advance_loc1 0x02 861*f3e7f55eSRobert Mustacchi #define DW_CFA_advance_loc2 0x03 862*f3e7f55eSRobert Mustacchi #define DW_CFA_advance_loc4 0x04 863*f3e7f55eSRobert Mustacchi #define DW_CFA_offset_extended 0x05 864*f3e7f55eSRobert Mustacchi #define DW_CFA_restore_extended 0x06 865*f3e7f55eSRobert Mustacchi #define DW_CFA_undefined 0x07 866*f3e7f55eSRobert Mustacchi #define DW_CFA_same_value 0x08 867*f3e7f55eSRobert Mustacchi #define DW_CFA_register 0x09 868*f3e7f55eSRobert Mustacchi #define DW_CFA_remember_state 0x0a 869*f3e7f55eSRobert Mustacchi #define DW_CFA_restore_state 0x0b 870*f3e7f55eSRobert Mustacchi #define DW_CFA_def_cfa 0x0c 871*f3e7f55eSRobert Mustacchi #define DW_CFA_def_cfa_register 0x0d 872*f3e7f55eSRobert Mustacchi #define DW_CFA_def_cfa_offset 0x0e 873*f3e7f55eSRobert Mustacchi #define DW_CFA_def_cfa_expression 0x0f /* DWARF3 */ 874*f3e7f55eSRobert Mustacchi #define DW_CFA_expression 0x10 /* DWARF3 */ 875*f3e7f55eSRobert Mustacchi #define DW_CFA_offset_extended_sf 0x11 /* DWARF3 */ 876*f3e7f55eSRobert Mustacchi #define DW_CFA_def_cfa_sf 0x12 /* DWARF3 */ 877*f3e7f55eSRobert Mustacchi #define DW_CFA_def_cfa_offset_sf 0x13 /* DWARF3 */ 878*f3e7f55eSRobert Mustacchi #define DW_CFA_val_offset 0x14 /* DWARF3f */ 879*f3e7f55eSRobert Mustacchi #define DW_CFA_val_offset_sf 0x15 /* DWARF3f */ 880*f3e7f55eSRobert Mustacchi #define DW_CFA_val_expression 0x16 /* DWARF3f */ 881*f3e7f55eSRobert Mustacchi 882*f3e7f55eSRobert Mustacchi #define DW_CFA_lo_user 0x1c 883*f3e7f55eSRobert Mustacchi #define DW_CFA_low_user 0x1c /* Incorrect spelling, do not use. */ 884*f3e7f55eSRobert Mustacchi 885*f3e7f55eSRobert Mustacchi /* SGI/MIPS extension. */ 886*f3e7f55eSRobert Mustacchi #define DW_CFA_MIPS_advance_loc8 0x1d /* MIPS */ 887*f3e7f55eSRobert Mustacchi 888*f3e7f55eSRobert Mustacchi /* GNU extensions. */ 889*f3e7f55eSRobert Mustacchi #define DW_CFA_GNU_window_save 0x2d /* GNU */ 890*f3e7f55eSRobert Mustacchi #define DW_CFA_GNU_args_size 0x2e /* GNU */ 891*f3e7f55eSRobert Mustacchi #define DW_CFA_GNU_negative_offset_extended 0x2f /* GNU */ 892*f3e7f55eSRobert Mustacchi 893*f3e7f55eSRobert Mustacchi #define DW_CFA_high_user 0x3f 894*f3e7f55eSRobert Mustacchi 895*f3e7f55eSRobert Mustacchi /* GNU exception header encoding. See the Generic 896*f3e7f55eSRobert Mustacchi Elf Specification of the Linux Standard Base (LSB). 897*f3e7f55eSRobert Mustacchi http://refspecs.freestandards.org/LSB_3.0.0/LSB-Core-generic/LSB-Core-generic/dwarfext.html 898*f3e7f55eSRobert Mustacchi The upper 4 bits indicate how the value is to be applied. 899*f3e7f55eSRobert Mustacchi The lower 4 bits indicate the format of the data. 900*f3e7f55eSRobert Mustacchi */ 901*f3e7f55eSRobert Mustacchi #define DW_EH_PE_absptr 0x00 /* GNU */ 902*f3e7f55eSRobert Mustacchi #define DW_EH_PE_uleb128 0x01 /* GNU */ 903*f3e7f55eSRobert Mustacchi #define DW_EH_PE_udata2 0x02 /* GNU */ 904*f3e7f55eSRobert Mustacchi #define DW_EH_PE_udata4 0x03 /* GNU */ 905*f3e7f55eSRobert Mustacchi #define DW_EH_PE_udata8 0x04 /* GNU */ 906*f3e7f55eSRobert Mustacchi #define DW_EH_PE_sleb128 0x09 /* GNU */ 907*f3e7f55eSRobert Mustacchi #define DW_EH_PE_sdata2 0x0A /* GNU */ 908*f3e7f55eSRobert Mustacchi #define DW_EH_PE_sdata4 0x0B /* GNU */ 909*f3e7f55eSRobert Mustacchi #define DW_EH_PE_sdata8 0x0C /* GNU */ 910*f3e7f55eSRobert Mustacchi 911*f3e7f55eSRobert Mustacchi #define DW_EH_PE_pcrel 0x10 /* GNU */ 912*f3e7f55eSRobert Mustacchi #define DW_EH_PE_textrel 0x20 /* GNU */ 913*f3e7f55eSRobert Mustacchi #define DW_EH_PE_datarel 0x30 /* GNU */ 914*f3e7f55eSRobert Mustacchi #define DW_EH_PE_funcrel 0x40 /* GNU */ 915*f3e7f55eSRobert Mustacchi #define DW_EH_PE_aligned 0x50 /* GNU */ 916*f3e7f55eSRobert Mustacchi 917*f3e7f55eSRobert Mustacchi #define DW_EH_PE_omit 0xff /* GNU. Means no value present. */ 918*f3e7f55eSRobert Mustacchi 919*f3e7f55eSRobert Mustacchi 920*f3e7f55eSRobert Mustacchi /* Mapping from machine registers and pseudo-regs into the .debug_frame table. 921*f3e7f55eSRobert Mustacchi DW_FRAME entries are machine specific. These describe 922*f3e7f55eSRobert Mustacchi MIPS/SGI R3000, R4K, R4400 and all later MIPS/SGI IRIX machines. 923*f3e7f55eSRobert Mustacchi They describe a mapping from hardware register number to 924*f3e7f55eSRobert Mustacchi the number used in the table to identify that register. 925*f3e7f55eSRobert Mustacchi 926*f3e7f55eSRobert Mustacchi The CFA (Canonical Frame Address) described in DWARF is called 927*f3e7f55eSRobert Mustacchi the Virtual Frame Pointer on MIPS/SGI machines. 928*f3e7f55eSRobert Mustacchi 929*f3e7f55eSRobert Mustacchi The DW_FRAME* names here are MIPS/SGI specfic. 930*f3e7f55eSRobert Mustacchi Libdwarf interfaces defined in 2008 make the 931*f3e7f55eSRobert Mustacchi frame definitions 932*f3e7f55eSRobert Mustacchi here (and the fixed table sizes they imply) obsolete. 933*f3e7f55eSRobert Mustacchi They are left here for compatibility. 934*f3e7f55eSRobert Mustacchi */ 935*f3e7f55eSRobert Mustacchi /* Default column used for CFA in the libdwarf reader client. 936*f3e7f55eSRobert Mustacchi Assumes reg 0 never appears as 937*f3e7f55eSRobert Mustacchi a register in DWARF information. Usable for MIPS, 938*f3e7f55eSRobert Mustacchi but never a good idea, really. */ 939*f3e7f55eSRobert Mustacchi #define DW_FRAME_CFA_COL 0 940*f3e7f55eSRobert Mustacchi 941*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG1 1 /* integer reg 1 */ 942*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG2 2 /* integer reg 2 */ 943*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG3 3 /* integer reg 3 */ 944*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG4 4 /* integer reg 4 */ 945*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG5 5 /* integer reg 5 */ 946*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG6 6 /* integer reg 6 */ 947*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG7 7 /* integer reg 7 */ 948*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG8 8 /* integer reg 8 */ 949*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG9 9 /* integer reg 9 */ 950*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG10 10 /* integer reg 10 */ 951*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG11 11 /* integer reg 11 */ 952*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG12 12 /* integer reg 12 */ 953*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG13 13 /* integer reg 13 */ 954*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG14 14 /* integer reg 14 */ 955*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG15 15 /* integer reg 15 */ 956*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG16 16 /* integer reg 16 */ 957*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG17 17 /* integer reg 17 */ 958*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG18 18 /* integer reg 18 */ 959*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG19 19 /* integer reg 19 */ 960*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG20 20 /* integer reg 20 */ 961*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG21 21 /* integer reg 21 */ 962*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG22 22 /* integer reg 22 */ 963*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG23 23 /* integer reg 23 */ 964*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG24 24 /* integer reg 24 */ 965*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG25 25 /* integer reg 25 */ 966*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG26 26 /* integer reg 26 */ 967*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG27 27 /* integer reg 27 */ 968*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG28 28 /* integer reg 28 */ 969*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG29 29 /* integer reg 29 */ 970*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG30 30 /* integer reg 30 */ 971*f3e7f55eSRobert Mustacchi #define DW_FRAME_REG31 31 /* integer reg 31, aka ra */ 972*f3e7f55eSRobert Mustacchi 973*f3e7f55eSRobert Mustacchi /* MIPS1, 2 have only some of these 64-bit registers. 974*f3e7f55eSRobert Mustacchi ** MIPS1 save/restore takes 2 instructions per 64-bit reg, and 975*f3e7f55eSRobert Mustacchi ** in that case, the register is considered stored after the second 976*f3e7f55eSRobert Mustacchi ** swc1. 977*f3e7f55eSRobert Mustacchi */ 978*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG0 32 /* 64-bit floating point reg 0 */ 979*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG1 33 /* 64-bit floating point reg 1 */ 980*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG2 34 /* 64-bit floating point reg 2 */ 981*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG3 35 /* 64-bit floating point reg 3 */ 982*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG4 36 /* 64-bit floating point reg 4 */ 983*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG5 37 /* 64-bit floating point reg 5 */ 984*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG6 38 /* 64-bit floating point reg 6 */ 985*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG7 39 /* 64-bit floating point reg 7 */ 986*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG8 40 /* 64-bit floating point reg 8 */ 987*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG9 41 /* 64-bit floating point reg 9 */ 988*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG10 42 /* 64-bit floating point reg 10 */ 989*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG11 43 /* 64-bit floating point reg 11 */ 990*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG12 44 /* 64-bit floating point reg 12 */ 991*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG13 45 /* 64-bit floating point reg 13 */ 992*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG14 46 /* 64-bit floating point reg 14 */ 993*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG15 47 /* 64-bit floating point reg 15 */ 994*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG16 48 /* 64-bit floating point reg 16 */ 995*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG17 49 /* 64-bit floating point reg 17 */ 996*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG18 50 /* 64-bit floating point reg 18 */ 997*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG19 51 /* 64-bit floating point reg 19 */ 998*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG20 52 /* 64-bit floating point reg 20 */ 999*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG21 53 /* 64-bit floating point reg 21 */ 1000*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG22 54 /* 64-bit floating point reg 22 */ 1001*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG23 55 /* 64-bit floating point reg 23 */ 1002*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG24 56 /* 64-bit floating point reg 24 */ 1003*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG25 57 /* 64-bit floating point reg 25 */ 1004*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG26 58 /* 64-bit floating point reg 26 */ 1005*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG27 59 /* 64-bit floating point reg 27 */ 1006*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG28 60 /* 64-bit floating point reg 28 */ 1007*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG29 61 /* 64-bit floating point reg 29 */ 1008*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG30 62 /* 64-bit floating point reg 30 */ 1009*f3e7f55eSRobert Mustacchi #define DW_FRAME_FREG31 63 /* 64-bit floating point reg 31 */ 1010*f3e7f55eSRobert Mustacchi 1011*f3e7f55eSRobert Mustacchi /* ***IMPORTANT NOTE, TARGET DEPENDENCY **** 1012*f3e7f55eSRobert Mustacchi The following 4 #defines are dependent on 1013*f3e7f55eSRobert Mustacchi the target cpu(s) that you apply libdwarf to. 1014*f3e7f55eSRobert Mustacchi Ensure that DW_FRAME_UNDEFINED_VAL and DW_FRAME_SAME_VAL 1015*f3e7f55eSRobert Mustacchi do not conflict with the range [0-DW_FRAME_STATIC_LINK]. 1016*f3e7f55eSRobert Mustacchi The value 63 works for MIPS cpus at least up to the R16000. 1017*f3e7f55eSRobert Mustacchi 1018*f3e7f55eSRobert Mustacchi For a cpu with more than 63 real registers 1019*f3e7f55eSRobert Mustacchi DW_FRAME_HIGHEST_NORMAL_REGISTER 1020*f3e7f55eSRobert Mustacchi must be increased for things to work properly! 1021*f3e7f55eSRobert Mustacchi Also ensure that DW_FRAME_UNDEFINED_VAL DW_FRAME_SAME_VAL 1022*f3e7f55eSRobert Mustacchi are not in the range [0-DW_FRAME_STATIC_LINK] 1023*f3e7f55eSRobert Mustacchi 1024*f3e7f55eSRobert Mustacchi Having DW_FRAME_HIGHEST_NORMAL_REGISTER be higher than 1025*f3e7f55eSRobert Mustacchi is strictly needed is safe. 1026*f3e7f55eSRobert Mustacchi 1027*f3e7f55eSRobert Mustacchi */ 1028*f3e7f55eSRobert Mustacchi 1029*f3e7f55eSRobert Mustacchi #ifndef DW_FRAME_HIGHEST_NORMAL_REGISTER 1030*f3e7f55eSRobert Mustacchi #define DW_FRAME_HIGHEST_NORMAL_REGISTER 63 1031*f3e7f55eSRobert Mustacchi #endif 1032*f3e7f55eSRobert Mustacchi /* This is the number of columns in the Frame Table. 1033*f3e7f55eSRobert Mustacchi This constant should 1034*f3e7f55eSRobert Mustacchi be kept in sync with DW_REG_TABLE_SIZE defined in libdwarf.h 1035*f3e7f55eSRobert Mustacchi It must also be large enough to be beyond the highest 1036*f3e7f55eSRobert Mustacchi compiler-defined-register (meaning DW_FRAME_RA_COL DW_FRAME_STATIC_LINK 1037*f3e7f55eSRobert Mustacchi in the MIPS/IRIX case */ 1038*f3e7f55eSRobert Mustacchi #ifndef DW_FRAME_LAST_REG_NUM 1039*f3e7f55eSRobert Mustacchi #define DW_FRAME_LAST_REG_NUM (DW_FRAME_HIGHEST_NORMAL_REGISTER + 3) 1040*f3e7f55eSRobert Mustacchi #endif 1041*f3e7f55eSRobert Mustacchi 1042*f3e7f55eSRobert Mustacchi 1043*f3e7f55eSRobert Mustacchi /* Column recording ra (return address from a function call). 1044*f3e7f55eSRobert Mustacchi This is common to many architectures, but as a 'simple register' 1045*f3e7f55eSRobert Mustacchi is not necessarily adequate for all architectures. 1046*f3e7f55eSRobert Mustacchi For MIPS/IRIX this register number is actually recorded on disk 1047*f3e7f55eSRobert Mustacchi in the .debug_frame section. 1048*f3e7f55eSRobert Mustacchi */ 1049*f3e7f55eSRobert Mustacchi #define DW_FRAME_RA_COL (DW_FRAME_HIGHEST_NORMAL_REGISTER + 1) 1050*f3e7f55eSRobert Mustacchi 1051*f3e7f55eSRobert Mustacchi /* Column recording static link applicable to up-level 1052*f3e7f55eSRobert Mustacchi addressing, as in IRIX mp code, pascal, etc. 1053*f3e7f55eSRobert Mustacchi This is common to many architectures but 1054*f3e7f55eSRobert Mustacchi is not necessarily adequate for all architectures. 1055*f3e7f55eSRobert Mustacchi For MIPS/IRIX this register number is actually recorded on disk 1056*f3e7f55eSRobert Mustacchi in the .debug_frame section. 1057*f3e7f55eSRobert Mustacchi */ 1058*f3e7f55eSRobert Mustacchi #define DW_FRAME_STATIC_LINK (DW_FRAME_HIGHEST_NORMAL_REGISTER + 2) 1059*f3e7f55eSRobert Mustacchi 1060*f3e7f55eSRobert Mustacchi 1061*f3e7f55eSRobert Mustacchi 1062*f3e7f55eSRobert Mustacchi /* 1063*f3e7f55eSRobert Mustacchi DW_FRAME_UNDEFINED_VAL and DW_FRAME_SAME_VAL are 1064*f3e7f55eSRobert Mustacchi never on disk, just generated by libdwarf. See libdwarf.h 1065*f3e7f55eSRobert Mustacchi for their values. 1066*f3e7f55eSRobert Mustacchi */ 1067*f3e7f55eSRobert Mustacchi 1068*f3e7f55eSRobert Mustacchi 1069*f3e7f55eSRobert Mustacchi 1070*f3e7f55eSRobert Mustacchi #define DW_CHILDREN_no 0x00 1071*f3e7f55eSRobert Mustacchi #define DW_CHILDREN_yes 0x01 1072*f3e7f55eSRobert Mustacchi 1073*f3e7f55eSRobert Mustacchi #define DW_ADDR_none 0 1074*f3e7f55eSRobert Mustacchi 1075*f3e7f55eSRobert Mustacchi #ifdef __cplusplus 1076*f3e7f55eSRobert Mustacchi } 1077*f3e7f55eSRobert Mustacchi #endif 1078*f3e7f55eSRobert Mustacchi #endif /* __DWARF_H */ 1079