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

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [include/] [dwarf2.h] - Blame information for rev 299

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 17 khays
/* Declarations and definitions of codes relating to the DWARF2 and
2
   DWARF3 symbolic debugging information formats.
3
   Copyright (C) 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002,
4
   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
5
   Free Software Foundation, Inc.
6
 
7
   Written by Gary Funck (gary@intrepid.com) The Ada Joint Program
8
   Office (AJPO), Florida State University and Silicon Graphics Inc.
9
   provided support for this effort -- June 21, 1995.
10
 
11
   Derived from the DWARF 1 implementation written by Ron Guilmette
12
   (rfg@netcom.com), November 1990.
13
 
14
   This file is part of GCC.
15
 
16
   GCC is free software; you can redistribute it and/or modify it under
17
   the terms of the GNU General Public License as published by the Free
18
   Software Foundation; either version 3, or (at your option) any later
19
   version.
20
 
21
   GCC is distributed in the hope that it will be useful, but WITHOUT
22
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
23
   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
24
   License for more details.
25
 
26
   Under Section 7 of GPL version 3, you are granted additional
27
   permissions described in the GCC Runtime Library Exception, version
28
   3.1, as published by the Free Software Foundation.
29
 
30
   You should have received a copy of the GNU General Public License and
31
   a copy of the GCC Runtime Library Exception along with this program;
32
   see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
33
   <http://www.gnu.org/licenses/>.  */
34
 
35
/* This file is derived from the DWARF specification (a public document)
36
   Revision 2.0.0 (July 27, 1993) developed by the UNIX International
37
   Programming Languages Special Interest Group (UI/PLSIG) and distributed
38
   by UNIX International.  Copies of this specification are available from
39
   UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.
40
 
41
   This file also now contains definitions from the DWARF 3 specification
42
   published Dec 20, 2005, available from: http://dwarf.freestandards.org.  */
43
 
44
/* This file is shared between GCC and GDB, and should not contain
45
   prototypes.  */
46
 
47
#ifndef _DWARF2_H
48
#define _DWARF2_H
49
 
50
/* Tag names and codes.  */
51
enum dwarf_tag
52
  {
53
    DW_TAG_padding = 0x00,
54
    DW_TAG_array_type = 0x01,
55
    DW_TAG_class_type = 0x02,
56
    DW_TAG_entry_point = 0x03,
57
    DW_TAG_enumeration_type = 0x04,
58
    DW_TAG_formal_parameter = 0x05,
59
    DW_TAG_imported_declaration = 0x08,
60
    DW_TAG_label = 0x0a,
61
    DW_TAG_lexical_block = 0x0b,
62
    DW_TAG_member = 0x0d,
63
    DW_TAG_pointer_type = 0x0f,
64
    DW_TAG_reference_type = 0x10,
65
    DW_TAG_compile_unit = 0x11,
66
    DW_TAG_string_type = 0x12,
67
    DW_TAG_structure_type = 0x13,
68
    DW_TAG_subroutine_type = 0x15,
69
    DW_TAG_typedef = 0x16,
70
    DW_TAG_union_type = 0x17,
71
    DW_TAG_unspecified_parameters = 0x18,
72
    DW_TAG_variant = 0x19,
73
    DW_TAG_common_block = 0x1a,
74
    DW_TAG_common_inclusion = 0x1b,
75
    DW_TAG_inheritance = 0x1c,
76
    DW_TAG_inlined_subroutine = 0x1d,
77
    DW_TAG_module = 0x1e,
78
    DW_TAG_ptr_to_member_type = 0x1f,
79
    DW_TAG_set_type = 0x20,
80
    DW_TAG_subrange_type = 0x21,
81
    DW_TAG_with_stmt = 0x22,
82
    DW_TAG_access_declaration = 0x23,
83
    DW_TAG_base_type = 0x24,
84
    DW_TAG_catch_block = 0x25,
85
    DW_TAG_const_type = 0x26,
86
    DW_TAG_constant = 0x27,
87
    DW_TAG_enumerator = 0x28,
88
    DW_TAG_file_type = 0x29,
89
    DW_TAG_friend = 0x2a,
90
    DW_TAG_namelist = 0x2b,
91
    DW_TAG_namelist_item = 0x2c,
92
    DW_TAG_packed_type = 0x2d,
93
    DW_TAG_subprogram = 0x2e,
94
    DW_TAG_template_type_param = 0x2f,
95
    DW_TAG_template_value_param = 0x30,
96
    DW_TAG_thrown_type = 0x31,
97
    DW_TAG_try_block = 0x32,
98
    DW_TAG_variant_part = 0x33,
99
    DW_TAG_variable = 0x34,
100
    DW_TAG_volatile_type = 0x35,
101
    /* DWARF 3.  */
102
    DW_TAG_dwarf_procedure = 0x36,
103
    DW_TAG_restrict_type = 0x37,
104
    DW_TAG_interface_type = 0x38,
105
    DW_TAG_namespace = 0x39,
106
    DW_TAG_imported_module = 0x3a,
107
    DW_TAG_unspecified_type = 0x3b,
108
    DW_TAG_partial_unit = 0x3c,
109
    DW_TAG_imported_unit = 0x3d,
110
    DW_TAG_condition = 0x3f,
111
    DW_TAG_shared_type = 0x40,
112
    /* DWARF 4.  */
113
    DW_TAG_type_unit = 0x41,
114
    DW_TAG_rvalue_reference_type = 0x42,
115
    DW_TAG_template_alias = 0x43,
116
 
117
    DW_TAG_lo_user = 0x4080,
118
    DW_TAG_hi_user = 0xffff,
119
 
120
    /* SGI/MIPS Extensions.  */
121
    DW_TAG_MIPS_loop = 0x4081,
122
 
123
    /* HP extensions.  See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz .  */
124
    DW_TAG_HP_array_descriptor = 0x4090,
125
    DW_TAG_HP_Bliss_field      = 0x4091,
126
    DW_TAG_HP_Bliss_field_set  = 0x4092,
127
 
128
    /* GNU extensions.  */
129
    DW_TAG_format_label = 0x4101,       /* For FORTRAN 77 and Fortran 90.  */
130
    DW_TAG_function_template = 0x4102,  /* For C++.  */
131
    DW_TAG_class_template = 0x4103,     /* For C++.  */
132
    DW_TAG_GNU_BINCL = 0x4104,
133
    DW_TAG_GNU_EINCL = 0x4105,
134
    /* Template template parameter.
135
       See http://gcc.gnu.org/wiki/TemplateParmsDwarf .  */
136
    DW_TAG_GNU_template_template_param = 0x4106,
137
 
138
    /* Template parameter pack extension, specified at
139
       http://wiki.dwarfstd.org/index.php?title=C%2B%2B0x:_Variadic_templates
140
       The values of these two TAGS are in the DW_TAG_GNU_* space until the tags
141
       are properly part of DWARF 5.  */
142
    DW_TAG_GNU_template_parameter_pack = 0x4107,
143
    DW_TAG_GNU_formal_parameter_pack = 0x4108,
144
    /* The GNU call site extension, specified at
145
       http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open .
146
       The values of these two TAGS are in the DW_TAG_GNU_* space until the tags
147
       are properly part of DWARF 5.  */
148
    DW_TAG_GNU_call_site = 0x4109,
149
    DW_TAG_GNU_call_site_parameter = 0x410a,
150
    /* Extensions for UPC.  See: http://upc.gwu.edu/~upc.  */
151
    DW_TAG_upc_shared_type = 0x8765,
152
    DW_TAG_upc_strict_type = 0x8766,
153
    DW_TAG_upc_relaxed_type = 0x8767,
154
    /* PGI (STMicroelectronics) extensions.  No documentation available.  */
155
    DW_TAG_PGI_kanji_type      = 0xA000,
156
    DW_TAG_PGI_interface_block = 0xA020
157
  };
158
 
159
/* Flag that tells whether entry has a child or not.  */
160
#define DW_children_no   0
161
#define DW_children_yes  1
162
 
163
/* Form names and codes.  */
164
enum dwarf_form
165
  {
166
    DW_FORM_addr = 0x01,
167
    DW_FORM_block2 = 0x03,
168
    DW_FORM_block4 = 0x04,
169
    DW_FORM_data2 = 0x05,
170
    DW_FORM_data4 = 0x06,
171
    DW_FORM_data8 = 0x07,
172
    DW_FORM_string = 0x08,
173
    DW_FORM_block = 0x09,
174
    DW_FORM_block1 = 0x0a,
175
    DW_FORM_data1 = 0x0b,
176
    DW_FORM_flag = 0x0c,
177
    DW_FORM_sdata = 0x0d,
178
    DW_FORM_strp = 0x0e,
179
    DW_FORM_udata = 0x0f,
180
    DW_FORM_ref_addr = 0x10,
181
    DW_FORM_ref1 = 0x11,
182
    DW_FORM_ref2 = 0x12,
183
    DW_FORM_ref4 = 0x13,
184
    DW_FORM_ref8 = 0x14,
185
    DW_FORM_ref_udata = 0x15,
186
    DW_FORM_indirect = 0x16,
187
    /* DWARF 4.  */
188
    DW_FORM_sec_offset = 0x17,
189
    DW_FORM_exprloc = 0x18,
190
    DW_FORM_flag_present = 0x19,
191 166 khays
    DW_FORM_ref_sig8 = 0x20,
192
    /* Extensions for Fission.  See http://gcc.gnu.org/wiki/DebugFission.  */
193
    DW_FORM_GNU_ref_index = 0x1f00,
194
    DW_FORM_GNU_addr_index = 0x1f01,
195
    DW_FORM_GNU_str_index = 0x1f02
196 17 khays
  };
197
 
198
/* Attribute names and codes.  */
199
enum dwarf_attribute
200
  {
201
    DW_AT_sibling = 0x01,
202
    DW_AT_location = 0x02,
203
    DW_AT_name = 0x03,
204
    DW_AT_ordering = 0x09,
205
    DW_AT_subscr_data = 0x0a,
206
    DW_AT_byte_size = 0x0b,
207
    DW_AT_bit_offset = 0x0c,
208
    DW_AT_bit_size = 0x0d,
209
    DW_AT_element_list = 0x0f,
210
    DW_AT_stmt_list = 0x10,
211
    DW_AT_low_pc = 0x11,
212
    DW_AT_high_pc = 0x12,
213
    DW_AT_language = 0x13,
214
    DW_AT_member = 0x14,
215
    DW_AT_discr = 0x15,
216
    DW_AT_discr_value = 0x16,
217
    DW_AT_visibility = 0x17,
218
    DW_AT_import = 0x18,
219
    DW_AT_string_length = 0x19,
220
    DW_AT_common_reference = 0x1a,
221
    DW_AT_comp_dir = 0x1b,
222
    DW_AT_const_value = 0x1c,
223
    DW_AT_containing_type = 0x1d,
224
    DW_AT_default_value = 0x1e,
225
    DW_AT_inline = 0x20,
226
    DW_AT_is_optional = 0x21,
227
    DW_AT_lower_bound = 0x22,
228
    DW_AT_producer = 0x25,
229
    DW_AT_prototyped = 0x27,
230
    DW_AT_return_addr = 0x2a,
231
    DW_AT_start_scope = 0x2c,
232
    DW_AT_bit_stride = 0x2e,
233
#define DW_AT_stride_size   DW_AT_bit_stride  /* Note: The use of DW_AT_stride_size is deprecated.  */
234
    DW_AT_upper_bound = 0x2f,
235
    DW_AT_abstract_origin = 0x31,
236
    DW_AT_accessibility = 0x32,
237
    DW_AT_address_class = 0x33,
238
    DW_AT_artificial = 0x34,
239
    DW_AT_base_types = 0x35,
240
    DW_AT_calling_convention = 0x36,
241
    DW_AT_count = 0x37,
242
    DW_AT_data_member_location = 0x38,
243
    DW_AT_decl_column = 0x39,
244
    DW_AT_decl_file = 0x3a,
245
    DW_AT_decl_line = 0x3b,
246
    DW_AT_declaration = 0x3c,
247
    DW_AT_discr_list = 0x3d,
248
    DW_AT_encoding = 0x3e,
249
    DW_AT_external = 0x3f,
250
    DW_AT_frame_base = 0x40,
251
    DW_AT_friend = 0x41,
252
    DW_AT_identifier_case = 0x42,
253
    DW_AT_macro_info = 0x43,
254
    DW_AT_namelist_items = 0x44,
255
    DW_AT_priority = 0x45,
256
    DW_AT_segment = 0x46,
257
    DW_AT_specification = 0x47,
258
    DW_AT_static_link = 0x48,
259
    DW_AT_type = 0x49,
260
    DW_AT_use_location = 0x4a,
261
    DW_AT_variable_parameter = 0x4b,
262
    DW_AT_virtuality = 0x4c,
263
    DW_AT_vtable_elem_location = 0x4d,
264
    /* DWARF 3 values.  */
265
    DW_AT_allocated     = 0x4e,
266
    DW_AT_associated    = 0x4f,
267
    DW_AT_data_location = 0x50,
268
    DW_AT_byte_stride   = 0x51,
269
#define DW_AT_stride   DW_AT_byte_stride  /* Note: The use of DW_AT_stride is deprecated.  */
270
    DW_AT_entry_pc      = 0x52,
271
    DW_AT_use_UTF8      = 0x53,
272
    DW_AT_extension     = 0x54,
273
    DW_AT_ranges        = 0x55,
274
    DW_AT_trampoline    = 0x56,
275
    DW_AT_call_column   = 0x57,
276
    DW_AT_call_file     = 0x58,
277
    DW_AT_call_line     = 0x59,
278
    DW_AT_description   = 0x5a,
279
    DW_AT_binary_scale  = 0x5b,
280
    DW_AT_decimal_scale = 0x5c,
281
    DW_AT_small         = 0x5d,
282
    DW_AT_decimal_sign  = 0x5e,
283
    DW_AT_digit_count   = 0x5f,
284
    DW_AT_picture_string = 0x60,
285
    DW_AT_mutable       = 0x61,
286
    DW_AT_threads_scaled = 0x62,
287
    DW_AT_explicit      = 0x63,
288
    DW_AT_object_pointer = 0x64,
289
    DW_AT_endianity     = 0x65,
290
    DW_AT_elemental     = 0x66,
291
    DW_AT_pure          = 0x67,
292
    DW_AT_recursive     = 0x68,
293
    /* DWARF 4.  */
294
    DW_AT_signature       = 0x69,
295
    DW_AT_main_subprogram = 0x6a,
296
    DW_AT_data_bit_offset = 0x6b,
297
    DW_AT_const_expr      = 0x6c,
298
    DW_AT_enum_class      = 0x6d,
299
    DW_AT_linkage_name    = 0x6e,
300
 
301
    DW_AT_lo_user = 0x2000,     /* Implementation-defined range start.  */
302
    DW_AT_hi_user = 0x3fff,     /* Implementation-defined range end.  */
303
 
304
    /* SGI/MIPS extensions.  */
305
    DW_AT_MIPS_fde = 0x2001,
306
    DW_AT_MIPS_loop_begin = 0x2002,
307
    DW_AT_MIPS_tail_loop_begin = 0x2003,
308
    DW_AT_MIPS_epilog_begin = 0x2004,
309
    DW_AT_MIPS_loop_unroll_factor = 0x2005,
310
    DW_AT_MIPS_software_pipeline_depth = 0x2006,
311
    DW_AT_MIPS_linkage_name = 0x2007,
312
    DW_AT_MIPS_stride = 0x2008,
313
    DW_AT_MIPS_abstract_name = 0x2009,
314
    DW_AT_MIPS_clone_origin = 0x200a,
315
    DW_AT_MIPS_has_inlines = 0x200b,
316
    /* HP extensions.  */
317
    DW_AT_HP_block_index         = 0x2000,
318
    DW_AT_HP_unmodifiable        = 0x2001, /* Same as DW_AT_MIPS_fde.  */
319
    DW_AT_HP_prologue            = 0x2005, /* Same as DW_AT_MIPS_loop_unroll.  */
320
    DW_AT_HP_epilogue            = 0x2008, /* Same as DW_AT_MIPS_stride.  */
321
    DW_AT_HP_actuals_stmt_list   = 0x2010,
322
    DW_AT_HP_proc_per_section    = 0x2011,
323
    DW_AT_HP_raw_data_ptr        = 0x2012,
324
    DW_AT_HP_pass_by_reference   = 0x2013,
325
    DW_AT_HP_opt_level           = 0x2014,
326
    DW_AT_HP_prof_version_id     = 0x2015,
327
    DW_AT_HP_opt_flags           = 0x2016,
328
    DW_AT_HP_cold_region_low_pc  = 0x2017,
329
    DW_AT_HP_cold_region_high_pc = 0x2018,
330
    DW_AT_HP_all_variables_modifiable = 0x2019,
331
    DW_AT_HP_linkage_name        = 0x201a,
332
    DW_AT_HP_prof_flags          = 0x201b,  /* In comp unit of procs_info for -g.  */
333
    DW_AT_HP_unit_name           = 0x201f,
334
    DW_AT_HP_unit_size           = 0x2020,
335
    DW_AT_HP_widened_byte_size   = 0x2021,
336
    DW_AT_HP_definition_points   = 0x2022,
337
    DW_AT_HP_default_location    = 0x2023,
338
    DW_AT_HP_is_result_param     = 0x2029,
339
 
340
    /* GNU extensions.  */
341
    DW_AT_sf_names   = 0x2101,
342
    DW_AT_src_info   = 0x2102,
343
    DW_AT_mac_info   = 0x2103,
344
    DW_AT_src_coords = 0x2104,
345
    DW_AT_body_begin = 0x2105,
346
    DW_AT_body_end   = 0x2106,
347
    DW_AT_GNU_vector = 0x2107,
348
    /* Thread-safety annotations.
349
       See http://gcc.gnu.org/wiki/ThreadSafetyAnnotation .  */
350
    DW_AT_GNU_guarded_by    = 0x2108,
351
    DW_AT_GNU_pt_guarded_by = 0x2109,
352
    DW_AT_GNU_guarded       = 0x210a,
353
    DW_AT_GNU_pt_guarded    = 0x210b,
354
    DW_AT_GNU_locks_excluded = 0x210c,
355
    DW_AT_GNU_exclusive_locks_required = 0x210d,
356
    DW_AT_GNU_shared_locks_required = 0x210e,
357
    /* One-definition rule violation detection.
358
       See http://gcc.gnu.org/wiki/DwarfSeparateTypeInfo .  */
359
    DW_AT_GNU_odr_signature = 0x210f,
360
    /* Template template argument name.
361
       See http://gcc.gnu.org/wiki/TemplateParmsDwarf .  */
362
    DW_AT_GNU_template_name = 0x2110,
363
    /* The GNU call site extension.
364
       See http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open .  */
365
    DW_AT_GNU_call_site_value = 0x2111,
366
    DW_AT_GNU_call_site_data_value = 0x2112,
367
    DW_AT_GNU_call_site_target = 0x2113,
368
    DW_AT_GNU_call_site_target_clobbered = 0x2114,
369
    DW_AT_GNU_tail_call = 0x2115,
370
    DW_AT_GNU_all_tail_call_sites = 0x2116,
371
    DW_AT_GNU_all_call_sites = 0x2117,
372
    DW_AT_GNU_all_source_call_sites = 0x2118,
373 161 khays
    /* Section offset into .debug_macro section.  */
374
    DW_AT_GNU_macros = 0x2119,
375 166 khays
    /* Extensions for Fission.  See http://gcc.gnu.org/wiki/DebugFission.  */
376
    DW_AT_GNU_dwo_name = 0x2130,
377
    DW_AT_GNU_dwo_id = 0x2131,
378
    DW_AT_GNU_ref_base = 0x2132,
379
    DW_AT_GNU_addr_base = 0x2133,
380
    DW_AT_GNU_pubnames = 0x2134,
381
    DW_AT_GNU_pubtypes = 0x2135,
382 17 khays
    /* VMS extensions.  */
383
    DW_AT_VMS_rtnbeg_pd_address = 0x2201,
384
    /* GNAT extensions.  */
385
    /* GNAT descriptive type.
386
       See http://gcc.gnu.org/wiki/DW_AT_GNAT_descriptive_type .  */
387
    DW_AT_use_GNAT_descriptive_type = 0x2301,
388
    DW_AT_GNAT_descriptive_type = 0x2302,
389
    /* UPC extension.  */
390
    DW_AT_upc_threads_scaled = 0x3210,
391
    /* PGI (STMicroelectronics) extensions.  */
392
    DW_AT_PGI_lbase    = 0x3a00,
393
    DW_AT_PGI_soffset  = 0x3a01,
394
    DW_AT_PGI_lstride  = 0x3a02
395
  };
396
 
397
/* Location atom names and codes.  */
398
enum dwarf_location_atom
399
  {
400
    DW_OP_addr = 0x03,
401
    DW_OP_deref = 0x06,
402
    DW_OP_const1u = 0x08,
403
    DW_OP_const1s = 0x09,
404
    DW_OP_const2u = 0x0a,
405
    DW_OP_const2s = 0x0b,
406
    DW_OP_const4u = 0x0c,
407
    DW_OP_const4s = 0x0d,
408
    DW_OP_const8u = 0x0e,
409
    DW_OP_const8s = 0x0f,
410
    DW_OP_constu = 0x10,
411
    DW_OP_consts = 0x11,
412
    DW_OP_dup = 0x12,
413
    DW_OP_drop = 0x13,
414
    DW_OP_over = 0x14,
415
    DW_OP_pick = 0x15,
416
    DW_OP_swap = 0x16,
417
    DW_OP_rot = 0x17,
418
    DW_OP_xderef = 0x18,
419
    DW_OP_abs = 0x19,
420
    DW_OP_and = 0x1a,
421
    DW_OP_div = 0x1b,
422
    DW_OP_minus = 0x1c,
423
    DW_OP_mod = 0x1d,
424
    DW_OP_mul = 0x1e,
425
    DW_OP_neg = 0x1f,
426
    DW_OP_not = 0x20,
427
    DW_OP_or = 0x21,
428
    DW_OP_plus = 0x22,
429
    DW_OP_plus_uconst = 0x23,
430
    DW_OP_shl = 0x24,
431
    DW_OP_shr = 0x25,
432
    DW_OP_shra = 0x26,
433
    DW_OP_xor = 0x27,
434
    DW_OP_bra = 0x28,
435
    DW_OP_eq = 0x29,
436
    DW_OP_ge = 0x2a,
437
    DW_OP_gt = 0x2b,
438
    DW_OP_le = 0x2c,
439
    DW_OP_lt = 0x2d,
440
    DW_OP_ne = 0x2e,
441
    DW_OP_skip = 0x2f,
442
    DW_OP_lit0 = 0x30,
443
    DW_OP_lit1 = 0x31,
444
    DW_OP_lit2 = 0x32,
445
    DW_OP_lit3 = 0x33,
446
    DW_OP_lit4 = 0x34,
447
    DW_OP_lit5 = 0x35,
448
    DW_OP_lit6 = 0x36,
449
    DW_OP_lit7 = 0x37,
450
    DW_OP_lit8 = 0x38,
451
    DW_OP_lit9 = 0x39,
452
    DW_OP_lit10 = 0x3a,
453
    DW_OP_lit11 = 0x3b,
454
    DW_OP_lit12 = 0x3c,
455
    DW_OP_lit13 = 0x3d,
456
    DW_OP_lit14 = 0x3e,
457
    DW_OP_lit15 = 0x3f,
458
    DW_OP_lit16 = 0x40,
459
    DW_OP_lit17 = 0x41,
460
    DW_OP_lit18 = 0x42,
461
    DW_OP_lit19 = 0x43,
462
    DW_OP_lit20 = 0x44,
463
    DW_OP_lit21 = 0x45,
464
    DW_OP_lit22 = 0x46,
465
    DW_OP_lit23 = 0x47,
466
    DW_OP_lit24 = 0x48,
467
    DW_OP_lit25 = 0x49,
468
    DW_OP_lit26 = 0x4a,
469
    DW_OP_lit27 = 0x4b,
470
    DW_OP_lit28 = 0x4c,
471
    DW_OP_lit29 = 0x4d,
472
    DW_OP_lit30 = 0x4e,
473
    DW_OP_lit31 = 0x4f,
474
    DW_OP_reg0 = 0x50,
475
    DW_OP_reg1 = 0x51,
476
    DW_OP_reg2 = 0x52,
477
    DW_OP_reg3 = 0x53,
478
    DW_OP_reg4 = 0x54,
479
    DW_OP_reg5 = 0x55,
480
    DW_OP_reg6 = 0x56,
481
    DW_OP_reg7 = 0x57,
482
    DW_OP_reg8 = 0x58,
483
    DW_OP_reg9 = 0x59,
484
    DW_OP_reg10 = 0x5a,
485
    DW_OP_reg11 = 0x5b,
486
    DW_OP_reg12 = 0x5c,
487
    DW_OP_reg13 = 0x5d,
488
    DW_OP_reg14 = 0x5e,
489
    DW_OP_reg15 = 0x5f,
490
    DW_OP_reg16 = 0x60,
491
    DW_OP_reg17 = 0x61,
492
    DW_OP_reg18 = 0x62,
493
    DW_OP_reg19 = 0x63,
494
    DW_OP_reg20 = 0x64,
495
    DW_OP_reg21 = 0x65,
496
    DW_OP_reg22 = 0x66,
497
    DW_OP_reg23 = 0x67,
498
    DW_OP_reg24 = 0x68,
499
    DW_OP_reg25 = 0x69,
500
    DW_OP_reg26 = 0x6a,
501
    DW_OP_reg27 = 0x6b,
502
    DW_OP_reg28 = 0x6c,
503
    DW_OP_reg29 = 0x6d,
504
    DW_OP_reg30 = 0x6e,
505
    DW_OP_reg31 = 0x6f,
506
    DW_OP_breg0 = 0x70,
507
    DW_OP_breg1 = 0x71,
508
    DW_OP_breg2 = 0x72,
509
    DW_OP_breg3 = 0x73,
510
    DW_OP_breg4 = 0x74,
511
    DW_OP_breg5 = 0x75,
512
    DW_OP_breg6 = 0x76,
513
    DW_OP_breg7 = 0x77,
514
    DW_OP_breg8 = 0x78,
515
    DW_OP_breg9 = 0x79,
516
    DW_OP_breg10 = 0x7a,
517
    DW_OP_breg11 = 0x7b,
518
    DW_OP_breg12 = 0x7c,
519
    DW_OP_breg13 = 0x7d,
520
    DW_OP_breg14 = 0x7e,
521
    DW_OP_breg15 = 0x7f,
522
    DW_OP_breg16 = 0x80,
523
    DW_OP_breg17 = 0x81,
524
    DW_OP_breg18 = 0x82,
525
    DW_OP_breg19 = 0x83,
526
    DW_OP_breg20 = 0x84,
527
    DW_OP_breg21 = 0x85,
528
    DW_OP_breg22 = 0x86,
529
    DW_OP_breg23 = 0x87,
530
    DW_OP_breg24 = 0x88,
531
    DW_OP_breg25 = 0x89,
532
    DW_OP_breg26 = 0x8a,
533
    DW_OP_breg27 = 0x8b,
534
    DW_OP_breg28 = 0x8c,
535
    DW_OP_breg29 = 0x8d,
536
    DW_OP_breg30 = 0x8e,
537
    DW_OP_breg31 = 0x8f,
538
    DW_OP_regx = 0x90,
539
    DW_OP_fbreg = 0x91,
540
    DW_OP_bregx = 0x92,
541
    DW_OP_piece = 0x93,
542
    DW_OP_deref_size = 0x94,
543
    DW_OP_xderef_size = 0x95,
544
    DW_OP_nop = 0x96,
545
    /* DWARF 3 extensions.  */
546
    DW_OP_push_object_address = 0x97,
547
    DW_OP_call2 = 0x98,
548
    DW_OP_call4 = 0x99,
549
    DW_OP_call_ref = 0x9a,
550
    DW_OP_form_tls_address = 0x9b,
551
    DW_OP_call_frame_cfa = 0x9c,
552
    DW_OP_bit_piece = 0x9d,
553
 
554
    /* DWARF 4 extensions.  */
555
    DW_OP_implicit_value = 0x9e,
556
    DW_OP_stack_value = 0x9f,
557
 
558
    DW_OP_lo_user = 0xe0,       /* Implementation-defined range start.  */
559
    DW_OP_hi_user = 0xff,       /* Implementation-defined range end.  */
560
 
561
    /* GNU extensions.  */
562
    DW_OP_GNU_push_tls_address = 0xe0,
563
    /* The following is for marking variables that are uninitialized.  */
564
    DW_OP_GNU_uninit     = 0xf0,
565
    DW_OP_GNU_encoded_addr = 0xf1,
566
    /* The GNU implicit pointer extension.
567
       See http://www.dwarfstd.org/ShowIssue.php?issue=100831.1&type=open .  */
568
    DW_OP_GNU_implicit_pointer = 0xf2,
569
    /* The GNU entry value extension.
570
       See http://www.dwarfstd.org/ShowIssue.php?issue=100909.1&type=open .  */
571
    DW_OP_GNU_entry_value = 0xf3,
572
    /* The GNU typed stack extension.
573
       See http://www.dwarfstd.org/doc/040408.1.html .  */
574
    DW_OP_GNU_const_type = 0xf4,
575
    DW_OP_GNU_regval_type = 0xf5,
576
    DW_OP_GNU_deref_type = 0xf6,
577
    DW_OP_GNU_convert = 0xf7,
578
    DW_OP_GNU_reinterpret = 0xf9,
579 161 khays
    /* The GNU parameter ref extension.  */
580
    DW_OP_GNU_parameter_ref = 0xfa,
581 17 khays
    /* HP extensions.  */
582
    DW_OP_HP_unknown     = 0xe0, /* Ouch, the same as GNU_push_tls_address.  */
583
    DW_OP_HP_is_value    = 0xe1,
584
    DW_OP_HP_fltconst4   = 0xe2,
585
    DW_OP_HP_fltconst8   = 0xe3,
586
    DW_OP_HP_mod_range   = 0xe4,
587
    DW_OP_HP_unmod_range = 0xe5,
588
    DW_OP_HP_tls         = 0xe6,
589
    /* PGI (STMicroelectronics) extensions.  */
590
    DW_OP_PGI_omp_thread_num = 0xf8
591
  };
592
 
593
/* Type encodings.  */
594
enum dwarf_type
595
  {
596
    DW_ATE_void = 0x0,
597
    DW_ATE_address = 0x1,
598
    DW_ATE_boolean = 0x2,
599
    DW_ATE_complex_float = 0x3,
600
    DW_ATE_float = 0x4,
601
    DW_ATE_signed = 0x5,
602
    DW_ATE_signed_char = 0x6,
603
    DW_ATE_unsigned = 0x7,
604
    DW_ATE_unsigned_char = 0x8,
605
    /* DWARF 3.  */
606
    DW_ATE_imaginary_float = 0x9,
607
    DW_ATE_packed_decimal = 0xa,
608
    DW_ATE_numeric_string = 0xb,
609
    DW_ATE_edited = 0xc,
610
    DW_ATE_signed_fixed = 0xd,
611
    DW_ATE_unsigned_fixed = 0xe,
612
    DW_ATE_decimal_float = 0xf,
613
    /* DWARF 4.  */
614
    DW_ATE_UTF = 0x10,
615
 
616
    DW_ATE_lo_user = 0x80,
617
    DW_ATE_hi_user = 0xff,
618
 
619
    /* HP extensions.  */
620
    DW_ATE_HP_float80             = 0x80, /* Floating-point (80 bit).  */
621
    DW_ATE_HP_complex_float80     = 0x81, /* Complex floating-point (80 bit).  */
622
    DW_ATE_HP_float128            = 0x82, /* Floating-point (128 bit).  */
623
    DW_ATE_HP_complex_float128    = 0x83, /* Complex fp (128 bit).  */
624
    DW_ATE_HP_floathpintel        = 0x84, /* Floating-point (82 bit IA64).  */
625
    DW_ATE_HP_imaginary_float80   = 0x85,
626
    DW_ATE_HP_imaginary_float128  = 0x86,
627
    DW_ATE_HP_VAX_float           = 0x88, /* F or G floating.  */
628
    DW_ATE_HP_VAX_float_d         = 0x89, /* D floating.  */
629
    DW_ATE_HP_packed_decimal      = 0x8a, /* Cobol.  */
630
    DW_ATE_HP_zoned_decimal       = 0x8b, /* Cobol.  */
631
    DW_ATE_HP_edited              = 0x8c, /* Cobol.  */
632
    DW_ATE_HP_signed_fixed        = 0x8d, /* Cobol.  */
633
    DW_ATE_HP_unsigned_fixed      = 0x8e, /* Cobol.  */
634
    DW_ATE_HP_VAX_complex_float   = 0x8f, /* F or G floating complex.  */
635
    DW_ATE_HP_VAX_complex_float_d = 0x90  /* D floating complex.  */
636
  };
637
 
638
/* Decimal sign encodings.  */
639
enum dwarf_decimal_sign_encoding
640
  {
641
    /* DWARF 3.  */
642
    DW_DS_unsigned = 0x01,
643
    DW_DS_leading_overpunch = 0x02,
644
    DW_DS_trailing_overpunch = 0x03,
645
    DW_DS_leading_separate = 0x04,
646
    DW_DS_trailing_separate = 0x05
647
  };
648
 
649
/* Endianity encodings.  */
650
enum dwarf_endianity_encoding
651
  {
652
    /* DWARF 3.  */
653
    DW_END_default = 0x00,
654
    DW_END_big = 0x01,
655
    DW_END_little = 0x02,
656
 
657
    DW_END_lo_user = 0x40,
658
    DW_END_hi_user = 0xff
659
  };
660
 
661
/* Array ordering names and codes.  */
662
enum dwarf_array_dim_ordering
663
  {
664
    DW_ORD_row_major = 0,
665
    DW_ORD_col_major = 1
666
  };
667
 
668
/* Access attribute.  */
669
enum dwarf_access_attribute
670
  {
671
    DW_ACCESS_public = 1,
672
    DW_ACCESS_protected = 2,
673
    DW_ACCESS_private = 3
674
  };
675
 
676
/* Visibility.  */
677
enum dwarf_visibility_attribute
678
  {
679
    DW_VIS_local = 1,
680
    DW_VIS_exported = 2,
681
    DW_VIS_qualified = 3
682
  };
683
 
684
/* Virtuality.  */
685
enum dwarf_virtuality_attribute
686
  {
687
    DW_VIRTUALITY_none = 0,
688
    DW_VIRTUALITY_virtual = 1,
689
    DW_VIRTUALITY_pure_virtual = 2
690
  };
691
 
692
/* Case sensitivity.  */
693
enum dwarf_id_case
694
  {
695
    DW_ID_case_sensitive = 0,
696
    DW_ID_up_case = 1,
697
    DW_ID_down_case = 2,
698
    DW_ID_case_insensitive = 3
699
  };
700
 
701
/* Calling convention.  */
702
enum dwarf_calling_convention
703
  {
704
    DW_CC_normal = 0x1,
705
    DW_CC_program = 0x2,
706
    DW_CC_nocall = 0x3,
707
 
708
    DW_CC_lo_user = 0x40,
709
    DW_CC_hi_user = 0xff,
710
 
711
    DW_CC_GNU_renesas_sh = 0x40,
712
    DW_CC_GNU_borland_fastcall_i386 = 0x41,
713
 
714
    /* This DW_CC_ value is not currently generated by any toolchain.  It is
715
       used internally to GDB to indicate OpenCL C functions that have been
716
       compiled with the IBM XL C for OpenCL compiler and use a non-platform
717
       calling convention for passing OpenCL C vector types.  This value may
718
       be changed freely as long as it does not conflict with any other DW_CC_
719
       value defined here.  */
720
    DW_CC_GDB_IBM_OpenCL = 0xff
721
  };
722
 
723
/* Inline attribute.  */
724
enum dwarf_inline_attribute
725
  {
726
    DW_INL_not_inlined = 0,
727
    DW_INL_inlined = 1,
728
    DW_INL_declared_not_inlined = 2,
729
    DW_INL_declared_inlined = 3
730
  };
731
 
732
/* Discriminant lists.  */
733
enum dwarf_discrim_list
734
  {
735
    DW_DSC_label = 0,
736
    DW_DSC_range = 1
737
  };
738
 
739
/* Line number opcodes.  */
740
enum dwarf_line_number_ops
741
  {
742
    DW_LNS_extended_op = 0,
743
    DW_LNS_copy = 1,
744
    DW_LNS_advance_pc = 2,
745
    DW_LNS_advance_line = 3,
746
    DW_LNS_set_file = 4,
747
    DW_LNS_set_column = 5,
748
    DW_LNS_negate_stmt = 6,
749
    DW_LNS_set_basic_block = 7,
750
    DW_LNS_const_add_pc = 8,
751
    DW_LNS_fixed_advance_pc = 9,
752
    /* DWARF 3.  */
753
    DW_LNS_set_prologue_end = 10,
754
    DW_LNS_set_epilogue_begin = 11,
755
    DW_LNS_set_isa = 12
756
  };
757
 
758
/* Line number extended opcodes.  */
759
enum dwarf_line_number_x_ops
760
  {
761
    DW_LNE_end_sequence = 1,
762
    DW_LNE_set_address = 2,
763
    DW_LNE_define_file = 3,
764
    DW_LNE_set_discriminator = 4,
765
    /* HP extensions.  */
766
    DW_LNE_HP_negate_is_UV_update      = 0x11,
767
    DW_LNE_HP_push_context             = 0x12,
768
    DW_LNE_HP_pop_context              = 0x13,
769
    DW_LNE_HP_set_file_line_column     = 0x14,
770
    DW_LNE_HP_set_routine_name         = 0x15,
771
    DW_LNE_HP_set_sequence             = 0x16,
772
    DW_LNE_HP_negate_post_semantics    = 0x17,
773
    DW_LNE_HP_negate_function_exit     = 0x18,
774
    DW_LNE_HP_negate_front_end_logical = 0x19,
775
    DW_LNE_HP_define_proc              = 0x20,
776
    DW_LNE_HP_source_file_correlation  = 0x80,
777
 
778
    DW_LNE_lo_user = 0x80,
779
    DW_LNE_hi_user = 0xff
780
  };
781
 
782
/* Sub-opcodes for DW_LNE_HP_source_file_correlation.  */
783
enum dwarf_line_number_hp_sfc_ops
784
  {
785
    DW_LNE_HP_SFC_formfeed = 1,
786
    DW_LNE_HP_SFC_set_listing_line = 2,
787
    DW_LNE_HP_SFC_associate = 3
788
  };
789
 
790
/* Call frame information.  */
791
enum dwarf_call_frame_info
792
  {
793
    DW_CFA_advance_loc = 0x40,
794
    DW_CFA_offset = 0x80,
795
    DW_CFA_restore = 0xc0,
796
    DW_CFA_nop = 0x00,
797
    DW_CFA_set_loc = 0x01,
798
    DW_CFA_advance_loc1 = 0x02,
799
    DW_CFA_advance_loc2 = 0x03,
800
    DW_CFA_advance_loc4 = 0x04,
801
    DW_CFA_offset_extended = 0x05,
802
    DW_CFA_restore_extended = 0x06,
803
    DW_CFA_undefined = 0x07,
804
    DW_CFA_same_value = 0x08,
805
    DW_CFA_register = 0x09,
806
    DW_CFA_remember_state = 0x0a,
807
    DW_CFA_restore_state = 0x0b,
808
    DW_CFA_def_cfa = 0x0c,
809
    DW_CFA_def_cfa_register = 0x0d,
810
    DW_CFA_def_cfa_offset = 0x0e,
811
    /* DWARF 3.  */
812
    DW_CFA_def_cfa_expression = 0x0f,
813
    DW_CFA_expression = 0x10,
814
    DW_CFA_offset_extended_sf = 0x11,
815
    DW_CFA_def_cfa_sf = 0x12,
816
    DW_CFA_def_cfa_offset_sf = 0x13,
817
    DW_CFA_val_offset = 0x14,
818
    DW_CFA_val_offset_sf = 0x15,
819
    DW_CFA_val_expression = 0x16,
820
 
821
    DW_CFA_lo_user = 0x1c,
822
    DW_CFA_hi_user = 0x3f,
823
 
824
    /* SGI/MIPS specific.  */
825
    DW_CFA_MIPS_advance_loc8 = 0x1d,
826
    /* GNU extensions.  */
827
    DW_CFA_GNU_window_save = 0x2d,
828
    DW_CFA_GNU_args_size = 0x2e,
829
    DW_CFA_GNU_negative_offset_extended = 0x2f
830
  };
831
 
832
#define DW_CIE_ID         0xffffffff
833
#define DW64_CIE_ID       0xffffffffffffffffULL
834
#define DW_CIE_VERSION    1
835
 
836
#define DW_CFA_extended   0
837
 
838
#define DW_CHILDREN_no               0x00
839
#define DW_CHILDREN_yes              0x01
840
 
841
#define DW_ADDR_none            0
842
 
843
/* Source language names and codes.  */
844
enum dwarf_source_language
845
  {
846
    DW_LANG_C89 = 0x0001,
847
    DW_LANG_C = 0x0002,
848
    DW_LANG_Ada83 = 0x0003,
849
    DW_LANG_C_plus_plus = 0x0004,
850
    DW_LANG_Cobol74 = 0x0005,
851
    DW_LANG_Cobol85 = 0x0006,
852
    DW_LANG_Fortran77 = 0x0007,
853
    DW_LANG_Fortran90 = 0x0008,
854
    DW_LANG_Pascal83 = 0x0009,
855
    DW_LANG_Modula2 = 0x000a,
856
    /* DWARF 3.  */
857
    DW_LANG_Java = 0x000b,
858
    DW_LANG_C99 = 0x000c,
859
    DW_LANG_Ada95 = 0x000d,
860
    DW_LANG_Fortran95 = 0x000e,
861
    DW_LANG_PLI = 0x000f,
862
    DW_LANG_ObjC = 0x0010,
863
    DW_LANG_ObjC_plus_plus = 0x0011,
864
    DW_LANG_UPC = 0x0012,
865
    DW_LANG_D = 0x0013,
866
    /* DWARF 4.  */
867
    DW_LANG_Python = 0x0014,
868
    /* DWARF 5.  */
869
    DW_LANG_Go = 0x0016,
870
 
871
    DW_LANG_lo_user = 0x8000,   /* Implementation-defined range start.  */
872
    DW_LANG_hi_user = 0xffff,   /* Implementation-defined range start.  */
873
 
874
    /* MIPS.  */
875
    DW_LANG_Mips_Assembler = 0x8001,
876
    /* UPC.  */
877
    DW_LANG_Upc = 0x8765,
878
    /* HP extensions.  */
879
    DW_LANG_HP_Bliss     = 0x8003,
880
    DW_LANG_HP_Basic91   = 0x8004,
881
    DW_LANG_HP_Pascal91  = 0x8005,
882
    DW_LANG_HP_IMacro    = 0x8006,
883
    DW_LANG_HP_Assembler = 0x8007
884
  };
885
 
886
/* Names and codes for macro information.  */
887
enum dwarf_macinfo_record_type
888
  {
889
    DW_MACINFO_define = 1,
890
    DW_MACINFO_undef = 2,
891
    DW_MACINFO_start_file = 3,
892
    DW_MACINFO_end_file = 4,
893
    DW_MACINFO_vendor_ext = 255
894
  };
895 161 khays
 
896
/* Names and codes for new style macro information.  */
897
enum dwarf_macro_record_type
898
  {
899
    DW_MACRO_GNU_define = 1,
900
    DW_MACRO_GNU_undef = 2,
901
    DW_MACRO_GNU_start_file = 3,
902
    DW_MACRO_GNU_end_file = 4,
903
    DW_MACRO_GNU_define_indirect = 5,
904
    DW_MACRO_GNU_undef_indirect = 6,
905
    DW_MACRO_GNU_transparent_include = 7,
906
    DW_MACRO_GNU_lo_user = 0xe0,
907
    DW_MACRO_GNU_hi_user = 0xff
908
  };
909 17 khays
 
910
/* @@@ For use with GNU frame unwind information.  */
911
 
912
#define DW_EH_PE_absptr         0x00
913
#define DW_EH_PE_omit           0xff
914
 
915
#define DW_EH_PE_uleb128        0x01
916
#define DW_EH_PE_udata2         0x02
917
#define DW_EH_PE_udata4         0x03
918
#define DW_EH_PE_udata8         0x04
919
#define DW_EH_PE_sleb128        0x09
920
#define DW_EH_PE_sdata2         0x0A
921
#define DW_EH_PE_sdata4         0x0B
922
#define DW_EH_PE_sdata8         0x0C
923
#define DW_EH_PE_signed         0x08
924
 
925
#define DW_EH_PE_pcrel          0x10
926
#define DW_EH_PE_textrel        0x20
927
#define DW_EH_PE_datarel        0x30
928
#define DW_EH_PE_funcrel        0x40
929
#define DW_EH_PE_aligned        0x50
930
 
931
#define DW_EH_PE_indirect       0x80
932
 
933
#endif /* _DWARF2_H */

powered by: WebSVN 2.1.0

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