OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [dwarf2.h] - Diff between revs 154 and 816

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 154 Rev 816
/* Declarations and definitions of codes relating to the DWARF2 and
/* Declarations and definitions of codes relating to the DWARF2 and
   DWARF3 symbolic debugging information formats.
   DWARF3 symbolic debugging information formats.
   Copyright (C) 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002,
   Copyright (C) 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002,
   2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
   2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
 
 
   Written by Gary Funck (gary@intrepid.com) The Ada Joint Program
   Written by Gary Funck (gary@intrepid.com) The Ada Joint Program
   Office (AJPO), Florida State University and Silicon Graphics Inc.
   Office (AJPO), Florida State University and Silicon Graphics Inc.
   provided support for this effort -- June 21, 1995.
   provided support for this effort -- June 21, 1995.
 
 
   Derived from the DWARF 1 implementation written by Ron Guilmette
   Derived from the DWARF 1 implementation written by Ron Guilmette
   (rfg@netcom.com), November 1990.
   (rfg@netcom.com), November 1990.
 
 
   This file is part of GCC.
   This file is part of GCC.
 
 
   GCC is free software; you can redistribute it and/or modify it under
   GCC is free software; you can redistribute it and/or modify it under
   the terms of the GNU General Public License as published by the Free
   the terms of the GNU General Public License as published by the Free
   Software Foundation; either version 3, or (at your option) any later
   Software Foundation; either version 3, or (at your option) any later
   version.
   version.
 
 
   GCC is distributed in the hope that it will be useful, but WITHOUT
   GCC is distributed in the hope that it will be useful, but WITHOUT
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
   License for more details.
   License for more details.
 
 
   You should have received a copy of the GNU General Public License
   You should have received a copy of the GNU General Public License
   along with GCC; see the file COPYING3.  If not see
   along with GCC; see the file COPYING3.  If not see
   <http://www.gnu.org/licenses/>.  */
   <http://www.gnu.org/licenses/>.  */
 
 
/* This file is derived from the DWARF specification (a public document)
/* This file is derived from the DWARF specification (a public document)
   Revision 2.0.0 (July 27, 1993) developed by the UNIX International
   Revision 2.0.0 (July 27, 1993) developed by the UNIX International
   Programming Languages Special Interest Group (UI/PLSIG) and distributed
   Programming Languages Special Interest Group (UI/PLSIG) and distributed
   by UNIX International.  Copies of this specification are available from
   by UNIX International.  Copies of this specification are available from
   UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.
   UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.
 
 
   This file also now contains definitions from the DWARF 3 specification.  */
   This file also now contains definitions from the DWARF 3 specification.  */
 
 
/* This file is shared between GCC and GDB, and should not contain
/* This file is shared between GCC and GDB, and should not contain
   prototypes.  */
   prototypes.  */
 
 
#ifndef GCC_DWARF2_H
#ifndef GCC_DWARF2_H
#define GCC_DWARF2_H
#define GCC_DWARF2_H
 
 
/* Structure found in the .debug_line section.  */
/* Structure found in the .debug_line section.  */
typedef struct
typedef struct
{
{
  unsigned char li_length          [4];
  unsigned char li_length          [4];
  unsigned char li_version         [2];
  unsigned char li_version         [2];
  unsigned char li_prologue_length [4];
  unsigned char li_prologue_length [4];
  unsigned char li_min_insn_length [1];
  unsigned char li_min_insn_length [1];
  unsigned char li_default_is_stmt [1];
  unsigned char li_default_is_stmt [1];
  unsigned char li_line_base       [1];
  unsigned char li_line_base       [1];
  unsigned char li_line_range      [1];
  unsigned char li_line_range      [1];
  unsigned char li_opcode_base     [1];
  unsigned char li_opcode_base     [1];
}
}
DWARF2_External_LineInfo;
DWARF2_External_LineInfo;
 
 
typedef struct
typedef struct
{
{
  unsigned long  li_length;
  unsigned long  li_length;
  unsigned short li_version;
  unsigned short li_version;
  unsigned int   li_prologue_length;
  unsigned int   li_prologue_length;
  unsigned char  li_min_insn_length;
  unsigned char  li_min_insn_length;
  unsigned char  li_default_is_stmt;
  unsigned char  li_default_is_stmt;
  int            li_line_base;
  int            li_line_base;
  unsigned char  li_line_range;
  unsigned char  li_line_range;
  unsigned char  li_opcode_base;
  unsigned char  li_opcode_base;
}
}
DWARF2_Internal_LineInfo;
DWARF2_Internal_LineInfo;
 
 
/* Structure found in .debug_pubnames section.  */
/* Structure found in .debug_pubnames section.  */
typedef struct
typedef struct
{
{
  unsigned char pn_length  [4];
  unsigned char pn_length  [4];
  unsigned char pn_version [2];
  unsigned char pn_version [2];
  unsigned char pn_offset  [4];
  unsigned char pn_offset  [4];
  unsigned char pn_size    [4];
  unsigned char pn_size    [4];
}
}
DWARF2_External_PubNames;
DWARF2_External_PubNames;
 
 
typedef struct
typedef struct
{
{
  unsigned long  pn_length;
  unsigned long  pn_length;
  unsigned short pn_version;
  unsigned short pn_version;
  unsigned long  pn_offset;
  unsigned long  pn_offset;
  unsigned long  pn_size;
  unsigned long  pn_size;
}
}
DWARF2_Internal_PubNames;
DWARF2_Internal_PubNames;
 
 
/* Structure found in .debug_info section.  */
/* Structure found in .debug_info section.  */
typedef struct
typedef struct
{
{
  unsigned char  cu_length        [4];
  unsigned char  cu_length        [4];
  unsigned char  cu_version       [2];
  unsigned char  cu_version       [2];
  unsigned char  cu_abbrev_offset [4];
  unsigned char  cu_abbrev_offset [4];
  unsigned char  cu_pointer_size  [1];
  unsigned char  cu_pointer_size  [1];
}
}
DWARF2_External_CompUnit;
DWARF2_External_CompUnit;
 
 
typedef struct
typedef struct
{
{
  unsigned long  cu_length;
  unsigned long  cu_length;
  unsigned short cu_version;
  unsigned short cu_version;
  unsigned long  cu_abbrev_offset;
  unsigned long  cu_abbrev_offset;
  unsigned char  cu_pointer_size;
  unsigned char  cu_pointer_size;
}
}
DWARF2_Internal_CompUnit;
DWARF2_Internal_CompUnit;
 
 
typedef struct
typedef struct
{
{
  unsigned char  ar_length       [4];
  unsigned char  ar_length       [4];
  unsigned char  ar_version      [2];
  unsigned char  ar_version      [2];
  unsigned char  ar_info_offset  [4];
  unsigned char  ar_info_offset  [4];
  unsigned char  ar_pointer_size [1];
  unsigned char  ar_pointer_size [1];
  unsigned char  ar_segment_size [1];
  unsigned char  ar_segment_size [1];
}
}
DWARF2_External_ARange;
DWARF2_External_ARange;
 
 
typedef struct
typedef struct
{
{
  unsigned long  ar_length;
  unsigned long  ar_length;
  unsigned short ar_version;
  unsigned short ar_version;
  unsigned long  ar_info_offset;
  unsigned long  ar_info_offset;
  unsigned char  ar_pointer_size;
  unsigned char  ar_pointer_size;
  unsigned char  ar_segment_size;
  unsigned char  ar_segment_size;
}
}
DWARF2_Internal_ARange;
DWARF2_Internal_ARange;
 
 
 
 
/* Tag names and codes.  */
/* Tag names and codes.  */
enum dwarf_tag
enum dwarf_tag
  {
  {
    DW_TAG_padding = 0x00,
    DW_TAG_padding = 0x00,
    DW_TAG_array_type = 0x01,
    DW_TAG_array_type = 0x01,
    DW_TAG_class_type = 0x02,
    DW_TAG_class_type = 0x02,
    DW_TAG_entry_point = 0x03,
    DW_TAG_entry_point = 0x03,
    DW_TAG_enumeration_type = 0x04,
    DW_TAG_enumeration_type = 0x04,
    DW_TAG_formal_parameter = 0x05,
    DW_TAG_formal_parameter = 0x05,
    DW_TAG_imported_declaration = 0x08,
    DW_TAG_imported_declaration = 0x08,
    DW_TAG_label = 0x0a,
    DW_TAG_label = 0x0a,
    DW_TAG_lexical_block = 0x0b,
    DW_TAG_lexical_block = 0x0b,
    DW_TAG_member = 0x0d,
    DW_TAG_member = 0x0d,
    DW_TAG_pointer_type = 0x0f,
    DW_TAG_pointer_type = 0x0f,
    DW_TAG_reference_type = 0x10,
    DW_TAG_reference_type = 0x10,
    DW_TAG_compile_unit = 0x11,
    DW_TAG_compile_unit = 0x11,
    DW_TAG_string_type = 0x12,
    DW_TAG_string_type = 0x12,
    DW_TAG_structure_type = 0x13,
    DW_TAG_structure_type = 0x13,
    DW_TAG_subroutine_type = 0x15,
    DW_TAG_subroutine_type = 0x15,
    DW_TAG_typedef = 0x16,
    DW_TAG_typedef = 0x16,
    DW_TAG_union_type = 0x17,
    DW_TAG_union_type = 0x17,
    DW_TAG_unspecified_parameters = 0x18,
    DW_TAG_unspecified_parameters = 0x18,
    DW_TAG_variant = 0x19,
    DW_TAG_variant = 0x19,
    DW_TAG_common_block = 0x1a,
    DW_TAG_common_block = 0x1a,
    DW_TAG_common_inclusion = 0x1b,
    DW_TAG_common_inclusion = 0x1b,
    DW_TAG_inheritance = 0x1c,
    DW_TAG_inheritance = 0x1c,
    DW_TAG_inlined_subroutine = 0x1d,
    DW_TAG_inlined_subroutine = 0x1d,
    DW_TAG_module = 0x1e,
    DW_TAG_module = 0x1e,
    DW_TAG_ptr_to_member_type = 0x1f,
    DW_TAG_ptr_to_member_type = 0x1f,
    DW_TAG_set_type = 0x20,
    DW_TAG_set_type = 0x20,
    DW_TAG_subrange_type = 0x21,
    DW_TAG_subrange_type = 0x21,
    DW_TAG_with_stmt = 0x22,
    DW_TAG_with_stmt = 0x22,
    DW_TAG_access_declaration = 0x23,
    DW_TAG_access_declaration = 0x23,
    DW_TAG_base_type = 0x24,
    DW_TAG_base_type = 0x24,
    DW_TAG_catch_block = 0x25,
    DW_TAG_catch_block = 0x25,
    DW_TAG_const_type = 0x26,
    DW_TAG_const_type = 0x26,
    DW_TAG_constant = 0x27,
    DW_TAG_constant = 0x27,
    DW_TAG_enumerator = 0x28,
    DW_TAG_enumerator = 0x28,
    DW_TAG_file_type = 0x29,
    DW_TAG_file_type = 0x29,
    DW_TAG_friend = 0x2a,
    DW_TAG_friend = 0x2a,
    DW_TAG_namelist = 0x2b,
    DW_TAG_namelist = 0x2b,
    DW_TAG_namelist_item = 0x2c,
    DW_TAG_namelist_item = 0x2c,
    DW_TAG_packed_type = 0x2d,
    DW_TAG_packed_type = 0x2d,
    DW_TAG_subprogram = 0x2e,
    DW_TAG_subprogram = 0x2e,
    DW_TAG_template_type_param = 0x2f,
    DW_TAG_template_type_param = 0x2f,
    DW_TAG_template_value_param = 0x30,
    DW_TAG_template_value_param = 0x30,
    DW_TAG_thrown_type = 0x31,
    DW_TAG_thrown_type = 0x31,
    DW_TAG_try_block = 0x32,
    DW_TAG_try_block = 0x32,
    DW_TAG_variant_part = 0x33,
    DW_TAG_variant_part = 0x33,
    DW_TAG_variable = 0x34,
    DW_TAG_variable = 0x34,
    DW_TAG_volatile_type = 0x35,
    DW_TAG_volatile_type = 0x35,
    /* DWARF 3.  */
    /* DWARF 3.  */
    DW_TAG_dwarf_procedure = 0x36,
    DW_TAG_dwarf_procedure = 0x36,
    DW_TAG_restrict_type = 0x37,
    DW_TAG_restrict_type = 0x37,
    DW_TAG_interface_type = 0x38,
    DW_TAG_interface_type = 0x38,
    DW_TAG_namespace = 0x39,
    DW_TAG_namespace = 0x39,
    DW_TAG_imported_module = 0x3a,
    DW_TAG_imported_module = 0x3a,
    DW_TAG_unspecified_type = 0x3b,
    DW_TAG_unspecified_type = 0x3b,
    DW_TAG_partial_unit = 0x3c,
    DW_TAG_partial_unit = 0x3c,
    DW_TAG_imported_unit = 0x3d,
    DW_TAG_imported_unit = 0x3d,
    DW_TAG_condition = 0x3f,
    DW_TAG_condition = 0x3f,
    DW_TAG_shared_type = 0x40,
    DW_TAG_shared_type = 0x40,
    /* SGI/MIPS Extensions.  */
    /* SGI/MIPS Extensions.  */
    DW_TAG_MIPS_loop = 0x4081,
    DW_TAG_MIPS_loop = 0x4081,
    /* HP extensions.  See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz .  */
    /* HP extensions.  See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz .  */
    DW_TAG_HP_array_descriptor = 0x4090,
    DW_TAG_HP_array_descriptor = 0x4090,
    /* GNU extensions.  */
    /* GNU extensions.  */
    DW_TAG_format_label = 0x4101,       /* For FORTRAN 77 and Fortran 90.  */
    DW_TAG_format_label = 0x4101,       /* For FORTRAN 77 and Fortran 90.  */
    DW_TAG_function_template = 0x4102,  /* For C++.  */
    DW_TAG_function_template = 0x4102,  /* For C++.  */
    DW_TAG_class_template = 0x4103,     /* For C++.  */
    DW_TAG_class_template = 0x4103,     /* For C++.  */
    DW_TAG_GNU_BINCL = 0x4104,
    DW_TAG_GNU_BINCL = 0x4104,
    DW_TAG_GNU_EINCL = 0x4105,
    DW_TAG_GNU_EINCL = 0x4105,
    /* Extensions for UPC.  See: http://upc.gwu.edu/~upc.  */
    /* Extensions for UPC.  See: http://upc.gwu.edu/~upc.  */
    DW_TAG_upc_shared_type = 0x8765,
    DW_TAG_upc_shared_type = 0x8765,
    DW_TAG_upc_strict_type = 0x8766,
    DW_TAG_upc_strict_type = 0x8766,
    DW_TAG_upc_relaxed_type = 0x8767,
    DW_TAG_upc_relaxed_type = 0x8767,
    /* PGI (STMicroelectronics) extensions.  No documentation available.  */
    /* PGI (STMicroelectronics) extensions.  No documentation available.  */
    DW_TAG_PGI_kanji_type      = 0xA000,
    DW_TAG_PGI_kanji_type      = 0xA000,
    DW_TAG_PGI_interface_block = 0xA020
    DW_TAG_PGI_interface_block = 0xA020
  };
  };
 
 
#define DW_TAG_lo_user  0x4080
#define DW_TAG_lo_user  0x4080
#define DW_TAG_hi_user  0xffff
#define DW_TAG_hi_user  0xffff
 
 
/* Flag that tells whether entry has a child or not.  */
/* Flag that tells whether entry has a child or not.  */
#define DW_children_no   0
#define DW_children_no   0
#define DW_children_yes  1
#define DW_children_yes  1
 
 
/* Form names and codes.  */
/* Form names and codes.  */
enum dwarf_form
enum dwarf_form
  {
  {
    DW_FORM_addr = 0x01,
    DW_FORM_addr = 0x01,
    DW_FORM_block2 = 0x03,
    DW_FORM_block2 = 0x03,
    DW_FORM_block4 = 0x04,
    DW_FORM_block4 = 0x04,
    DW_FORM_data2 = 0x05,
    DW_FORM_data2 = 0x05,
    DW_FORM_data4 = 0x06,
    DW_FORM_data4 = 0x06,
    DW_FORM_data8 = 0x07,
    DW_FORM_data8 = 0x07,
    DW_FORM_string = 0x08,
    DW_FORM_string = 0x08,
    DW_FORM_block = 0x09,
    DW_FORM_block = 0x09,
    DW_FORM_block1 = 0x0a,
    DW_FORM_block1 = 0x0a,
    DW_FORM_data1 = 0x0b,
    DW_FORM_data1 = 0x0b,
    DW_FORM_flag = 0x0c,
    DW_FORM_flag = 0x0c,
    DW_FORM_sdata = 0x0d,
    DW_FORM_sdata = 0x0d,
    DW_FORM_strp = 0x0e,
    DW_FORM_strp = 0x0e,
    DW_FORM_udata = 0x0f,
    DW_FORM_udata = 0x0f,
    DW_FORM_ref_addr = 0x10,
    DW_FORM_ref_addr = 0x10,
    DW_FORM_ref1 = 0x11,
    DW_FORM_ref1 = 0x11,
    DW_FORM_ref2 = 0x12,
    DW_FORM_ref2 = 0x12,
    DW_FORM_ref4 = 0x13,
    DW_FORM_ref4 = 0x13,
    DW_FORM_ref8 = 0x14,
    DW_FORM_ref8 = 0x14,
    DW_FORM_ref_udata = 0x15,
    DW_FORM_ref_udata = 0x15,
    DW_FORM_indirect = 0x16
    DW_FORM_indirect = 0x16
  };
  };
 
 
/* Attribute names and codes.  */
/* Attribute names and codes.  */
enum dwarf_attribute
enum dwarf_attribute
  {
  {
    DW_AT_sibling = 0x01,
    DW_AT_sibling = 0x01,
    DW_AT_location = 0x02,
    DW_AT_location = 0x02,
    DW_AT_name = 0x03,
    DW_AT_name = 0x03,
    DW_AT_ordering = 0x09,
    DW_AT_ordering = 0x09,
    DW_AT_subscr_data = 0x0a,
    DW_AT_subscr_data = 0x0a,
    DW_AT_byte_size = 0x0b,
    DW_AT_byte_size = 0x0b,
    DW_AT_bit_offset = 0x0c,
    DW_AT_bit_offset = 0x0c,
    DW_AT_bit_size = 0x0d,
    DW_AT_bit_size = 0x0d,
    DW_AT_element_list = 0x0f,
    DW_AT_element_list = 0x0f,
    DW_AT_stmt_list = 0x10,
    DW_AT_stmt_list = 0x10,
    DW_AT_low_pc = 0x11,
    DW_AT_low_pc = 0x11,
    DW_AT_high_pc = 0x12,
    DW_AT_high_pc = 0x12,
    DW_AT_language = 0x13,
    DW_AT_language = 0x13,
    DW_AT_member = 0x14,
    DW_AT_member = 0x14,
    DW_AT_discr = 0x15,
    DW_AT_discr = 0x15,
    DW_AT_discr_value = 0x16,
    DW_AT_discr_value = 0x16,
    DW_AT_visibility = 0x17,
    DW_AT_visibility = 0x17,
    DW_AT_import = 0x18,
    DW_AT_import = 0x18,
    DW_AT_string_length = 0x19,
    DW_AT_string_length = 0x19,
    DW_AT_common_reference = 0x1a,
    DW_AT_common_reference = 0x1a,
    DW_AT_comp_dir = 0x1b,
    DW_AT_comp_dir = 0x1b,
    DW_AT_const_value = 0x1c,
    DW_AT_const_value = 0x1c,
    DW_AT_containing_type = 0x1d,
    DW_AT_containing_type = 0x1d,
    DW_AT_default_value = 0x1e,
    DW_AT_default_value = 0x1e,
    DW_AT_inline = 0x20,
    DW_AT_inline = 0x20,
    DW_AT_is_optional = 0x21,
    DW_AT_is_optional = 0x21,
    DW_AT_lower_bound = 0x22,
    DW_AT_lower_bound = 0x22,
    DW_AT_producer = 0x25,
    DW_AT_producer = 0x25,
    DW_AT_prototyped = 0x27,
    DW_AT_prototyped = 0x27,
    DW_AT_return_addr = 0x2a,
    DW_AT_return_addr = 0x2a,
    DW_AT_start_scope = 0x2c,
    DW_AT_start_scope = 0x2c,
    DW_AT_stride_size = 0x2e,
    DW_AT_stride_size = 0x2e,
    DW_AT_upper_bound = 0x2f,
    DW_AT_upper_bound = 0x2f,
    DW_AT_abstract_origin = 0x31,
    DW_AT_abstract_origin = 0x31,
    DW_AT_accessibility = 0x32,
    DW_AT_accessibility = 0x32,
    DW_AT_address_class = 0x33,
    DW_AT_address_class = 0x33,
    DW_AT_artificial = 0x34,
    DW_AT_artificial = 0x34,
    DW_AT_base_types = 0x35,
    DW_AT_base_types = 0x35,
    DW_AT_calling_convention = 0x36,
    DW_AT_calling_convention = 0x36,
    DW_AT_count = 0x37,
    DW_AT_count = 0x37,
    DW_AT_data_member_location = 0x38,
    DW_AT_data_member_location = 0x38,
    DW_AT_decl_column = 0x39,
    DW_AT_decl_column = 0x39,
    DW_AT_decl_file = 0x3a,
    DW_AT_decl_file = 0x3a,
    DW_AT_decl_line = 0x3b,
    DW_AT_decl_line = 0x3b,
    DW_AT_declaration = 0x3c,
    DW_AT_declaration = 0x3c,
    DW_AT_discr_list = 0x3d,
    DW_AT_discr_list = 0x3d,
    DW_AT_encoding = 0x3e,
    DW_AT_encoding = 0x3e,
    DW_AT_external = 0x3f,
    DW_AT_external = 0x3f,
    DW_AT_frame_base = 0x40,
    DW_AT_frame_base = 0x40,
    DW_AT_friend = 0x41,
    DW_AT_friend = 0x41,
    DW_AT_identifier_case = 0x42,
    DW_AT_identifier_case = 0x42,
    DW_AT_macro_info = 0x43,
    DW_AT_macro_info = 0x43,
    DW_AT_namelist_items = 0x44,
    DW_AT_namelist_items = 0x44,
    DW_AT_priority = 0x45,
    DW_AT_priority = 0x45,
    DW_AT_segment = 0x46,
    DW_AT_segment = 0x46,
    DW_AT_specification = 0x47,
    DW_AT_specification = 0x47,
    DW_AT_static_link = 0x48,
    DW_AT_static_link = 0x48,
    DW_AT_type = 0x49,
    DW_AT_type = 0x49,
    DW_AT_use_location = 0x4a,
    DW_AT_use_location = 0x4a,
    DW_AT_variable_parameter = 0x4b,
    DW_AT_variable_parameter = 0x4b,
    DW_AT_virtuality = 0x4c,
    DW_AT_virtuality = 0x4c,
    DW_AT_vtable_elem_location = 0x4d,
    DW_AT_vtable_elem_location = 0x4d,
    /* DWARF 3 values.  */
    /* DWARF 3 values.  */
    DW_AT_allocated     = 0x4e,
    DW_AT_allocated     = 0x4e,
    DW_AT_associated    = 0x4f,
    DW_AT_associated    = 0x4f,
    DW_AT_data_location = 0x50,
    DW_AT_data_location = 0x50,
    DW_AT_stride        = 0x51,
    DW_AT_stride        = 0x51,
    DW_AT_entry_pc      = 0x52,
    DW_AT_entry_pc      = 0x52,
    DW_AT_use_UTF8      = 0x53,
    DW_AT_use_UTF8      = 0x53,
    DW_AT_extension     = 0x54,
    DW_AT_extension     = 0x54,
    DW_AT_ranges        = 0x55,
    DW_AT_ranges        = 0x55,
    DW_AT_trampoline    = 0x56,
    DW_AT_trampoline    = 0x56,
    DW_AT_call_column   = 0x57,
    DW_AT_call_column   = 0x57,
    DW_AT_call_file     = 0x58,
    DW_AT_call_file     = 0x58,
    DW_AT_call_line     = 0x59,
    DW_AT_call_line     = 0x59,
    DW_AT_description   = 0x5a,
    DW_AT_description   = 0x5a,
    DW_AT_binary_scale  = 0x5b,
    DW_AT_binary_scale  = 0x5b,
    DW_AT_decimal_scale = 0x5c,
    DW_AT_decimal_scale = 0x5c,
    DW_AT_small         = 0x5d,
    DW_AT_small         = 0x5d,
    DW_AT_decimal_sign  = 0x5e,
    DW_AT_decimal_sign  = 0x5e,
    DW_AT_digit_count   = 0x5f,
    DW_AT_digit_count   = 0x5f,
    DW_AT_picture_string = 0x60,
    DW_AT_picture_string = 0x60,
    DW_AT_mutable       = 0x61,
    DW_AT_mutable       = 0x61,
    DW_AT_threads_scaled = 0x62,
    DW_AT_threads_scaled = 0x62,
    DW_AT_explicit      = 0x63,
    DW_AT_explicit      = 0x63,
    DW_AT_object_pointer = 0x64,
    DW_AT_object_pointer = 0x64,
    DW_AT_endianity     = 0x65,
    DW_AT_endianity     = 0x65,
    DW_AT_elemental     = 0x66,
    DW_AT_elemental     = 0x66,
    DW_AT_pure          = 0x67,
    DW_AT_pure          = 0x67,
    DW_AT_recursive     = 0x68,
    DW_AT_recursive     = 0x68,
    /* SGI/MIPS extensions.  */
    /* SGI/MIPS extensions.  */
    DW_AT_MIPS_fde = 0x2001,
    DW_AT_MIPS_fde = 0x2001,
    DW_AT_MIPS_loop_begin = 0x2002,
    DW_AT_MIPS_loop_begin = 0x2002,
    DW_AT_MIPS_tail_loop_begin = 0x2003,
    DW_AT_MIPS_tail_loop_begin = 0x2003,
    DW_AT_MIPS_epilog_begin = 0x2004,
    DW_AT_MIPS_epilog_begin = 0x2004,
    DW_AT_MIPS_loop_unroll_factor = 0x2005,
    DW_AT_MIPS_loop_unroll_factor = 0x2005,
    DW_AT_MIPS_software_pipeline_depth = 0x2006,
    DW_AT_MIPS_software_pipeline_depth = 0x2006,
    DW_AT_MIPS_linkage_name = 0x2007,
    DW_AT_MIPS_linkage_name = 0x2007,
    DW_AT_MIPS_stride = 0x2008,
    DW_AT_MIPS_stride = 0x2008,
    DW_AT_MIPS_abstract_name = 0x2009,
    DW_AT_MIPS_abstract_name = 0x2009,
    DW_AT_MIPS_clone_origin = 0x200a,
    DW_AT_MIPS_clone_origin = 0x200a,
    DW_AT_MIPS_has_inlines = 0x200b,
    DW_AT_MIPS_has_inlines = 0x200b,
    /* HP extensions.  */
    /* HP extensions.  */
    DW_AT_HP_block_index         = 0x2000,
    DW_AT_HP_block_index         = 0x2000,
    DW_AT_HP_unmodifiable        = 0x2001, /* Same as DW_AT_MIPS_fde.  */
    DW_AT_HP_unmodifiable        = 0x2001, /* Same as DW_AT_MIPS_fde.  */
    DW_AT_HP_actuals_stmt_list   = 0x2010,
    DW_AT_HP_actuals_stmt_list   = 0x2010,
    DW_AT_HP_proc_per_section    = 0x2011,
    DW_AT_HP_proc_per_section    = 0x2011,
    DW_AT_HP_raw_data_ptr        = 0x2012,
    DW_AT_HP_raw_data_ptr        = 0x2012,
    DW_AT_HP_pass_by_reference   = 0x2013,
    DW_AT_HP_pass_by_reference   = 0x2013,
    DW_AT_HP_opt_level           = 0x2014,
    DW_AT_HP_opt_level           = 0x2014,
    DW_AT_HP_prof_version_id     = 0x2015,
    DW_AT_HP_prof_version_id     = 0x2015,
    DW_AT_HP_opt_flags           = 0x2016,
    DW_AT_HP_opt_flags           = 0x2016,
    DW_AT_HP_cold_region_low_pc  = 0x2017,
    DW_AT_HP_cold_region_low_pc  = 0x2017,
    DW_AT_HP_cold_region_high_pc = 0x2018,
    DW_AT_HP_cold_region_high_pc = 0x2018,
    DW_AT_HP_all_variables_modifiable = 0x2019,
    DW_AT_HP_all_variables_modifiable = 0x2019,
    DW_AT_HP_linkage_name        = 0x201a,
    DW_AT_HP_linkage_name        = 0x201a,
    DW_AT_HP_prof_flags          = 0x201b,  /* In comp unit of procs_info for -g.  */
    DW_AT_HP_prof_flags          = 0x201b,  /* In comp unit of procs_info for -g.  */
    /* GNU extensions.  */
    /* GNU extensions.  */
    DW_AT_sf_names   = 0x2101,
    DW_AT_sf_names   = 0x2101,
    DW_AT_src_info   = 0x2102,
    DW_AT_src_info   = 0x2102,
    DW_AT_mac_info   = 0x2103,
    DW_AT_mac_info   = 0x2103,
    DW_AT_src_coords = 0x2104,
    DW_AT_src_coords = 0x2104,
    DW_AT_body_begin = 0x2105,
    DW_AT_body_begin = 0x2105,
    DW_AT_body_end   = 0x2106,
    DW_AT_body_end   = 0x2106,
    DW_AT_GNU_vector = 0x2107,
    DW_AT_GNU_vector = 0x2107,
    /* VMS extensions.  */
    /* VMS extensions.  */
    DW_AT_VMS_rtnbeg_pd_address = 0x2201,
    DW_AT_VMS_rtnbeg_pd_address = 0x2201,
    /* UPC extension.  */
    /* UPC extension.  */
    DW_AT_upc_threads_scaled = 0x3210,
    DW_AT_upc_threads_scaled = 0x3210,
    /* PGI (STMicroelectronics) extensions.  */
    /* PGI (STMicroelectronics) extensions.  */
    DW_AT_PGI_lbase    = 0x3a00,
    DW_AT_PGI_lbase    = 0x3a00,
    DW_AT_PGI_soffset  = 0x3a01,
    DW_AT_PGI_soffset  = 0x3a01,
    DW_AT_PGI_lstride  = 0x3a02
    DW_AT_PGI_lstride  = 0x3a02
  };
  };
 
 
#define DW_AT_lo_user   0x2000  /* Implementation-defined range start.  */
#define DW_AT_lo_user   0x2000  /* Implementation-defined range start.  */
#define DW_AT_hi_user   0x3ff0  /* Implementation-defined range end.  */
#define DW_AT_hi_user   0x3ff0  /* Implementation-defined range end.  */
 
 
/* Location atom names and codes.  */
/* Location atom names and codes.  */
enum dwarf_location_atom
enum dwarf_location_atom
  {
  {
    DW_OP_addr = 0x03,
    DW_OP_addr = 0x03,
    DW_OP_deref = 0x06,
    DW_OP_deref = 0x06,
    DW_OP_const1u = 0x08,
    DW_OP_const1u = 0x08,
    DW_OP_const1s = 0x09,
    DW_OP_const1s = 0x09,
    DW_OP_const2u = 0x0a,
    DW_OP_const2u = 0x0a,
    DW_OP_const2s = 0x0b,
    DW_OP_const2s = 0x0b,
    DW_OP_const4u = 0x0c,
    DW_OP_const4u = 0x0c,
    DW_OP_const4s = 0x0d,
    DW_OP_const4s = 0x0d,
    DW_OP_const8u = 0x0e,
    DW_OP_const8u = 0x0e,
    DW_OP_const8s = 0x0f,
    DW_OP_const8s = 0x0f,
    DW_OP_constu = 0x10,
    DW_OP_constu = 0x10,
    DW_OP_consts = 0x11,
    DW_OP_consts = 0x11,
    DW_OP_dup = 0x12,
    DW_OP_dup = 0x12,
    DW_OP_drop = 0x13,
    DW_OP_drop = 0x13,
    DW_OP_over = 0x14,
    DW_OP_over = 0x14,
    DW_OP_pick = 0x15,
    DW_OP_pick = 0x15,
    DW_OP_swap = 0x16,
    DW_OP_swap = 0x16,
    DW_OP_rot = 0x17,
    DW_OP_rot = 0x17,
    DW_OP_xderef = 0x18,
    DW_OP_xderef = 0x18,
    DW_OP_abs = 0x19,
    DW_OP_abs = 0x19,
    DW_OP_and = 0x1a,
    DW_OP_and = 0x1a,
    DW_OP_div = 0x1b,
    DW_OP_div = 0x1b,
    DW_OP_minus = 0x1c,
    DW_OP_minus = 0x1c,
    DW_OP_mod = 0x1d,
    DW_OP_mod = 0x1d,
    DW_OP_mul = 0x1e,
    DW_OP_mul = 0x1e,
    DW_OP_neg = 0x1f,
    DW_OP_neg = 0x1f,
    DW_OP_not = 0x20,
    DW_OP_not = 0x20,
    DW_OP_or = 0x21,
    DW_OP_or = 0x21,
    DW_OP_plus = 0x22,
    DW_OP_plus = 0x22,
    DW_OP_plus_uconst = 0x23,
    DW_OP_plus_uconst = 0x23,
    DW_OP_shl = 0x24,
    DW_OP_shl = 0x24,
    DW_OP_shr = 0x25,
    DW_OP_shr = 0x25,
    DW_OP_shra = 0x26,
    DW_OP_shra = 0x26,
    DW_OP_xor = 0x27,
    DW_OP_xor = 0x27,
    DW_OP_bra = 0x28,
    DW_OP_bra = 0x28,
    DW_OP_eq = 0x29,
    DW_OP_eq = 0x29,
    DW_OP_ge = 0x2a,
    DW_OP_ge = 0x2a,
    DW_OP_gt = 0x2b,
    DW_OP_gt = 0x2b,
    DW_OP_le = 0x2c,
    DW_OP_le = 0x2c,
    DW_OP_lt = 0x2d,
    DW_OP_lt = 0x2d,
    DW_OP_ne = 0x2e,
    DW_OP_ne = 0x2e,
    DW_OP_skip = 0x2f,
    DW_OP_skip = 0x2f,
    DW_OP_lit0 = 0x30,
    DW_OP_lit0 = 0x30,
    DW_OP_lit1 = 0x31,
    DW_OP_lit1 = 0x31,
    DW_OP_lit2 = 0x32,
    DW_OP_lit2 = 0x32,
    DW_OP_lit3 = 0x33,
    DW_OP_lit3 = 0x33,
    DW_OP_lit4 = 0x34,
    DW_OP_lit4 = 0x34,
    DW_OP_lit5 = 0x35,
    DW_OP_lit5 = 0x35,
    DW_OP_lit6 = 0x36,
    DW_OP_lit6 = 0x36,
    DW_OP_lit7 = 0x37,
    DW_OP_lit7 = 0x37,
    DW_OP_lit8 = 0x38,
    DW_OP_lit8 = 0x38,
    DW_OP_lit9 = 0x39,
    DW_OP_lit9 = 0x39,
    DW_OP_lit10 = 0x3a,
    DW_OP_lit10 = 0x3a,
    DW_OP_lit11 = 0x3b,
    DW_OP_lit11 = 0x3b,
    DW_OP_lit12 = 0x3c,
    DW_OP_lit12 = 0x3c,
    DW_OP_lit13 = 0x3d,
    DW_OP_lit13 = 0x3d,
    DW_OP_lit14 = 0x3e,
    DW_OP_lit14 = 0x3e,
    DW_OP_lit15 = 0x3f,
    DW_OP_lit15 = 0x3f,
    DW_OP_lit16 = 0x40,
    DW_OP_lit16 = 0x40,
    DW_OP_lit17 = 0x41,
    DW_OP_lit17 = 0x41,
    DW_OP_lit18 = 0x42,
    DW_OP_lit18 = 0x42,
    DW_OP_lit19 = 0x43,
    DW_OP_lit19 = 0x43,
    DW_OP_lit20 = 0x44,
    DW_OP_lit20 = 0x44,
    DW_OP_lit21 = 0x45,
    DW_OP_lit21 = 0x45,
    DW_OP_lit22 = 0x46,
    DW_OP_lit22 = 0x46,
    DW_OP_lit23 = 0x47,
    DW_OP_lit23 = 0x47,
    DW_OP_lit24 = 0x48,
    DW_OP_lit24 = 0x48,
    DW_OP_lit25 = 0x49,
    DW_OP_lit25 = 0x49,
    DW_OP_lit26 = 0x4a,
    DW_OP_lit26 = 0x4a,
    DW_OP_lit27 = 0x4b,
    DW_OP_lit27 = 0x4b,
    DW_OP_lit28 = 0x4c,
    DW_OP_lit28 = 0x4c,
    DW_OP_lit29 = 0x4d,
    DW_OP_lit29 = 0x4d,
    DW_OP_lit30 = 0x4e,
    DW_OP_lit30 = 0x4e,
    DW_OP_lit31 = 0x4f,
    DW_OP_lit31 = 0x4f,
    DW_OP_reg0 = 0x50,
    DW_OP_reg0 = 0x50,
    DW_OP_reg1 = 0x51,
    DW_OP_reg1 = 0x51,
    DW_OP_reg2 = 0x52,
    DW_OP_reg2 = 0x52,
    DW_OP_reg3 = 0x53,
    DW_OP_reg3 = 0x53,
    DW_OP_reg4 = 0x54,
    DW_OP_reg4 = 0x54,
    DW_OP_reg5 = 0x55,
    DW_OP_reg5 = 0x55,
    DW_OP_reg6 = 0x56,
    DW_OP_reg6 = 0x56,
    DW_OP_reg7 = 0x57,
    DW_OP_reg7 = 0x57,
    DW_OP_reg8 = 0x58,
    DW_OP_reg8 = 0x58,
    DW_OP_reg9 = 0x59,
    DW_OP_reg9 = 0x59,
    DW_OP_reg10 = 0x5a,
    DW_OP_reg10 = 0x5a,
    DW_OP_reg11 = 0x5b,
    DW_OP_reg11 = 0x5b,
    DW_OP_reg12 = 0x5c,
    DW_OP_reg12 = 0x5c,
    DW_OP_reg13 = 0x5d,
    DW_OP_reg13 = 0x5d,
    DW_OP_reg14 = 0x5e,
    DW_OP_reg14 = 0x5e,
    DW_OP_reg15 = 0x5f,
    DW_OP_reg15 = 0x5f,
    DW_OP_reg16 = 0x60,
    DW_OP_reg16 = 0x60,
    DW_OP_reg17 = 0x61,
    DW_OP_reg17 = 0x61,
    DW_OP_reg18 = 0x62,
    DW_OP_reg18 = 0x62,
    DW_OP_reg19 = 0x63,
    DW_OP_reg19 = 0x63,
    DW_OP_reg20 = 0x64,
    DW_OP_reg20 = 0x64,
    DW_OP_reg21 = 0x65,
    DW_OP_reg21 = 0x65,
    DW_OP_reg22 = 0x66,
    DW_OP_reg22 = 0x66,
    DW_OP_reg23 = 0x67,
    DW_OP_reg23 = 0x67,
    DW_OP_reg24 = 0x68,
    DW_OP_reg24 = 0x68,
    DW_OP_reg25 = 0x69,
    DW_OP_reg25 = 0x69,
    DW_OP_reg26 = 0x6a,
    DW_OP_reg26 = 0x6a,
    DW_OP_reg27 = 0x6b,
    DW_OP_reg27 = 0x6b,
    DW_OP_reg28 = 0x6c,
    DW_OP_reg28 = 0x6c,
    DW_OP_reg29 = 0x6d,
    DW_OP_reg29 = 0x6d,
    DW_OP_reg30 = 0x6e,
    DW_OP_reg30 = 0x6e,
    DW_OP_reg31 = 0x6f,
    DW_OP_reg31 = 0x6f,
    DW_OP_breg0 = 0x70,
    DW_OP_breg0 = 0x70,
    DW_OP_breg1 = 0x71,
    DW_OP_breg1 = 0x71,
    DW_OP_breg2 = 0x72,
    DW_OP_breg2 = 0x72,
    DW_OP_breg3 = 0x73,
    DW_OP_breg3 = 0x73,
    DW_OP_breg4 = 0x74,
    DW_OP_breg4 = 0x74,
    DW_OP_breg5 = 0x75,
    DW_OP_breg5 = 0x75,
    DW_OP_breg6 = 0x76,
    DW_OP_breg6 = 0x76,
    DW_OP_breg7 = 0x77,
    DW_OP_breg7 = 0x77,
    DW_OP_breg8 = 0x78,
    DW_OP_breg8 = 0x78,
    DW_OP_breg9 = 0x79,
    DW_OP_breg9 = 0x79,
    DW_OP_breg10 = 0x7a,
    DW_OP_breg10 = 0x7a,
    DW_OP_breg11 = 0x7b,
    DW_OP_breg11 = 0x7b,
    DW_OP_breg12 = 0x7c,
    DW_OP_breg12 = 0x7c,
    DW_OP_breg13 = 0x7d,
    DW_OP_breg13 = 0x7d,
    DW_OP_breg14 = 0x7e,
    DW_OP_breg14 = 0x7e,
    DW_OP_breg15 = 0x7f,
    DW_OP_breg15 = 0x7f,
    DW_OP_breg16 = 0x80,
    DW_OP_breg16 = 0x80,
    DW_OP_breg17 = 0x81,
    DW_OP_breg17 = 0x81,
    DW_OP_breg18 = 0x82,
    DW_OP_breg18 = 0x82,
    DW_OP_breg19 = 0x83,
    DW_OP_breg19 = 0x83,
    DW_OP_breg20 = 0x84,
    DW_OP_breg20 = 0x84,
    DW_OP_breg21 = 0x85,
    DW_OP_breg21 = 0x85,
    DW_OP_breg22 = 0x86,
    DW_OP_breg22 = 0x86,
    DW_OP_breg23 = 0x87,
    DW_OP_breg23 = 0x87,
    DW_OP_breg24 = 0x88,
    DW_OP_breg24 = 0x88,
    DW_OP_breg25 = 0x89,
    DW_OP_breg25 = 0x89,
    DW_OP_breg26 = 0x8a,
    DW_OP_breg26 = 0x8a,
    DW_OP_breg27 = 0x8b,
    DW_OP_breg27 = 0x8b,
    DW_OP_breg28 = 0x8c,
    DW_OP_breg28 = 0x8c,
    DW_OP_breg29 = 0x8d,
    DW_OP_breg29 = 0x8d,
    DW_OP_breg30 = 0x8e,
    DW_OP_breg30 = 0x8e,
    DW_OP_breg31 = 0x8f,
    DW_OP_breg31 = 0x8f,
    DW_OP_regx = 0x90,
    DW_OP_regx = 0x90,
    DW_OP_fbreg = 0x91,
    DW_OP_fbreg = 0x91,
    DW_OP_bregx = 0x92,
    DW_OP_bregx = 0x92,
    DW_OP_piece = 0x93,
    DW_OP_piece = 0x93,
    DW_OP_deref_size = 0x94,
    DW_OP_deref_size = 0x94,
    DW_OP_xderef_size = 0x95,
    DW_OP_xderef_size = 0x95,
    DW_OP_nop = 0x96,
    DW_OP_nop = 0x96,
    /* DWARF 3 extensions.  */
    /* DWARF 3 extensions.  */
    DW_OP_push_object_address = 0x97,
    DW_OP_push_object_address = 0x97,
    DW_OP_call2 = 0x98,
    DW_OP_call2 = 0x98,
    DW_OP_call4 = 0x99,
    DW_OP_call4 = 0x99,
    DW_OP_call_ref = 0x9a,
    DW_OP_call_ref = 0x9a,
    DW_OP_form_tls_address = 0x9b,
    DW_OP_form_tls_address = 0x9b,
    DW_OP_call_frame_cfa = 0x9c,
    DW_OP_call_frame_cfa = 0x9c,
    DW_OP_bit_piece = 0x9d,
    DW_OP_bit_piece = 0x9d,
    /* GNU extensions.  */
    /* GNU extensions.  */
    DW_OP_GNU_push_tls_address = 0xe0,
    DW_OP_GNU_push_tls_address = 0xe0,
    /* HP extensions.  */
    /* HP extensions.  */
    DW_OP_HP_unknown     = 0xe0, /* Ouch, the same as GNU_push_tls_address.  */
    DW_OP_HP_unknown     = 0xe0, /* Ouch, the same as GNU_push_tls_address.  */
    DW_OP_HP_is_value    = 0xe1,
    DW_OP_HP_is_value    = 0xe1,
    DW_OP_HP_fltconst4   = 0xe2,
    DW_OP_HP_fltconst4   = 0xe2,
    DW_OP_HP_fltconst8   = 0xe3,
    DW_OP_HP_fltconst8   = 0xe3,
    DW_OP_HP_mod_range   = 0xe4,
    DW_OP_HP_mod_range   = 0xe4,
    DW_OP_HP_unmod_range = 0xe5,
    DW_OP_HP_unmod_range = 0xe5,
    DW_OP_HP_tls         = 0xe6
    DW_OP_HP_tls         = 0xe6
  };
  };
 
 
#define DW_OP_lo_user   0xe0    /* Implementation-defined range start.  */
#define DW_OP_lo_user   0xe0    /* Implementation-defined range start.  */
#define DW_OP_hi_user   0xff    /* Implementation-defined range end.  */
#define DW_OP_hi_user   0xff    /* Implementation-defined range end.  */
 
 
/* Type encodings.  */
/* Type encodings.  */
enum dwarf_type
enum dwarf_type
  {
  {
    DW_ATE_void = 0x0,
    DW_ATE_void = 0x0,
    DW_ATE_address = 0x1,
    DW_ATE_address = 0x1,
    DW_ATE_boolean = 0x2,
    DW_ATE_boolean = 0x2,
    DW_ATE_complex_float = 0x3,
    DW_ATE_complex_float = 0x3,
    DW_ATE_float = 0x4,
    DW_ATE_float = 0x4,
    DW_ATE_signed = 0x5,
    DW_ATE_signed = 0x5,
    DW_ATE_signed_char = 0x6,
    DW_ATE_signed_char = 0x6,
    DW_ATE_unsigned = 0x7,
    DW_ATE_unsigned = 0x7,
    DW_ATE_unsigned_char = 0x8,
    DW_ATE_unsigned_char = 0x8,
    /* DWARF 3.  */
    /* DWARF 3.  */
    DW_ATE_imaginary_float = 0x9,
    DW_ATE_imaginary_float = 0x9,
    DW_ATE_packed_decimal = 0xa,
    DW_ATE_packed_decimal = 0xa,
    DW_ATE_numeric_string = 0xb,
    DW_ATE_numeric_string = 0xb,
    DW_ATE_edited = 0xc,
    DW_ATE_edited = 0xc,
    DW_ATE_signed_fixed = 0xd,
    DW_ATE_signed_fixed = 0xd,
    DW_ATE_unsigned_fixed = 0xe,
    DW_ATE_unsigned_fixed = 0xe,
    DW_ATE_decimal_float = 0xf,
    DW_ATE_decimal_float = 0xf,
    /* HP extensions.  */
    /* HP extensions.  */
    DW_ATE_HP_float80            = 0x80, /* Floating-point (80 bit).  */
    DW_ATE_HP_float80            = 0x80, /* Floating-point (80 bit).  */
    DW_ATE_HP_complex_float80    = 0x81, /* Complex floating-point (80 bit).  */
    DW_ATE_HP_complex_float80    = 0x81, /* Complex floating-point (80 bit).  */
    DW_ATE_HP_float128           = 0x82, /* Floating-point (128 bit).  */
    DW_ATE_HP_float128           = 0x82, /* Floating-point (128 bit).  */
    DW_ATE_HP_complex_float128   = 0x83, /* Complex floating-point (128 bit).  */
    DW_ATE_HP_complex_float128   = 0x83, /* Complex floating-point (128 bit).  */
    DW_ATE_HP_floathpintel       = 0x84, /* Floating-point (82 bit IA64).  */
    DW_ATE_HP_floathpintel       = 0x84, /* Floating-point (82 bit IA64).  */
    DW_ATE_HP_imaginary_float80  = 0x85,
    DW_ATE_HP_imaginary_float80  = 0x85,
    DW_ATE_HP_imaginary_float128 = 0x86
    DW_ATE_HP_imaginary_float128 = 0x86
  };
  };
 
 
#define DW_ATE_lo_user 0x80
#define DW_ATE_lo_user 0x80
#define DW_ATE_hi_user 0xff
#define DW_ATE_hi_user 0xff
 
 
/* Decimal sign encodings.  */
/* Decimal sign encodings.  */
enum dwarf_decimal_sign_encoding
enum dwarf_decimal_sign_encoding
  {
  {
    /* DWARF 3.  */
    /* DWARF 3.  */
    DW_DS_unsigned = 0x01,
    DW_DS_unsigned = 0x01,
    DW_DS_leading_overpunch = 0x02,
    DW_DS_leading_overpunch = 0x02,
    DW_DS_trailing_overpunch = 0x03,
    DW_DS_trailing_overpunch = 0x03,
    DW_DS_leading_separate = 0x04,
    DW_DS_leading_separate = 0x04,
    DW_DS_trailing_separate = 0x05
    DW_DS_trailing_separate = 0x05
  };
  };
 
 
/* Endianity encodings.  */
/* Endianity encodings.  */
enum dwarf_endianity_encoding
enum dwarf_endianity_encoding
  {
  {
    /* DWARF 3.  */
    /* DWARF 3.  */
    DW_END_default = 0x00,
    DW_END_default = 0x00,
    DW_END_big = 0x01,
    DW_END_big = 0x01,
    DW_END_little = 0x02
    DW_END_little = 0x02
  };
  };
 
 
#define DW_END_lo_user 0x40
#define DW_END_lo_user 0x40
#define DW_END_hi_user 0xff
#define DW_END_hi_user 0xff
 
 
/* Array ordering names and codes.  */
/* Array ordering names and codes.  */
enum dwarf_array_dim_ordering
enum dwarf_array_dim_ordering
  {
  {
    DW_ORD_row_major = 0,
    DW_ORD_row_major = 0,
    DW_ORD_col_major = 1
    DW_ORD_col_major = 1
  };
  };
 
 
/* Access attribute.  */
/* Access attribute.  */
enum dwarf_access_attribute
enum dwarf_access_attribute
  {
  {
    DW_ACCESS_public = 1,
    DW_ACCESS_public = 1,
    DW_ACCESS_protected = 2,
    DW_ACCESS_protected = 2,
    DW_ACCESS_private = 3
    DW_ACCESS_private = 3
  };
  };
 
 
/* Visibility.  */
/* Visibility.  */
enum dwarf_visibility_attribute
enum dwarf_visibility_attribute
  {
  {
    DW_VIS_local = 1,
    DW_VIS_local = 1,
    DW_VIS_exported = 2,
    DW_VIS_exported = 2,
    DW_VIS_qualified = 3
    DW_VIS_qualified = 3
  };
  };
 
 
/* Virtuality.  */
/* Virtuality.  */
enum dwarf_virtuality_attribute
enum dwarf_virtuality_attribute
  {
  {
    DW_VIRTUALITY_none = 0,
    DW_VIRTUALITY_none = 0,
    DW_VIRTUALITY_virtual = 1,
    DW_VIRTUALITY_virtual = 1,
    DW_VIRTUALITY_pure_virtual = 2
    DW_VIRTUALITY_pure_virtual = 2
  };
  };
 
 
/* Case sensitivity.  */
/* Case sensitivity.  */
enum dwarf_id_case
enum dwarf_id_case
  {
  {
    DW_ID_case_sensitive = 0,
    DW_ID_case_sensitive = 0,
    DW_ID_up_case = 1,
    DW_ID_up_case = 1,
    DW_ID_down_case = 2,
    DW_ID_down_case = 2,
    DW_ID_case_insensitive = 3
    DW_ID_case_insensitive = 3
  };
  };
 
 
/* Calling convention.  */
/* Calling convention.  */
enum dwarf_calling_convention
enum dwarf_calling_convention
  {
  {
    DW_CC_normal = 0x1,
    DW_CC_normal = 0x1,
    DW_CC_program = 0x2,
    DW_CC_program = 0x2,
    DW_CC_nocall = 0x3,
    DW_CC_nocall = 0x3,
    DW_CC_GNU_renesas_sh = 0x40
    DW_CC_GNU_renesas_sh = 0x40
  };
  };
 
 
#define DW_CC_lo_user 0x40
#define DW_CC_lo_user 0x40
#define DW_CC_hi_user 0xff
#define DW_CC_hi_user 0xff
 
 
/* Inline attribute.  */
/* Inline attribute.  */
enum dwarf_inline_attribute
enum dwarf_inline_attribute
  {
  {
    DW_INL_not_inlined = 0,
    DW_INL_not_inlined = 0,
    DW_INL_inlined = 1,
    DW_INL_inlined = 1,
    DW_INL_declared_not_inlined = 2,
    DW_INL_declared_not_inlined = 2,
    DW_INL_declared_inlined = 3
    DW_INL_declared_inlined = 3
  };
  };
 
 
/* Discriminant lists.  */
/* Discriminant lists.  */
enum dwarf_discrim_list
enum dwarf_discrim_list
  {
  {
    DW_DSC_label = 0,
    DW_DSC_label = 0,
    DW_DSC_range = 1
    DW_DSC_range = 1
  };
  };
 
 
/* Line number opcodes.  */
/* Line number opcodes.  */
enum dwarf_line_number_ops
enum dwarf_line_number_ops
  {
  {
    DW_LNS_extended_op = 0,
    DW_LNS_extended_op = 0,
    DW_LNS_copy = 1,
    DW_LNS_copy = 1,
    DW_LNS_advance_pc = 2,
    DW_LNS_advance_pc = 2,
    DW_LNS_advance_line = 3,
    DW_LNS_advance_line = 3,
    DW_LNS_set_file = 4,
    DW_LNS_set_file = 4,
    DW_LNS_set_column = 5,
    DW_LNS_set_column = 5,
    DW_LNS_negate_stmt = 6,
    DW_LNS_negate_stmt = 6,
    DW_LNS_set_basic_block = 7,
    DW_LNS_set_basic_block = 7,
    DW_LNS_const_add_pc = 8,
    DW_LNS_const_add_pc = 8,
    DW_LNS_fixed_advance_pc = 9,
    DW_LNS_fixed_advance_pc = 9,
    /* DWARF 3.  */
    /* DWARF 3.  */
    DW_LNS_set_prologue_end = 10,
    DW_LNS_set_prologue_end = 10,
    DW_LNS_set_epilogue_begin = 11,
    DW_LNS_set_epilogue_begin = 11,
    DW_LNS_set_isa = 12
    DW_LNS_set_isa = 12
  };
  };
 
 
/* Line number extended opcodes.  */
/* Line number extended opcodes.  */
enum dwarf_line_number_x_ops
enum dwarf_line_number_x_ops
  {
  {
    DW_LNE_end_sequence = 1,
    DW_LNE_end_sequence = 1,
    DW_LNE_set_address = 2,
    DW_LNE_set_address = 2,
    DW_LNE_define_file = 3,
    DW_LNE_define_file = 3,
    /* HP extensions.  */
    /* HP extensions.  */
    DW_LNE_HP_negate_is_UV_update      = 0x11,
    DW_LNE_HP_negate_is_UV_update      = 0x11,
    DW_LNE_HP_push_context             = 0x12,
    DW_LNE_HP_push_context             = 0x12,
    DW_LNE_HP_pop_context              = 0x13,
    DW_LNE_HP_pop_context              = 0x13,
    DW_LNE_HP_set_file_line_column     = 0x14,
    DW_LNE_HP_set_file_line_column     = 0x14,
    DW_LNE_HP_set_routine_name         = 0x15,
    DW_LNE_HP_set_routine_name         = 0x15,
    DW_LNE_HP_set_sequence             = 0x16,
    DW_LNE_HP_set_sequence             = 0x16,
    DW_LNE_HP_negate_post_semantics    = 0x17,
    DW_LNE_HP_negate_post_semantics    = 0x17,
    DW_LNE_HP_negate_function_exit     = 0x18,
    DW_LNE_HP_negate_function_exit     = 0x18,
    DW_LNE_HP_negate_front_end_logical = 0x19,
    DW_LNE_HP_negate_front_end_logical = 0x19,
    DW_LNE_HP_define_proc              = 0x20
    DW_LNE_HP_define_proc              = 0x20
  };
  };
 
 
#define DW_LNE_lo_user 0x80
#define DW_LNE_lo_user 0x80
#define DW_LNE_hi_user 0xff
#define DW_LNE_hi_user 0xff
 
 
/* Call frame information.  */
/* Call frame information.  */
enum dwarf_call_frame_info
enum dwarf_call_frame_info
  {
  {
    DW_CFA_advance_loc = 0x40,
    DW_CFA_advance_loc = 0x40,
    DW_CFA_offset = 0x80,
    DW_CFA_offset = 0x80,
    DW_CFA_restore = 0xc0,
    DW_CFA_restore = 0xc0,
    DW_CFA_nop = 0x00,
    DW_CFA_nop = 0x00,
    DW_CFA_set_loc = 0x01,
    DW_CFA_set_loc = 0x01,
    DW_CFA_advance_loc1 = 0x02,
    DW_CFA_advance_loc1 = 0x02,
    DW_CFA_advance_loc2 = 0x03,
    DW_CFA_advance_loc2 = 0x03,
    DW_CFA_advance_loc4 = 0x04,
    DW_CFA_advance_loc4 = 0x04,
    DW_CFA_offset_extended = 0x05,
    DW_CFA_offset_extended = 0x05,
    DW_CFA_restore_extended = 0x06,
    DW_CFA_restore_extended = 0x06,
    DW_CFA_undefined = 0x07,
    DW_CFA_undefined = 0x07,
    DW_CFA_same_value = 0x08,
    DW_CFA_same_value = 0x08,
    DW_CFA_register = 0x09,
    DW_CFA_register = 0x09,
    DW_CFA_remember_state = 0x0a,
    DW_CFA_remember_state = 0x0a,
    DW_CFA_restore_state = 0x0b,
    DW_CFA_restore_state = 0x0b,
    DW_CFA_def_cfa = 0x0c,
    DW_CFA_def_cfa = 0x0c,
    DW_CFA_def_cfa_register = 0x0d,
    DW_CFA_def_cfa_register = 0x0d,
    DW_CFA_def_cfa_offset = 0x0e,
    DW_CFA_def_cfa_offset = 0x0e,
    /* DWARF 3.  */
    /* DWARF 3.  */
    DW_CFA_def_cfa_expression = 0x0f,
    DW_CFA_def_cfa_expression = 0x0f,
    DW_CFA_expression = 0x10,
    DW_CFA_expression = 0x10,
    DW_CFA_offset_extended_sf = 0x11,
    DW_CFA_offset_extended_sf = 0x11,
    DW_CFA_def_cfa_sf = 0x12,
    DW_CFA_def_cfa_sf = 0x12,
    DW_CFA_def_cfa_offset_sf = 0x13,
    DW_CFA_def_cfa_offset_sf = 0x13,
    DW_CFA_val_offset = 0x14,
    DW_CFA_val_offset = 0x14,
    DW_CFA_val_offset_sf = 0x15,
    DW_CFA_val_offset_sf = 0x15,
    DW_CFA_val_expression = 0x16,
    DW_CFA_val_expression = 0x16,
    /* SGI/MIPS specific.  */
    /* SGI/MIPS specific.  */
    DW_CFA_MIPS_advance_loc8 = 0x1d,
    DW_CFA_MIPS_advance_loc8 = 0x1d,
    /* GNU extensions.  */
    /* GNU extensions.  */
    DW_CFA_GNU_window_save = 0x2d,
    DW_CFA_GNU_window_save = 0x2d,
    DW_CFA_GNU_args_size = 0x2e,
    DW_CFA_GNU_args_size = 0x2e,
    DW_CFA_GNU_negative_offset_extended = 0x2f
    DW_CFA_GNU_negative_offset_extended = 0x2f
  };
  };
 
 
#define DW_CIE_ID         0xffffffff
#define DW_CIE_ID         0xffffffff
#define DW64_CIE_ID       0xffffffffffffffffULL
#define DW64_CIE_ID       0xffffffffffffffffULL
#define DW_CIE_VERSION    1
#define DW_CIE_VERSION    1
 
 
#define DW_CFA_extended   0
#define DW_CFA_extended   0
#define DW_CFA_lo_user    0x1c
#define DW_CFA_lo_user    0x1c
#define DW_CFA_hi_user    0x3f
#define DW_CFA_hi_user    0x3f
 
 
#define DW_CHILDREN_no               0x00
#define DW_CHILDREN_no               0x00
#define DW_CHILDREN_yes              0x01
#define DW_CHILDREN_yes              0x01
 
 
#define DW_ADDR_none            0
#define DW_ADDR_none            0
 
 
/* Source language names and codes.  */
/* Source language names and codes.  */
enum dwarf_source_language
enum dwarf_source_language
  {
  {
    DW_LANG_C89 = 0x0001,
    DW_LANG_C89 = 0x0001,
    DW_LANG_C = 0x0002,
    DW_LANG_C = 0x0002,
    DW_LANG_Ada83 = 0x0003,
    DW_LANG_Ada83 = 0x0003,
    DW_LANG_C_plus_plus = 0x0004,
    DW_LANG_C_plus_plus = 0x0004,
    DW_LANG_Cobol74 = 0x0005,
    DW_LANG_Cobol74 = 0x0005,
    DW_LANG_Cobol85 = 0x0006,
    DW_LANG_Cobol85 = 0x0006,
    DW_LANG_Fortran77 = 0x0007,
    DW_LANG_Fortran77 = 0x0007,
    DW_LANG_Fortran90 = 0x0008,
    DW_LANG_Fortran90 = 0x0008,
    DW_LANG_Pascal83 = 0x0009,
    DW_LANG_Pascal83 = 0x0009,
    DW_LANG_Modula2 = 0x000a,
    DW_LANG_Modula2 = 0x000a,
    /* DWARF 3.  */
    /* DWARF 3.  */
    DW_LANG_Java = 0x000b,
    DW_LANG_Java = 0x000b,
    DW_LANG_C99 = 0x000c,
    DW_LANG_C99 = 0x000c,
    DW_LANG_Ada95 = 0x000d,
    DW_LANG_Ada95 = 0x000d,
    DW_LANG_Fortran95 = 0x000e,
    DW_LANG_Fortran95 = 0x000e,
    DW_LANG_PLI = 0x000f,
    DW_LANG_PLI = 0x000f,
    DW_LANG_ObjC = 0x0010,
    DW_LANG_ObjC = 0x0010,
    DW_LANG_ObjC_plus_plus = 0x0011,
    DW_LANG_ObjC_plus_plus = 0x0011,
    DW_LANG_UPC = 0x0012,
    DW_LANG_UPC = 0x0012,
    DW_LANG_D = 0x0013,
    DW_LANG_D = 0x0013,
    /* MIPS.  */
    /* MIPS.  */
    DW_LANG_Mips_Assembler = 0x8001,
    DW_LANG_Mips_Assembler = 0x8001,
    /* UPC.  */
    /* UPC.  */
    DW_LANG_Upc = 0x8765
    DW_LANG_Upc = 0x8765
  };
  };
 
 
#define DW_LANG_lo_user 0x8000  /* Implementation-defined range start.  */
#define DW_LANG_lo_user 0x8000  /* Implementation-defined range start.  */
#define DW_LANG_hi_user 0xffff  /* Implementation-defined range start.  */
#define DW_LANG_hi_user 0xffff  /* Implementation-defined range start.  */
 
 
/* Names and codes for macro information.  */
/* Names and codes for macro information.  */
enum dwarf_macinfo_record_type
enum dwarf_macinfo_record_type
  {
  {
    DW_MACINFO_define = 1,
    DW_MACINFO_define = 1,
    DW_MACINFO_undef = 2,
    DW_MACINFO_undef = 2,
    DW_MACINFO_start_file = 3,
    DW_MACINFO_start_file = 3,
    DW_MACINFO_end_file = 4,
    DW_MACINFO_end_file = 4,
    DW_MACINFO_vendor_ext = 255
    DW_MACINFO_vendor_ext = 255
  };
  };


/* @@@ For use with GNU frame unwind information.  */
/* @@@ For use with GNU frame unwind information.  */
 
 
#define DW_EH_PE_absptr         0x00
#define DW_EH_PE_absptr         0x00
#define DW_EH_PE_omit           0xff
#define DW_EH_PE_omit           0xff
 
 
#define DW_EH_PE_uleb128        0x01
#define DW_EH_PE_uleb128        0x01
#define DW_EH_PE_udata2         0x02
#define DW_EH_PE_udata2         0x02
#define DW_EH_PE_udata4         0x03
#define DW_EH_PE_udata4         0x03
#define DW_EH_PE_udata8         0x04
#define DW_EH_PE_udata8         0x04
#define DW_EH_PE_sleb128        0x09
#define DW_EH_PE_sleb128        0x09
#define DW_EH_PE_sdata2         0x0A
#define DW_EH_PE_sdata2         0x0A
#define DW_EH_PE_sdata4         0x0B
#define DW_EH_PE_sdata4         0x0B
#define DW_EH_PE_sdata8         0x0C
#define DW_EH_PE_sdata8         0x0C
#define DW_EH_PE_signed         0x08
#define DW_EH_PE_signed         0x08
 
 
#define DW_EH_PE_pcrel          0x10
#define DW_EH_PE_pcrel          0x10
#define DW_EH_PE_textrel        0x20
#define DW_EH_PE_textrel        0x20
#define DW_EH_PE_datarel        0x30
#define DW_EH_PE_datarel        0x30
#define DW_EH_PE_funcrel        0x40
#define DW_EH_PE_funcrel        0x40
#define DW_EH_PE_aligned        0x50
#define DW_EH_PE_aligned        0x50
 
 
#define DW_EH_PE_indirect       0x80
#define DW_EH_PE_indirect       0x80
 
 
#endif /* dwarf2.h */
#endif /* dwarf2.h */
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.