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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gdb-7.1/] [include/] [dwarf2.h] - Blame information for rev 853

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

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

powered by: WebSVN 2.1.0

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