xref: /titanic_50/usr/src/lib/libdwarf/common/dwarf.h (revision f3e7f55e73a39377d55a030f124cc86b3b66a9cc)
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