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 161

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
    DW_FORM_ref_sig8 = 0x20
192
  };
193
 
194
/* Attribute names and codes.  */
195
enum dwarf_attribute
196
  {
197
    DW_AT_sibling = 0x01,
198
    DW_AT_location = 0x02,
199
    DW_AT_name = 0x03,
200
    DW_AT_ordering = 0x09,
201
    DW_AT_subscr_data = 0x0a,
202
    DW_AT_byte_size = 0x0b,
203
    DW_AT_bit_offset = 0x0c,
204
    DW_AT_bit_size = 0x0d,
205
    DW_AT_element_list = 0x0f,
206
    DW_AT_stmt_list = 0x10,
207
    DW_AT_low_pc = 0x11,
208
    DW_AT_high_pc = 0x12,
209
    DW_AT_language = 0x13,
210
    DW_AT_member = 0x14,
211
    DW_AT_discr = 0x15,
212
    DW_AT_discr_value = 0x16,
213
    DW_AT_visibility = 0x17,
214
    DW_AT_import = 0x18,
215
    DW_AT_string_length = 0x19,
216
    DW_AT_common_reference = 0x1a,
217
    DW_AT_comp_dir = 0x1b,
218
    DW_AT_const_value = 0x1c,
219
    DW_AT_containing_type = 0x1d,
220
    DW_AT_default_value = 0x1e,
221
    DW_AT_inline = 0x20,
222
    DW_AT_is_optional = 0x21,
223
    DW_AT_lower_bound = 0x22,
224
    DW_AT_producer = 0x25,
225
    DW_AT_prototyped = 0x27,
226
    DW_AT_return_addr = 0x2a,
227
    DW_AT_start_scope = 0x2c,
228
    DW_AT_bit_stride = 0x2e,
229
#define DW_AT_stride_size   DW_AT_bit_stride  /* Note: The use of DW_AT_stride_size is deprecated.  */
230
    DW_AT_upper_bound = 0x2f,
231
    DW_AT_abstract_origin = 0x31,
232
    DW_AT_accessibility = 0x32,
233
    DW_AT_address_class = 0x33,
234
    DW_AT_artificial = 0x34,
235
    DW_AT_base_types = 0x35,
236
    DW_AT_calling_convention = 0x36,
237
    DW_AT_count = 0x37,
238
    DW_AT_data_member_location = 0x38,
239
    DW_AT_decl_column = 0x39,
240
    DW_AT_decl_file = 0x3a,
241
    DW_AT_decl_line = 0x3b,
242
    DW_AT_declaration = 0x3c,
243
    DW_AT_discr_list = 0x3d,
244
    DW_AT_encoding = 0x3e,
245
    DW_AT_external = 0x3f,
246
    DW_AT_frame_base = 0x40,
247
    DW_AT_friend = 0x41,
248
    DW_AT_identifier_case = 0x42,
249
    DW_AT_macro_info = 0x43,
250
    DW_AT_namelist_items = 0x44,
251
    DW_AT_priority = 0x45,
252
    DW_AT_segment = 0x46,
253
    DW_AT_specification = 0x47,
254
    DW_AT_static_link = 0x48,
255
    DW_AT_type = 0x49,
256
    DW_AT_use_location = 0x4a,
257
    DW_AT_variable_parameter = 0x4b,
258
    DW_AT_virtuality = 0x4c,
259
    DW_AT_vtable_elem_location = 0x4d,
260
    /* DWARF 3 values.  */
261
    DW_AT_allocated     = 0x4e,
262
    DW_AT_associated    = 0x4f,
263
    DW_AT_data_location = 0x50,
264
    DW_AT_byte_stride   = 0x51,
265
#define DW_AT_stride   DW_AT_byte_stride  /* Note: The use of DW_AT_stride is deprecated.  */
266
    DW_AT_entry_pc      = 0x52,
267
    DW_AT_use_UTF8      = 0x53,
268
    DW_AT_extension     = 0x54,
269
    DW_AT_ranges        = 0x55,
270
    DW_AT_trampoline    = 0x56,
271
    DW_AT_call_column   = 0x57,
272
    DW_AT_call_file     = 0x58,
273
    DW_AT_call_line     = 0x59,
274
    DW_AT_description   = 0x5a,
275
    DW_AT_binary_scale  = 0x5b,
276
    DW_AT_decimal_scale = 0x5c,
277
    DW_AT_small         = 0x5d,
278
    DW_AT_decimal_sign  = 0x5e,
279
    DW_AT_digit_count   = 0x5f,
280
    DW_AT_picture_string = 0x60,
281
    DW_AT_mutable       = 0x61,
282
    DW_AT_threads_scaled = 0x62,
283
    DW_AT_explicit      = 0x63,
284
    DW_AT_object_pointer = 0x64,
285
    DW_AT_endianity     = 0x65,
286
    DW_AT_elemental     = 0x66,
287
    DW_AT_pure          = 0x67,
288
    DW_AT_recursive     = 0x68,
289
    /* DWARF 4.  */
290
    DW_AT_signature       = 0x69,
291
    DW_AT_main_subprogram = 0x6a,
292
    DW_AT_data_bit_offset = 0x6b,
293
    DW_AT_const_expr      = 0x6c,
294
    DW_AT_enum_class      = 0x6d,
295
    DW_AT_linkage_name    = 0x6e,
296
 
297
    DW_AT_lo_user = 0x2000,     /* Implementation-defined range start.  */
298
    DW_AT_hi_user = 0x3fff,     /* Implementation-defined range end.  */
299
 
300
    /* SGI/MIPS extensions.  */
301
    DW_AT_MIPS_fde = 0x2001,
302
    DW_AT_MIPS_loop_begin = 0x2002,
303
    DW_AT_MIPS_tail_loop_begin = 0x2003,
304
    DW_AT_MIPS_epilog_begin = 0x2004,
305
    DW_AT_MIPS_loop_unroll_factor = 0x2005,
306
    DW_AT_MIPS_software_pipeline_depth = 0x2006,
307
    DW_AT_MIPS_linkage_name = 0x2007,
308
    DW_AT_MIPS_stride = 0x2008,
309
    DW_AT_MIPS_abstract_name = 0x2009,
310
    DW_AT_MIPS_clone_origin = 0x200a,
311
    DW_AT_MIPS_has_inlines = 0x200b,
312
    /* HP extensions.  */
313
    DW_AT_HP_block_index         = 0x2000,
314
    DW_AT_HP_unmodifiable        = 0x2001, /* Same as DW_AT_MIPS_fde.  */
315
    DW_AT_HP_prologue            = 0x2005, /* Same as DW_AT_MIPS_loop_unroll.  */
316
    DW_AT_HP_epilogue            = 0x2008, /* Same as DW_AT_MIPS_stride.  */
317
    DW_AT_HP_actuals_stmt_list   = 0x2010,
318
    DW_AT_HP_proc_per_section    = 0x2011,
319
    DW_AT_HP_raw_data_ptr        = 0x2012,
320
    DW_AT_HP_pass_by_reference   = 0x2013,
321
    DW_AT_HP_opt_level           = 0x2014,
322
    DW_AT_HP_prof_version_id     = 0x2015,
323
    DW_AT_HP_opt_flags           = 0x2016,
324
    DW_AT_HP_cold_region_low_pc  = 0x2017,
325
    DW_AT_HP_cold_region_high_pc = 0x2018,
326
    DW_AT_HP_all_variables_modifiable = 0x2019,
327
    DW_AT_HP_linkage_name        = 0x201a,
328
    DW_AT_HP_prof_flags          = 0x201b,  /* In comp unit of procs_info for -g.  */
329
    DW_AT_HP_unit_name           = 0x201f,
330
    DW_AT_HP_unit_size           = 0x2020,
331
    DW_AT_HP_widened_byte_size   = 0x2021,
332
    DW_AT_HP_definition_points   = 0x2022,
333
    DW_AT_HP_default_location    = 0x2023,
334
    DW_AT_HP_is_result_param     = 0x2029,
335
 
336
    /* GNU extensions.  */
337
    DW_AT_sf_names   = 0x2101,
338
    DW_AT_src_info   = 0x2102,
339
    DW_AT_mac_info   = 0x2103,
340
    DW_AT_src_coords = 0x2104,
341
    DW_AT_body_begin = 0x2105,
342
    DW_AT_body_end   = 0x2106,
343
    DW_AT_GNU_vector = 0x2107,
344
    /* Thread-safety annotations.
345
       See http://gcc.gnu.org/wiki/ThreadSafetyAnnotation .  */
346
    DW_AT_GNU_guarded_by    = 0x2108,
347
    DW_AT_GNU_pt_guarded_by = 0x2109,
348
    DW_AT_GNU_guarded       = 0x210a,
349
    DW_AT_GNU_pt_guarded    = 0x210b,
350
    DW_AT_GNU_locks_excluded = 0x210c,
351
    DW_AT_GNU_exclusive_locks_required = 0x210d,
352
    DW_AT_GNU_shared_locks_required = 0x210e,
353
    /* One-definition rule violation detection.
354
       See http://gcc.gnu.org/wiki/DwarfSeparateTypeInfo .  */
355
    DW_AT_GNU_odr_signature = 0x210f,
356
    /* Template template argument name.
357
       See http://gcc.gnu.org/wiki/TemplateParmsDwarf .  */
358
    DW_AT_GNU_template_name = 0x2110,
359
    /* The GNU call site extension.
360
       See http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open .  */
361
    DW_AT_GNU_call_site_value = 0x2111,
362
    DW_AT_GNU_call_site_data_value = 0x2112,
363
    DW_AT_GNU_call_site_target = 0x2113,
364
    DW_AT_GNU_call_site_target_clobbered = 0x2114,
365
    DW_AT_GNU_tail_call = 0x2115,
366
    DW_AT_GNU_all_tail_call_sites = 0x2116,
367
    DW_AT_GNU_all_call_sites = 0x2117,
368
    DW_AT_GNU_all_source_call_sites = 0x2118,
369 161 khays
    /* Section offset into .debug_macro section.  */
370
    DW_AT_GNU_macros = 0x2119,
371 17 khays
    /* VMS extensions.  */
372
    DW_AT_VMS_rtnbeg_pd_address = 0x2201,
373
    /* GNAT extensions.  */
374
    /* GNAT descriptive type.
375
       See http://gcc.gnu.org/wiki/DW_AT_GNAT_descriptive_type .  */
376
    DW_AT_use_GNAT_descriptive_type = 0x2301,
377
    DW_AT_GNAT_descriptive_type = 0x2302,
378
    /* UPC extension.  */
379
    DW_AT_upc_threads_scaled = 0x3210,
380
    /* PGI (STMicroelectronics) extensions.  */
381
    DW_AT_PGI_lbase    = 0x3a00,
382
    DW_AT_PGI_soffset  = 0x3a01,
383
    DW_AT_PGI_lstride  = 0x3a02
384
  };
385
 
386
/* Location atom names and codes.  */
387
enum dwarf_location_atom
388
  {
389
    DW_OP_addr = 0x03,
390
    DW_OP_deref = 0x06,
391
    DW_OP_const1u = 0x08,
392
    DW_OP_const1s = 0x09,
393
    DW_OP_const2u = 0x0a,
394
    DW_OP_const2s = 0x0b,
395
    DW_OP_const4u = 0x0c,
396
    DW_OP_const4s = 0x0d,
397
    DW_OP_const8u = 0x0e,
398
    DW_OP_const8s = 0x0f,
399
    DW_OP_constu = 0x10,
400
    DW_OP_consts = 0x11,
401
    DW_OP_dup = 0x12,
402
    DW_OP_drop = 0x13,
403
    DW_OP_over = 0x14,
404
    DW_OP_pick = 0x15,
405
    DW_OP_swap = 0x16,
406
    DW_OP_rot = 0x17,
407
    DW_OP_xderef = 0x18,
408
    DW_OP_abs = 0x19,
409
    DW_OP_and = 0x1a,
410
    DW_OP_div = 0x1b,
411
    DW_OP_minus = 0x1c,
412
    DW_OP_mod = 0x1d,
413
    DW_OP_mul = 0x1e,
414
    DW_OP_neg = 0x1f,
415
    DW_OP_not = 0x20,
416
    DW_OP_or = 0x21,
417
    DW_OP_plus = 0x22,
418
    DW_OP_plus_uconst = 0x23,
419
    DW_OP_shl = 0x24,
420
    DW_OP_shr = 0x25,
421
    DW_OP_shra = 0x26,
422
    DW_OP_xor = 0x27,
423
    DW_OP_bra = 0x28,
424
    DW_OP_eq = 0x29,
425
    DW_OP_ge = 0x2a,
426
    DW_OP_gt = 0x2b,
427
    DW_OP_le = 0x2c,
428
    DW_OP_lt = 0x2d,
429
    DW_OP_ne = 0x2e,
430
    DW_OP_skip = 0x2f,
431
    DW_OP_lit0 = 0x30,
432
    DW_OP_lit1 = 0x31,
433
    DW_OP_lit2 = 0x32,
434
    DW_OP_lit3 = 0x33,
435
    DW_OP_lit4 = 0x34,
436
    DW_OP_lit5 = 0x35,
437
    DW_OP_lit6 = 0x36,
438
    DW_OP_lit7 = 0x37,
439
    DW_OP_lit8 = 0x38,
440
    DW_OP_lit9 = 0x39,
441
    DW_OP_lit10 = 0x3a,
442
    DW_OP_lit11 = 0x3b,
443
    DW_OP_lit12 = 0x3c,
444
    DW_OP_lit13 = 0x3d,
445
    DW_OP_lit14 = 0x3e,
446
    DW_OP_lit15 = 0x3f,
447
    DW_OP_lit16 = 0x40,
448
    DW_OP_lit17 = 0x41,
449
    DW_OP_lit18 = 0x42,
450
    DW_OP_lit19 = 0x43,
451
    DW_OP_lit20 = 0x44,
452
    DW_OP_lit21 = 0x45,
453
    DW_OP_lit22 = 0x46,
454
    DW_OP_lit23 = 0x47,
455
    DW_OP_lit24 = 0x48,
456
    DW_OP_lit25 = 0x49,
457
    DW_OP_lit26 = 0x4a,
458
    DW_OP_lit27 = 0x4b,
459
    DW_OP_lit28 = 0x4c,
460
    DW_OP_lit29 = 0x4d,
461
    DW_OP_lit30 = 0x4e,
462
    DW_OP_lit31 = 0x4f,
463
    DW_OP_reg0 = 0x50,
464
    DW_OP_reg1 = 0x51,
465
    DW_OP_reg2 = 0x52,
466
    DW_OP_reg3 = 0x53,
467
    DW_OP_reg4 = 0x54,
468
    DW_OP_reg5 = 0x55,
469
    DW_OP_reg6 = 0x56,
470
    DW_OP_reg7 = 0x57,
471
    DW_OP_reg8 = 0x58,
472
    DW_OP_reg9 = 0x59,
473
    DW_OP_reg10 = 0x5a,
474
    DW_OP_reg11 = 0x5b,
475
    DW_OP_reg12 = 0x5c,
476
    DW_OP_reg13 = 0x5d,
477
    DW_OP_reg14 = 0x5e,
478
    DW_OP_reg15 = 0x5f,
479
    DW_OP_reg16 = 0x60,
480
    DW_OP_reg17 = 0x61,
481
    DW_OP_reg18 = 0x62,
482
    DW_OP_reg19 = 0x63,
483
    DW_OP_reg20 = 0x64,
484
    DW_OP_reg21 = 0x65,
485
    DW_OP_reg22 = 0x66,
486
    DW_OP_reg23 = 0x67,
487
    DW_OP_reg24 = 0x68,
488
    DW_OP_reg25 = 0x69,
489
    DW_OP_reg26 = 0x6a,
490
    DW_OP_reg27 = 0x6b,
491
    DW_OP_reg28 = 0x6c,
492
    DW_OP_reg29 = 0x6d,
493
    DW_OP_reg30 = 0x6e,
494
    DW_OP_reg31 = 0x6f,
495
    DW_OP_breg0 = 0x70,
496
    DW_OP_breg1 = 0x71,
497
    DW_OP_breg2 = 0x72,
498
    DW_OP_breg3 = 0x73,
499
    DW_OP_breg4 = 0x74,
500
    DW_OP_breg5 = 0x75,
501
    DW_OP_breg6 = 0x76,
502
    DW_OP_breg7 = 0x77,
503
    DW_OP_breg8 = 0x78,
504
    DW_OP_breg9 = 0x79,
505
    DW_OP_breg10 = 0x7a,
506
    DW_OP_breg11 = 0x7b,
507
    DW_OP_breg12 = 0x7c,
508
    DW_OP_breg13 = 0x7d,
509
    DW_OP_breg14 = 0x7e,
510
    DW_OP_breg15 = 0x7f,
511
    DW_OP_breg16 = 0x80,
512
    DW_OP_breg17 = 0x81,
513
    DW_OP_breg18 = 0x82,
514
    DW_OP_breg19 = 0x83,
515
    DW_OP_breg20 = 0x84,
516
    DW_OP_breg21 = 0x85,
517
    DW_OP_breg22 = 0x86,
518
    DW_OP_breg23 = 0x87,
519
    DW_OP_breg24 = 0x88,
520
    DW_OP_breg25 = 0x89,
521
    DW_OP_breg26 = 0x8a,
522
    DW_OP_breg27 = 0x8b,
523
    DW_OP_breg28 = 0x8c,
524
    DW_OP_breg29 = 0x8d,
525
    DW_OP_breg30 = 0x8e,
526
    DW_OP_breg31 = 0x8f,
527
    DW_OP_regx = 0x90,
528
    DW_OP_fbreg = 0x91,
529
    DW_OP_bregx = 0x92,
530
    DW_OP_piece = 0x93,
531
    DW_OP_deref_size = 0x94,
532
    DW_OP_xderef_size = 0x95,
533
    DW_OP_nop = 0x96,
534
    /* DWARF 3 extensions.  */
535
    DW_OP_push_object_address = 0x97,
536
    DW_OP_call2 = 0x98,
537
    DW_OP_call4 = 0x99,
538
    DW_OP_call_ref = 0x9a,
539
    DW_OP_form_tls_address = 0x9b,
540
    DW_OP_call_frame_cfa = 0x9c,
541
    DW_OP_bit_piece = 0x9d,
542
 
543
    /* DWARF 4 extensions.  */
544
    DW_OP_implicit_value = 0x9e,
545
    DW_OP_stack_value = 0x9f,
546
 
547
    DW_OP_lo_user = 0xe0,       /* Implementation-defined range start.  */
548
    DW_OP_hi_user = 0xff,       /* Implementation-defined range end.  */
549
 
550
    /* GNU extensions.  */
551
    DW_OP_GNU_push_tls_address = 0xe0,
552
    /* The following is for marking variables that are uninitialized.  */
553
    DW_OP_GNU_uninit     = 0xf0,
554
    DW_OP_GNU_encoded_addr = 0xf1,
555
    /* The GNU implicit pointer extension.
556
       See http://www.dwarfstd.org/ShowIssue.php?issue=100831.1&type=open .  */
557
    DW_OP_GNU_implicit_pointer = 0xf2,
558
    /* The GNU entry value extension.
559
       See http://www.dwarfstd.org/ShowIssue.php?issue=100909.1&type=open .  */
560
    DW_OP_GNU_entry_value = 0xf3,
561
    /* The GNU typed stack extension.
562
       See http://www.dwarfstd.org/doc/040408.1.html .  */
563
    DW_OP_GNU_const_type = 0xf4,
564
    DW_OP_GNU_regval_type = 0xf5,
565
    DW_OP_GNU_deref_type = 0xf6,
566
    DW_OP_GNU_convert = 0xf7,
567
    DW_OP_GNU_reinterpret = 0xf9,
568 161 khays
    /* The GNU parameter ref extension.  */
569
    DW_OP_GNU_parameter_ref = 0xfa,
570 17 khays
    /* HP extensions.  */
571
    DW_OP_HP_unknown     = 0xe0, /* Ouch, the same as GNU_push_tls_address.  */
572
    DW_OP_HP_is_value    = 0xe1,
573
    DW_OP_HP_fltconst4   = 0xe2,
574
    DW_OP_HP_fltconst8   = 0xe3,
575
    DW_OP_HP_mod_range   = 0xe4,
576
    DW_OP_HP_unmod_range = 0xe5,
577
    DW_OP_HP_tls         = 0xe6,
578
    /* PGI (STMicroelectronics) extensions.  */
579
    DW_OP_PGI_omp_thread_num = 0xf8
580
  };
581
 
582
/* Type encodings.  */
583
enum dwarf_type
584
  {
585
    DW_ATE_void = 0x0,
586
    DW_ATE_address = 0x1,
587
    DW_ATE_boolean = 0x2,
588
    DW_ATE_complex_float = 0x3,
589
    DW_ATE_float = 0x4,
590
    DW_ATE_signed = 0x5,
591
    DW_ATE_signed_char = 0x6,
592
    DW_ATE_unsigned = 0x7,
593
    DW_ATE_unsigned_char = 0x8,
594
    /* DWARF 3.  */
595
    DW_ATE_imaginary_float = 0x9,
596
    DW_ATE_packed_decimal = 0xa,
597
    DW_ATE_numeric_string = 0xb,
598
    DW_ATE_edited = 0xc,
599
    DW_ATE_signed_fixed = 0xd,
600
    DW_ATE_unsigned_fixed = 0xe,
601
    DW_ATE_decimal_float = 0xf,
602
    /* DWARF 4.  */
603
    DW_ATE_UTF = 0x10,
604
 
605
    DW_ATE_lo_user = 0x80,
606
    DW_ATE_hi_user = 0xff,
607
 
608
    /* HP extensions.  */
609
    DW_ATE_HP_float80             = 0x80, /* Floating-point (80 bit).  */
610
    DW_ATE_HP_complex_float80     = 0x81, /* Complex floating-point (80 bit).  */
611
    DW_ATE_HP_float128            = 0x82, /* Floating-point (128 bit).  */
612
    DW_ATE_HP_complex_float128    = 0x83, /* Complex fp (128 bit).  */
613
    DW_ATE_HP_floathpintel        = 0x84, /* Floating-point (82 bit IA64).  */
614
    DW_ATE_HP_imaginary_float80   = 0x85,
615
    DW_ATE_HP_imaginary_float128  = 0x86,
616
    DW_ATE_HP_VAX_float           = 0x88, /* F or G floating.  */
617
    DW_ATE_HP_VAX_float_d         = 0x89, /* D floating.  */
618
    DW_ATE_HP_packed_decimal      = 0x8a, /* Cobol.  */
619
    DW_ATE_HP_zoned_decimal       = 0x8b, /* Cobol.  */
620
    DW_ATE_HP_edited              = 0x8c, /* Cobol.  */
621
    DW_ATE_HP_signed_fixed        = 0x8d, /* Cobol.  */
622
    DW_ATE_HP_unsigned_fixed      = 0x8e, /* Cobol.  */
623
    DW_ATE_HP_VAX_complex_float   = 0x8f, /* F or G floating complex.  */
624
    DW_ATE_HP_VAX_complex_float_d = 0x90  /* D floating complex.  */
625
  };
626
 
627
/* Decimal sign encodings.  */
628
enum dwarf_decimal_sign_encoding
629
  {
630
    /* DWARF 3.  */
631
    DW_DS_unsigned = 0x01,
632
    DW_DS_leading_overpunch = 0x02,
633
    DW_DS_trailing_overpunch = 0x03,
634
    DW_DS_leading_separate = 0x04,
635
    DW_DS_trailing_separate = 0x05
636
  };
637
 
638
/* Endianity encodings.  */
639
enum dwarf_endianity_encoding
640
  {
641
    /* DWARF 3.  */
642
    DW_END_default = 0x00,
643
    DW_END_big = 0x01,
644
    DW_END_little = 0x02,
645
 
646
    DW_END_lo_user = 0x40,
647
    DW_END_hi_user = 0xff
648
  };
649
 
650
/* Array ordering names and codes.  */
651
enum dwarf_array_dim_ordering
652
  {
653
    DW_ORD_row_major = 0,
654
    DW_ORD_col_major = 1
655
  };
656
 
657
/* Access attribute.  */
658
enum dwarf_access_attribute
659
  {
660
    DW_ACCESS_public = 1,
661
    DW_ACCESS_protected = 2,
662
    DW_ACCESS_private = 3
663
  };
664
 
665
/* Visibility.  */
666
enum dwarf_visibility_attribute
667
  {
668
    DW_VIS_local = 1,
669
    DW_VIS_exported = 2,
670
    DW_VIS_qualified = 3
671
  };
672
 
673
/* Virtuality.  */
674
enum dwarf_virtuality_attribute
675
  {
676
    DW_VIRTUALITY_none = 0,
677
    DW_VIRTUALITY_virtual = 1,
678
    DW_VIRTUALITY_pure_virtual = 2
679
  };
680
 
681
/* Case sensitivity.  */
682
enum dwarf_id_case
683
  {
684
    DW_ID_case_sensitive = 0,
685
    DW_ID_up_case = 1,
686
    DW_ID_down_case = 2,
687
    DW_ID_case_insensitive = 3
688
  };
689
 
690
/* Calling convention.  */
691
enum dwarf_calling_convention
692
  {
693
    DW_CC_normal = 0x1,
694
    DW_CC_program = 0x2,
695
    DW_CC_nocall = 0x3,
696
 
697
    DW_CC_lo_user = 0x40,
698
    DW_CC_hi_user = 0xff,
699
 
700
    DW_CC_GNU_renesas_sh = 0x40,
701
    DW_CC_GNU_borland_fastcall_i386 = 0x41,
702
 
703
    /* This DW_CC_ value is not currently generated by any toolchain.  It is
704
       used internally to GDB to indicate OpenCL C functions that have been
705
       compiled with the IBM XL C for OpenCL compiler and use a non-platform
706
       calling convention for passing OpenCL C vector types.  This value may
707
       be changed freely as long as it does not conflict with any other DW_CC_
708
       value defined here.  */
709
    DW_CC_GDB_IBM_OpenCL = 0xff
710
  };
711
 
712
/* Inline attribute.  */
713
enum dwarf_inline_attribute
714
  {
715
    DW_INL_not_inlined = 0,
716
    DW_INL_inlined = 1,
717
    DW_INL_declared_not_inlined = 2,
718
    DW_INL_declared_inlined = 3
719
  };
720
 
721
/* Discriminant lists.  */
722
enum dwarf_discrim_list
723
  {
724
    DW_DSC_label = 0,
725
    DW_DSC_range = 1
726
  };
727
 
728
/* Line number opcodes.  */
729
enum dwarf_line_number_ops
730
  {
731
    DW_LNS_extended_op = 0,
732
    DW_LNS_copy = 1,
733
    DW_LNS_advance_pc = 2,
734
    DW_LNS_advance_line = 3,
735
    DW_LNS_set_file = 4,
736
    DW_LNS_set_column = 5,
737
    DW_LNS_negate_stmt = 6,
738
    DW_LNS_set_basic_block = 7,
739
    DW_LNS_const_add_pc = 8,
740
    DW_LNS_fixed_advance_pc = 9,
741
    /* DWARF 3.  */
742
    DW_LNS_set_prologue_end = 10,
743
    DW_LNS_set_epilogue_begin = 11,
744
    DW_LNS_set_isa = 12
745
  };
746
 
747
/* Line number extended opcodes.  */
748
enum dwarf_line_number_x_ops
749
  {
750
    DW_LNE_end_sequence = 1,
751
    DW_LNE_set_address = 2,
752
    DW_LNE_define_file = 3,
753
    DW_LNE_set_discriminator = 4,
754
    /* HP extensions.  */
755
    DW_LNE_HP_negate_is_UV_update      = 0x11,
756
    DW_LNE_HP_push_context             = 0x12,
757
    DW_LNE_HP_pop_context              = 0x13,
758
    DW_LNE_HP_set_file_line_column     = 0x14,
759
    DW_LNE_HP_set_routine_name         = 0x15,
760
    DW_LNE_HP_set_sequence             = 0x16,
761
    DW_LNE_HP_negate_post_semantics    = 0x17,
762
    DW_LNE_HP_negate_function_exit     = 0x18,
763
    DW_LNE_HP_negate_front_end_logical = 0x19,
764
    DW_LNE_HP_define_proc              = 0x20,
765
    DW_LNE_HP_source_file_correlation  = 0x80,
766
 
767
    DW_LNE_lo_user = 0x80,
768
    DW_LNE_hi_user = 0xff
769
  };
770
 
771
/* Sub-opcodes for DW_LNE_HP_source_file_correlation.  */
772
enum dwarf_line_number_hp_sfc_ops
773
  {
774
    DW_LNE_HP_SFC_formfeed = 1,
775
    DW_LNE_HP_SFC_set_listing_line = 2,
776
    DW_LNE_HP_SFC_associate = 3
777
  };
778
 
779
/* Call frame information.  */
780
enum dwarf_call_frame_info
781
  {
782
    DW_CFA_advance_loc = 0x40,
783
    DW_CFA_offset = 0x80,
784
    DW_CFA_restore = 0xc0,
785
    DW_CFA_nop = 0x00,
786
    DW_CFA_set_loc = 0x01,
787
    DW_CFA_advance_loc1 = 0x02,
788
    DW_CFA_advance_loc2 = 0x03,
789
    DW_CFA_advance_loc4 = 0x04,
790
    DW_CFA_offset_extended = 0x05,
791
    DW_CFA_restore_extended = 0x06,
792
    DW_CFA_undefined = 0x07,
793
    DW_CFA_same_value = 0x08,
794
    DW_CFA_register = 0x09,
795
    DW_CFA_remember_state = 0x0a,
796
    DW_CFA_restore_state = 0x0b,
797
    DW_CFA_def_cfa = 0x0c,
798
    DW_CFA_def_cfa_register = 0x0d,
799
    DW_CFA_def_cfa_offset = 0x0e,
800
    /* DWARF 3.  */
801
    DW_CFA_def_cfa_expression = 0x0f,
802
    DW_CFA_expression = 0x10,
803
    DW_CFA_offset_extended_sf = 0x11,
804
    DW_CFA_def_cfa_sf = 0x12,
805
    DW_CFA_def_cfa_offset_sf = 0x13,
806
    DW_CFA_val_offset = 0x14,
807
    DW_CFA_val_offset_sf = 0x15,
808
    DW_CFA_val_expression = 0x16,
809
 
810
    DW_CFA_lo_user = 0x1c,
811
    DW_CFA_hi_user = 0x3f,
812
 
813
    /* SGI/MIPS specific.  */
814
    DW_CFA_MIPS_advance_loc8 = 0x1d,
815
    /* GNU extensions.  */
816
    DW_CFA_GNU_window_save = 0x2d,
817
    DW_CFA_GNU_args_size = 0x2e,
818
    DW_CFA_GNU_negative_offset_extended = 0x2f
819
  };
820
 
821
#define DW_CIE_ID         0xffffffff
822
#define DW64_CIE_ID       0xffffffffffffffffULL
823
#define DW_CIE_VERSION    1
824
 
825
#define DW_CFA_extended   0
826
 
827
#define DW_CHILDREN_no               0x00
828
#define DW_CHILDREN_yes              0x01
829
 
830
#define DW_ADDR_none            0
831
 
832
/* Source language names and codes.  */
833
enum dwarf_source_language
834
  {
835
    DW_LANG_C89 = 0x0001,
836
    DW_LANG_C = 0x0002,
837
    DW_LANG_Ada83 = 0x0003,
838
    DW_LANG_C_plus_plus = 0x0004,
839
    DW_LANG_Cobol74 = 0x0005,
840
    DW_LANG_Cobol85 = 0x0006,
841
    DW_LANG_Fortran77 = 0x0007,
842
    DW_LANG_Fortran90 = 0x0008,
843
    DW_LANG_Pascal83 = 0x0009,
844
    DW_LANG_Modula2 = 0x000a,
845
    /* DWARF 3.  */
846
    DW_LANG_Java = 0x000b,
847
    DW_LANG_C99 = 0x000c,
848
    DW_LANG_Ada95 = 0x000d,
849
    DW_LANG_Fortran95 = 0x000e,
850
    DW_LANG_PLI = 0x000f,
851
    DW_LANG_ObjC = 0x0010,
852
    DW_LANG_ObjC_plus_plus = 0x0011,
853
    DW_LANG_UPC = 0x0012,
854
    DW_LANG_D = 0x0013,
855
    /* DWARF 4.  */
856
    DW_LANG_Python = 0x0014,
857
    /* DWARF 5.  */
858
    DW_LANG_Go = 0x0016,
859
 
860
    DW_LANG_lo_user = 0x8000,   /* Implementation-defined range start.  */
861
    DW_LANG_hi_user = 0xffff,   /* Implementation-defined range start.  */
862
 
863
    /* MIPS.  */
864
    DW_LANG_Mips_Assembler = 0x8001,
865
    /* UPC.  */
866
    DW_LANG_Upc = 0x8765,
867
    /* HP extensions.  */
868
    DW_LANG_HP_Bliss     = 0x8003,
869
    DW_LANG_HP_Basic91   = 0x8004,
870
    DW_LANG_HP_Pascal91  = 0x8005,
871
    DW_LANG_HP_IMacro    = 0x8006,
872
    DW_LANG_HP_Assembler = 0x8007
873
  };
874
 
875
/* Names and codes for macro information.  */
876
enum dwarf_macinfo_record_type
877
  {
878
    DW_MACINFO_define = 1,
879
    DW_MACINFO_undef = 2,
880
    DW_MACINFO_start_file = 3,
881
    DW_MACINFO_end_file = 4,
882
    DW_MACINFO_vendor_ext = 255
883
  };
884 161 khays
 
885
/* Names and codes for new style macro information.  */
886
enum dwarf_macro_record_type
887
  {
888
    DW_MACRO_GNU_define = 1,
889
    DW_MACRO_GNU_undef = 2,
890
    DW_MACRO_GNU_start_file = 3,
891
    DW_MACRO_GNU_end_file = 4,
892
    DW_MACRO_GNU_define_indirect = 5,
893
    DW_MACRO_GNU_undef_indirect = 6,
894
    DW_MACRO_GNU_transparent_include = 7,
895
    DW_MACRO_GNU_lo_user = 0xe0,
896
    DW_MACRO_GNU_hi_user = 0xff
897
  };
898 17 khays
 
899
/* @@@ For use with GNU frame unwind information.  */
900
 
901
#define DW_EH_PE_absptr         0x00
902
#define DW_EH_PE_omit           0xff
903
 
904
#define DW_EH_PE_uleb128        0x01
905
#define DW_EH_PE_udata2         0x02
906
#define DW_EH_PE_udata4         0x03
907
#define DW_EH_PE_udata8         0x04
908
#define DW_EH_PE_sleb128        0x09
909
#define DW_EH_PE_sdata2         0x0A
910
#define DW_EH_PE_sdata4         0x0B
911
#define DW_EH_PE_sdata8         0x0C
912
#define DW_EH_PE_signed         0x08
913
 
914
#define DW_EH_PE_pcrel          0x10
915
#define DW_EH_PE_textrel        0x20
916
#define DW_EH_PE_datarel        0x30
917
#define DW_EH_PE_funcrel        0x40
918
#define DW_EH_PE_aligned        0x50
919
 
920
#define DW_EH_PE_indirect       0x80
921
 
922
#endif /* _DWARF2_H */

powered by: WebSVN 2.1.0

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