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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gdb-7.2/] [include/] [dwarf2.h] - Blame information for rev 855

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

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

powered by: WebSVN 2.1.0

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