dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
gcc
* dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
(dwarf_tag_name): Use get_DW_TAG_name.
(dwarf_attr_name): Use get_DW_AT_name.
(dwarf_form_name): Use get_DW_FORM_name.
* dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
include
* dwarf2.h (enum dwarf_tag, enum dwarf_form, enum dwarf_attribute)
(enum dwarf_location_atom, enum dwarf_type, enum
dwarf_call_frame_info): Remove.
(DW_TAG, DW_TAG_DUP, DW_FORM, DW_AT, DW_AT_DUP, DW_OP)
(DW_OP_DUP, DW_ATE, DW_ATE_DUP, DW_CFA): New macros.
Include dwarf2.def.
(get_DW_TAG_name, get_DW_AT_name, get_DW_FORM_name)
(get_DW_OP_name, get_DW_ATE_name): Declare.
* dwarf2.def: New file, from dwarf2.h.
libiberty
* dwarfnames.c: New file.
* Makefile.in (CFILES): Add dwarfnames.
(REQUIRED_OFILES): Add dwarfnames.
(./dwarfnames.$(objext)): New target.
From-SVN: r186908
2012-04-27 16:14:14 +02:00
|
|
|
/* -*- c -*-
|
|
|
|
Declarations and definitions of codes relating to the DWARF2 and
|
|
|
|
DWARF3 symbolic debugging information formats.
|
2021-01-04 10:26:59 +01:00
|
|
|
Copyright (C) 1992-2021 Free Software Foundation, Inc.
|
dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
gcc
* dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
(dwarf_tag_name): Use get_DW_TAG_name.
(dwarf_attr_name): Use get_DW_AT_name.
(dwarf_form_name): Use get_DW_FORM_name.
* dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
include
* dwarf2.h (enum dwarf_tag, enum dwarf_form, enum dwarf_attribute)
(enum dwarf_location_atom, enum dwarf_type, enum
dwarf_call_frame_info): Remove.
(DW_TAG, DW_TAG_DUP, DW_FORM, DW_AT, DW_AT_DUP, DW_OP)
(DW_OP_DUP, DW_ATE, DW_ATE_DUP, DW_CFA): New macros.
Include dwarf2.def.
(get_DW_TAG_name, get_DW_AT_name, get_DW_FORM_name)
(get_DW_OP_name, get_DW_ATE_name): Declare.
* dwarf2.def: New file, from dwarf2.h.
libiberty
* dwarfnames.c: New file.
* Makefile.in (CFILES): Add dwarfnames.
(REQUIRED_OFILES): Add dwarfnames.
(./dwarfnames.$(objext)): New target.
From-SVN: r186908
2012-04-27 16:14:14 +02:00
|
|
|
|
|
|
|
Written by Gary Funck (gary@intrepid.com) The Ada Joint Program
|
|
|
|
Office (AJPO), Florida State University and Silicon Graphics Inc.
|
|
|
|
provided support for this effort -- June 21, 1995.
|
|
|
|
|
|
|
|
Derived from the DWARF 1 implementation written by Ron Guilmette
|
|
|
|
(rfg@netcom.com), November 1990.
|
|
|
|
|
|
|
|
This file is part of GCC.
|
|
|
|
|
|
|
|
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
|
|
|
|
Software Foundation; either version 3, or (at your option) any later
|
|
|
|
version.
|
|
|
|
|
|
|
|
GCC is distributed in the hope that it will be useful, but WITHOUT
|
|
|
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
|
|
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
|
|
|
License for more details.
|
|
|
|
|
|
|
|
Under Section 7 of GPL version 3, you are granted additional
|
|
|
|
permissions described in the GCC Runtime Library Exception, version
|
|
|
|
3.1, as published by the Free Software Foundation.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License and
|
|
|
|
a copy of the GCC Runtime Library Exception along with this program;
|
|
|
|
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
|
|
|
<http://www.gnu.org/licenses/>. */
|
|
|
|
|
|
|
|
/* This file is derived from the DWARF specification (a public document)
|
|
|
|
Revision 2.0.0 (July 27, 1993) developed by the UNIX International
|
|
|
|
Programming Languages Special Interest Group (UI/PLSIG) and distributed
|
|
|
|
by UNIX International. Copies of this specification are available from
|
|
|
|
UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.
|
|
|
|
|
|
|
|
This file also now contains definitions from the DWARF 3 specification
|
|
|
|
published Dec 20, 2005, available from: http://dwarf.freestandards.org.
|
|
|
|
|
|
|
|
This file also now contains definitions from the DWARF 4
|
|
|
|
specification, available from: http://dwarfstd.org/ */
|
|
|
|
|
|
|
|
/* This file declares various DWARF-related constants using a set of
|
|
|
|
macros which can be redefined by the including file.
|
|
|
|
|
|
|
|
The macros are in sections. Each section corresponds to a single
|
|
|
|
set of DWARF constants and has a corresponding key. The key is
|
|
|
|
used in all the macro names.
|
|
|
|
|
|
|
|
The sections are TAG (for DW_TAG_ constants), FORM (DW_FORM_), AT
|
|
|
|
(DW_AT_), OP (DW_OP_), ATE (DW_ATE_), and CFA (DW_CFA_).
|
|
|
|
|
|
|
|
Using TAG as an example, the following macros may be used for each
|
|
|
|
key:
|
|
|
|
|
|
|
|
DW_FIRST_TAG(name, value) - Introduce the first DW_TAG constant.
|
|
|
|
|
|
|
|
DW_TAG(name, value) - Define a subsequent constant.
|
|
|
|
|
|
|
|
DW_TAG_DUP(name, value) - Define a subsequent constant whose value
|
|
|
|
is a duplicate of some other constant. Not all keys use the _DUP
|
|
|
|
macro form. If more than one name shares a value, then the base
|
|
|
|
(DW_TAG) form will be the preferred name and DW_TAG_DUP will hold
|
|
|
|
any alternate names.
|
|
|
|
|
|
|
|
DW_END_TAG - Invoked at the end of the DW_TAG constants. */
|
|
|
|
|
|
|
|
DW_FIRST_TAG (DW_TAG_padding, 0x00)
|
|
|
|
DW_TAG (DW_TAG_array_type, 0x01)
|
|
|
|
DW_TAG (DW_TAG_class_type, 0x02)
|
|
|
|
DW_TAG (DW_TAG_entry_point, 0x03)
|
|
|
|
DW_TAG (DW_TAG_enumeration_type, 0x04)
|
|
|
|
DW_TAG (DW_TAG_formal_parameter, 0x05)
|
|
|
|
DW_TAG (DW_TAG_imported_declaration, 0x08)
|
|
|
|
DW_TAG (DW_TAG_label, 0x0a)
|
|
|
|
DW_TAG (DW_TAG_lexical_block, 0x0b)
|
|
|
|
DW_TAG (DW_TAG_member, 0x0d)
|
|
|
|
DW_TAG (DW_TAG_pointer_type, 0x0f)
|
|
|
|
DW_TAG (DW_TAG_reference_type, 0x10)
|
|
|
|
DW_TAG (DW_TAG_compile_unit, 0x11)
|
|
|
|
DW_TAG (DW_TAG_string_type, 0x12)
|
|
|
|
DW_TAG (DW_TAG_structure_type, 0x13)
|
|
|
|
DW_TAG (DW_TAG_subroutine_type, 0x15)
|
|
|
|
DW_TAG (DW_TAG_typedef, 0x16)
|
|
|
|
DW_TAG (DW_TAG_union_type, 0x17)
|
|
|
|
DW_TAG (DW_TAG_unspecified_parameters, 0x18)
|
|
|
|
DW_TAG (DW_TAG_variant, 0x19)
|
|
|
|
DW_TAG (DW_TAG_common_block, 0x1a)
|
|
|
|
DW_TAG (DW_TAG_common_inclusion, 0x1b)
|
|
|
|
DW_TAG (DW_TAG_inheritance, 0x1c)
|
|
|
|
DW_TAG (DW_TAG_inlined_subroutine, 0x1d)
|
|
|
|
DW_TAG (DW_TAG_module, 0x1e)
|
|
|
|
DW_TAG (DW_TAG_ptr_to_member_type, 0x1f)
|
|
|
|
DW_TAG (DW_TAG_set_type, 0x20)
|
|
|
|
DW_TAG (DW_TAG_subrange_type, 0x21)
|
|
|
|
DW_TAG (DW_TAG_with_stmt, 0x22)
|
|
|
|
DW_TAG (DW_TAG_access_declaration, 0x23)
|
|
|
|
DW_TAG (DW_TAG_base_type, 0x24)
|
|
|
|
DW_TAG (DW_TAG_catch_block, 0x25)
|
|
|
|
DW_TAG (DW_TAG_const_type, 0x26)
|
|
|
|
DW_TAG (DW_TAG_constant, 0x27)
|
|
|
|
DW_TAG (DW_TAG_enumerator, 0x28)
|
|
|
|
DW_TAG (DW_TAG_file_type, 0x29)
|
|
|
|
DW_TAG (DW_TAG_friend, 0x2a)
|
|
|
|
DW_TAG (DW_TAG_namelist, 0x2b)
|
|
|
|
DW_TAG (DW_TAG_namelist_item, 0x2c)
|
|
|
|
DW_TAG (DW_TAG_packed_type, 0x2d)
|
|
|
|
DW_TAG (DW_TAG_subprogram, 0x2e)
|
|
|
|
DW_TAG (DW_TAG_template_type_param, 0x2f)
|
|
|
|
DW_TAG (DW_TAG_template_value_param, 0x30)
|
|
|
|
DW_TAG (DW_TAG_thrown_type, 0x31)
|
|
|
|
DW_TAG (DW_TAG_try_block, 0x32)
|
|
|
|
DW_TAG (DW_TAG_variant_part, 0x33)
|
|
|
|
DW_TAG (DW_TAG_variable, 0x34)
|
|
|
|
DW_TAG (DW_TAG_volatile_type, 0x35)
|
|
|
|
/* DWARF 3. */
|
|
|
|
DW_TAG (DW_TAG_dwarf_procedure, 0x36)
|
|
|
|
DW_TAG (DW_TAG_restrict_type, 0x37)
|
|
|
|
DW_TAG (DW_TAG_interface_type, 0x38)
|
|
|
|
DW_TAG (DW_TAG_namespace, 0x39)
|
|
|
|
DW_TAG (DW_TAG_imported_module, 0x3a)
|
|
|
|
DW_TAG (DW_TAG_unspecified_type, 0x3b)
|
|
|
|
DW_TAG (DW_TAG_partial_unit, 0x3c)
|
|
|
|
DW_TAG (DW_TAG_imported_unit, 0x3d)
|
|
|
|
DW_TAG (DW_TAG_condition, 0x3f)
|
|
|
|
DW_TAG (DW_TAG_shared_type, 0x40)
|
|
|
|
/* DWARF 4. */
|
|
|
|
DW_TAG (DW_TAG_type_unit, 0x41)
|
|
|
|
DW_TAG (DW_TAG_rvalue_reference_type, 0x42)
|
|
|
|
DW_TAG (DW_TAG_template_alias, 0x43)
|
2014-12-08 23:32:23 +01:00
|
|
|
/* DWARF 5. */
|
2016-10-17 19:35:33 +02:00
|
|
|
DW_TAG (DW_TAG_coarray_type, 0x44)
|
|
|
|
DW_TAG (DW_TAG_generic_subrange, 0x45)
|
|
|
|
DW_TAG (DW_TAG_dynamic_type, 0x46)
|
2014-12-08 23:32:23 +01:00
|
|
|
DW_TAG (DW_TAG_atomic_type, 0x47)
|
2016-10-17 19:35:33 +02:00
|
|
|
DW_TAG (DW_TAG_call_site, 0x48)
|
|
|
|
DW_TAG (DW_TAG_call_site_parameter, 0x49)
|
|
|
|
DW_TAG (DW_TAG_skeleton_unit, 0x4a)
|
|
|
|
DW_TAG (DW_TAG_immutable_type, 0x4b)
|
dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
gcc
* dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
(dwarf_tag_name): Use get_DW_TAG_name.
(dwarf_attr_name): Use get_DW_AT_name.
(dwarf_form_name): Use get_DW_FORM_name.
* dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
include
* dwarf2.h (enum dwarf_tag, enum dwarf_form, enum dwarf_attribute)
(enum dwarf_location_atom, enum dwarf_type, enum
dwarf_call_frame_info): Remove.
(DW_TAG, DW_TAG_DUP, DW_FORM, DW_AT, DW_AT_DUP, DW_OP)
(DW_OP_DUP, DW_ATE, DW_ATE_DUP, DW_CFA): New macros.
Include dwarf2.def.
(get_DW_TAG_name, get_DW_AT_name, get_DW_FORM_name)
(get_DW_OP_name, get_DW_ATE_name): Declare.
* dwarf2.def: New file, from dwarf2.h.
libiberty
* dwarfnames.c: New file.
* Makefile.in (CFILES): Add dwarfnames.
(REQUIRED_OFILES): Add dwarfnames.
(./dwarfnames.$(objext)): New target.
From-SVN: r186908
2012-04-27 16:14:14 +02:00
|
|
|
|
|
|
|
DW_TAG_DUP (DW_TAG_lo_user, 0x4080)
|
|
|
|
DW_TAG_DUP (DW_TAG_hi_user, 0xffff)
|
|
|
|
|
|
|
|
/* SGI/MIPS Extensions. */
|
|
|
|
DW_TAG (DW_TAG_MIPS_loop, 0x4081)
|
|
|
|
|
|
|
|
/* HP extensions. See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz . */
|
|
|
|
DW_TAG (DW_TAG_HP_array_descriptor, 0x4090)
|
|
|
|
DW_TAG (DW_TAG_HP_Bliss_field, 0x4091)
|
|
|
|
DW_TAG (DW_TAG_HP_Bliss_field_set, 0x4092)
|
|
|
|
|
|
|
|
/* GNU extensions. */
|
|
|
|
DW_TAG (DW_TAG_format_label, 0x4101) /* For FORTRAN 77 and Fortran 90. */
|
|
|
|
DW_TAG (DW_TAG_function_template, 0x4102) /* For C++. */
|
|
|
|
DW_TAG (DW_TAG_class_template, 0x4103) /* For C++. */
|
|
|
|
DW_TAG (DW_TAG_GNU_BINCL, 0x4104)
|
|
|
|
DW_TAG (DW_TAG_GNU_EINCL, 0x4105)
|
|
|
|
/* Template template parameter.
|
|
|
|
See http://gcc.gnu.org/wiki/TemplateParmsDwarf . */
|
|
|
|
DW_TAG (DW_TAG_GNU_template_template_param, 0x4106)
|
|
|
|
|
|
|
|
/* Template parameter pack extension, specified at
|
|
|
|
http://wiki.dwarfstd.org/index.php?title=C%2B%2B0x:_Variadic_templates
|
|
|
|
The values of these two TAGS are in the DW_TAG_GNU_* space until the tags
|
|
|
|
are properly part of DWARF 5. */
|
|
|
|
DW_TAG (DW_TAG_GNU_template_parameter_pack, 0x4107)
|
|
|
|
DW_TAG (DW_TAG_GNU_formal_parameter_pack, 0x4108)
|
|
|
|
/* The GNU call site extension, specified at
|
|
|
|
http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open .
|
|
|
|
The values of these two TAGS are in the DW_TAG_GNU_* space until the tags
|
|
|
|
are properly part of DWARF 5. */
|
|
|
|
DW_TAG (DW_TAG_GNU_call_site, 0x4109)
|
|
|
|
DW_TAG (DW_TAG_GNU_call_site_parameter, 0x410a)
|
2012-05-20 02:55:05 +02:00
|
|
|
/* Extensions for UPC. See: http://dwarfstd.org/doc/DWARF4.pdf. */
|
dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
gcc
* dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
(dwarf_tag_name): Use get_DW_TAG_name.
(dwarf_attr_name): Use get_DW_AT_name.
(dwarf_form_name): Use get_DW_FORM_name.
* dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
include
* dwarf2.h (enum dwarf_tag, enum dwarf_form, enum dwarf_attribute)
(enum dwarf_location_atom, enum dwarf_type, enum
dwarf_call_frame_info): Remove.
(DW_TAG, DW_TAG_DUP, DW_FORM, DW_AT, DW_AT_DUP, DW_OP)
(DW_OP_DUP, DW_ATE, DW_ATE_DUP, DW_CFA): New macros.
Include dwarf2.def.
(get_DW_TAG_name, get_DW_AT_name, get_DW_FORM_name)
(get_DW_OP_name, get_DW_ATE_name): Declare.
* dwarf2.def: New file, from dwarf2.h.
libiberty
* dwarfnames.c: New file.
* Makefile.in (CFILES): Add dwarfnames.
(REQUIRED_OFILES): Add dwarfnames.
(./dwarfnames.$(objext)): New target.
From-SVN: r186908
2012-04-27 16:14:14 +02:00
|
|
|
DW_TAG (DW_TAG_upc_shared_type, 0x8765)
|
|
|
|
DW_TAG (DW_TAG_upc_strict_type, 0x8766)
|
|
|
|
DW_TAG (DW_TAG_upc_relaxed_type, 0x8767)
|
|
|
|
/* PGI (STMicroelectronics) extensions. No documentation available. */
|
|
|
|
DW_TAG (DW_TAG_PGI_kanji_type, 0xA000)
|
|
|
|
DW_TAG (DW_TAG_PGI_interface_block, 0xA020)
|
|
|
|
DW_END_TAG
|
|
|
|
|
|
|
|
DW_FIRST_FORM (DW_FORM_addr, 0x01)
|
|
|
|
DW_FORM (DW_FORM_block2, 0x03)
|
|
|
|
DW_FORM (DW_FORM_block4, 0x04)
|
|
|
|
DW_FORM (DW_FORM_data2, 0x05)
|
|
|
|
DW_FORM (DW_FORM_data4, 0x06)
|
|
|
|
DW_FORM (DW_FORM_data8, 0x07)
|
|
|
|
DW_FORM (DW_FORM_string, 0x08)
|
|
|
|
DW_FORM (DW_FORM_block, 0x09)
|
|
|
|
DW_FORM (DW_FORM_block1, 0x0a)
|
|
|
|
DW_FORM (DW_FORM_data1, 0x0b)
|
|
|
|
DW_FORM (DW_FORM_flag, 0x0c)
|
|
|
|
DW_FORM (DW_FORM_sdata, 0x0d)
|
|
|
|
DW_FORM (DW_FORM_strp, 0x0e)
|
|
|
|
DW_FORM (DW_FORM_udata, 0x0f)
|
|
|
|
DW_FORM (DW_FORM_ref_addr, 0x10)
|
|
|
|
DW_FORM (DW_FORM_ref1, 0x11)
|
|
|
|
DW_FORM (DW_FORM_ref2, 0x12)
|
|
|
|
DW_FORM (DW_FORM_ref4, 0x13)
|
|
|
|
DW_FORM (DW_FORM_ref8, 0x14)
|
|
|
|
DW_FORM (DW_FORM_ref_udata, 0x15)
|
|
|
|
DW_FORM (DW_FORM_indirect, 0x16)
|
|
|
|
/* DWARF 4. */
|
|
|
|
DW_FORM (DW_FORM_sec_offset, 0x17)
|
|
|
|
DW_FORM (DW_FORM_exprloc, 0x18)
|
|
|
|
DW_FORM (DW_FORM_flag_present, 0x19)
|
|
|
|
DW_FORM (DW_FORM_ref_sig8, 0x20)
|
2016-10-17 19:35:33 +02:00
|
|
|
/* DWARF 5. */
|
|
|
|
DW_FORM (DW_FORM_strx, 0x1a)
|
|
|
|
DW_FORM (DW_FORM_addrx, 0x1b)
|
2016-12-21 23:48:51 +01:00
|
|
|
DW_FORM (DW_FORM_ref_sup4, 0x1c)
|
2016-10-17 19:35:33 +02:00
|
|
|
DW_FORM (DW_FORM_strp_sup, 0x1d)
|
|
|
|
DW_FORM (DW_FORM_data16, 0x1e)
|
|
|
|
DW_FORM (DW_FORM_line_strp, 0x1f)
|
|
|
|
DW_FORM (DW_FORM_implicit_const, 0x21)
|
|
|
|
DW_FORM (DW_FORM_loclistx, 0x22)
|
|
|
|
DW_FORM (DW_FORM_rnglistx, 0x23)
|
2016-12-21 23:48:51 +01:00
|
|
|
DW_FORM (DW_FORM_ref_sup8, 0x24)
|
2018-05-25 00:03:06 +02:00
|
|
|
DW_FORM (DW_FORM_strx1, 0x25)
|
|
|
|
DW_FORM (DW_FORM_strx2, 0x26)
|
|
|
|
DW_FORM (DW_FORM_strx3, 0x27)
|
|
|
|
DW_FORM (DW_FORM_strx4, 0x28)
|
|
|
|
DW_FORM (DW_FORM_addrx1, 0x29)
|
|
|
|
DW_FORM (DW_FORM_addrx2, 0x2a)
|
|
|
|
DW_FORM (DW_FORM_addrx3, 0x2b)
|
|
|
|
DW_FORM (DW_FORM_addrx4, 0x2c)
|
dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
gcc
* dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
(dwarf_tag_name): Use get_DW_TAG_name.
(dwarf_attr_name): Use get_DW_AT_name.
(dwarf_form_name): Use get_DW_FORM_name.
* dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
include
* dwarf2.h (enum dwarf_tag, enum dwarf_form, enum dwarf_attribute)
(enum dwarf_location_atom, enum dwarf_type, enum
dwarf_call_frame_info): Remove.
(DW_TAG, DW_TAG_DUP, DW_FORM, DW_AT, DW_AT_DUP, DW_OP)
(DW_OP_DUP, DW_ATE, DW_ATE_DUP, DW_CFA): New macros.
Include dwarf2.def.
(get_DW_TAG_name, get_DW_AT_name, get_DW_FORM_name)
(get_DW_OP_name, get_DW_ATE_name): Declare.
* dwarf2.def: New file, from dwarf2.h.
libiberty
* dwarfnames.c: New file.
* Makefile.in (CFILES): Add dwarfnames.
(REQUIRED_OFILES): Add dwarfnames.
(./dwarfnames.$(objext)): New target.
From-SVN: r186908
2012-04-27 16:14:14 +02:00
|
|
|
/* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */
|
|
|
|
DW_FORM (DW_FORM_GNU_addr_index, 0x1f01)
|
|
|
|
DW_FORM (DW_FORM_GNU_str_index, 0x1f02)
|
2012-06-08 20:48:46 +02:00
|
|
|
/* Extensions for DWZ multifile.
|
|
|
|
See http://www.dwarfstd.org/ShowIssue.php?issue=120604.1&type=open . */
|
|
|
|
DW_FORM (DW_FORM_GNU_ref_alt, 0x1f20)
|
|
|
|
DW_FORM (DW_FORM_GNU_strp_alt, 0x1f21)
|
dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
gcc
* dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
(dwarf_tag_name): Use get_DW_TAG_name.
(dwarf_attr_name): Use get_DW_AT_name.
(dwarf_form_name): Use get_DW_FORM_name.
* dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
include
* dwarf2.h (enum dwarf_tag, enum dwarf_form, enum dwarf_attribute)
(enum dwarf_location_atom, enum dwarf_type, enum
dwarf_call_frame_info): Remove.
(DW_TAG, DW_TAG_DUP, DW_FORM, DW_AT, DW_AT_DUP, DW_OP)
(DW_OP_DUP, DW_ATE, DW_ATE_DUP, DW_CFA): New macros.
Include dwarf2.def.
(get_DW_TAG_name, get_DW_AT_name, get_DW_FORM_name)
(get_DW_OP_name, get_DW_ATE_name): Declare.
* dwarf2.def: New file, from dwarf2.h.
libiberty
* dwarfnames.c: New file.
* Makefile.in (CFILES): Add dwarfnames.
(REQUIRED_OFILES): Add dwarfnames.
(./dwarfnames.$(objext)): New target.
From-SVN: r186908
2012-04-27 16:14:14 +02:00
|
|
|
DW_END_FORM
|
|
|
|
|
|
|
|
DW_FIRST_AT (DW_AT_sibling, 0x01)
|
|
|
|
DW_AT (DW_AT_location, 0x02)
|
|
|
|
DW_AT (DW_AT_name, 0x03)
|
|
|
|
DW_AT (DW_AT_ordering, 0x09)
|
|
|
|
DW_AT (DW_AT_subscr_data, 0x0a)
|
|
|
|
DW_AT (DW_AT_byte_size, 0x0b)
|
|
|
|
DW_AT (DW_AT_bit_offset, 0x0c)
|
|
|
|
DW_AT (DW_AT_bit_size, 0x0d)
|
|
|
|
DW_AT (DW_AT_element_list, 0x0f)
|
|
|
|
DW_AT (DW_AT_stmt_list, 0x10)
|
|
|
|
DW_AT (DW_AT_low_pc, 0x11)
|
|
|
|
DW_AT (DW_AT_high_pc, 0x12)
|
|
|
|
DW_AT (DW_AT_language, 0x13)
|
|
|
|
DW_AT (DW_AT_member, 0x14)
|
|
|
|
DW_AT (DW_AT_discr, 0x15)
|
|
|
|
DW_AT (DW_AT_discr_value, 0x16)
|
|
|
|
DW_AT (DW_AT_visibility, 0x17)
|
|
|
|
DW_AT (DW_AT_import, 0x18)
|
|
|
|
DW_AT (DW_AT_string_length, 0x19)
|
|
|
|
DW_AT (DW_AT_common_reference, 0x1a)
|
|
|
|
DW_AT (DW_AT_comp_dir, 0x1b)
|
|
|
|
DW_AT (DW_AT_const_value, 0x1c)
|
|
|
|
DW_AT (DW_AT_containing_type, 0x1d)
|
|
|
|
DW_AT (DW_AT_default_value, 0x1e)
|
|
|
|
DW_AT (DW_AT_inline, 0x20)
|
|
|
|
DW_AT (DW_AT_is_optional, 0x21)
|
|
|
|
DW_AT (DW_AT_lower_bound, 0x22)
|
|
|
|
DW_AT (DW_AT_producer, 0x25)
|
|
|
|
DW_AT (DW_AT_prototyped, 0x27)
|
|
|
|
DW_AT (DW_AT_return_addr, 0x2a)
|
|
|
|
DW_AT (DW_AT_start_scope, 0x2c)
|
|
|
|
DW_AT (DW_AT_bit_stride, 0x2e)
|
|
|
|
DW_AT (DW_AT_upper_bound, 0x2f)
|
|
|
|
DW_AT (DW_AT_abstract_origin, 0x31)
|
|
|
|
DW_AT (DW_AT_accessibility, 0x32)
|
|
|
|
DW_AT (DW_AT_address_class, 0x33)
|
|
|
|
DW_AT (DW_AT_artificial, 0x34)
|
|
|
|
DW_AT (DW_AT_base_types, 0x35)
|
|
|
|
DW_AT (DW_AT_calling_convention, 0x36)
|
|
|
|
DW_AT (DW_AT_count, 0x37)
|
|
|
|
DW_AT (DW_AT_data_member_location, 0x38)
|
|
|
|
DW_AT (DW_AT_decl_column, 0x39)
|
|
|
|
DW_AT (DW_AT_decl_file, 0x3a)
|
|
|
|
DW_AT (DW_AT_decl_line, 0x3b)
|
|
|
|
DW_AT (DW_AT_declaration, 0x3c)
|
|
|
|
DW_AT (DW_AT_discr_list, 0x3d)
|
|
|
|
DW_AT (DW_AT_encoding, 0x3e)
|
|
|
|
DW_AT (DW_AT_external, 0x3f)
|
|
|
|
DW_AT (DW_AT_frame_base, 0x40)
|
|
|
|
DW_AT (DW_AT_friend, 0x41)
|
|
|
|
DW_AT (DW_AT_identifier_case, 0x42)
|
|
|
|
DW_AT (DW_AT_macro_info, 0x43)
|
|
|
|
DW_AT (DW_AT_namelist_items, 0x44)
|
|
|
|
DW_AT (DW_AT_priority, 0x45)
|
|
|
|
DW_AT (DW_AT_segment, 0x46)
|
|
|
|
DW_AT (DW_AT_specification, 0x47)
|
|
|
|
DW_AT (DW_AT_static_link, 0x48)
|
|
|
|
DW_AT (DW_AT_type, 0x49)
|
|
|
|
DW_AT (DW_AT_use_location, 0x4a)
|
|
|
|
DW_AT (DW_AT_variable_parameter, 0x4b)
|
|
|
|
DW_AT (DW_AT_virtuality, 0x4c)
|
|
|
|
DW_AT (DW_AT_vtable_elem_location, 0x4d)
|
|
|
|
/* DWARF 3 values. */
|
|
|
|
DW_AT (DW_AT_allocated, 0x4e)
|
|
|
|
DW_AT (DW_AT_associated, 0x4f)
|
|
|
|
DW_AT (DW_AT_data_location, 0x50)
|
|
|
|
DW_AT (DW_AT_byte_stride, 0x51)
|
|
|
|
DW_AT (DW_AT_entry_pc, 0x52)
|
|
|
|
DW_AT (DW_AT_use_UTF8, 0x53)
|
|
|
|
DW_AT (DW_AT_extension, 0x54)
|
|
|
|
DW_AT (DW_AT_ranges, 0x55)
|
|
|
|
DW_AT (DW_AT_trampoline, 0x56)
|
|
|
|
DW_AT (DW_AT_call_column, 0x57)
|
|
|
|
DW_AT (DW_AT_call_file, 0x58)
|
|
|
|
DW_AT (DW_AT_call_line, 0x59)
|
|
|
|
DW_AT (DW_AT_description, 0x5a)
|
|
|
|
DW_AT (DW_AT_binary_scale, 0x5b)
|
|
|
|
DW_AT (DW_AT_decimal_scale, 0x5c)
|
|
|
|
DW_AT (DW_AT_small, 0x5d)
|
|
|
|
DW_AT (DW_AT_decimal_sign, 0x5e)
|
|
|
|
DW_AT (DW_AT_digit_count, 0x5f)
|
|
|
|
DW_AT (DW_AT_picture_string, 0x60)
|
|
|
|
DW_AT (DW_AT_mutable, 0x61)
|
|
|
|
DW_AT (DW_AT_threads_scaled, 0x62)
|
|
|
|
DW_AT (DW_AT_explicit, 0x63)
|
|
|
|
DW_AT (DW_AT_object_pointer, 0x64)
|
|
|
|
DW_AT (DW_AT_endianity, 0x65)
|
|
|
|
DW_AT (DW_AT_elemental, 0x66)
|
|
|
|
DW_AT (DW_AT_pure, 0x67)
|
|
|
|
DW_AT (DW_AT_recursive, 0x68)
|
|
|
|
/* DWARF 4. */
|
|
|
|
DW_AT (DW_AT_signature, 0x69)
|
|
|
|
DW_AT (DW_AT_main_subprogram, 0x6a)
|
|
|
|
DW_AT (DW_AT_data_bit_offset, 0x6b)
|
|
|
|
DW_AT (DW_AT_const_expr, 0x6c)
|
|
|
|
DW_AT (DW_AT_enum_class, 0x6d)
|
|
|
|
DW_AT (DW_AT_linkage_name, 0x6e)
|
2014-11-26 11:10:27 +01:00
|
|
|
/* DWARF 5. */
|
2016-08-15 11:51:44 +02:00
|
|
|
DW_AT (DW_AT_string_length_bit_size, 0x6f)
|
|
|
|
DW_AT (DW_AT_string_length_byte_size, 0x70)
|
2016-10-17 19:35:33 +02:00
|
|
|
DW_AT (DW_AT_rank, 0x71)
|
|
|
|
DW_AT (DW_AT_str_offsets_base, 0x72)
|
|
|
|
DW_AT (DW_AT_addr_base, 0x73)
|
|
|
|
DW_AT (DW_AT_rnglists_base, 0x74)
|
|
|
|
DW_AT (DW_AT_dwo_name, 0x76)
|
|
|
|
DW_AT (DW_AT_reference, 0x77)
|
|
|
|
DW_AT (DW_AT_rvalue_reference, 0x78)
|
|
|
|
DW_AT (DW_AT_macros, 0x79)
|
|
|
|
DW_AT (DW_AT_call_all_calls, 0x7a)
|
|
|
|
DW_AT (DW_AT_call_all_source_calls, 0x7b)
|
|
|
|
DW_AT (DW_AT_call_all_tail_calls, 0x7c)
|
|
|
|
DW_AT (DW_AT_call_return_pc, 0x7d)
|
|
|
|
DW_AT (DW_AT_call_value, 0x7e)
|
|
|
|
DW_AT (DW_AT_call_origin, 0x7f)
|
|
|
|
DW_AT (DW_AT_call_parameter, 0x80)
|
|
|
|
DW_AT (DW_AT_call_pc, 0x81)
|
|
|
|
DW_AT (DW_AT_call_tail_call, 0x82)
|
|
|
|
DW_AT (DW_AT_call_target, 0x83)
|
|
|
|
DW_AT (DW_AT_call_target_clobbered, 0x84)
|
|
|
|
DW_AT (DW_AT_call_data_location, 0x85)
|
|
|
|
DW_AT (DW_AT_call_data_value, 0x86)
|
2014-11-26 11:10:27 +01:00
|
|
|
DW_AT (DW_AT_noreturn, 0x87)
|
2016-10-17 19:35:33 +02:00
|
|
|
DW_AT (DW_AT_alignment, 0x88)
|
|
|
|
DW_AT (DW_AT_export_symbols, 0x89)
|
2016-08-12 09:11:50 +02:00
|
|
|
DW_AT (DW_AT_deleted, 0x8a)
|
|
|
|
DW_AT (DW_AT_defaulted, 0x8b)
|
2016-10-17 19:35:33 +02:00
|
|
|
DW_AT (DW_AT_loclists_base, 0x8c)
|
dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
gcc
* dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
(dwarf_tag_name): Use get_DW_TAG_name.
(dwarf_attr_name): Use get_DW_AT_name.
(dwarf_form_name): Use get_DW_FORM_name.
* dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
include
* dwarf2.h (enum dwarf_tag, enum dwarf_form, enum dwarf_attribute)
(enum dwarf_location_atom, enum dwarf_type, enum
dwarf_call_frame_info): Remove.
(DW_TAG, DW_TAG_DUP, DW_FORM, DW_AT, DW_AT_DUP, DW_OP)
(DW_OP_DUP, DW_ATE, DW_ATE_DUP, DW_CFA): New macros.
Include dwarf2.def.
(get_DW_TAG_name, get_DW_AT_name, get_DW_FORM_name)
(get_DW_OP_name, get_DW_ATE_name): Declare.
* dwarf2.def: New file, from dwarf2.h.
libiberty
* dwarfnames.c: New file.
* Makefile.in (CFILES): Add dwarfnames.
(REQUIRED_OFILES): Add dwarfnames.
(./dwarfnames.$(objext)): New target.
From-SVN: r186908
2012-04-27 16:14:14 +02:00
|
|
|
|
|
|
|
DW_AT_DUP (DW_AT_lo_user, 0x2000) /* Implementation-defined range start. */
|
|
|
|
DW_AT_DUP (DW_AT_hi_user, 0x3fff) /* Implementation-defined range end. */
|
|
|
|
|
|
|
|
/* SGI/MIPS extensions. */
|
|
|
|
DW_AT (DW_AT_MIPS_fde, 0x2001)
|
|
|
|
DW_AT (DW_AT_MIPS_loop_begin, 0x2002)
|
|
|
|
DW_AT (DW_AT_MIPS_tail_loop_begin, 0x2003)
|
|
|
|
DW_AT (DW_AT_MIPS_epilog_begin, 0x2004)
|
|
|
|
DW_AT (DW_AT_MIPS_loop_unroll_factor, 0x2005)
|
|
|
|
DW_AT (DW_AT_MIPS_software_pipeline_depth, 0x2006)
|
|
|
|
DW_AT (DW_AT_MIPS_linkage_name, 0x2007)
|
|
|
|
DW_AT (DW_AT_MIPS_stride, 0x2008)
|
|
|
|
DW_AT (DW_AT_MIPS_abstract_name, 0x2009)
|
|
|
|
DW_AT (DW_AT_MIPS_clone_origin, 0x200a)
|
|
|
|
DW_AT (DW_AT_MIPS_has_inlines, 0x200b)
|
|
|
|
/* HP extensions. */
|
|
|
|
DW_AT (DW_AT_HP_block_index, 0x2000)
|
|
|
|
DW_AT_DUP (DW_AT_HP_unmodifiable, 0x2001) /* Same as DW_AT_MIPS_fde. */
|
|
|
|
DW_AT_DUP (DW_AT_HP_prologue, 0x2005) /* Same as DW_AT_MIPS_loop_unroll. */
|
|
|
|
DW_AT_DUP (DW_AT_HP_epilogue, 0x2008) /* Same as DW_AT_MIPS_stride. */
|
|
|
|
DW_AT (DW_AT_HP_actuals_stmt_list, 0x2010)
|
|
|
|
DW_AT (DW_AT_HP_proc_per_section, 0x2011)
|
|
|
|
DW_AT (DW_AT_HP_raw_data_ptr, 0x2012)
|
|
|
|
DW_AT (DW_AT_HP_pass_by_reference, 0x2013)
|
|
|
|
DW_AT (DW_AT_HP_opt_level, 0x2014)
|
|
|
|
DW_AT (DW_AT_HP_prof_version_id, 0x2015)
|
|
|
|
DW_AT (DW_AT_HP_opt_flags, 0x2016)
|
|
|
|
DW_AT (DW_AT_HP_cold_region_low_pc, 0x2017)
|
|
|
|
DW_AT (DW_AT_HP_cold_region_high_pc, 0x2018)
|
|
|
|
DW_AT (DW_AT_HP_all_variables_modifiable, 0x2019)
|
|
|
|
DW_AT (DW_AT_HP_linkage_name, 0x201a)
|
|
|
|
DW_AT (DW_AT_HP_prof_flags, 0x201b) /* In comp unit of procs_info for -g. */
|
|
|
|
DW_AT (DW_AT_HP_unit_name, 0x201f)
|
|
|
|
DW_AT (DW_AT_HP_unit_size, 0x2020)
|
|
|
|
DW_AT (DW_AT_HP_widened_byte_size, 0x2021)
|
|
|
|
DW_AT (DW_AT_HP_definition_points, 0x2022)
|
|
|
|
DW_AT (DW_AT_HP_default_location, 0x2023)
|
|
|
|
DW_AT (DW_AT_HP_is_result_param, 0x2029)
|
|
|
|
|
|
|
|
/* GNU extensions. */
|
|
|
|
DW_AT (DW_AT_sf_names, 0x2101)
|
|
|
|
DW_AT (DW_AT_src_info, 0x2102)
|
|
|
|
DW_AT (DW_AT_mac_info, 0x2103)
|
|
|
|
DW_AT (DW_AT_src_coords, 0x2104)
|
|
|
|
DW_AT (DW_AT_body_begin, 0x2105)
|
|
|
|
DW_AT (DW_AT_body_end, 0x2106)
|
|
|
|
DW_AT (DW_AT_GNU_vector, 0x2107)
|
|
|
|
/* Thread-safety annotations.
|
|
|
|
See http://gcc.gnu.org/wiki/ThreadSafetyAnnotation . */
|
|
|
|
DW_AT (DW_AT_GNU_guarded_by, 0x2108)
|
|
|
|
DW_AT (DW_AT_GNU_pt_guarded_by, 0x2109)
|
|
|
|
DW_AT (DW_AT_GNU_guarded, 0x210a)
|
|
|
|
DW_AT (DW_AT_GNU_pt_guarded, 0x210b)
|
|
|
|
DW_AT (DW_AT_GNU_locks_excluded, 0x210c)
|
|
|
|
DW_AT (DW_AT_GNU_exclusive_locks_required, 0x210d)
|
|
|
|
DW_AT (DW_AT_GNU_shared_locks_required, 0x210e)
|
|
|
|
/* One-definition rule violation detection.
|
|
|
|
See http://gcc.gnu.org/wiki/DwarfSeparateTypeInfo . */
|
|
|
|
DW_AT (DW_AT_GNU_odr_signature, 0x210f)
|
|
|
|
/* Template template argument name.
|
|
|
|
See http://gcc.gnu.org/wiki/TemplateParmsDwarf . */
|
|
|
|
DW_AT (DW_AT_GNU_template_name, 0x2110)
|
|
|
|
/* The GNU call site extension.
|
|
|
|
See http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open . */
|
|
|
|
DW_AT (DW_AT_GNU_call_site_value, 0x2111)
|
|
|
|
DW_AT (DW_AT_GNU_call_site_data_value, 0x2112)
|
|
|
|
DW_AT (DW_AT_GNU_call_site_target, 0x2113)
|
|
|
|
DW_AT (DW_AT_GNU_call_site_target_clobbered, 0x2114)
|
|
|
|
DW_AT (DW_AT_GNU_tail_call, 0x2115)
|
|
|
|
DW_AT (DW_AT_GNU_all_tail_call_sites, 0x2116)
|
|
|
|
DW_AT (DW_AT_GNU_all_call_sites, 0x2117)
|
|
|
|
DW_AT (DW_AT_GNU_all_source_call_sites, 0x2118)
|
|
|
|
/* Section offset into .debug_macro section. */
|
|
|
|
DW_AT (DW_AT_GNU_macros, 0x2119)
|
2014-10-05 17:25:03 +02:00
|
|
|
/* Attribute for C++ deleted special member functions (= delete;). */
|
|
|
|
DW_AT (DW_AT_GNU_deleted, 0x211a)
|
dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
gcc
* dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
(dwarf_tag_name): Use get_DW_TAG_name.
(dwarf_attr_name): Use get_DW_AT_name.
(dwarf_form_name): Use get_DW_FORM_name.
* dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
include
* dwarf2.h (enum dwarf_tag, enum dwarf_form, enum dwarf_attribute)
(enum dwarf_location_atom, enum dwarf_type, enum
dwarf_call_frame_info): Remove.
(DW_TAG, DW_TAG_DUP, DW_FORM, DW_AT, DW_AT_DUP, DW_OP)
(DW_OP_DUP, DW_ATE, DW_ATE_DUP, DW_CFA): New macros.
Include dwarf2.def.
(get_DW_TAG_name, get_DW_AT_name, get_DW_FORM_name)
(get_DW_OP_name, get_DW_ATE_name): Declare.
* dwarf2.def: New file, from dwarf2.h.
libiberty
* dwarfnames.c: New file.
* Makefile.in (CFILES): Add dwarfnames.
(REQUIRED_OFILES): Add dwarfnames.
(./dwarfnames.$(objext)): New target.
From-SVN: r186908
2012-04-27 16:14:14 +02:00
|
|
|
/* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */
|
|
|
|
DW_AT (DW_AT_GNU_dwo_name, 0x2130)
|
|
|
|
DW_AT (DW_AT_GNU_dwo_id, 0x2131)
|
2012-05-02 20:41:56 +02:00
|
|
|
DW_AT (DW_AT_GNU_ranges_base, 0x2132)
|
dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
gcc
* dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
(dwarf_tag_name): Use get_DW_TAG_name.
(dwarf_attr_name): Use get_DW_AT_name.
(dwarf_form_name): Use get_DW_FORM_name.
* dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
include
* dwarf2.h (enum dwarf_tag, enum dwarf_form, enum dwarf_attribute)
(enum dwarf_location_atom, enum dwarf_type, enum
dwarf_call_frame_info): Remove.
(DW_TAG, DW_TAG_DUP, DW_FORM, DW_AT, DW_AT_DUP, DW_OP)
(DW_OP_DUP, DW_ATE, DW_ATE_DUP, DW_CFA): New macros.
Include dwarf2.def.
(get_DW_TAG_name, get_DW_AT_name, get_DW_FORM_name)
(get_DW_OP_name, get_DW_ATE_name): Declare.
* dwarf2.def: New file, from dwarf2.h.
libiberty
* dwarfnames.c: New file.
* Makefile.in (CFILES): Add dwarfnames.
(REQUIRED_OFILES): Add dwarfnames.
(./dwarfnames.$(objext)): New target.
From-SVN: r186908
2012-04-27 16:14:14 +02:00
|
|
|
DW_AT (DW_AT_GNU_addr_base, 0x2133)
|
|
|
|
DW_AT (DW_AT_GNU_pubnames, 0x2134)
|
|
|
|
DW_AT (DW_AT_GNU_pubtypes, 0x2135)
|
2013-08-19 22:11:09 +02:00
|
|
|
/* Attribute for discriminator.
|
|
|
|
See http://gcc.gnu.org/wiki/Discriminator */
|
|
|
|
DW_AT (DW_AT_GNU_discriminator, 0x2136)
|
[LVU] Introduce location views
This patch introduces an option to enable the generation of location
views along with location lists. The exact format depends on the
DWARF version: it can be a separate attribute (DW_AT_GNU_locviews) or
(DW_LLE_view_pair) entries in DWARF5+ loclists.
Line number tables are also affected. If the assembler is found, at
compiler build time, to support .loc views, we use them and
assembler-computed view labels, otherwise we output compiler-generated
line number programs with conservatively-computed view labels. In
either case, we output view information next to line number changes
when verbose assembly output is requested.
This patch requires an LVU patch that modifies the exported API of
final_scan_insn. It also expects the entire SFN patchset to be
installed first, although SFN is not a requirement for LVU.
for include/ChangeLog
* dwarf2.def (DW_AT_GNU_locviews): New.
* dwarf2.h (enum dwarf_location_list_entry_type): Add
DW_LLE_GNU_view_pair.
(DW_LLE_view_pair): Define.
for gcc/ChangeLog
* common.opt (gvariable-location-views): New.
(gvariable-location-views=incompat5): New.
* config.in: Rebuilt.
* configure: Rebuilt.
* configure.ac: Test assembler for view support.
* dwarf2asm.c (dw2_asm_output_symname_uleb128): New.
* dwarf2asm.h (dw2_asm_output_symname_uleb128): Declare.
* dwarf2out.c (var_loc_view): New typedef.
(struct dw_loc_list_struct): Add vl_symbol, vbegin, vend.
(dwarf2out_locviews_in_attribute): New.
(dwarf2out_locviews_in_loclist): New.
(dw_val_equal_p): Compare val_view_list of dw_val_class_view_lists.
(enum dw_line_info_opcode): Add LI_adv_address.
(struct dw_line_info_table): Add view.
(RESET_NEXT_VIEW, RESETTING_VIEW_P): New macros.
(DWARF2_ASM_VIEW_DEBUG_INFO): Define default.
(zero_view_p): New variable.
(ZERO_VIEW_P): New macro.
(output_asm_line_debug_info): New.
(struct var_loc_node): Add view.
(add_AT_view_list, AT_loc_list): New.
(add_var_loc_to_decl): Add view param. Test it against last.
(new_loc_list): Add view params. Record them.
(AT_loc_list_ptr): Handle loc and view lists.
(view_list_to_loc_list_val_node): New.
(print_dw_val): Handle dw_val_class_view_list.
(size_of_die): Likewise.
(value_format): Likewise.
(loc_list_has_views): New.
(gen_llsym): Set vl_symbol too.
(maybe_gen_llsym, skip_loc_list_entry): New.
(dwarf2out_maybe_output_loclist_view_pair): New.
(output_loc_list): Output view list or entries too.
(output_view_list_offset): New.
(output_die): Handle dw_val_class_view_list.
(output_dwarf_version): New.
(output_compilation_unit_header): Use it.
(output_skeleton_debug_sections): Likewise.
(output_rnglists, output_line_info): Likewise.
(output_pubnames, output_aranges): Update version comments.
(output_one_line_info_table): Output view numbers in asm comments.
(dw_loc_list): Determine current endview, pass it to new_loc_list.
Call maybe_gen_llsym.
(loc_list_from_tree_1): Adjust.
(add_AT_location_description): Create view list attribute if
needed, check it's absent otherwise.
(convert_cfa_to_fb_loc_list): Adjust.
(maybe_emit_file): Call output_asm_line_debug_info for test.
(dwarf2out_var_location): Reset views as needed. Precompute
add_var_loc_to_decl args. Call get_attr_min_length only if we have the
attribute. Set view.
(new_line_info_table): Reset next view.
(set_cur_line_info_table): Call output_asm_line_debug_info for test.
(dwarf2out_source_line): Likewise. Output view resets and labels to
the assembler, or select appropriate line info opcodes.
(prune_unused_types_walk_attribs): Handle dw_val_class_view_list.
(optimize_string_length): Catch it. Adjust.
(resolve_addr): Copy vl_symbol along with ll_symbol. Handle
dw_val_class_view_list, and remove it if no longer needed.
(hash_loc_list): Hash view numbers.
(loc_list_hasher::equal): Compare them.
(optimize_location_lists): Check whether a view list symbol is
needed, and whether the locview attribute is present, and
whether they match. Remove the locview attribute if no longer
needed.
(index_location_lists): Call skip_loc_list_entry for test.
(dwarf2out_finish): Call output_asm_line_debug_info for test.
Use output_dwarf_version.
* dwarf2out.h (enum dw_val_class): Add dw_val_class_view_list.
(struct dw_val_node): Add val_view_list.
* final.c (SEEN_NEXT_VIEW): New.
(set_next_view_needed): New.
(clear_next_view_needed): New.
(maybe_output_next_view): New.
(final_start_function): Rename to...
(final_start_function_1): ... this. Take pointer to FIRST,
add SEEN parameter. Emit param bindings in the initial view.
(final_start_function): Reintroduce SEEN-less interface.
(final): Rename to...
(final_1): ... this. Take SEEN parameter. Output final pending
next view at the end.
(final): Reintroduce seen-less interface.
(final_scan_insn): Output pending next view before switching
sections or ending a block. Mark the next view as needed when
outputting variable locations. Notify debug backend of section
changes, and of location view changes.
(rest_of_handle_final): Adjust.
* toplev.c (process_options): Autodetect value for debug variable
location views option. Warn on incompat5 without -gdwarf-5.
* doc/invoke.texi (gvariable-location-views): New.
(gvariable-location-views=incompat5): New.
(gno-variable-location-views): New.
From-SVN: r257510
2018-02-09 03:21:57 +01:00
|
|
|
DW_AT (DW_AT_GNU_locviews, 0x2137)
|
2018-02-09 03:22:11 +01:00
|
|
|
DW_AT (DW_AT_GNU_entry_view, 0x2138)
|
dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
gcc
* dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
(dwarf_tag_name): Use get_DW_TAG_name.
(dwarf_attr_name): Use get_DW_AT_name.
(dwarf_form_name): Use get_DW_FORM_name.
* dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
include
* dwarf2.h (enum dwarf_tag, enum dwarf_form, enum dwarf_attribute)
(enum dwarf_location_atom, enum dwarf_type, enum
dwarf_call_frame_info): Remove.
(DW_TAG, DW_TAG_DUP, DW_FORM, DW_AT, DW_AT_DUP, DW_OP)
(DW_OP_DUP, DW_ATE, DW_ATE_DUP, DW_CFA): New macros.
Include dwarf2.def.
(get_DW_TAG_name, get_DW_AT_name, get_DW_FORM_name)
(get_DW_OP_name, get_DW_ATE_name): Declare.
* dwarf2.def: New file, from dwarf2.h.
libiberty
* dwarfnames.c: New file.
* Makefile.in (CFILES): Add dwarfnames.
(REQUIRED_OFILES): Add dwarfnames.
(./dwarfnames.$(objext)): New target.
From-SVN: r186908
2012-04-27 16:14:14 +02:00
|
|
|
/* VMS extensions. */
|
|
|
|
DW_AT (DW_AT_VMS_rtnbeg_pd_address, 0x2201)
|
|
|
|
/* GNAT extensions. */
|
|
|
|
/* GNAT descriptive type.
|
|
|
|
See http://gcc.gnu.org/wiki/DW_AT_GNAT_descriptive_type . */
|
|
|
|
DW_AT (DW_AT_use_GNAT_descriptive_type, 0x2301)
|
|
|
|
DW_AT (DW_AT_GNAT_descriptive_type, 0x2302)
|
2015-08-14 11:48:02 +02:00
|
|
|
/* Rational constant extension.
|
|
|
|
See https://gcc.gnu.org/wiki/DW_AT_GNU_numerator_denominator . */
|
|
|
|
DW_TAG (DW_AT_GNU_numerator, 0x2303)
|
|
|
|
DW_TAG (DW_AT_GNU_denominator, 0x2304)
|
2015-08-14 11:48:13 +02:00
|
|
|
/* Biased integer extension.
|
|
|
|
See https://gcc.gnu.org/wiki/DW_AT_GNU_bias . */
|
|
|
|
DW_TAG (DW_AT_GNU_bias, 0x2305)
|
dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
gcc
* dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
(dwarf_tag_name): Use get_DW_TAG_name.
(dwarf_attr_name): Use get_DW_AT_name.
(dwarf_form_name): Use get_DW_FORM_name.
* dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
include
* dwarf2.h (enum dwarf_tag, enum dwarf_form, enum dwarf_attribute)
(enum dwarf_location_atom, enum dwarf_type, enum
dwarf_call_frame_info): Remove.
(DW_TAG, DW_TAG_DUP, DW_FORM, DW_AT, DW_AT_DUP, DW_OP)
(DW_OP_DUP, DW_ATE, DW_ATE_DUP, DW_CFA): New macros.
Include dwarf2.def.
(get_DW_TAG_name, get_DW_AT_name, get_DW_FORM_name)
(get_DW_OP_name, get_DW_ATE_name): Declare.
* dwarf2.def: New file, from dwarf2.h.
libiberty
* dwarfnames.c: New file.
* Makefile.in (CFILES): Add dwarfnames.
(REQUIRED_OFILES): Add dwarfnames.
(./dwarfnames.$(objext)): New target.
From-SVN: r186908
2012-04-27 16:14:14 +02:00
|
|
|
/* UPC extension. */
|
|
|
|
DW_AT (DW_AT_upc_threads_scaled, 0x3210)
|
|
|
|
/* PGI (STMicroelectronics) extensions. */
|
|
|
|
DW_AT (DW_AT_PGI_lbase, 0x3a00)
|
|
|
|
DW_AT (DW_AT_PGI_soffset, 0x3a01)
|
|
|
|
DW_AT (DW_AT_PGI_lstride, 0x3a02)
|
2014-11-14 18:18:34 +01:00
|
|
|
/* Apple extensions. */
|
|
|
|
DW_AT (DW_AT_APPLE_optimized, 0x3fe1)
|
|
|
|
DW_AT (DW_AT_APPLE_flags, 0x3fe2)
|
|
|
|
DW_AT (DW_AT_APPLE_isa, 0x3fe3)
|
|
|
|
DW_AT (DW_AT_APPLE_block, 0x3fe4)
|
|
|
|
DW_AT (DW_AT_APPLE_major_runtime_vers, 0x3fe5)
|
|
|
|
DW_AT (DW_AT_APPLE_runtime_class, 0x3fe6)
|
|
|
|
DW_AT (DW_AT_APPLE_omit_frame_ptr, 0x3fe7)
|
|
|
|
DW_AT (DW_AT_APPLE_property_name, 0x3fe8)
|
|
|
|
DW_AT (DW_AT_APPLE_property_getter, 0x3fe9)
|
|
|
|
DW_AT (DW_AT_APPLE_property_setter, 0x3fea)
|
|
|
|
DW_AT (DW_AT_APPLE_property_attribute, 0x3feb)
|
|
|
|
DW_AT (DW_AT_APPLE_objc_complete_type, 0x3fec)
|
|
|
|
DW_AT (DW_AT_APPLE_property, 0x3fed)
|
dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
gcc
* dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
(dwarf_tag_name): Use get_DW_TAG_name.
(dwarf_attr_name): Use get_DW_AT_name.
(dwarf_form_name): Use get_DW_FORM_name.
* dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
include
* dwarf2.h (enum dwarf_tag, enum dwarf_form, enum dwarf_attribute)
(enum dwarf_location_atom, enum dwarf_type, enum
dwarf_call_frame_info): Remove.
(DW_TAG, DW_TAG_DUP, DW_FORM, DW_AT, DW_AT_DUP, DW_OP)
(DW_OP_DUP, DW_ATE, DW_ATE_DUP, DW_CFA): New macros.
Include dwarf2.def.
(get_DW_TAG_name, get_DW_AT_name, get_DW_FORM_name)
(get_DW_OP_name, get_DW_ATE_name): Declare.
* dwarf2.def: New file, from dwarf2.h.
libiberty
* dwarfnames.c: New file.
* Makefile.in (CFILES): Add dwarfnames.
(REQUIRED_OFILES): Add dwarfnames.
(./dwarfnames.$(objext)): New target.
From-SVN: r186908
2012-04-27 16:14:14 +02:00
|
|
|
DW_END_AT
|
|
|
|
|
|
|
|
DW_FIRST_OP (DW_OP_addr, 0x03)
|
|
|
|
DW_OP (DW_OP_deref, 0x06)
|
|
|
|
DW_OP (DW_OP_const1u, 0x08)
|
|
|
|
DW_OP (DW_OP_const1s, 0x09)
|
|
|
|
DW_OP (DW_OP_const2u, 0x0a)
|
|
|
|
DW_OP (DW_OP_const2s, 0x0b)
|
|
|
|
DW_OP (DW_OP_const4u, 0x0c)
|
|
|
|
DW_OP (DW_OP_const4s, 0x0d)
|
|
|
|
DW_OP (DW_OP_const8u, 0x0e)
|
|
|
|
DW_OP (DW_OP_const8s, 0x0f)
|
|
|
|
DW_OP (DW_OP_constu, 0x10)
|
|
|
|
DW_OP (DW_OP_consts, 0x11)
|
|
|
|
DW_OP (DW_OP_dup, 0x12)
|
|
|
|
DW_OP (DW_OP_drop, 0x13)
|
|
|
|
DW_OP (DW_OP_over, 0x14)
|
|
|
|
DW_OP (DW_OP_pick, 0x15)
|
|
|
|
DW_OP (DW_OP_swap, 0x16)
|
|
|
|
DW_OP (DW_OP_rot, 0x17)
|
|
|
|
DW_OP (DW_OP_xderef, 0x18)
|
|
|
|
DW_OP (DW_OP_abs, 0x19)
|
|
|
|
DW_OP (DW_OP_and, 0x1a)
|
|
|
|
DW_OP (DW_OP_div, 0x1b)
|
|
|
|
DW_OP (DW_OP_minus, 0x1c)
|
|
|
|
DW_OP (DW_OP_mod, 0x1d)
|
|
|
|
DW_OP (DW_OP_mul, 0x1e)
|
|
|
|
DW_OP (DW_OP_neg, 0x1f)
|
|
|
|
DW_OP (DW_OP_not, 0x20)
|
|
|
|
DW_OP (DW_OP_or, 0x21)
|
|
|
|
DW_OP (DW_OP_plus, 0x22)
|
|
|
|
DW_OP (DW_OP_plus_uconst, 0x23)
|
|
|
|
DW_OP (DW_OP_shl, 0x24)
|
|
|
|
DW_OP (DW_OP_shr, 0x25)
|
|
|
|
DW_OP (DW_OP_shra, 0x26)
|
|
|
|
DW_OP (DW_OP_xor, 0x27)
|
|
|
|
DW_OP (DW_OP_bra, 0x28)
|
|
|
|
DW_OP (DW_OP_eq, 0x29)
|
|
|
|
DW_OP (DW_OP_ge, 0x2a)
|
|
|
|
DW_OP (DW_OP_gt, 0x2b)
|
|
|
|
DW_OP (DW_OP_le, 0x2c)
|
|
|
|
DW_OP (DW_OP_lt, 0x2d)
|
|
|
|
DW_OP (DW_OP_ne, 0x2e)
|
|
|
|
DW_OP (DW_OP_skip, 0x2f)
|
|
|
|
DW_OP (DW_OP_lit0, 0x30)
|
|
|
|
DW_OP (DW_OP_lit1, 0x31)
|
|
|
|
DW_OP (DW_OP_lit2, 0x32)
|
|
|
|
DW_OP (DW_OP_lit3, 0x33)
|
|
|
|
DW_OP (DW_OP_lit4, 0x34)
|
|
|
|
DW_OP (DW_OP_lit5, 0x35)
|
|
|
|
DW_OP (DW_OP_lit6, 0x36)
|
|
|
|
DW_OP (DW_OP_lit7, 0x37)
|
|
|
|
DW_OP (DW_OP_lit8, 0x38)
|
|
|
|
DW_OP (DW_OP_lit9, 0x39)
|
|
|
|
DW_OP (DW_OP_lit10, 0x3a)
|
|
|
|
DW_OP (DW_OP_lit11, 0x3b)
|
|
|
|
DW_OP (DW_OP_lit12, 0x3c)
|
|
|
|
DW_OP (DW_OP_lit13, 0x3d)
|
|
|
|
DW_OP (DW_OP_lit14, 0x3e)
|
|
|
|
DW_OP (DW_OP_lit15, 0x3f)
|
|
|
|
DW_OP (DW_OP_lit16, 0x40)
|
|
|
|
DW_OP (DW_OP_lit17, 0x41)
|
|
|
|
DW_OP (DW_OP_lit18, 0x42)
|
|
|
|
DW_OP (DW_OP_lit19, 0x43)
|
|
|
|
DW_OP (DW_OP_lit20, 0x44)
|
|
|
|
DW_OP (DW_OP_lit21, 0x45)
|
|
|
|
DW_OP (DW_OP_lit22, 0x46)
|
|
|
|
DW_OP (DW_OP_lit23, 0x47)
|
|
|
|
DW_OP (DW_OP_lit24, 0x48)
|
|
|
|
DW_OP (DW_OP_lit25, 0x49)
|
|
|
|
DW_OP (DW_OP_lit26, 0x4a)
|
|
|
|
DW_OP (DW_OP_lit27, 0x4b)
|
|
|
|
DW_OP (DW_OP_lit28, 0x4c)
|
|
|
|
DW_OP (DW_OP_lit29, 0x4d)
|
|
|
|
DW_OP (DW_OP_lit30, 0x4e)
|
|
|
|
DW_OP (DW_OP_lit31, 0x4f)
|
|
|
|
DW_OP (DW_OP_reg0, 0x50)
|
|
|
|
DW_OP (DW_OP_reg1, 0x51)
|
|
|
|
DW_OP (DW_OP_reg2, 0x52)
|
|
|
|
DW_OP (DW_OP_reg3, 0x53)
|
|
|
|
DW_OP (DW_OP_reg4, 0x54)
|
|
|
|
DW_OP (DW_OP_reg5, 0x55)
|
|
|
|
DW_OP (DW_OP_reg6, 0x56)
|
|
|
|
DW_OP (DW_OP_reg7, 0x57)
|
|
|
|
DW_OP (DW_OP_reg8, 0x58)
|
|
|
|
DW_OP (DW_OP_reg9, 0x59)
|
|
|
|
DW_OP (DW_OP_reg10, 0x5a)
|
|
|
|
DW_OP (DW_OP_reg11, 0x5b)
|
|
|
|
DW_OP (DW_OP_reg12, 0x5c)
|
|
|
|
DW_OP (DW_OP_reg13, 0x5d)
|
|
|
|
DW_OP (DW_OP_reg14, 0x5e)
|
|
|
|
DW_OP (DW_OP_reg15, 0x5f)
|
|
|
|
DW_OP (DW_OP_reg16, 0x60)
|
|
|
|
DW_OP (DW_OP_reg17, 0x61)
|
|
|
|
DW_OP (DW_OP_reg18, 0x62)
|
|
|
|
DW_OP (DW_OP_reg19, 0x63)
|
|
|
|
DW_OP (DW_OP_reg20, 0x64)
|
|
|
|
DW_OP (DW_OP_reg21, 0x65)
|
|
|
|
DW_OP (DW_OP_reg22, 0x66)
|
|
|
|
DW_OP (DW_OP_reg23, 0x67)
|
|
|
|
DW_OP (DW_OP_reg24, 0x68)
|
|
|
|
DW_OP (DW_OP_reg25, 0x69)
|
|
|
|
DW_OP (DW_OP_reg26, 0x6a)
|
|
|
|
DW_OP (DW_OP_reg27, 0x6b)
|
|
|
|
DW_OP (DW_OP_reg28, 0x6c)
|
|
|
|
DW_OP (DW_OP_reg29, 0x6d)
|
|
|
|
DW_OP (DW_OP_reg30, 0x6e)
|
|
|
|
DW_OP (DW_OP_reg31, 0x6f)
|
|
|
|
DW_OP (DW_OP_breg0, 0x70)
|
|
|
|
DW_OP (DW_OP_breg1, 0x71)
|
|
|
|
DW_OP (DW_OP_breg2, 0x72)
|
|
|
|
DW_OP (DW_OP_breg3, 0x73)
|
|
|
|
DW_OP (DW_OP_breg4, 0x74)
|
|
|
|
DW_OP (DW_OP_breg5, 0x75)
|
|
|
|
DW_OP (DW_OP_breg6, 0x76)
|
|
|
|
DW_OP (DW_OP_breg7, 0x77)
|
|
|
|
DW_OP (DW_OP_breg8, 0x78)
|
|
|
|
DW_OP (DW_OP_breg9, 0x79)
|
|
|
|
DW_OP (DW_OP_breg10, 0x7a)
|
|
|
|
DW_OP (DW_OP_breg11, 0x7b)
|
|
|
|
DW_OP (DW_OP_breg12, 0x7c)
|
|
|
|
DW_OP (DW_OP_breg13, 0x7d)
|
|
|
|
DW_OP (DW_OP_breg14, 0x7e)
|
|
|
|
DW_OP (DW_OP_breg15, 0x7f)
|
|
|
|
DW_OP (DW_OP_breg16, 0x80)
|
|
|
|
DW_OP (DW_OP_breg17, 0x81)
|
|
|
|
DW_OP (DW_OP_breg18, 0x82)
|
|
|
|
DW_OP (DW_OP_breg19, 0x83)
|
|
|
|
DW_OP (DW_OP_breg20, 0x84)
|
|
|
|
DW_OP (DW_OP_breg21, 0x85)
|
|
|
|
DW_OP (DW_OP_breg22, 0x86)
|
|
|
|
DW_OP (DW_OP_breg23, 0x87)
|
|
|
|
DW_OP (DW_OP_breg24, 0x88)
|
|
|
|
DW_OP (DW_OP_breg25, 0x89)
|
|
|
|
DW_OP (DW_OP_breg26, 0x8a)
|
|
|
|
DW_OP (DW_OP_breg27, 0x8b)
|
|
|
|
DW_OP (DW_OP_breg28, 0x8c)
|
|
|
|
DW_OP (DW_OP_breg29, 0x8d)
|
|
|
|
DW_OP (DW_OP_breg30, 0x8e)
|
|
|
|
DW_OP (DW_OP_breg31, 0x8f)
|
|
|
|
DW_OP (DW_OP_regx, 0x90)
|
|
|
|
DW_OP (DW_OP_fbreg, 0x91)
|
|
|
|
DW_OP (DW_OP_bregx, 0x92)
|
|
|
|
DW_OP (DW_OP_piece, 0x93)
|
|
|
|
DW_OP (DW_OP_deref_size, 0x94)
|
|
|
|
DW_OP (DW_OP_xderef_size, 0x95)
|
|
|
|
DW_OP (DW_OP_nop, 0x96)
|
|
|
|
/* DWARF 3 extensions. */
|
|
|
|
DW_OP (DW_OP_push_object_address, 0x97)
|
|
|
|
DW_OP (DW_OP_call2, 0x98)
|
|
|
|
DW_OP (DW_OP_call4, 0x99)
|
|
|
|
DW_OP (DW_OP_call_ref, 0x9a)
|
|
|
|
DW_OP (DW_OP_form_tls_address, 0x9b)
|
|
|
|
DW_OP (DW_OP_call_frame_cfa, 0x9c)
|
|
|
|
DW_OP (DW_OP_bit_piece, 0x9d)
|
|
|
|
|
|
|
|
/* DWARF 4 extensions. */
|
|
|
|
DW_OP (DW_OP_implicit_value, 0x9e)
|
|
|
|
DW_OP (DW_OP_stack_value, 0x9f)
|
|
|
|
|
2016-10-17 19:35:33 +02:00
|
|
|
/* DWARF 5 extensions. */
|
|
|
|
DW_OP (DW_OP_implicit_pointer, 0xa0)
|
|
|
|
DW_OP (DW_OP_addrx, 0xa1)
|
|
|
|
DW_OP (DW_OP_constx, 0xa2)
|
|
|
|
DW_OP (DW_OP_entry_value, 0xa3)
|
|
|
|
DW_OP (DW_OP_const_type, 0xa4)
|
|
|
|
DW_OP (DW_OP_regval_type, 0xa5)
|
|
|
|
DW_OP (DW_OP_deref_type, 0xa6)
|
|
|
|
DW_OP (DW_OP_xderef_type, 0xa7)
|
|
|
|
DW_OP (DW_OP_convert, 0xa8)
|
|
|
|
DW_OP (DW_OP_reinterpret, 0xa9)
|
|
|
|
|
dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
gcc
* dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
(dwarf_tag_name): Use get_DW_TAG_name.
(dwarf_attr_name): Use get_DW_AT_name.
(dwarf_form_name): Use get_DW_FORM_name.
* dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
include
* dwarf2.h (enum dwarf_tag, enum dwarf_form, enum dwarf_attribute)
(enum dwarf_location_atom, enum dwarf_type, enum
dwarf_call_frame_info): Remove.
(DW_TAG, DW_TAG_DUP, DW_FORM, DW_AT, DW_AT_DUP, DW_OP)
(DW_OP_DUP, DW_ATE, DW_ATE_DUP, DW_CFA): New macros.
Include dwarf2.def.
(get_DW_TAG_name, get_DW_AT_name, get_DW_FORM_name)
(get_DW_OP_name, get_DW_ATE_name): Declare.
* dwarf2.def: New file, from dwarf2.h.
libiberty
* dwarfnames.c: New file.
* Makefile.in (CFILES): Add dwarfnames.
(REQUIRED_OFILES): Add dwarfnames.
(./dwarfnames.$(objext)): New target.
From-SVN: r186908
2012-04-27 16:14:14 +02:00
|
|
|
DW_OP_DUP (DW_OP_lo_user, 0xe0) /* Implementation-defined range start. */
|
|
|
|
DW_OP_DUP (DW_OP_hi_user, 0xff) /* Implementation-defined range end. */
|
|
|
|
|
|
|
|
/* GNU extensions. */
|
|
|
|
DW_OP (DW_OP_GNU_push_tls_address, 0xe0)
|
|
|
|
/* The following is for marking variables that are uninitialized. */
|
|
|
|
DW_OP (DW_OP_GNU_uninit, 0xf0)
|
|
|
|
DW_OP (DW_OP_GNU_encoded_addr, 0xf1)
|
|
|
|
/* The GNU implicit pointer extension.
|
|
|
|
See http://www.dwarfstd.org/ShowIssue.php?issue=100831.1&type=open . */
|
|
|
|
DW_OP (DW_OP_GNU_implicit_pointer, 0xf2)
|
|
|
|
/* The GNU entry value extension.
|
|
|
|
See http://www.dwarfstd.org/ShowIssue.php?issue=100909.1&type=open . */
|
|
|
|
DW_OP (DW_OP_GNU_entry_value, 0xf3)
|
|
|
|
/* The GNU typed stack extension.
|
|
|
|
See http://www.dwarfstd.org/doc/040408.1.html . */
|
|
|
|
DW_OP (DW_OP_GNU_const_type, 0xf4)
|
|
|
|
DW_OP (DW_OP_GNU_regval_type, 0xf5)
|
|
|
|
DW_OP (DW_OP_GNU_deref_type, 0xf6)
|
|
|
|
DW_OP (DW_OP_GNU_convert, 0xf7)
|
|
|
|
DW_OP (DW_OP_GNU_reinterpret, 0xf9)
|
|
|
|
/* The GNU parameter ref extension. */
|
|
|
|
DW_OP (DW_OP_GNU_parameter_ref, 0xfa)
|
2012-09-07 01:32:59 +02:00
|
|
|
/* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */
|
2012-04-28 23:37:19 +02:00
|
|
|
DW_OP (DW_OP_GNU_addr_index, 0xfb)
|
2012-06-19 01:35:08 +02:00
|
|
|
DW_OP (DW_OP_GNU_const_index, 0xfc)
|
2017-02-25 09:18:24 +01:00
|
|
|
/* The GNU variable value extension.
|
|
|
|
See http://dwarfstd.org/ShowIssue.php?issue=161109.2 . */
|
|
|
|
DW_OP (DW_OP_GNU_variable_value, 0xfd)
|
dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
gcc
* dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
(dwarf_tag_name): Use get_DW_TAG_name.
(dwarf_attr_name): Use get_DW_AT_name.
(dwarf_form_name): Use get_DW_FORM_name.
* dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
include
* dwarf2.h (enum dwarf_tag, enum dwarf_form, enum dwarf_attribute)
(enum dwarf_location_atom, enum dwarf_type, enum
dwarf_call_frame_info): Remove.
(DW_TAG, DW_TAG_DUP, DW_FORM, DW_AT, DW_AT_DUP, DW_OP)
(DW_OP_DUP, DW_ATE, DW_ATE_DUP, DW_CFA): New macros.
Include dwarf2.def.
(get_DW_TAG_name, get_DW_AT_name, get_DW_FORM_name)
(get_DW_OP_name, get_DW_ATE_name): Declare.
* dwarf2.def: New file, from dwarf2.h.
libiberty
* dwarfnames.c: New file.
* Makefile.in (CFILES): Add dwarfnames.
(REQUIRED_OFILES): Add dwarfnames.
(./dwarfnames.$(objext)): New target.
From-SVN: r186908
2012-04-27 16:14:14 +02:00
|
|
|
/* HP extensions. */
|
|
|
|
DW_OP_DUP (DW_OP_HP_unknown, 0xe0) /* Ouch, the same as GNU_push_tls_address. */
|
|
|
|
DW_OP (DW_OP_HP_is_value, 0xe1)
|
|
|
|
DW_OP (DW_OP_HP_fltconst4, 0xe2)
|
|
|
|
DW_OP (DW_OP_HP_fltconst8, 0xe3)
|
|
|
|
DW_OP (DW_OP_HP_mod_range, 0xe4)
|
|
|
|
DW_OP (DW_OP_HP_unmod_range, 0xe5)
|
|
|
|
DW_OP (DW_OP_HP_tls, 0xe6)
|
|
|
|
/* PGI (STMicroelectronics) extensions. */
|
|
|
|
DW_OP (DW_OP_PGI_omp_thread_num, 0xf8)
|
2017-01-04 15:25:04 +01:00
|
|
|
/* AARCH64 extensions.
|
|
|
|
DW_OP_AARCH64_operation takes one mandatory unsigned LEB128 operand.
|
|
|
|
Bits[6:0] of this operand is the action code, all others bits are initialized
|
|
|
|
to 0 except explicitly documented for one action. Please refer AArch64 DWARF
|
|
|
|
ABI documentation for details. */
|
|
|
|
DW_OP (DW_OP_AARCH64_operation, 0xea)
|
dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
gcc
* dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
(dwarf_tag_name): Use get_DW_TAG_name.
(dwarf_attr_name): Use get_DW_AT_name.
(dwarf_form_name): Use get_DW_FORM_name.
* dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
include
* dwarf2.h (enum dwarf_tag, enum dwarf_form, enum dwarf_attribute)
(enum dwarf_location_atom, enum dwarf_type, enum
dwarf_call_frame_info): Remove.
(DW_TAG, DW_TAG_DUP, DW_FORM, DW_AT, DW_AT_DUP, DW_OP)
(DW_OP_DUP, DW_ATE, DW_ATE_DUP, DW_CFA): New macros.
Include dwarf2.def.
(get_DW_TAG_name, get_DW_AT_name, get_DW_FORM_name)
(get_DW_OP_name, get_DW_ATE_name): Declare.
* dwarf2.def: New file, from dwarf2.h.
libiberty
* dwarfnames.c: New file.
* Makefile.in (CFILES): Add dwarfnames.
(REQUIRED_OFILES): Add dwarfnames.
(./dwarfnames.$(objext)): New target.
From-SVN: r186908
2012-04-27 16:14:14 +02:00
|
|
|
DW_END_OP
|
|
|
|
|
|
|
|
DW_FIRST_ATE (DW_ATE_void, 0x0)
|
|
|
|
DW_ATE (DW_ATE_address, 0x1)
|
|
|
|
DW_ATE (DW_ATE_boolean, 0x2)
|
|
|
|
DW_ATE (DW_ATE_complex_float, 0x3)
|
|
|
|
DW_ATE (DW_ATE_float, 0x4)
|
|
|
|
DW_ATE (DW_ATE_signed, 0x5)
|
|
|
|
DW_ATE (DW_ATE_signed_char, 0x6)
|
|
|
|
DW_ATE (DW_ATE_unsigned, 0x7)
|
|
|
|
DW_ATE (DW_ATE_unsigned_char, 0x8)
|
|
|
|
/* DWARF 3. */
|
|
|
|
DW_ATE (DW_ATE_imaginary_float, 0x9)
|
|
|
|
DW_ATE (DW_ATE_packed_decimal, 0xa)
|
|
|
|
DW_ATE (DW_ATE_numeric_string, 0xb)
|
|
|
|
DW_ATE (DW_ATE_edited, 0xc)
|
|
|
|
DW_ATE (DW_ATE_signed_fixed, 0xd)
|
|
|
|
DW_ATE (DW_ATE_unsigned_fixed, 0xe)
|
|
|
|
DW_ATE (DW_ATE_decimal_float, 0xf)
|
|
|
|
/* DWARF 4. */
|
|
|
|
DW_ATE (DW_ATE_UTF, 0x10)
|
2016-10-17 19:35:33 +02:00
|
|
|
/* DWARF 5. */
|
|
|
|
DW_ATE (DW_ATE_UCS, 0x11)
|
|
|
|
DW_ATE (DW_ATE_ASCII, 0x12)
|
dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
gcc
* dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
(dwarf_tag_name): Use get_DW_TAG_name.
(dwarf_attr_name): Use get_DW_AT_name.
(dwarf_form_name): Use get_DW_FORM_name.
* dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
include
* dwarf2.h (enum dwarf_tag, enum dwarf_form, enum dwarf_attribute)
(enum dwarf_location_atom, enum dwarf_type, enum
dwarf_call_frame_info): Remove.
(DW_TAG, DW_TAG_DUP, DW_FORM, DW_AT, DW_AT_DUP, DW_OP)
(DW_OP_DUP, DW_ATE, DW_ATE_DUP, DW_CFA): New macros.
Include dwarf2.def.
(get_DW_TAG_name, get_DW_AT_name, get_DW_FORM_name)
(get_DW_OP_name, get_DW_ATE_name): Declare.
* dwarf2.def: New file, from dwarf2.h.
libiberty
* dwarfnames.c: New file.
* Makefile.in (CFILES): Add dwarfnames.
(REQUIRED_OFILES): Add dwarfnames.
(./dwarfnames.$(objext)): New target.
From-SVN: r186908
2012-04-27 16:14:14 +02:00
|
|
|
|
|
|
|
DW_ATE_DUP (DW_ATE_lo_user, 0x80)
|
|
|
|
DW_ATE_DUP (DW_ATE_hi_user, 0xff)
|
|
|
|
|
|
|
|
/* HP extensions. */
|
|
|
|
DW_ATE (DW_ATE_HP_float80, 0x80) /* Floating-point (80 bit). */
|
|
|
|
DW_ATE (DW_ATE_HP_complex_float80, 0x81) /* Complex floating-point (80 bit). */
|
|
|
|
DW_ATE (DW_ATE_HP_float128, 0x82) /* Floating-point (128 bit). */
|
|
|
|
DW_ATE (DW_ATE_HP_complex_float128, 0x83) /* Complex fp (128 bit). */
|
|
|
|
DW_ATE (DW_ATE_HP_floathpintel, 0x84) /* Floating-point (82 bit IA64). */
|
|
|
|
DW_ATE (DW_ATE_HP_imaginary_float80, 0x85)
|
|
|
|
DW_ATE (DW_ATE_HP_imaginary_float128, 0x86)
|
|
|
|
DW_ATE (DW_ATE_HP_VAX_float, 0x88) /* F or G floating. */
|
|
|
|
DW_ATE (DW_ATE_HP_VAX_float_d, 0x89) /* D floating. */
|
|
|
|
DW_ATE (DW_ATE_HP_packed_decimal, 0x8a) /* Cobol. */
|
|
|
|
DW_ATE (DW_ATE_HP_zoned_decimal, 0x8b) /* Cobol. */
|
|
|
|
DW_ATE (DW_ATE_HP_edited, 0x8c) /* Cobol. */
|
|
|
|
DW_ATE (DW_ATE_HP_signed_fixed, 0x8d) /* Cobol. */
|
|
|
|
DW_ATE (DW_ATE_HP_unsigned_fixed, 0x8e) /* Cobol. */
|
|
|
|
DW_ATE (DW_ATE_HP_VAX_complex_float, 0x8f) /* F or G floating complex. */
|
|
|
|
DW_ATE (DW_ATE_HP_VAX_complex_float_d, 0x90) /* D floating complex. */
|
|
|
|
|
|
|
|
DW_END_ATE
|
|
|
|
|
|
|
|
DW_FIRST_CFA (DW_CFA_advance_loc, 0x40)
|
|
|
|
DW_CFA (DW_CFA_offset, 0x80)
|
|
|
|
DW_CFA (DW_CFA_restore, 0xc0)
|
|
|
|
DW_CFA (DW_CFA_nop, 0x00)
|
|
|
|
DW_CFA (DW_CFA_set_loc, 0x01)
|
|
|
|
DW_CFA (DW_CFA_advance_loc1, 0x02)
|
|
|
|
DW_CFA (DW_CFA_advance_loc2, 0x03)
|
|
|
|
DW_CFA (DW_CFA_advance_loc4, 0x04)
|
|
|
|
DW_CFA (DW_CFA_offset_extended, 0x05)
|
|
|
|
DW_CFA (DW_CFA_restore_extended, 0x06)
|
|
|
|
DW_CFA (DW_CFA_undefined, 0x07)
|
|
|
|
DW_CFA (DW_CFA_same_value, 0x08)
|
|
|
|
DW_CFA (DW_CFA_register, 0x09)
|
|
|
|
DW_CFA (DW_CFA_remember_state, 0x0a)
|
|
|
|
DW_CFA (DW_CFA_restore_state, 0x0b)
|
|
|
|
DW_CFA (DW_CFA_def_cfa, 0x0c)
|
|
|
|
DW_CFA (DW_CFA_def_cfa_register, 0x0d)
|
|
|
|
DW_CFA (DW_CFA_def_cfa_offset, 0x0e)
|
|
|
|
/* DWARF 3. */
|
|
|
|
DW_CFA (DW_CFA_def_cfa_expression, 0x0f)
|
|
|
|
DW_CFA (DW_CFA_expression, 0x10)
|
|
|
|
DW_CFA (DW_CFA_offset_extended_sf, 0x11)
|
|
|
|
DW_CFA (DW_CFA_def_cfa_sf, 0x12)
|
|
|
|
DW_CFA (DW_CFA_def_cfa_offset_sf, 0x13)
|
|
|
|
DW_CFA (DW_CFA_val_offset, 0x14)
|
|
|
|
DW_CFA (DW_CFA_val_offset_sf, 0x15)
|
|
|
|
DW_CFA (DW_CFA_val_expression, 0x16)
|
|
|
|
|
|
|
|
DW_CFA (DW_CFA_lo_user, 0x1c)
|
|
|
|
DW_CFA (DW_CFA_hi_user, 0x3f)
|
|
|
|
|
|
|
|
/* SGI/MIPS specific. */
|
|
|
|
DW_CFA (DW_CFA_MIPS_advance_loc8, 0x1d)
|
2017-01-04 15:25:04 +01:00
|
|
|
/* GNU extensions.
|
|
|
|
NOTE: DW_CFA_GNU_window_save is multiplexed on Sparc and AArch64. */
|
dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
gcc
* dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
(dwarf_tag_name): Use get_DW_TAG_name.
(dwarf_attr_name): Use get_DW_AT_name.
(dwarf_form_name): Use get_DW_FORM_name.
* dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
include
* dwarf2.h (enum dwarf_tag, enum dwarf_form, enum dwarf_attribute)
(enum dwarf_location_atom, enum dwarf_type, enum
dwarf_call_frame_info): Remove.
(DW_TAG, DW_TAG_DUP, DW_FORM, DW_AT, DW_AT_DUP, DW_OP)
(DW_OP_DUP, DW_ATE, DW_ATE_DUP, DW_CFA): New macros.
Include dwarf2.def.
(get_DW_TAG_name, get_DW_AT_name, get_DW_FORM_name)
(get_DW_OP_name, get_DW_ATE_name): Declare.
* dwarf2.def: New file, from dwarf2.h.
libiberty
* dwarfnames.c: New file.
* Makefile.in (CFILES): Add dwarfnames.
(REQUIRED_OFILES): Add dwarfnames.
(./dwarfnames.$(objext)): New target.
From-SVN: r186908
2012-04-27 16:14:14 +02:00
|
|
|
DW_CFA (DW_CFA_GNU_window_save, 0x2d)
|
2017-09-12 18:39:59 +02:00
|
|
|
DW_CFA_DUP (DW_CFA_AARCH64_negate_ra_state, 0x2d)
|
dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
gcc
* dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
(dwarf_tag_name): Use get_DW_TAG_name.
(dwarf_attr_name): Use get_DW_AT_name.
(dwarf_form_name): Use get_DW_FORM_name.
* dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
include
* dwarf2.h (enum dwarf_tag, enum dwarf_form, enum dwarf_attribute)
(enum dwarf_location_atom, enum dwarf_type, enum
dwarf_call_frame_info): Remove.
(DW_TAG, DW_TAG_DUP, DW_FORM, DW_AT, DW_AT_DUP, DW_OP)
(DW_OP_DUP, DW_ATE, DW_ATE_DUP, DW_CFA): New macros.
Include dwarf2.def.
(get_DW_TAG_name, get_DW_AT_name, get_DW_FORM_name)
(get_DW_OP_name, get_DW_ATE_name): Declare.
* dwarf2.def: New file, from dwarf2.h.
libiberty
* dwarfnames.c: New file.
* Makefile.in (CFILES): Add dwarfnames.
(REQUIRED_OFILES): Add dwarfnames.
(./dwarfnames.$(objext)): New target.
From-SVN: r186908
2012-04-27 16:14:14 +02:00
|
|
|
DW_CFA (DW_CFA_GNU_args_size, 0x2e)
|
|
|
|
DW_CFA (DW_CFA_GNU_negative_offset_extended, 0x2f)
|
|
|
|
|
|
|
|
DW_END_CFA
|
include/ChangeLog
2017-07-02 Jan Kratochvil <jan.kratochvil@redhat.com>
* dwarf2.def (DW_IDX_compile_unit, DW_IDX_type_unit, DW_IDX_die_offset)
(DW_IDX_parent, DW_IDX_type_hash, DW_IDX_lo_user, DW_IDX_hi_user)
(DW_IDX_GNU_internal, DW_IDX_GNU_external): New.
* dwarf2.h (DW_IDX, DW_IDX_DUP, DW_FIRST_IDX, DW_END_IDX): New.
(enum dwarf_name_index_attribute): Remove.
(get_DW_IDX_name): New declaration.
libiberty/ChangeLog
2017-07-02 Jan Kratochvil <jan.kratochvil@redhat.com>
* dwarfnames.c (DW_FIRST_IDX, DW_END_IDX, DW_IDX, DW_IDX_DUP): New.
From-SVN: r249883
2017-07-02 22:00:48 +02:00
|
|
|
|
|
|
|
/* Index attributes in the Abbreviations Table. */
|
|
|
|
DW_FIRST_IDX (DW_IDX_compile_unit, 1)
|
|
|
|
DW_IDX (DW_IDX_type_unit, 2)
|
|
|
|
DW_IDX (DW_IDX_die_offset, 3)
|
|
|
|
DW_IDX (DW_IDX_parent, 4)
|
|
|
|
DW_IDX (DW_IDX_type_hash, 5)
|
|
|
|
DW_IDX_DUP (DW_IDX_lo_user, 0x2000)
|
|
|
|
DW_IDX (DW_IDX_hi_user, 0x3fff)
|
|
|
|
DW_IDX (DW_IDX_GNU_internal, 0x2000)
|
|
|
|
DW_IDX (DW_IDX_GNU_external, 0x2001)
|
|
|
|
DW_END_IDX
|
2020-09-23 16:10:41 +02:00
|
|
|
|
|
|
|
/* DWARF5 Unit type header encodings */
|
|
|
|
DW_FIRST_UT (DW_UT_compile, 0x01)
|
|
|
|
DW_UT (DW_UT_type, 0x02)
|
|
|
|
DW_UT (DW_UT_partial, 0x03)
|
|
|
|
DW_UT (DW_UT_skeleton, 0x04)
|
|
|
|
DW_UT (DW_UT_split_compile, 0x05)
|
|
|
|
DW_UT (DW_UT_split_type, 0x06)
|
|
|
|
DW_UT (DW_UT_lo_user, 0x80)
|
|
|
|
DW_UT (DW_UT_hi_user, 0xff)
|
|
|
|
DW_END_UT
|