Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

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