]> git.ipfire.org Git - thirdparty/gcc.git/blame - include/dwarf2.def
Fix date in ChangeLog: 2015-12-14 -> 2014-12-14
[thirdparty/gcc.git] / include / dwarf2.def
CommitLineData
11ec770e
TT
1/* -*- c -*-
2 Declarations and definitions of codes relating to the DWARF2 and
3 DWARF3 symbolic debugging information formats.
4 Copyright (C) 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002,
5 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
6 Free Software Foundation, Inc.
7
8 Written by Gary Funck (gary@intrepid.com) The Ada Joint Program
9 Office (AJPO), Florida State University and Silicon Graphics Inc.
10 provided support for this effort -- June 21, 1995.
11
12 Derived from the DWARF 1 implementation written by Ron Guilmette
13 (rfg@netcom.com), November 1990.
14
15 This file is part of GCC.
16
17 GCC is free software; you can redistribute it and/or modify it under
18 the terms of the GNU General Public License as published by the Free
19 Software Foundation; either version 3, or (at your option) any later
20 version.
21
22 GCC is distributed in the hope that it will be useful, but WITHOUT
23 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
24 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
25 License for more details.
26
27 Under Section 7 of GPL version 3, you are granted additional
28 permissions described in the GCC Runtime Library Exception, version
29 3.1, as published by the Free Software Foundation.
30
31 You should have received a copy of the GNU General Public License and
32 a copy of the GCC Runtime Library Exception along with this program;
33 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
34 <http://www.gnu.org/licenses/>. */
35
36/* This file is derived from the DWARF specification (a public document)
37 Revision 2.0.0 (July 27, 1993) developed by the UNIX International
38 Programming Languages Special Interest Group (UI/PLSIG) and distributed
39 by UNIX International. Copies of this specification are available from
40 UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.
41
42 This file also now contains definitions from the DWARF 3 specification
43 published Dec 20, 2005, available from: http://dwarf.freestandards.org.
44
45 This file also now contains definitions from the DWARF 4
46 specification, available from: http://dwarfstd.org/ */
47
48/* This file declares various DWARF-related constants using a set of
49 macros which can be redefined by the including file.
50
51 The macros are in sections. Each section corresponds to a single
52 set of DWARF constants and has a corresponding key. The key is
53 used in all the macro names.
54
55 The sections are TAG (for DW_TAG_ constants), FORM (DW_FORM_), AT
56 (DW_AT_), OP (DW_OP_), ATE (DW_ATE_), and CFA (DW_CFA_).
57
58 Using TAG as an example, the following macros may be used for each
59 key:
60
61 DW_FIRST_TAG(name, value) - Introduce the first DW_TAG constant.
62
63 DW_TAG(name, value) - Define a subsequent constant.
64
65 DW_TAG_DUP(name, value) - Define a subsequent constant whose value
66 is a duplicate of some other constant. Not all keys use the _DUP
67 macro form. If more than one name shares a value, then the base
68 (DW_TAG) form will be the preferred name and DW_TAG_DUP will hold
69 any alternate names.
70
71 DW_END_TAG - Invoked at the end of the DW_TAG constants. */
72
73DW_FIRST_TAG (DW_TAG_padding, 0x00)
74DW_TAG (DW_TAG_array_type, 0x01)
75DW_TAG (DW_TAG_class_type, 0x02)
76DW_TAG (DW_TAG_entry_point, 0x03)
77DW_TAG (DW_TAG_enumeration_type, 0x04)
78DW_TAG (DW_TAG_formal_parameter, 0x05)
79DW_TAG (DW_TAG_imported_declaration, 0x08)
80DW_TAG (DW_TAG_label, 0x0a)
81DW_TAG (DW_TAG_lexical_block, 0x0b)
82DW_TAG (DW_TAG_member, 0x0d)
83DW_TAG (DW_TAG_pointer_type, 0x0f)
84DW_TAG (DW_TAG_reference_type, 0x10)
85DW_TAG (DW_TAG_compile_unit, 0x11)
86DW_TAG (DW_TAG_string_type, 0x12)
87DW_TAG (DW_TAG_structure_type, 0x13)
88DW_TAG (DW_TAG_subroutine_type, 0x15)
89DW_TAG (DW_TAG_typedef, 0x16)
90DW_TAG (DW_TAG_union_type, 0x17)
91DW_TAG (DW_TAG_unspecified_parameters, 0x18)
92DW_TAG (DW_TAG_variant, 0x19)
93DW_TAG (DW_TAG_common_block, 0x1a)
94DW_TAG (DW_TAG_common_inclusion, 0x1b)
95DW_TAG (DW_TAG_inheritance, 0x1c)
96DW_TAG (DW_TAG_inlined_subroutine, 0x1d)
97DW_TAG (DW_TAG_module, 0x1e)
98DW_TAG (DW_TAG_ptr_to_member_type, 0x1f)
99DW_TAG (DW_TAG_set_type, 0x20)
100DW_TAG (DW_TAG_subrange_type, 0x21)
101DW_TAG (DW_TAG_with_stmt, 0x22)
102DW_TAG (DW_TAG_access_declaration, 0x23)
103DW_TAG (DW_TAG_base_type, 0x24)
104DW_TAG (DW_TAG_catch_block, 0x25)
105DW_TAG (DW_TAG_const_type, 0x26)
106DW_TAG (DW_TAG_constant, 0x27)
107DW_TAG (DW_TAG_enumerator, 0x28)
108DW_TAG (DW_TAG_file_type, 0x29)
109DW_TAG (DW_TAG_friend, 0x2a)
110DW_TAG (DW_TAG_namelist, 0x2b)
111DW_TAG (DW_TAG_namelist_item, 0x2c)
112DW_TAG (DW_TAG_packed_type, 0x2d)
113DW_TAG (DW_TAG_subprogram, 0x2e)
114DW_TAG (DW_TAG_template_type_param, 0x2f)
115DW_TAG (DW_TAG_template_value_param, 0x30)
116DW_TAG (DW_TAG_thrown_type, 0x31)
117DW_TAG (DW_TAG_try_block, 0x32)
118DW_TAG (DW_TAG_variant_part, 0x33)
119DW_TAG (DW_TAG_variable, 0x34)
120DW_TAG (DW_TAG_volatile_type, 0x35)
121/* DWARF 3. */
122DW_TAG (DW_TAG_dwarf_procedure, 0x36)
123DW_TAG (DW_TAG_restrict_type, 0x37)
124DW_TAG (DW_TAG_interface_type, 0x38)
125DW_TAG (DW_TAG_namespace, 0x39)
126DW_TAG (DW_TAG_imported_module, 0x3a)
127DW_TAG (DW_TAG_unspecified_type, 0x3b)
128DW_TAG (DW_TAG_partial_unit, 0x3c)
129DW_TAG (DW_TAG_imported_unit, 0x3d)
130DW_TAG (DW_TAG_condition, 0x3f)
131DW_TAG (DW_TAG_shared_type, 0x40)
132/* DWARF 4. */
133DW_TAG (DW_TAG_type_unit, 0x41)
134DW_TAG (DW_TAG_rvalue_reference_type, 0x42)
135DW_TAG (DW_TAG_template_alias, 0x43)
bc3518da
MW
136/* DWARF 5. */
137DW_TAG (DW_TAG_atomic_type, 0x47)
11ec770e
TT
138
139DW_TAG_DUP (DW_TAG_lo_user, 0x4080)
140DW_TAG_DUP (DW_TAG_hi_user, 0xffff)
141
142/* SGI/MIPS Extensions. */
143DW_TAG (DW_TAG_MIPS_loop, 0x4081)
144
145/* HP extensions. See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz . */
146DW_TAG (DW_TAG_HP_array_descriptor, 0x4090)
147DW_TAG (DW_TAG_HP_Bliss_field, 0x4091)
148DW_TAG (DW_TAG_HP_Bliss_field_set, 0x4092)
149
150/* GNU extensions. */
151DW_TAG (DW_TAG_format_label, 0x4101) /* For FORTRAN 77 and Fortran 90. */
152DW_TAG (DW_TAG_function_template, 0x4102) /* For C++. */
153DW_TAG (DW_TAG_class_template, 0x4103) /* For C++. */
154DW_TAG (DW_TAG_GNU_BINCL, 0x4104)
155DW_TAG (DW_TAG_GNU_EINCL, 0x4105)
156/* Template template parameter.
157 See http://gcc.gnu.org/wiki/TemplateParmsDwarf . */
158DW_TAG (DW_TAG_GNU_template_template_param, 0x4106)
159
160/* Template parameter pack extension, specified at
161 http://wiki.dwarfstd.org/index.php?title=C%2B%2B0x:_Variadic_templates
162 The values of these two TAGS are in the DW_TAG_GNU_* space until the tags
163 are properly part of DWARF 5. */
164DW_TAG (DW_TAG_GNU_template_parameter_pack, 0x4107)
165DW_TAG (DW_TAG_GNU_formal_parameter_pack, 0x4108)
166/* The GNU call site extension, specified at
167 http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open .
168 The values of these two TAGS are in the DW_TAG_GNU_* space until the tags
169 are properly part of DWARF 5. */
170DW_TAG (DW_TAG_GNU_call_site, 0x4109)
171DW_TAG (DW_TAG_GNU_call_site_parameter, 0x410a)
103ab31f 172/* Extensions for UPC. See: http://dwarfstd.org/doc/DWARF4.pdf. */
11ec770e
TT
173DW_TAG (DW_TAG_upc_shared_type, 0x8765)
174DW_TAG (DW_TAG_upc_strict_type, 0x8766)
175DW_TAG (DW_TAG_upc_relaxed_type, 0x8767)
176/* PGI (STMicroelectronics) extensions. No documentation available. */
177DW_TAG (DW_TAG_PGI_kanji_type, 0xA000)
178DW_TAG (DW_TAG_PGI_interface_block, 0xA020)
179DW_END_TAG
180
181DW_FIRST_FORM (DW_FORM_addr, 0x01)
182DW_FORM (DW_FORM_block2, 0x03)
183DW_FORM (DW_FORM_block4, 0x04)
184DW_FORM (DW_FORM_data2, 0x05)
185DW_FORM (DW_FORM_data4, 0x06)
186DW_FORM (DW_FORM_data8, 0x07)
187DW_FORM (DW_FORM_string, 0x08)
188DW_FORM (DW_FORM_block, 0x09)
189DW_FORM (DW_FORM_block1, 0x0a)
190DW_FORM (DW_FORM_data1, 0x0b)
191DW_FORM (DW_FORM_flag, 0x0c)
192DW_FORM (DW_FORM_sdata, 0x0d)
193DW_FORM (DW_FORM_strp, 0x0e)
194DW_FORM (DW_FORM_udata, 0x0f)
195DW_FORM (DW_FORM_ref_addr, 0x10)
196DW_FORM (DW_FORM_ref1, 0x11)
197DW_FORM (DW_FORM_ref2, 0x12)
198DW_FORM (DW_FORM_ref4, 0x13)
199DW_FORM (DW_FORM_ref8, 0x14)
200DW_FORM (DW_FORM_ref_udata, 0x15)
201DW_FORM (DW_FORM_indirect, 0x16)
202/* DWARF 4. */
203DW_FORM (DW_FORM_sec_offset, 0x17)
204DW_FORM (DW_FORM_exprloc, 0x18)
205DW_FORM (DW_FORM_flag_present, 0x19)
206DW_FORM (DW_FORM_ref_sig8, 0x20)
207/* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */
11ec770e
TT
208DW_FORM (DW_FORM_GNU_addr_index, 0x1f01)
209DW_FORM (DW_FORM_GNU_str_index, 0x1f02)
c6133dbe
JJ
210/* Extensions for DWZ multifile.
211 See http://www.dwarfstd.org/ShowIssue.php?issue=120604.1&type=open . */
212DW_FORM (DW_FORM_GNU_ref_alt, 0x1f20)
213DW_FORM (DW_FORM_GNU_strp_alt, 0x1f21)
11ec770e
TT
214DW_END_FORM
215
216DW_FIRST_AT (DW_AT_sibling, 0x01)
217DW_AT (DW_AT_location, 0x02)
218DW_AT (DW_AT_name, 0x03)
219DW_AT (DW_AT_ordering, 0x09)
220DW_AT (DW_AT_subscr_data, 0x0a)
221DW_AT (DW_AT_byte_size, 0x0b)
222DW_AT (DW_AT_bit_offset, 0x0c)
223DW_AT (DW_AT_bit_size, 0x0d)
224DW_AT (DW_AT_element_list, 0x0f)
225DW_AT (DW_AT_stmt_list, 0x10)
226DW_AT (DW_AT_low_pc, 0x11)
227DW_AT (DW_AT_high_pc, 0x12)
228DW_AT (DW_AT_language, 0x13)
229DW_AT (DW_AT_member, 0x14)
230DW_AT (DW_AT_discr, 0x15)
231DW_AT (DW_AT_discr_value, 0x16)
232DW_AT (DW_AT_visibility, 0x17)
233DW_AT (DW_AT_import, 0x18)
234DW_AT (DW_AT_string_length, 0x19)
235DW_AT (DW_AT_common_reference, 0x1a)
236DW_AT (DW_AT_comp_dir, 0x1b)
237DW_AT (DW_AT_const_value, 0x1c)
238DW_AT (DW_AT_containing_type, 0x1d)
239DW_AT (DW_AT_default_value, 0x1e)
240DW_AT (DW_AT_inline, 0x20)
241DW_AT (DW_AT_is_optional, 0x21)
242DW_AT (DW_AT_lower_bound, 0x22)
243DW_AT (DW_AT_producer, 0x25)
244DW_AT (DW_AT_prototyped, 0x27)
245DW_AT (DW_AT_return_addr, 0x2a)
246DW_AT (DW_AT_start_scope, 0x2c)
247DW_AT (DW_AT_bit_stride, 0x2e)
248DW_AT (DW_AT_upper_bound, 0x2f)
249DW_AT (DW_AT_abstract_origin, 0x31)
250DW_AT (DW_AT_accessibility, 0x32)
251DW_AT (DW_AT_address_class, 0x33)
252DW_AT (DW_AT_artificial, 0x34)
253DW_AT (DW_AT_base_types, 0x35)
254DW_AT (DW_AT_calling_convention, 0x36)
255DW_AT (DW_AT_count, 0x37)
256DW_AT (DW_AT_data_member_location, 0x38)
257DW_AT (DW_AT_decl_column, 0x39)
258DW_AT (DW_AT_decl_file, 0x3a)
259DW_AT (DW_AT_decl_line, 0x3b)
260DW_AT (DW_AT_declaration, 0x3c)
261DW_AT (DW_AT_discr_list, 0x3d)
262DW_AT (DW_AT_encoding, 0x3e)
263DW_AT (DW_AT_external, 0x3f)
264DW_AT (DW_AT_frame_base, 0x40)
265DW_AT (DW_AT_friend, 0x41)
266DW_AT (DW_AT_identifier_case, 0x42)
267DW_AT (DW_AT_macro_info, 0x43)
268DW_AT (DW_AT_namelist_items, 0x44)
269DW_AT (DW_AT_priority, 0x45)
270DW_AT (DW_AT_segment, 0x46)
271DW_AT (DW_AT_specification, 0x47)
272DW_AT (DW_AT_static_link, 0x48)
273DW_AT (DW_AT_type, 0x49)
274DW_AT (DW_AT_use_location, 0x4a)
275DW_AT (DW_AT_variable_parameter, 0x4b)
276DW_AT (DW_AT_virtuality, 0x4c)
277DW_AT (DW_AT_vtable_elem_location, 0x4d)
278/* DWARF 3 values. */
279DW_AT (DW_AT_allocated, 0x4e)
280DW_AT (DW_AT_associated, 0x4f)
281DW_AT (DW_AT_data_location, 0x50)
282DW_AT (DW_AT_byte_stride, 0x51)
283DW_AT (DW_AT_entry_pc, 0x52)
284DW_AT (DW_AT_use_UTF8, 0x53)
285DW_AT (DW_AT_extension, 0x54)
286DW_AT (DW_AT_ranges, 0x55)
287DW_AT (DW_AT_trampoline, 0x56)
288DW_AT (DW_AT_call_column, 0x57)
289DW_AT (DW_AT_call_file, 0x58)
290DW_AT (DW_AT_call_line, 0x59)
291DW_AT (DW_AT_description, 0x5a)
292DW_AT (DW_AT_binary_scale, 0x5b)
293DW_AT (DW_AT_decimal_scale, 0x5c)
294DW_AT (DW_AT_small, 0x5d)
295DW_AT (DW_AT_decimal_sign, 0x5e)
296DW_AT (DW_AT_digit_count, 0x5f)
297DW_AT (DW_AT_picture_string, 0x60)
298DW_AT (DW_AT_mutable, 0x61)
299DW_AT (DW_AT_threads_scaled, 0x62)
300DW_AT (DW_AT_explicit, 0x63)
301DW_AT (DW_AT_object_pointer, 0x64)
302DW_AT (DW_AT_endianity, 0x65)
303DW_AT (DW_AT_elemental, 0x66)
304DW_AT (DW_AT_pure, 0x67)
305DW_AT (DW_AT_recursive, 0x68)
306/* DWARF 4. */
307DW_AT (DW_AT_signature, 0x69)
308DW_AT (DW_AT_main_subprogram, 0x6a)
309DW_AT (DW_AT_data_bit_offset, 0x6b)
310DW_AT (DW_AT_const_expr, 0x6c)
311DW_AT (DW_AT_enum_class, 0x6d)
312DW_AT (DW_AT_linkage_name, 0x6e)
42bc3520
MW
313/* DWARF 5. */
314DW_AT (DW_AT_noreturn, 0x87)
11ec770e
TT
315
316DW_AT_DUP (DW_AT_lo_user, 0x2000) /* Implementation-defined range start. */
317DW_AT_DUP (DW_AT_hi_user, 0x3fff) /* Implementation-defined range end. */
318
319/* SGI/MIPS extensions. */
320DW_AT (DW_AT_MIPS_fde, 0x2001)
321DW_AT (DW_AT_MIPS_loop_begin, 0x2002)
322DW_AT (DW_AT_MIPS_tail_loop_begin, 0x2003)
323DW_AT (DW_AT_MIPS_epilog_begin, 0x2004)
324DW_AT (DW_AT_MIPS_loop_unroll_factor, 0x2005)
325DW_AT (DW_AT_MIPS_software_pipeline_depth, 0x2006)
326DW_AT (DW_AT_MIPS_linkage_name, 0x2007)
327DW_AT (DW_AT_MIPS_stride, 0x2008)
328DW_AT (DW_AT_MIPS_abstract_name, 0x2009)
329DW_AT (DW_AT_MIPS_clone_origin, 0x200a)
330DW_AT (DW_AT_MIPS_has_inlines, 0x200b)
331/* HP extensions. */
332DW_AT (DW_AT_HP_block_index, 0x2000)
333DW_AT_DUP (DW_AT_HP_unmodifiable, 0x2001) /* Same as DW_AT_MIPS_fde. */
334DW_AT_DUP (DW_AT_HP_prologue, 0x2005) /* Same as DW_AT_MIPS_loop_unroll. */
335DW_AT_DUP (DW_AT_HP_epilogue, 0x2008) /* Same as DW_AT_MIPS_stride. */
336DW_AT (DW_AT_HP_actuals_stmt_list, 0x2010)
337DW_AT (DW_AT_HP_proc_per_section, 0x2011)
338DW_AT (DW_AT_HP_raw_data_ptr, 0x2012)
339DW_AT (DW_AT_HP_pass_by_reference, 0x2013)
340DW_AT (DW_AT_HP_opt_level, 0x2014)
341DW_AT (DW_AT_HP_prof_version_id, 0x2015)
342DW_AT (DW_AT_HP_opt_flags, 0x2016)
343DW_AT (DW_AT_HP_cold_region_low_pc, 0x2017)
344DW_AT (DW_AT_HP_cold_region_high_pc, 0x2018)
345DW_AT (DW_AT_HP_all_variables_modifiable, 0x2019)
346DW_AT (DW_AT_HP_linkage_name, 0x201a)
347DW_AT (DW_AT_HP_prof_flags, 0x201b) /* In comp unit of procs_info for -g. */
348DW_AT (DW_AT_HP_unit_name, 0x201f)
349DW_AT (DW_AT_HP_unit_size, 0x2020)
350DW_AT (DW_AT_HP_widened_byte_size, 0x2021)
351DW_AT (DW_AT_HP_definition_points, 0x2022)
352DW_AT (DW_AT_HP_default_location, 0x2023)
353DW_AT (DW_AT_HP_is_result_param, 0x2029)
354
355/* GNU extensions. */
356DW_AT (DW_AT_sf_names, 0x2101)
357DW_AT (DW_AT_src_info, 0x2102)
358DW_AT (DW_AT_mac_info, 0x2103)
359DW_AT (DW_AT_src_coords, 0x2104)
360DW_AT (DW_AT_body_begin, 0x2105)
361DW_AT (DW_AT_body_end, 0x2106)
362DW_AT (DW_AT_GNU_vector, 0x2107)
363/* Thread-safety annotations.
364 See http://gcc.gnu.org/wiki/ThreadSafetyAnnotation . */
365DW_AT (DW_AT_GNU_guarded_by, 0x2108)
366DW_AT (DW_AT_GNU_pt_guarded_by, 0x2109)
367DW_AT (DW_AT_GNU_guarded, 0x210a)
368DW_AT (DW_AT_GNU_pt_guarded, 0x210b)
369DW_AT (DW_AT_GNU_locks_excluded, 0x210c)
370DW_AT (DW_AT_GNU_exclusive_locks_required, 0x210d)
371DW_AT (DW_AT_GNU_shared_locks_required, 0x210e)
372/* One-definition rule violation detection.
373 See http://gcc.gnu.org/wiki/DwarfSeparateTypeInfo . */
374DW_AT (DW_AT_GNU_odr_signature, 0x210f)
375/* Template template argument name.
376 See http://gcc.gnu.org/wiki/TemplateParmsDwarf . */
377DW_AT (DW_AT_GNU_template_name, 0x2110)
378/* The GNU call site extension.
379 See http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open . */
380DW_AT (DW_AT_GNU_call_site_value, 0x2111)
381DW_AT (DW_AT_GNU_call_site_data_value, 0x2112)
382DW_AT (DW_AT_GNU_call_site_target, 0x2113)
383DW_AT (DW_AT_GNU_call_site_target_clobbered, 0x2114)
384DW_AT (DW_AT_GNU_tail_call, 0x2115)
385DW_AT (DW_AT_GNU_all_tail_call_sites, 0x2116)
386DW_AT (DW_AT_GNU_all_call_sites, 0x2117)
387DW_AT (DW_AT_GNU_all_source_call_sites, 0x2118)
388/* Section offset into .debug_macro section. */
389DW_AT (DW_AT_GNU_macros, 0x2119)
f5059223
MW
390/* Attribute for C++ deleted special member functions (= delete;). */
391DW_AT (DW_AT_GNU_deleted, 0x211a)
11ec770e
TT
392/* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */
393DW_AT (DW_AT_GNU_dwo_name, 0x2130)
394DW_AT (DW_AT_GNU_dwo_id, 0x2131)
43f7c432 395DW_AT (DW_AT_GNU_ranges_base, 0x2132)
11ec770e
TT
396DW_AT (DW_AT_GNU_addr_base, 0x2133)
397DW_AT (DW_AT_GNU_pubnames, 0x2134)
398DW_AT (DW_AT_GNU_pubtypes, 0x2135)
f524d0aa
DC
399/* Attribute for discriminator.
400 See http://gcc.gnu.org/wiki/Discriminator */
401DW_AT (DW_AT_GNU_discriminator, 0x2136)
11ec770e
TT
402/* VMS extensions. */
403DW_AT (DW_AT_VMS_rtnbeg_pd_address, 0x2201)
404/* GNAT extensions. */
405/* GNAT descriptive type.
406 See http://gcc.gnu.org/wiki/DW_AT_GNAT_descriptive_type . */
407DW_AT (DW_AT_use_GNAT_descriptive_type, 0x2301)
408DW_AT (DW_AT_GNAT_descriptive_type, 0x2302)
409/* UPC extension. */
410DW_AT (DW_AT_upc_threads_scaled, 0x3210)
411/* PGI (STMicroelectronics) extensions. */
412DW_AT (DW_AT_PGI_lbase, 0x3a00)
413DW_AT (DW_AT_PGI_soffset, 0x3a01)
414DW_AT (DW_AT_PGI_lstride, 0x3a02)
d8607f25
SH
415/* Apple extensions. */
416DW_AT (DW_AT_APPLE_optimized, 0x3fe1)
417DW_AT (DW_AT_APPLE_flags, 0x3fe2)
418DW_AT (DW_AT_APPLE_isa, 0x3fe3)
419DW_AT (DW_AT_APPLE_block, 0x3fe4)
420DW_AT (DW_AT_APPLE_major_runtime_vers, 0x3fe5)
421DW_AT (DW_AT_APPLE_runtime_class, 0x3fe6)
422DW_AT (DW_AT_APPLE_omit_frame_ptr, 0x3fe7)
423DW_AT (DW_AT_APPLE_property_name, 0x3fe8)
424DW_AT (DW_AT_APPLE_property_getter, 0x3fe9)
425DW_AT (DW_AT_APPLE_property_setter, 0x3fea)
426DW_AT (DW_AT_APPLE_property_attribute, 0x3feb)
427DW_AT (DW_AT_APPLE_objc_complete_type, 0x3fec)
428DW_AT (DW_AT_APPLE_property, 0x3fed)
11ec770e
TT
429DW_END_AT
430
431DW_FIRST_OP (DW_OP_addr, 0x03)
432DW_OP (DW_OP_deref, 0x06)
433DW_OP (DW_OP_const1u, 0x08)
434DW_OP (DW_OP_const1s, 0x09)
435DW_OP (DW_OP_const2u, 0x0a)
436DW_OP (DW_OP_const2s, 0x0b)
437DW_OP (DW_OP_const4u, 0x0c)
438DW_OP (DW_OP_const4s, 0x0d)
439DW_OP (DW_OP_const8u, 0x0e)
440DW_OP (DW_OP_const8s, 0x0f)
441DW_OP (DW_OP_constu, 0x10)
442DW_OP (DW_OP_consts, 0x11)
443DW_OP (DW_OP_dup, 0x12)
444DW_OP (DW_OP_drop, 0x13)
445DW_OP (DW_OP_over, 0x14)
446DW_OP (DW_OP_pick, 0x15)
447DW_OP (DW_OP_swap, 0x16)
448DW_OP (DW_OP_rot, 0x17)
449DW_OP (DW_OP_xderef, 0x18)
450DW_OP (DW_OP_abs, 0x19)
451DW_OP (DW_OP_and, 0x1a)
452DW_OP (DW_OP_div, 0x1b)
453DW_OP (DW_OP_minus, 0x1c)
454DW_OP (DW_OP_mod, 0x1d)
455DW_OP (DW_OP_mul, 0x1e)
456DW_OP (DW_OP_neg, 0x1f)
457DW_OP (DW_OP_not, 0x20)
458DW_OP (DW_OP_or, 0x21)
459DW_OP (DW_OP_plus, 0x22)
460DW_OP (DW_OP_plus_uconst, 0x23)
461DW_OP (DW_OP_shl, 0x24)
462DW_OP (DW_OP_shr, 0x25)
463DW_OP (DW_OP_shra, 0x26)
464DW_OP (DW_OP_xor, 0x27)
465DW_OP (DW_OP_bra, 0x28)
466DW_OP (DW_OP_eq, 0x29)
467DW_OP (DW_OP_ge, 0x2a)
468DW_OP (DW_OP_gt, 0x2b)
469DW_OP (DW_OP_le, 0x2c)
470DW_OP (DW_OP_lt, 0x2d)
471DW_OP (DW_OP_ne, 0x2e)
472DW_OP (DW_OP_skip, 0x2f)
473DW_OP (DW_OP_lit0, 0x30)
474DW_OP (DW_OP_lit1, 0x31)
475DW_OP (DW_OP_lit2, 0x32)
476DW_OP (DW_OP_lit3, 0x33)
477DW_OP (DW_OP_lit4, 0x34)
478DW_OP (DW_OP_lit5, 0x35)
479DW_OP (DW_OP_lit6, 0x36)
480DW_OP (DW_OP_lit7, 0x37)
481DW_OP (DW_OP_lit8, 0x38)
482DW_OP (DW_OP_lit9, 0x39)
483DW_OP (DW_OP_lit10, 0x3a)
484DW_OP (DW_OP_lit11, 0x3b)
485DW_OP (DW_OP_lit12, 0x3c)
486DW_OP (DW_OP_lit13, 0x3d)
487DW_OP (DW_OP_lit14, 0x3e)
488DW_OP (DW_OP_lit15, 0x3f)
489DW_OP (DW_OP_lit16, 0x40)
490DW_OP (DW_OP_lit17, 0x41)
491DW_OP (DW_OP_lit18, 0x42)
492DW_OP (DW_OP_lit19, 0x43)
493DW_OP (DW_OP_lit20, 0x44)
494DW_OP (DW_OP_lit21, 0x45)
495DW_OP (DW_OP_lit22, 0x46)
496DW_OP (DW_OP_lit23, 0x47)
497DW_OP (DW_OP_lit24, 0x48)
498DW_OP (DW_OP_lit25, 0x49)
499DW_OP (DW_OP_lit26, 0x4a)
500DW_OP (DW_OP_lit27, 0x4b)
501DW_OP (DW_OP_lit28, 0x4c)
502DW_OP (DW_OP_lit29, 0x4d)
503DW_OP (DW_OP_lit30, 0x4e)
504DW_OP (DW_OP_lit31, 0x4f)
505DW_OP (DW_OP_reg0, 0x50)
506DW_OP (DW_OP_reg1, 0x51)
507DW_OP (DW_OP_reg2, 0x52)
508DW_OP (DW_OP_reg3, 0x53)
509DW_OP (DW_OP_reg4, 0x54)
510DW_OP (DW_OP_reg5, 0x55)
511DW_OP (DW_OP_reg6, 0x56)
512DW_OP (DW_OP_reg7, 0x57)
513DW_OP (DW_OP_reg8, 0x58)
514DW_OP (DW_OP_reg9, 0x59)
515DW_OP (DW_OP_reg10, 0x5a)
516DW_OP (DW_OP_reg11, 0x5b)
517DW_OP (DW_OP_reg12, 0x5c)
518DW_OP (DW_OP_reg13, 0x5d)
519DW_OP (DW_OP_reg14, 0x5e)
520DW_OP (DW_OP_reg15, 0x5f)
521DW_OP (DW_OP_reg16, 0x60)
522DW_OP (DW_OP_reg17, 0x61)
523DW_OP (DW_OP_reg18, 0x62)
524DW_OP (DW_OP_reg19, 0x63)
525DW_OP (DW_OP_reg20, 0x64)
526DW_OP (DW_OP_reg21, 0x65)
527DW_OP (DW_OP_reg22, 0x66)
528DW_OP (DW_OP_reg23, 0x67)
529DW_OP (DW_OP_reg24, 0x68)
530DW_OP (DW_OP_reg25, 0x69)
531DW_OP (DW_OP_reg26, 0x6a)
532DW_OP (DW_OP_reg27, 0x6b)
533DW_OP (DW_OP_reg28, 0x6c)
534DW_OP (DW_OP_reg29, 0x6d)
535DW_OP (DW_OP_reg30, 0x6e)
536DW_OP (DW_OP_reg31, 0x6f)
537DW_OP (DW_OP_breg0, 0x70)
538DW_OP (DW_OP_breg1, 0x71)
539DW_OP (DW_OP_breg2, 0x72)
540DW_OP (DW_OP_breg3, 0x73)
541DW_OP (DW_OP_breg4, 0x74)
542DW_OP (DW_OP_breg5, 0x75)
543DW_OP (DW_OP_breg6, 0x76)
544DW_OP (DW_OP_breg7, 0x77)
545DW_OP (DW_OP_breg8, 0x78)
546DW_OP (DW_OP_breg9, 0x79)
547DW_OP (DW_OP_breg10, 0x7a)
548DW_OP (DW_OP_breg11, 0x7b)
549DW_OP (DW_OP_breg12, 0x7c)
550DW_OP (DW_OP_breg13, 0x7d)
551DW_OP (DW_OP_breg14, 0x7e)
552DW_OP (DW_OP_breg15, 0x7f)
553DW_OP (DW_OP_breg16, 0x80)
554DW_OP (DW_OP_breg17, 0x81)
555DW_OP (DW_OP_breg18, 0x82)
556DW_OP (DW_OP_breg19, 0x83)
557DW_OP (DW_OP_breg20, 0x84)
558DW_OP (DW_OP_breg21, 0x85)
559DW_OP (DW_OP_breg22, 0x86)
560DW_OP (DW_OP_breg23, 0x87)
561DW_OP (DW_OP_breg24, 0x88)
562DW_OP (DW_OP_breg25, 0x89)
563DW_OP (DW_OP_breg26, 0x8a)
564DW_OP (DW_OP_breg27, 0x8b)
565DW_OP (DW_OP_breg28, 0x8c)
566DW_OP (DW_OP_breg29, 0x8d)
567DW_OP (DW_OP_breg30, 0x8e)
568DW_OP (DW_OP_breg31, 0x8f)
569DW_OP (DW_OP_regx, 0x90)
570DW_OP (DW_OP_fbreg, 0x91)
571DW_OP (DW_OP_bregx, 0x92)
572DW_OP (DW_OP_piece, 0x93)
573DW_OP (DW_OP_deref_size, 0x94)
574DW_OP (DW_OP_xderef_size, 0x95)
575DW_OP (DW_OP_nop, 0x96)
576/* DWARF 3 extensions. */
577DW_OP (DW_OP_push_object_address, 0x97)
578DW_OP (DW_OP_call2, 0x98)
579DW_OP (DW_OP_call4, 0x99)
580DW_OP (DW_OP_call_ref, 0x9a)
581DW_OP (DW_OP_form_tls_address, 0x9b)
582DW_OP (DW_OP_call_frame_cfa, 0x9c)
583DW_OP (DW_OP_bit_piece, 0x9d)
584
585/* DWARF 4 extensions. */
586DW_OP (DW_OP_implicit_value, 0x9e)
587DW_OP (DW_OP_stack_value, 0x9f)
588
589DW_OP_DUP (DW_OP_lo_user, 0xe0) /* Implementation-defined range start. */
590DW_OP_DUP (DW_OP_hi_user, 0xff) /* Implementation-defined range end. */
591
592/* GNU extensions. */
593DW_OP (DW_OP_GNU_push_tls_address, 0xe0)
594/* The following is for marking variables that are uninitialized. */
595DW_OP (DW_OP_GNU_uninit, 0xf0)
596DW_OP (DW_OP_GNU_encoded_addr, 0xf1)
597/* The GNU implicit pointer extension.
598 See http://www.dwarfstd.org/ShowIssue.php?issue=100831.1&type=open . */
599DW_OP (DW_OP_GNU_implicit_pointer, 0xf2)
600/* The GNU entry value extension.
601 See http://www.dwarfstd.org/ShowIssue.php?issue=100909.1&type=open . */
602DW_OP (DW_OP_GNU_entry_value, 0xf3)
603/* The GNU typed stack extension.
604 See http://www.dwarfstd.org/doc/040408.1.html . */
605DW_OP (DW_OP_GNU_const_type, 0xf4)
606DW_OP (DW_OP_GNU_regval_type, 0xf5)
607DW_OP (DW_OP_GNU_deref_type, 0xf6)
608DW_OP (DW_OP_GNU_convert, 0xf7)
609DW_OP (DW_OP_GNU_reinterpret, 0xf9)
610/* The GNU parameter ref extension. */
611DW_OP (DW_OP_GNU_parameter_ref, 0xfa)
316b938e 612/* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */
d028426a 613DW_OP (DW_OP_GNU_addr_index, 0xfb)
18100198 614DW_OP (DW_OP_GNU_const_index, 0xfc)
11ec770e
TT
615/* HP extensions. */
616DW_OP_DUP (DW_OP_HP_unknown, 0xe0) /* Ouch, the same as GNU_push_tls_address. */
617DW_OP (DW_OP_HP_is_value, 0xe1)
618DW_OP (DW_OP_HP_fltconst4, 0xe2)
619DW_OP (DW_OP_HP_fltconst8, 0xe3)
620DW_OP (DW_OP_HP_mod_range, 0xe4)
621DW_OP (DW_OP_HP_unmod_range, 0xe5)
622DW_OP (DW_OP_HP_tls, 0xe6)
623/* PGI (STMicroelectronics) extensions. */
624DW_OP (DW_OP_PGI_omp_thread_num, 0xf8)
625DW_END_OP
626
627DW_FIRST_ATE (DW_ATE_void, 0x0)
628DW_ATE (DW_ATE_address, 0x1)
629DW_ATE (DW_ATE_boolean, 0x2)
630DW_ATE (DW_ATE_complex_float, 0x3)
631DW_ATE (DW_ATE_float, 0x4)
632DW_ATE (DW_ATE_signed, 0x5)
633DW_ATE (DW_ATE_signed_char, 0x6)
634DW_ATE (DW_ATE_unsigned, 0x7)
635DW_ATE (DW_ATE_unsigned_char, 0x8)
636/* DWARF 3. */
637DW_ATE (DW_ATE_imaginary_float, 0x9)
638DW_ATE (DW_ATE_packed_decimal, 0xa)
639DW_ATE (DW_ATE_numeric_string, 0xb)
640DW_ATE (DW_ATE_edited, 0xc)
641DW_ATE (DW_ATE_signed_fixed, 0xd)
642DW_ATE (DW_ATE_unsigned_fixed, 0xe)
643DW_ATE (DW_ATE_decimal_float, 0xf)
644/* DWARF 4. */
645DW_ATE (DW_ATE_UTF, 0x10)
646
647DW_ATE_DUP (DW_ATE_lo_user, 0x80)
648DW_ATE_DUP (DW_ATE_hi_user, 0xff)
649
650/* HP extensions. */
651DW_ATE (DW_ATE_HP_float80, 0x80) /* Floating-point (80 bit). */
652DW_ATE (DW_ATE_HP_complex_float80, 0x81) /* Complex floating-point (80 bit). */
653DW_ATE (DW_ATE_HP_float128, 0x82) /* Floating-point (128 bit). */
654DW_ATE (DW_ATE_HP_complex_float128, 0x83) /* Complex fp (128 bit). */
655DW_ATE (DW_ATE_HP_floathpintel, 0x84) /* Floating-point (82 bit IA64). */
656DW_ATE (DW_ATE_HP_imaginary_float80, 0x85)
657DW_ATE (DW_ATE_HP_imaginary_float128, 0x86)
658DW_ATE (DW_ATE_HP_VAX_float, 0x88) /* F or G floating. */
659DW_ATE (DW_ATE_HP_VAX_float_d, 0x89) /* D floating. */
660DW_ATE (DW_ATE_HP_packed_decimal, 0x8a) /* Cobol. */
661DW_ATE (DW_ATE_HP_zoned_decimal, 0x8b) /* Cobol. */
662DW_ATE (DW_ATE_HP_edited, 0x8c) /* Cobol. */
663DW_ATE (DW_ATE_HP_signed_fixed, 0x8d) /* Cobol. */
664DW_ATE (DW_ATE_HP_unsigned_fixed, 0x8e) /* Cobol. */
665DW_ATE (DW_ATE_HP_VAX_complex_float, 0x8f) /* F or G floating complex. */
666DW_ATE (DW_ATE_HP_VAX_complex_float_d, 0x90) /* D floating complex. */
667
668DW_END_ATE
669
670DW_FIRST_CFA (DW_CFA_advance_loc, 0x40)
671DW_CFA (DW_CFA_offset, 0x80)
672DW_CFA (DW_CFA_restore, 0xc0)
673DW_CFA (DW_CFA_nop, 0x00)
674DW_CFA (DW_CFA_set_loc, 0x01)
675DW_CFA (DW_CFA_advance_loc1, 0x02)
676DW_CFA (DW_CFA_advance_loc2, 0x03)
677DW_CFA (DW_CFA_advance_loc4, 0x04)
678DW_CFA (DW_CFA_offset_extended, 0x05)
679DW_CFA (DW_CFA_restore_extended, 0x06)
680DW_CFA (DW_CFA_undefined, 0x07)
681DW_CFA (DW_CFA_same_value, 0x08)
682DW_CFA (DW_CFA_register, 0x09)
683DW_CFA (DW_CFA_remember_state, 0x0a)
684DW_CFA (DW_CFA_restore_state, 0x0b)
685DW_CFA (DW_CFA_def_cfa, 0x0c)
686DW_CFA (DW_CFA_def_cfa_register, 0x0d)
687DW_CFA (DW_CFA_def_cfa_offset, 0x0e)
688/* DWARF 3. */
689DW_CFA (DW_CFA_def_cfa_expression, 0x0f)
690DW_CFA (DW_CFA_expression, 0x10)
691DW_CFA (DW_CFA_offset_extended_sf, 0x11)
692DW_CFA (DW_CFA_def_cfa_sf, 0x12)
693DW_CFA (DW_CFA_def_cfa_offset_sf, 0x13)
694DW_CFA (DW_CFA_val_offset, 0x14)
695DW_CFA (DW_CFA_val_offset_sf, 0x15)
696DW_CFA (DW_CFA_val_expression, 0x16)
697
698DW_CFA (DW_CFA_lo_user, 0x1c)
699DW_CFA (DW_CFA_hi_user, 0x3f)
700
701/* SGI/MIPS specific. */
702DW_CFA (DW_CFA_MIPS_advance_loc8, 0x1d)
703/* GNU extensions. */
704DW_CFA (DW_CFA_GNU_window_save, 0x2d)
705DW_CFA (DW_CFA_GNU_args_size, 0x2e)
706DW_CFA (DW_CFA_GNU_negative_offset_extended, 0x2f)
707
708DW_END_CFA