Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
dwarf.h
Go to the documentation of this file.
00001 /*
00002 
00003   Copyright (C) 2000, 2001 Silicon Graphics, Inc.  All Rights Reserved.
00004 
00005   This program is free software; you can redistribute it and/or modify it
00006   under the terms of version 2 of the GNU General Public License as
00007   published by the Free Software Foundation.
00008 
00009   This program is distributed in the hope that it would be useful, but
00010   WITHOUT ANY WARRANTY; without even the implied warranty of
00011   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
00012 
00013   Further, this software is distributed without any warranty that it is
00014   free of the rightful claim of any third person regarding infringement 
00015   or the like.  Any license provided herein, whether implied or 
00016   otherwise, applies only to this software file.  Patent licenses, if 
00017   any, provided herein do not apply to combinations of this program with 
00018   other software, or any other product whatsoever.  
00019 
00020   You should have received a copy of the GNU General Public License along
00021   with this program; if not, write the Free Software Foundation, Inc., 59
00022   Temple Place - Suite 330, Boston MA 02111-1307, USA.
00023 
00024   Contact information:  Silicon Graphics, Inc., 1600 Amphitheatre Pky,
00025   Mountain View, CA 94043, or:
00026 
00027   http://www.sgi.com
00028 
00029   For further information regarding this notice, see:
00030 
00031   http://oss.sgi.com/projects/GenInfo/NoticeExplan
00032 
00033 */
00034 
00035 
00036 #ifndef __DWARF_H
00037 #define __DWARF_H
00038 #ifdef __cplusplus
00039 extern "C" {
00040 #endif
00041 
00042 /*
00043         dwarf.h   DWARF  debugging information values
00044 
00045 */
00046 
00047 
00048 #define DW_TAG_array_type               0x01
00049 #define DW_TAG_class_type               0x02
00050 #define DW_TAG_entry_point              0x03
00051 #define DW_TAG_enumeration_type         0x04
00052 #define DW_TAG_formal_parameter         0x05
00053 #define DW_TAG_imported_declaration     0x08
00054 #define DW_TAG_label                    0x0a
00055 #define DW_TAG_lexical_block            0x0b
00056 #define DW_TAG_member                   0x0d
00057 #define DW_TAG_pointer_type             0x0f
00058 #define DW_TAG_reference_type           0x10
00059 #define DW_TAG_compile_unit             0x11
00060 #define DW_TAG_string_type              0x12
00061 #define DW_TAG_structure_type           0x13
00062 #define DW_TAG_subroutine_type          0x15
00063 #define DW_TAG_typedef                  0x16
00064 #define DW_TAG_union_type               0x17
00065 #define DW_TAG_unspecified_parameters   0x18
00066 #define DW_TAG_variant                  0x19
00067 #define DW_TAG_common_block             0x1a
00068 #define DW_TAG_common_inclusion         0x1b
00069 #define DW_TAG_inheritance              0x1c
00070 #define DW_TAG_inlined_subroutine       0x1d
00071 #define DW_TAG_module                   0x1e
00072 #define DW_TAG_ptr_to_member_type       0x1f
00073 #define DW_TAG_set_type                 0x20
00074 #define DW_TAG_subrange_type            0x21
00075 #define DW_TAG_with_stmt                0x22
00076 #define DW_TAG_access_declaration       0x23
00077 #define DW_TAG_base_type                0x24
00078 #define DW_TAG_catch_block              0x25
00079 #define DW_TAG_const_type               0x26
00080 #define DW_TAG_constant                 0x27
00081 #define DW_TAG_enumerator               0x28
00082 #define DW_TAG_file_type                0x29
00083 #define DW_TAG_friend                   0x2a
00084 #define DW_TAG_namelist                 0x2b
00085 #define DW_TAG_namelist_item            0x2c
00086 #define DW_TAG_packed_type              0x2d
00087 #define DW_TAG_subprogram               0x2e
00088 #define DW_TAG_template_type_param      0x2f
00089 #define DW_TAG_template_value_param     0x30
00090 #define DW_TAG_thrown_type              0x31
00091 #define DW_TAG_try_block                0x32
00092 #define DW_TAG_variant_part             0x33
00093 #define DW_TAG_variable                 0x34
00094 #define DW_TAG_volatile_type            0x35
00095 #define DW_TAG_lo_user                  0x4080
00096 #define DW_TAG_MIPS_loop                0x4081
00097 #define DW_TAG_hi_user                  0xffff
00098 
00099 /* The following 3 are GNU extensions 
00100    The TAG names are as if the extensions were dwarf standard,
00101    not extensions.
00102 */
00103 #define DW_TAG_format_label             0x4101 /* for FORTRAN 77, Fortran 90 */
00104 #define DW_TAG_function_template        0x4102 /* for C++ */
00105 #define DW_TAG_class_template           0x4103 /* for C++ */
00106 
00107 
00108 #define DW_children_no                  0
00109 #define DW_children_yes                 1
00110 
00111 
00112 
00113 #define DW_FORM_addr                    0x01
00114 #define DW_FORM_block2                  0x03
00115 #define DW_FORM_block4                  0x04
00116 #define DW_FORM_data2                   0x05
00117 #define DW_FORM_data4                   0x06
00118 #define DW_FORM_data8                   0x07
00119 #define DW_FORM_string                  0x08
00120 #define DW_FORM_block                   0x09
00121 #define DW_FORM_block1                  0x0a
00122 #define DW_FORM_data1                   0x0b
00123 #define DW_FORM_flag                    0x0c
00124 #define DW_FORM_sdata                   0x0d
00125 #define DW_FORM_strp                    0x0e
00126 #define DW_FORM_udata                   0x0f
00127 #define DW_FORM_ref_addr                0x10
00128 #define DW_FORM_ref1                    0x11
00129 #define DW_FORM_ref2                    0x12
00130 #define DW_FORM_ref4                    0x13
00131 #define DW_FORM_ref8                    0x14
00132 #define DW_FORM_ref_udata               0x15
00133 #define DW_FORM_indirect                0x16
00134 
00135 #define DW_AT_sibling                           0x01
00136 #define DW_AT_location                          0x02
00137 #define DW_AT_name                              0x03
00138 #define DW_AT_ordering                          0x09
00139 #define DW_AT_subscr_data                       0x0a
00140 #define DW_AT_byte_size                         0x0b
00141 #define DW_AT_bit_offset                        0x0c
00142 #define DW_AT_bit_size                          0x0d
00143 #define DW_AT_element_list                      0x0f
00144 #define DW_AT_stmt_list                         0x10
00145 #define DW_AT_low_pc                            0x11
00146 #define DW_AT_high_pc                           0x12
00147 #define DW_AT_language                          0x13
00148 #define DW_AT_member                            0x14
00149 #define DW_AT_discr                             0x15
00150 #define DW_AT_discr_value                       0x16
00151 #define DW_AT_visibility                        0x17
00152 #define DW_AT_import                            0x18
00153 #define DW_AT_string_length                     0x19
00154 #define DW_AT_common_reference                  0x1a
00155 #define DW_AT_comp_dir                          0x1b
00156 #define DW_AT_const_value                       0x1c
00157 #define DW_AT_containing_type                   0x1d
00158 #define DW_AT_default_value                     0x1e
00159 #define DW_AT_inline                            0x20
00160 #define DW_AT_is_optional                       0x21
00161 #define DW_AT_lower_bound                       0x22
00162 #define DW_AT_producer                          0x25
00163 #define DW_AT_prototyped                        0x27
00164 #define DW_AT_return_addr                       0x2a
00165 #define DW_AT_start_scope                       0x2c
00166 #define DW_AT_stride_size                       0x2e
00167 #define DW_AT_upper_bound                       0x2f
00168 #define DW_AT_abstract_origin                   0x31
00169 #define DW_AT_accessibility                     0x32
00170 #define DW_AT_address_class                     0x33
00171 #define DW_AT_artificial                        0x34
00172 #define DW_AT_base_types                        0x35
00173 #define DW_AT_calling_convention                0x36
00174 #define DW_AT_count                             0x37
00175 #define DW_AT_data_member_location              0x38
00176 #define DW_AT_decl_column                       0x39
00177 #define DW_AT_decl_file                         0x3a
00178 #define DW_AT_decl_line                         0x3b
00179 #define DW_AT_declaration                       0x3c
00180 #define DW_AT_discr_list                        0x3d
00181 #define DW_AT_encoding                          0x3e
00182 #define DW_AT_external                          0x3f
00183 #define DW_AT_frame_base                        0x40
00184 #define DW_AT_friend                            0x41
00185 #define DW_AT_identifier_case                   0x42
00186 #define DW_AT_macro_info                        0x43
00187 #define DW_AT_namelist_items                    0x44
00188 #define DW_AT_priority                          0x45
00189 #define DW_AT_segment                           0x46
00190 #define DW_AT_specification                     0x47
00191 #define DW_AT_static_link                       0x48
00192 #define DW_AT_type                              0x49
00193 #define DW_AT_use_location                      0x4a
00194 #define DW_AT_variable_parameter                0x4b
00195 #define DW_AT_virtuality                        0x4c
00196 #define DW_AT_vtable_elem_location              0x4d
00197 #define DW_AT_lo_user                           0x2000
00198 #define DW_AT_MIPS_fde                          0x2001
00199 #define DW_AT_MIPS_loop_begin                   0x2002
00200 #define DW_AT_MIPS_tail_loop_begin              0x2003
00201 #define DW_AT_MIPS_epilog_begin                 0x2004
00202 #define DW_AT_MIPS_loop_unroll_factor           0x2005
00203 #define DW_AT_MIPS_software_pipeline_depth      0x2006
00204 #define DW_AT_MIPS_linkage_name                 0x2007
00205 #define DW_AT_MIPS_stride                       0x2008
00206 #define DW_AT_MIPS_abstract_name                0x2009
00207 #define DW_AT_MIPS_clone_origin                 0x200a
00208 #define DW_AT_MIPS_has_inlines                  0x200b
00209 #define DW_AT_MIPS_stride_byte                  0x200c
00210 #define DW_AT_MIPS_stride_elem                  0x200d
00211 #define DW_AT_MIPS_ptr_dopetype                 0x200e
00212 #define DW_AT_MIPS_allocatable_dopetype         0x200f
00213 #define DW_AT_MIPS_assumed_shape_dopetype       0x2010
00214 #define DW_AT_MIPS_assumed_size                 0x2011
00215 
00216 
00217 /* GNU extensions, currently not used in dwarf2 by egcs 
00218    Mostly dwarf1 extensions not needed in dwarf2?
00219 */
00220 #define DW_AT_sf_names                          0x2101
00221 #define DW_AT_src_info                          0x2102
00222 #define DW_AT_mac_info                          0x2103
00223 #define DW_AT_src_coords                        0x2104
00224 #define DW_AT_body_begin                        0x2105
00225 #define DW_AT_body_end                          0x2106
00226 
00227 
00228 #define DW_AT_hi_user                           0x3fff
00229 
00230 #define DW_OP_addr                      0x03
00231 #define DW_OP_deref                     0x06
00232 #define DW_OP_const1u                   0x08
00233 #define DW_OP_const1s                   0x09
00234 #define DW_OP_const2u                   0x0a
00235 #define DW_OP_const2s                   0x0b
00236 #define DW_OP_const4u                   0x0c
00237 #define DW_OP_const4s                   0x0d
00238 #define DW_OP_const8u                   0x0e
00239 #define DW_OP_const8s                   0x0f
00240 #define DW_OP_constu                    0x10
00241 #define DW_OP_consts                    0x11
00242 #define DW_OP_dup                       0x12
00243 #define DW_OP_drop                      0x13
00244 #define DW_OP_over                      0x14
00245 #define DW_OP_pick                      0x15
00246 #define DW_OP_swap                      0x16
00247 #define DW_OP_rot                       0x17
00248 #define DW_OP_xderef                    0x18
00249 #define DW_OP_abs                       0x19
00250 #define DW_OP_and                       0x1a
00251 #define DW_OP_div                       0x1b
00252 #define DW_OP_minus                     0x1c
00253 #define DW_OP_mod                       0x1d
00254 #define DW_OP_mul                       0x1e
00255 #define DW_OP_neg                       0x1f
00256 #define DW_OP_not                       0x20
00257 #define DW_OP_or                        0x21
00258 #define DW_OP_plus                      0x22
00259 #define DW_OP_plus_uconst               0x23
00260 #define DW_OP_shl                       0x24
00261 #define DW_OP_shr                       0x25
00262 #define DW_OP_shra                      0x26
00263 #define DW_OP_xor                       0x27
00264 #define DW_OP_bra                       0x28
00265 #define DW_OP_eq                        0x29
00266 #define DW_OP_ge                        0x2a 
00267 #define DW_OP_gt                        0x2b
00268 #define DW_OP_le                        0x2c
00269 #define DW_OP_lt                        0x2d
00270 #define DW_OP_ne                        0x2e 
00271 #define DW_OP_skip                      0x2f
00272 #define DW_OP_lit0                      0x30
00273 #define DW_OP_lit1                      0x31 
00274 #define DW_OP_lit2                      0x32
00275 #define DW_OP_lit3                      0x33
00276 #define DW_OP_lit4                      0x34
00277 #define DW_OP_lit5                      0x35
00278 #define DW_OP_lit6                      0x36
00279 #define DW_OP_lit7                      0x37
00280 #define DW_OP_lit8                      0x38
00281 #define DW_OP_lit9                      0x39
00282 #define DW_OP_lit10                     0x3a
00283 #define DW_OP_lit11                     0x3b
00284 #define DW_OP_lit12                     0x3c
00285 #define DW_OP_lit13                     0x3d
00286 #define DW_OP_lit14                     0x3e
00287 #define DW_OP_lit15                     0x3f
00288 #define DW_OP_lit16                     0x40
00289 #define DW_OP_lit17                     0x41
00290 #define DW_OP_lit18                     0x42
00291 #define DW_OP_lit19                     0x43
00292 #define DW_OP_lit20                     0x44
00293 #define DW_OP_lit21                     0x45
00294 #define DW_OP_lit22                     0x46
00295 #define DW_OP_lit23                     0x47
00296 #define DW_OP_lit24                     0x48
00297 #define DW_OP_lit25                     0x49
00298 #define DW_OP_lit26                     0x4a
00299 #define DW_OP_lit27                     0x4b
00300 #define DW_OP_lit28                     0x4c
00301 #define DW_OP_lit29                     0x4d
00302 #define DW_OP_lit30                     0x4e
00303 #define DW_OP_lit31                     0x4f
00304 #define DW_OP_reg0                      0x50
00305 #define DW_OP_reg1                      0x51
00306 #define DW_OP_reg2                      0x52
00307 #define DW_OP_reg3                      0x53
00308 #define DW_OP_reg4                      0x54
00309 #define DW_OP_reg5                      0x55
00310 #define DW_OP_reg6                      0x56
00311 #define DW_OP_reg7                      0x57
00312 #define DW_OP_reg8                      0x58
00313 #define DW_OP_reg9                      0x59
00314 #define DW_OP_reg10                     0x5a
00315 #define DW_OP_reg11                     0x5b
00316 #define DW_OP_reg12                     0x5c
00317 #define DW_OP_reg13                     0x5d
00318 #define DW_OP_reg14                     0x5e
00319 #define DW_OP_reg15                     0x5f
00320 #define DW_OP_reg16                     0x60
00321 #define DW_OP_reg17                     0x61
00322 #define DW_OP_reg18                     0x62
00323 #define DW_OP_reg19                     0x63
00324 #define DW_OP_reg20                     0x64
00325 #define DW_OP_reg21                     0x65
00326 #define DW_OP_reg22                     0x66
00327 #define DW_OP_reg23                     0x67
00328 #define DW_OP_reg24                     0x68
00329 #define DW_OP_reg25                     0x69
00330 #define DW_OP_reg26                     0x6a
00331 #define DW_OP_reg27                     0x6b
00332 #define DW_OP_reg28                     0x6c
00333 #define DW_OP_reg29                     0x6d
00334 #define DW_OP_reg30                     0x6e
00335 #define DW_OP_reg31                     0x6f
00336 #define DW_OP_breg0                     0x70
00337 #define DW_OP_breg1                     0x71
00338 #define DW_OP_breg2                     0x72
00339 #define DW_OP_breg3                     0x73
00340 #define DW_OP_breg4                     0x74
00341 #define DW_OP_breg5                     0x75
00342 #define DW_OP_breg6                     0x76
00343 #define DW_OP_breg7                     0x77
00344 #define DW_OP_breg8                     0x78
00345 #define DW_OP_breg9                     0x79
00346 #define DW_OP_breg10                    0x7a
00347 #define DW_OP_breg11                    0x7b
00348 #define DW_OP_breg12                    0x7c
00349 #define DW_OP_breg13                    0x7d
00350 #define DW_OP_breg14                    0x7e
00351 #define DW_OP_breg15                    0x7f
00352 #define DW_OP_breg16                    0x80
00353 #define DW_OP_breg17                    0x81
00354 #define DW_OP_breg18                    0x82
00355 #define DW_OP_breg19                    0x83
00356 #define DW_OP_breg20                    0x84
00357 #define DW_OP_breg21                    0x85
00358 #define DW_OP_breg22                    0x86
00359 #define DW_OP_breg23                    0x87
00360 #define DW_OP_breg24                    0x88
00361 #define DW_OP_breg25                    0x89
00362 #define DW_OP_breg26                    0x8a
00363 #define DW_OP_breg27                    0x8b
00364 #define DW_OP_breg28                    0x8c
00365 #define DW_OP_breg29                    0x8d
00366 #define DW_OP_breg30                    0x8e
00367 #define DW_OP_breg31                    0x8f
00368 #define DW_OP_regx                      0x90
00369 #define DW_OP_fbreg                     0x91
00370 #define DW_OP_bregx                     0x92
00371 #define DW_OP_piece                     0x93
00372 #define DW_OP_deref_size                0x94
00373 #define DW_OP_xderef_size               0x95
00374 #define DW_OP_nop                       0x96
00375 #define DW_OP_lo_user                   0xe0
00376 #define DW_OP_hi_user                   0xff
00377 
00378 #define DW_ATE_address                  0x1
00379 #define DW_ATE_boolean                  0x2
00380 #define DW_ATE_complex_float            0x3
00381 #define DW_ATE_float                    0x4
00382 #define DW_ATE_signed                   0x5
00383 #define DW_ATE_signed_char              0x6
00384 #define DW_ATE_unsigned                 0x7
00385 #define DW_ATE_unsigned_char            0x8
00386 #define DW_ATE_lo_user                  0x80
00387 #define DW_ATE_hi_user                  0xff
00388 
00389 #define DW_ACCESS_public                1
00390 #define DW_ACCESS_protected             2
00391 #define DW_ACCESS_private               3
00392 
00393 #define DW_VIS_local                    1
00394 #define DW_VIS_exported                 2
00395 #define DW_VIS_qualified                3
00396 
00397 #define DW_VIRTUALITY_none              0
00398 #define DW_VIRTUALITY_virtual           1
00399 #define DW_VIRTUALITY_pure_virtual      2
00400 
00401 #define DW_LANG_C89                     0x0001
00402 #define DW_LANG_C                       0x0002
00403 #define DW_LANG_Ada83                   0x0003
00404 #define DW_LANG_C_plus_plus             0x0004
00405 #define DW_LANG_Cobol74                 0x0005
00406 #define DW_LANG_Cobol85                 0x0006
00407 #define DW_LANG_Fortran77               0x0007
00408 #define DW_LANG_Fortran90               0x0008
00409 #define DW_LANG_Pascal83                0x0009
00410 #define DW_LANG_Modula2                 0x000a
00411 #define DW_LANG_lo_user                 0x8000
00412 #define DW_LANG_Mips_Assembler          0x8001
00413 #define DW_LANG_hi_user                 0xffff
00414 
00415 
00416 #define DW_ID_case_sensitive            0
00417 #define DW_ID_up_case                   1
00418 #define DW_ID_down_case                 2
00419 #define DW_ID_case_insensitive          3
00420 
00421 #define DW_CC_normal                    0x1
00422 #define DW_CC_program                   0x2
00423 #define DW_CC_nocall                    0x3
00424 #define DW_CC_lo_user                   0x40
00425 #define DW_CC_hi_user                   0xff
00426 
00427 #define DW_INL_not_inlined              0
00428 #define DW_INL_inlined                  1
00429 #define DW_INL_declared_not_inlined     2
00430 #define DW_INL_declared_inlined         3
00431 
00432 #define DW_ORD_row_major                0
00433 #define DW_ORD_col_major                1
00434 
00435 #define DW_DSC_label                    0
00436 #define DW_DSC_range                    1
00437 
00438 #define DW_LNS_copy                     1
00439 #define DW_LNS_advance_pc               2
00440 #define DW_LNS_advance_line             3
00441 #define DW_LNS_set_file                 4
00442 #define DW_LNS_set_column               5
00443 #define DW_LNS_negate_stmt              6
00444 #define DW_LNS_set_basic_block          7
00445 #define DW_LNS_const_add_pc             8
00446 #define DW_LNS_fixed_advance_pc         9
00447 
00448 #define DW_LNE_end_sequence             1
00449 #define DW_LNE_set_address              2
00450 #define DW_LNE_define_file              3
00451 
00452 #define DW_MACINFO_define               1
00453 #define DW_MACINFO_undef                2
00454 #define DW_MACINFO_start_file           3
00455 #define DW_MACINFO_end_file             4
00456 #define DW_MACINFO_vendor_ext           255
00457 
00458 #define DW_CFA_advance_loc        0x40
00459 #define DW_CFA_offset             0x80
00460 #define DW_CFA_restore            0xc0
00461 #define DW_CFA_extended           0
00462 
00463 #define DW_CFA_nop              0x00
00464 #define DW_CFA_set_loc          0x01
00465 #define DW_CFA_advance_loc1     0x02
00466 #define DW_CFA_advance_loc2     0x03
00467 #define DW_CFA_advance_loc4     0x04
00468 #define DW_CFA_offset_extended  0x05
00469 #define DW_CFA_restore_extended 0x06
00470 #define DW_CFA_undefined        0x07
00471 #define DW_CFA_same_value       0x08
00472 #define DW_CFA_register         0x09
00473 #define DW_CFA_remember_state   0x0a 
00474 #define DW_CFA_restore_state    0x0b
00475 #define DW_CFA_def_cfa          0x0c
00476 #define DW_CFA_def_cfa_register 0x0d
00477 #define DW_CFA_def_cfa_offset   0x0e
00478 
00479 #define DW_CFA_low_user          0x1c
00480 #define DW_CFA_MIPS_advance_loc8 0x1d
00481 
00482 /* the following two from egcs-1.1.2 */
00483 #define DW_CFA_GNU_window_save   0x2d 
00484 #define DW_CFA_GNU_args_size     0x2e
00485 
00486 #define DW_CFA_high_user         0x3f
00487 
00488 
00489 /* Mapping from machine registers and pseudo-regs into the .debug_frame table.
00490    DW_FRAME entries are machine specific. These describe
00491    MIPS/SGI R3000, R4K, R4400.
00492    And (simultaneously) a mapping from hardware register number to
00493    the number used in the table to identify that register. 
00494 
00495    The CFA (Canonical Frame Address) described in DWARF is called 
00496    the Virtual Frame Pointer on MIPS/SGI machines.
00497 
00498                              Rule describes:
00499 */
00500 #define DW_FRAME_CFA_COL 0  /* column used for CFA */
00501 #define DW_FRAME_REG1   1  /* integer reg 1 */
00502 #define DW_FRAME_REG2   2  /* integer reg 2 */
00503 #define DW_FRAME_REG3   3  /* integer reg 3 */
00504 #define DW_FRAME_REG4   4  /* integer reg 4 */
00505 #define DW_FRAME_REG5   5  /* integer reg 5 */
00506 #define DW_FRAME_REG6   6  /* integer reg 6 */
00507 #define DW_FRAME_REG7   7  /* integer reg 7 */
00508 #define DW_FRAME_REG8   8  /* integer reg 8 */
00509 #define DW_FRAME_REG9   9  /* integer reg 9 */
00510 #define DW_FRAME_REG10  10 /* integer reg 10 */
00511 #define DW_FRAME_REG11  11 /* integer reg 11 */
00512 #define DW_FRAME_REG12  12 /* integer reg 12 */
00513 #define DW_FRAME_REG13  13 /* integer reg 13 */
00514 #define DW_FRAME_REG14  14 /* integer reg 14 */
00515 #define DW_FRAME_REG15  15 /* integer reg 15 */
00516 #define DW_FRAME_REG16  16 /* integer reg 16 */
00517 #define DW_FRAME_REG17  17 /* integer reg 17 */
00518 #define DW_FRAME_REG18  18 /* integer reg 18 */
00519 #define DW_FRAME_REG19  19 /* integer reg 19 */
00520 #define DW_FRAME_REG20  20 /* integer reg 20 */
00521 #define DW_FRAME_REG21  21 /* integer reg 21 */
00522 #define DW_FRAME_REG22  22 /* integer reg 22 */
00523 #define DW_FRAME_REG23  23 /* integer reg 23 */
00524 #define DW_FRAME_REG24  24 /* integer reg 24 */
00525 #define DW_FRAME_REG25  25 /* integer reg 25 */
00526 #define DW_FRAME_REG26  26 /* integer reg 26 */
00527 #define DW_FRAME_REG27  27 /* integer reg 27 */
00528 #define DW_FRAME_REG28  28 /* integer reg 28 */
00529 #define DW_FRAME_REG29  29 /* integer reg 29 */
00530 #define DW_FRAME_REG30  30 /* integer reg 30 */
00531 #define DW_FRAME_REG31  31 /* integer reg 31, aka ra */
00532         
00533         /* MIPS1, 2 have only some of these 64-bit registers.
00534         ** MIPS1  save/restore takes 2 instructions per 64-bit reg, and
00535         ** in that case, the register is considered stored after the second
00536         ** swc1.
00537         */
00538 #define DW_FRAME_FREG0  32 /* 64-bit floating point reg 0 */
00539 #define DW_FRAME_FREG1  33 /* 64-bit floating point reg 1 */
00540 #define DW_FRAME_FREG2  34 /* 64-bit floating point reg 2 */
00541 #define DW_FRAME_FREG3  35 /* 64-bit floating point reg 3 */
00542 #define DW_FRAME_FREG4  36 /* 64-bit floating point reg 4 */
00543 #define DW_FRAME_FREG5  37 /* 64-bit floating point reg 5 */
00544 #define DW_FRAME_FREG6  38 /* 64-bit floating point reg 6 */
00545 #define DW_FRAME_FREG7  39 /* 64-bit floating point reg 7 */
00546 #define DW_FRAME_FREG8  40 /* 64-bit floating point reg 8 */
00547 #define DW_FRAME_FREG9  41 /* 64-bit floating point reg 9 */
00548 #define DW_FRAME_FREG10 42 /* 64-bit floating point reg 10 */
00549 #define DW_FRAME_FREG11 43 /* 64-bit floating point reg 11 */
00550 #define DW_FRAME_FREG12 44 /* 64-bit floating point reg 12 */
00551 #define DW_FRAME_FREG13 45 /* 64-bit floating point reg 13 */
00552 #define DW_FRAME_FREG14 46 /* 64-bit floating point reg 14 */
00553 #define DW_FRAME_FREG15 47 /* 64-bit floating point reg 15 */
00554 #define DW_FRAME_FREG16 48 /* 64-bit floating point reg 16 */
00555 #define DW_FRAME_FREG17 49 /* 64-bit floating point reg 17 */
00556 #define DW_FRAME_FREG18 50 /* 64-bit floating point reg 18 */
00557 #define DW_FRAME_FREG19 51 /* 64-bit floating point reg 19 */
00558 #define DW_FRAME_FREG20 52 /* 64-bit floating point reg 20 */
00559 #define DW_FRAME_FREG21 53 /* 64-bit floating point reg 21 */
00560 #define DW_FRAME_FREG22 54 /* 64-bit floating point reg 22 */
00561 #define DW_FRAME_FREG23 55 /* 64-bit floating point reg 23 */
00562 #define DW_FRAME_FREG24 56 /* 64-bit floating point reg 24 */
00563 #define DW_FRAME_FREG25 57 /* 64-bit floating point reg 25 */
00564 #define DW_FRAME_FREG26 58 /* 64-bit floating point reg 26 */
00565 #define DW_FRAME_FREG27 59 /* 64-bit floating point reg 27 */
00566 #define DW_FRAME_FREG28 60 /* 64-bit floating point reg 28 */
00567 #define DW_FRAME_FREG29 61 /* 64-bit floating point reg 29 */
00568 #define DW_FRAME_FREG30 62 /* 64-bit floating point reg 30 */
00569 #define DW_FRAME_FREG31 63 /* 64-bit floating point reg 31 */
00570 
00571 #define DW_FRAME_RA_COL 64 /* column recording ra */
00572 
00573 #define DW_FRAME_STATIC_LINK 65 /* column recording static link*/
00574                                 /* applicable to up-level      */
00575                                 /* addressing, as in mp code,  */
00576                                 /* pascal, etc */
00577 
00578 /* This is the number of columns in the Frame Table. This constant should
00579    be kept in sync with DW_REG_TABLE_SIZE defined in libdwarf.h */
00580 #define DW_FRAME_LAST_REG_NUM   (DW_FRAME_STATIC_LINK + 1)
00581 
00582 
00583 /* 
00584   DW_FRAME_UNDEFINED_VAL and  DW_FRAME_SAME_VAL  are
00585   never on disk, just generated by libdwarf. See libdwarf.h
00586   for their values.
00587 */
00588 
00589 
00590 
00591 #define DW_CHILDREN_no               0x00
00592 #define DW_CHILDREN_yes              0x01
00593 
00594 #define DW_ADDR_none            0
00595 
00596 #ifdef __cplusplus
00597 }
00598 #endif
00599 #endif /* __DWARF_H */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines