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

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gdb/] [gdb-6.8/] [include/] [elf/] [dwarf2.h] - Blame information for rev 26

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

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

powered by: WebSVN 2.1.0

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