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 147

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
    /* VMS extensions.  */
370
    DW_AT_VMS_rtnbeg_pd_address = 0x2201,
371
    /* GNAT extensions.  */
372
    /* GNAT descriptive type.
373
       See http://gcc.gnu.org/wiki/DW_AT_GNAT_descriptive_type .  */
374
    DW_AT_use_GNAT_descriptive_type = 0x2301,
375
    DW_AT_GNAT_descriptive_type = 0x2302,
376
    /* UPC extension.  */
377
    DW_AT_upc_threads_scaled = 0x3210,
378
    /* PGI (STMicroelectronics) extensions.  */
379
    DW_AT_PGI_lbase    = 0x3a00,
380
    DW_AT_PGI_soffset  = 0x3a01,
381
    DW_AT_PGI_lstride  = 0x3a02
382
  };
383
 
384
/* Location atom names and codes.  */
385
enum dwarf_location_atom
386
  {
387
    DW_OP_addr = 0x03,
388
    DW_OP_deref = 0x06,
389
    DW_OP_const1u = 0x08,
390
    DW_OP_const1s = 0x09,
391
    DW_OP_const2u = 0x0a,
392
    DW_OP_const2s = 0x0b,
393
    DW_OP_const4u = 0x0c,
394
    DW_OP_const4s = 0x0d,
395
    DW_OP_const8u = 0x0e,
396
    DW_OP_const8s = 0x0f,
397
    DW_OP_constu = 0x10,
398
    DW_OP_consts = 0x11,
399
    DW_OP_dup = 0x12,
400
    DW_OP_drop = 0x13,
401
    DW_OP_over = 0x14,
402
    DW_OP_pick = 0x15,
403
    DW_OP_swap = 0x16,
404
    DW_OP_rot = 0x17,
405
    DW_OP_xderef = 0x18,
406
    DW_OP_abs = 0x19,
407
    DW_OP_and = 0x1a,
408
    DW_OP_div = 0x1b,
409
    DW_OP_minus = 0x1c,
410
    DW_OP_mod = 0x1d,
411
    DW_OP_mul = 0x1e,
412
    DW_OP_neg = 0x1f,
413
    DW_OP_not = 0x20,
414
    DW_OP_or = 0x21,
415
    DW_OP_plus = 0x22,
416
    DW_OP_plus_uconst = 0x23,
417
    DW_OP_shl = 0x24,
418
    DW_OP_shr = 0x25,
419
    DW_OP_shra = 0x26,
420
    DW_OP_xor = 0x27,
421
    DW_OP_bra = 0x28,
422
    DW_OP_eq = 0x29,
423
    DW_OP_ge = 0x2a,
424
    DW_OP_gt = 0x2b,
425
    DW_OP_le = 0x2c,
426
    DW_OP_lt = 0x2d,
427
    DW_OP_ne = 0x2e,
428
    DW_OP_skip = 0x2f,
429
    DW_OP_lit0 = 0x30,
430
    DW_OP_lit1 = 0x31,
431
    DW_OP_lit2 = 0x32,
432
    DW_OP_lit3 = 0x33,
433
    DW_OP_lit4 = 0x34,
434
    DW_OP_lit5 = 0x35,
435
    DW_OP_lit6 = 0x36,
436
    DW_OP_lit7 = 0x37,
437
    DW_OP_lit8 = 0x38,
438
    DW_OP_lit9 = 0x39,
439
    DW_OP_lit10 = 0x3a,
440
    DW_OP_lit11 = 0x3b,
441
    DW_OP_lit12 = 0x3c,
442
    DW_OP_lit13 = 0x3d,
443
    DW_OP_lit14 = 0x3e,
444
    DW_OP_lit15 = 0x3f,
445
    DW_OP_lit16 = 0x40,
446
    DW_OP_lit17 = 0x41,
447
    DW_OP_lit18 = 0x42,
448
    DW_OP_lit19 = 0x43,
449
    DW_OP_lit20 = 0x44,
450
    DW_OP_lit21 = 0x45,
451
    DW_OP_lit22 = 0x46,
452
    DW_OP_lit23 = 0x47,
453
    DW_OP_lit24 = 0x48,
454
    DW_OP_lit25 = 0x49,
455
    DW_OP_lit26 = 0x4a,
456
    DW_OP_lit27 = 0x4b,
457
    DW_OP_lit28 = 0x4c,
458
    DW_OP_lit29 = 0x4d,
459
    DW_OP_lit30 = 0x4e,
460
    DW_OP_lit31 = 0x4f,
461
    DW_OP_reg0 = 0x50,
462
    DW_OP_reg1 = 0x51,
463
    DW_OP_reg2 = 0x52,
464
    DW_OP_reg3 = 0x53,
465
    DW_OP_reg4 = 0x54,
466
    DW_OP_reg5 = 0x55,
467
    DW_OP_reg6 = 0x56,
468
    DW_OP_reg7 = 0x57,
469
    DW_OP_reg8 = 0x58,
470
    DW_OP_reg9 = 0x59,
471
    DW_OP_reg10 = 0x5a,
472
    DW_OP_reg11 = 0x5b,
473
    DW_OP_reg12 = 0x5c,
474
    DW_OP_reg13 = 0x5d,
475
    DW_OP_reg14 = 0x5e,
476
    DW_OP_reg15 = 0x5f,
477
    DW_OP_reg16 = 0x60,
478
    DW_OP_reg17 = 0x61,
479
    DW_OP_reg18 = 0x62,
480
    DW_OP_reg19 = 0x63,
481
    DW_OP_reg20 = 0x64,
482
    DW_OP_reg21 = 0x65,
483
    DW_OP_reg22 = 0x66,
484
    DW_OP_reg23 = 0x67,
485
    DW_OP_reg24 = 0x68,
486
    DW_OP_reg25 = 0x69,
487
    DW_OP_reg26 = 0x6a,
488
    DW_OP_reg27 = 0x6b,
489
    DW_OP_reg28 = 0x6c,
490
    DW_OP_reg29 = 0x6d,
491
    DW_OP_reg30 = 0x6e,
492
    DW_OP_reg31 = 0x6f,
493
    DW_OP_breg0 = 0x70,
494
    DW_OP_breg1 = 0x71,
495
    DW_OP_breg2 = 0x72,
496
    DW_OP_breg3 = 0x73,
497
    DW_OP_breg4 = 0x74,
498
    DW_OP_breg5 = 0x75,
499
    DW_OP_breg6 = 0x76,
500
    DW_OP_breg7 = 0x77,
501
    DW_OP_breg8 = 0x78,
502
    DW_OP_breg9 = 0x79,
503
    DW_OP_breg10 = 0x7a,
504
    DW_OP_breg11 = 0x7b,
505
    DW_OP_breg12 = 0x7c,
506
    DW_OP_breg13 = 0x7d,
507
    DW_OP_breg14 = 0x7e,
508
    DW_OP_breg15 = 0x7f,
509
    DW_OP_breg16 = 0x80,
510
    DW_OP_breg17 = 0x81,
511
    DW_OP_breg18 = 0x82,
512
    DW_OP_breg19 = 0x83,
513
    DW_OP_breg20 = 0x84,
514
    DW_OP_breg21 = 0x85,
515
    DW_OP_breg22 = 0x86,
516
    DW_OP_breg23 = 0x87,
517
    DW_OP_breg24 = 0x88,
518
    DW_OP_breg25 = 0x89,
519
    DW_OP_breg26 = 0x8a,
520
    DW_OP_breg27 = 0x8b,
521
    DW_OP_breg28 = 0x8c,
522
    DW_OP_breg29 = 0x8d,
523
    DW_OP_breg30 = 0x8e,
524
    DW_OP_breg31 = 0x8f,
525
    DW_OP_regx = 0x90,
526
    DW_OP_fbreg = 0x91,
527
    DW_OP_bregx = 0x92,
528
    DW_OP_piece = 0x93,
529
    DW_OP_deref_size = 0x94,
530
    DW_OP_xderef_size = 0x95,
531
    DW_OP_nop = 0x96,
532
    /* DWARF 3 extensions.  */
533
    DW_OP_push_object_address = 0x97,
534
    DW_OP_call2 = 0x98,
535
    DW_OP_call4 = 0x99,
536
    DW_OP_call_ref = 0x9a,
537
    DW_OP_form_tls_address = 0x9b,
538
    DW_OP_call_frame_cfa = 0x9c,
539
    DW_OP_bit_piece = 0x9d,
540
 
541
    /* DWARF 4 extensions.  */
542
    DW_OP_implicit_value = 0x9e,
543
    DW_OP_stack_value = 0x9f,
544
 
545
    DW_OP_lo_user = 0xe0,       /* Implementation-defined range start.  */
546
    DW_OP_hi_user = 0xff,       /* Implementation-defined range end.  */
547
 
548
    /* GNU extensions.  */
549
    DW_OP_GNU_push_tls_address = 0xe0,
550
    /* The following is for marking variables that are uninitialized.  */
551
    DW_OP_GNU_uninit     = 0xf0,
552
    DW_OP_GNU_encoded_addr = 0xf1,
553
    /* The GNU implicit pointer extension.
554
       See http://www.dwarfstd.org/ShowIssue.php?issue=100831.1&type=open .  */
555
    DW_OP_GNU_implicit_pointer = 0xf2,
556
    /* The GNU entry value extension.
557
       See http://www.dwarfstd.org/ShowIssue.php?issue=100909.1&type=open .  */
558
    DW_OP_GNU_entry_value = 0xf3,
559
    /* The GNU typed stack extension.
560
       See http://www.dwarfstd.org/doc/040408.1.html .  */
561
    DW_OP_GNU_const_type = 0xf4,
562
    DW_OP_GNU_regval_type = 0xf5,
563
    DW_OP_GNU_deref_type = 0xf6,
564
    DW_OP_GNU_convert = 0xf7,
565
    DW_OP_GNU_reinterpret = 0xf9,
566
    /* HP extensions.  */
567
    DW_OP_HP_unknown     = 0xe0, /* Ouch, the same as GNU_push_tls_address.  */
568
    DW_OP_HP_is_value    = 0xe1,
569
    DW_OP_HP_fltconst4   = 0xe2,
570
    DW_OP_HP_fltconst8   = 0xe3,
571
    DW_OP_HP_mod_range   = 0xe4,
572
    DW_OP_HP_unmod_range = 0xe5,
573
    DW_OP_HP_tls         = 0xe6,
574
    /* PGI (STMicroelectronics) extensions.  */
575
    DW_OP_PGI_omp_thread_num = 0xf8
576
  };
577
 
578
/* Type encodings.  */
579
enum dwarf_type
580
  {
581
    DW_ATE_void = 0x0,
582
    DW_ATE_address = 0x1,
583
    DW_ATE_boolean = 0x2,
584
    DW_ATE_complex_float = 0x3,
585
    DW_ATE_float = 0x4,
586
    DW_ATE_signed = 0x5,
587
    DW_ATE_signed_char = 0x6,
588
    DW_ATE_unsigned = 0x7,
589
    DW_ATE_unsigned_char = 0x8,
590
    /* DWARF 3.  */
591
    DW_ATE_imaginary_float = 0x9,
592
    DW_ATE_packed_decimal = 0xa,
593
    DW_ATE_numeric_string = 0xb,
594
    DW_ATE_edited = 0xc,
595
    DW_ATE_signed_fixed = 0xd,
596
    DW_ATE_unsigned_fixed = 0xe,
597
    DW_ATE_decimal_float = 0xf,
598
    /* DWARF 4.  */
599
    DW_ATE_UTF = 0x10,
600
 
601
    DW_ATE_lo_user = 0x80,
602
    DW_ATE_hi_user = 0xff,
603
 
604
    /* HP extensions.  */
605
    DW_ATE_HP_float80             = 0x80, /* Floating-point (80 bit).  */
606
    DW_ATE_HP_complex_float80     = 0x81, /* Complex floating-point (80 bit).  */
607
    DW_ATE_HP_float128            = 0x82, /* Floating-point (128 bit).  */
608
    DW_ATE_HP_complex_float128    = 0x83, /* Complex fp (128 bit).  */
609
    DW_ATE_HP_floathpintel        = 0x84, /* Floating-point (82 bit IA64).  */
610
    DW_ATE_HP_imaginary_float80   = 0x85,
611
    DW_ATE_HP_imaginary_float128  = 0x86,
612
    DW_ATE_HP_VAX_float           = 0x88, /* F or G floating.  */
613
    DW_ATE_HP_VAX_float_d         = 0x89, /* D floating.  */
614
    DW_ATE_HP_packed_decimal      = 0x8a, /* Cobol.  */
615
    DW_ATE_HP_zoned_decimal       = 0x8b, /* Cobol.  */
616
    DW_ATE_HP_edited              = 0x8c, /* Cobol.  */
617
    DW_ATE_HP_signed_fixed        = 0x8d, /* Cobol.  */
618
    DW_ATE_HP_unsigned_fixed      = 0x8e, /* Cobol.  */
619
    DW_ATE_HP_VAX_complex_float   = 0x8f, /* F or G floating complex.  */
620
    DW_ATE_HP_VAX_complex_float_d = 0x90  /* D floating complex.  */
621
  };
622
 
623
/* Decimal sign encodings.  */
624
enum dwarf_decimal_sign_encoding
625
  {
626
    /* DWARF 3.  */
627
    DW_DS_unsigned = 0x01,
628
    DW_DS_leading_overpunch = 0x02,
629
    DW_DS_trailing_overpunch = 0x03,
630
    DW_DS_leading_separate = 0x04,
631
    DW_DS_trailing_separate = 0x05
632
  };
633
 
634
/* Endianity encodings.  */
635
enum dwarf_endianity_encoding
636
  {
637
    /* DWARF 3.  */
638
    DW_END_default = 0x00,
639
    DW_END_big = 0x01,
640
    DW_END_little = 0x02,
641
 
642
    DW_END_lo_user = 0x40,
643
    DW_END_hi_user = 0xff
644
  };
645
 
646
/* Array ordering names and codes.  */
647
enum dwarf_array_dim_ordering
648
  {
649
    DW_ORD_row_major = 0,
650
    DW_ORD_col_major = 1
651
  };
652
 
653
/* Access attribute.  */
654
enum dwarf_access_attribute
655
  {
656
    DW_ACCESS_public = 1,
657
    DW_ACCESS_protected = 2,
658
    DW_ACCESS_private = 3
659
  };
660
 
661
/* Visibility.  */
662
enum dwarf_visibility_attribute
663
  {
664
    DW_VIS_local = 1,
665
    DW_VIS_exported = 2,
666
    DW_VIS_qualified = 3
667
  };
668
 
669
/* Virtuality.  */
670
enum dwarf_virtuality_attribute
671
  {
672
    DW_VIRTUALITY_none = 0,
673
    DW_VIRTUALITY_virtual = 1,
674
    DW_VIRTUALITY_pure_virtual = 2
675
  };
676
 
677
/* Case sensitivity.  */
678
enum dwarf_id_case
679
  {
680
    DW_ID_case_sensitive = 0,
681
    DW_ID_up_case = 1,
682
    DW_ID_down_case = 2,
683
    DW_ID_case_insensitive = 3
684
  };
685
 
686
/* Calling convention.  */
687
enum dwarf_calling_convention
688
  {
689
    DW_CC_normal = 0x1,
690
    DW_CC_program = 0x2,
691
    DW_CC_nocall = 0x3,
692
 
693
    DW_CC_lo_user = 0x40,
694
    DW_CC_hi_user = 0xff,
695
 
696
    DW_CC_GNU_renesas_sh = 0x40,
697
    DW_CC_GNU_borland_fastcall_i386 = 0x41,
698
 
699
    /* This DW_CC_ value is not currently generated by any toolchain.  It is
700
       used internally to GDB to indicate OpenCL C functions that have been
701
       compiled with the IBM XL C for OpenCL compiler and use a non-platform
702
       calling convention for passing OpenCL C vector types.  This value may
703
       be changed freely as long as it does not conflict with any other DW_CC_
704
       value defined here.  */
705
    DW_CC_GDB_IBM_OpenCL = 0xff
706
  };
707
 
708
/* Inline attribute.  */
709
enum dwarf_inline_attribute
710
  {
711
    DW_INL_not_inlined = 0,
712
    DW_INL_inlined = 1,
713
    DW_INL_declared_not_inlined = 2,
714
    DW_INL_declared_inlined = 3
715
  };
716
 
717
/* Discriminant lists.  */
718
enum dwarf_discrim_list
719
  {
720
    DW_DSC_label = 0,
721
    DW_DSC_range = 1
722
  };
723
 
724
/* Line number opcodes.  */
725
enum dwarf_line_number_ops
726
  {
727
    DW_LNS_extended_op = 0,
728
    DW_LNS_copy = 1,
729
    DW_LNS_advance_pc = 2,
730
    DW_LNS_advance_line = 3,
731
    DW_LNS_set_file = 4,
732
    DW_LNS_set_column = 5,
733
    DW_LNS_negate_stmt = 6,
734
    DW_LNS_set_basic_block = 7,
735
    DW_LNS_const_add_pc = 8,
736
    DW_LNS_fixed_advance_pc = 9,
737
    /* DWARF 3.  */
738
    DW_LNS_set_prologue_end = 10,
739
    DW_LNS_set_epilogue_begin = 11,
740
    DW_LNS_set_isa = 12
741
  };
742
 
743
/* Line number extended opcodes.  */
744
enum dwarf_line_number_x_ops
745
  {
746
    DW_LNE_end_sequence = 1,
747
    DW_LNE_set_address = 2,
748
    DW_LNE_define_file = 3,
749
    DW_LNE_set_discriminator = 4,
750
    /* HP extensions.  */
751
    DW_LNE_HP_negate_is_UV_update      = 0x11,
752
    DW_LNE_HP_push_context             = 0x12,
753
    DW_LNE_HP_pop_context              = 0x13,
754
    DW_LNE_HP_set_file_line_column     = 0x14,
755
    DW_LNE_HP_set_routine_name         = 0x15,
756
    DW_LNE_HP_set_sequence             = 0x16,
757
    DW_LNE_HP_negate_post_semantics    = 0x17,
758
    DW_LNE_HP_negate_function_exit     = 0x18,
759
    DW_LNE_HP_negate_front_end_logical = 0x19,
760
    DW_LNE_HP_define_proc              = 0x20,
761
    DW_LNE_HP_source_file_correlation  = 0x80,
762
 
763
    DW_LNE_lo_user = 0x80,
764
    DW_LNE_hi_user = 0xff
765
  };
766
 
767
/* Sub-opcodes for DW_LNE_HP_source_file_correlation.  */
768
enum dwarf_line_number_hp_sfc_ops
769
  {
770
    DW_LNE_HP_SFC_formfeed = 1,
771
    DW_LNE_HP_SFC_set_listing_line = 2,
772
    DW_LNE_HP_SFC_associate = 3
773
  };
774
 
775
/* Call frame information.  */
776
enum dwarf_call_frame_info
777
  {
778
    DW_CFA_advance_loc = 0x40,
779
    DW_CFA_offset = 0x80,
780
    DW_CFA_restore = 0xc0,
781
    DW_CFA_nop = 0x00,
782
    DW_CFA_set_loc = 0x01,
783
    DW_CFA_advance_loc1 = 0x02,
784
    DW_CFA_advance_loc2 = 0x03,
785
    DW_CFA_advance_loc4 = 0x04,
786
    DW_CFA_offset_extended = 0x05,
787
    DW_CFA_restore_extended = 0x06,
788
    DW_CFA_undefined = 0x07,
789
    DW_CFA_same_value = 0x08,
790
    DW_CFA_register = 0x09,
791
    DW_CFA_remember_state = 0x0a,
792
    DW_CFA_restore_state = 0x0b,
793
    DW_CFA_def_cfa = 0x0c,
794
    DW_CFA_def_cfa_register = 0x0d,
795
    DW_CFA_def_cfa_offset = 0x0e,
796
    /* DWARF 3.  */
797
    DW_CFA_def_cfa_expression = 0x0f,
798
    DW_CFA_expression = 0x10,
799
    DW_CFA_offset_extended_sf = 0x11,
800
    DW_CFA_def_cfa_sf = 0x12,
801
    DW_CFA_def_cfa_offset_sf = 0x13,
802
    DW_CFA_val_offset = 0x14,
803
    DW_CFA_val_offset_sf = 0x15,
804
    DW_CFA_val_expression = 0x16,
805
 
806
    DW_CFA_lo_user = 0x1c,
807
    DW_CFA_hi_user = 0x3f,
808
 
809
    /* SGI/MIPS specific.  */
810
    DW_CFA_MIPS_advance_loc8 = 0x1d,
811
    /* GNU extensions.  */
812
    DW_CFA_GNU_window_save = 0x2d,
813
    DW_CFA_GNU_args_size = 0x2e,
814
    DW_CFA_GNU_negative_offset_extended = 0x2f
815
  };
816
 
817
#define DW_CIE_ID         0xffffffff
818
#define DW64_CIE_ID       0xffffffffffffffffULL
819
#define DW_CIE_VERSION    1
820
 
821
#define DW_CFA_extended   0
822
 
823
#define DW_CHILDREN_no               0x00
824
#define DW_CHILDREN_yes              0x01
825
 
826
#define DW_ADDR_none            0
827
 
828
/* Source language names and codes.  */
829
enum dwarf_source_language
830
  {
831
    DW_LANG_C89 = 0x0001,
832
    DW_LANG_C = 0x0002,
833
    DW_LANG_Ada83 = 0x0003,
834
    DW_LANG_C_plus_plus = 0x0004,
835
    DW_LANG_Cobol74 = 0x0005,
836
    DW_LANG_Cobol85 = 0x0006,
837
    DW_LANG_Fortran77 = 0x0007,
838
    DW_LANG_Fortran90 = 0x0008,
839
    DW_LANG_Pascal83 = 0x0009,
840
    DW_LANG_Modula2 = 0x000a,
841
    /* DWARF 3.  */
842
    DW_LANG_Java = 0x000b,
843
    DW_LANG_C99 = 0x000c,
844
    DW_LANG_Ada95 = 0x000d,
845
    DW_LANG_Fortran95 = 0x000e,
846
    DW_LANG_PLI = 0x000f,
847
    DW_LANG_ObjC = 0x0010,
848
    DW_LANG_ObjC_plus_plus = 0x0011,
849
    DW_LANG_UPC = 0x0012,
850
    DW_LANG_D = 0x0013,
851
    /* DWARF 4.  */
852
    DW_LANG_Python = 0x0014,
853
    /* DWARF 5.  */
854
    DW_LANG_Go = 0x0016,
855
 
856
    DW_LANG_lo_user = 0x8000,   /* Implementation-defined range start.  */
857
    DW_LANG_hi_user = 0xffff,   /* Implementation-defined range start.  */
858
 
859
    /* MIPS.  */
860
    DW_LANG_Mips_Assembler = 0x8001,
861
    /* UPC.  */
862
    DW_LANG_Upc = 0x8765,
863
    /* HP extensions.  */
864
    DW_LANG_HP_Bliss     = 0x8003,
865
    DW_LANG_HP_Basic91   = 0x8004,
866
    DW_LANG_HP_Pascal91  = 0x8005,
867
    DW_LANG_HP_IMacro    = 0x8006,
868
    DW_LANG_HP_Assembler = 0x8007
869
  };
870
 
871
/* Names and codes for macro information.  */
872
enum dwarf_macinfo_record_type
873
  {
874
    DW_MACINFO_define = 1,
875
    DW_MACINFO_undef = 2,
876
    DW_MACINFO_start_file = 3,
877
    DW_MACINFO_end_file = 4,
878
    DW_MACINFO_vendor_ext = 255
879
  };
880
 
881
/* @@@ For use with GNU frame unwind information.  */
882
 
883
#define DW_EH_PE_absptr         0x00
884
#define DW_EH_PE_omit           0xff
885
 
886
#define DW_EH_PE_uleb128        0x01
887
#define DW_EH_PE_udata2         0x02
888
#define DW_EH_PE_udata4         0x03
889
#define DW_EH_PE_udata8         0x04
890
#define DW_EH_PE_sleb128        0x09
891
#define DW_EH_PE_sdata2         0x0A
892
#define DW_EH_PE_sdata4         0x0B
893
#define DW_EH_PE_sdata8         0x0C
894
#define DW_EH_PE_signed         0x08
895
 
896
#define DW_EH_PE_pcrel          0x10
897
#define DW_EH_PE_textrel        0x20
898
#define DW_EH_PE_datarel        0x30
899
#define DW_EH_PE_funcrel        0x40
900
#define DW_EH_PE_aligned        0x50
901
 
902
#define DW_EH_PE_indirect       0x80
903
 
904
#endif /* _DWARF2_H */

powered by: WebSVN 2.1.0

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