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

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.2.2/] [gcc/] [dwarf2.h] - Blame information for rev 247

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

Line No. Rev Author Line
1 38 julius
/* 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 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
   You should have received a copy of the GNU General Public License
26
   along with GCC; see the file COPYING3.  If not see
27
   <http://www.gnu.org/licenses/>.  */
28
 
29
/* This file is derived from the DWARF specification (a public document)
30
   Revision 2.0.0 (July 27, 1993) developed by the UNIX International
31
   Programming Languages Special Interest Group (UI/PLSIG) and distributed
32
   by UNIX International.  Copies of this specification are available from
33
   UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.
34
 
35
   This file also now contains definitions from the DWARF 3 specification.  */
36
 
37
/* This file is shared between GCC and GDB, and should not contain
38
   prototypes.  */
39
 
40
#ifndef GCC_DWARF2_H
41
#define GCC_DWARF2_H
42
 
43
/* Structure found in the .debug_line section.  */
44
typedef struct
45
{
46
  unsigned char li_length          [4];
47
  unsigned char li_version         [2];
48
  unsigned char li_prologue_length [4];
49
  unsigned char li_min_insn_length [1];
50
  unsigned char li_default_is_stmt [1];
51
  unsigned char li_line_base       [1];
52
  unsigned char li_line_range      [1];
53
  unsigned char li_opcode_base     [1];
54
}
55
DWARF2_External_LineInfo;
56
 
57
typedef struct
58
{
59
  unsigned long  li_length;
60
  unsigned short li_version;
61
  unsigned int   li_prologue_length;
62
  unsigned char  li_min_insn_length;
63
  unsigned char  li_default_is_stmt;
64
  int            li_line_base;
65
  unsigned char  li_line_range;
66
  unsigned char  li_opcode_base;
67
}
68
DWARF2_Internal_LineInfo;
69
 
70
/* Structure found in .debug_pubnames section.  */
71
typedef struct
72
{
73
  unsigned char pn_length  [4];
74
  unsigned char pn_version [2];
75
  unsigned char pn_offset  [4];
76
  unsigned char pn_size    [4];
77
}
78
DWARF2_External_PubNames;
79
 
80
typedef struct
81
{
82
  unsigned long  pn_length;
83
  unsigned short pn_version;
84
  unsigned long  pn_offset;
85
  unsigned long  pn_size;
86
}
87
DWARF2_Internal_PubNames;
88
 
89
/* Structure found in .debug_info section.  */
90
typedef struct
91
{
92
  unsigned char  cu_length        [4];
93
  unsigned char  cu_version       [2];
94
  unsigned char  cu_abbrev_offset [4];
95
  unsigned char  cu_pointer_size  [1];
96
}
97
DWARF2_External_CompUnit;
98
 
99
typedef struct
100
{
101
  unsigned long  cu_length;
102
  unsigned short cu_version;
103
  unsigned long  cu_abbrev_offset;
104
  unsigned char  cu_pointer_size;
105
}
106
DWARF2_Internal_CompUnit;
107
 
108
typedef struct
109
{
110
  unsigned char  ar_length       [4];
111
  unsigned char  ar_version      [2];
112
  unsigned char  ar_info_offset  [4];
113
  unsigned char  ar_pointer_size [1];
114
  unsigned char  ar_segment_size [1];
115
}
116
DWARF2_External_ARange;
117
 
118
typedef struct
119
{
120
  unsigned long  ar_length;
121
  unsigned short ar_version;
122
  unsigned long  ar_info_offset;
123
  unsigned char  ar_pointer_size;
124
  unsigned char  ar_segment_size;
125
}
126
DWARF2_Internal_ARange;
127
 
128
 
129
/* Tag names and codes.  */
130
enum dwarf_tag
131
  {
132
    DW_TAG_padding = 0x00,
133
    DW_TAG_array_type = 0x01,
134
    DW_TAG_class_type = 0x02,
135
    DW_TAG_entry_point = 0x03,
136
    DW_TAG_enumeration_type = 0x04,
137
    DW_TAG_formal_parameter = 0x05,
138
    DW_TAG_imported_declaration = 0x08,
139
    DW_TAG_label = 0x0a,
140
    DW_TAG_lexical_block = 0x0b,
141
    DW_TAG_member = 0x0d,
142
    DW_TAG_pointer_type = 0x0f,
143
    DW_TAG_reference_type = 0x10,
144
    DW_TAG_compile_unit = 0x11,
145
    DW_TAG_string_type = 0x12,
146
    DW_TAG_structure_type = 0x13,
147
    DW_TAG_subroutine_type = 0x15,
148
    DW_TAG_typedef = 0x16,
149
    DW_TAG_union_type = 0x17,
150
    DW_TAG_unspecified_parameters = 0x18,
151
    DW_TAG_variant = 0x19,
152
    DW_TAG_common_block = 0x1a,
153
    DW_TAG_common_inclusion = 0x1b,
154
    DW_TAG_inheritance = 0x1c,
155
    DW_TAG_inlined_subroutine = 0x1d,
156
    DW_TAG_module = 0x1e,
157
    DW_TAG_ptr_to_member_type = 0x1f,
158
    DW_TAG_set_type = 0x20,
159
    DW_TAG_subrange_type = 0x21,
160
    DW_TAG_with_stmt = 0x22,
161
    DW_TAG_access_declaration = 0x23,
162
    DW_TAG_base_type = 0x24,
163
    DW_TAG_catch_block = 0x25,
164
    DW_TAG_const_type = 0x26,
165
    DW_TAG_constant = 0x27,
166
    DW_TAG_enumerator = 0x28,
167
    DW_TAG_file_type = 0x29,
168
    DW_TAG_friend = 0x2a,
169
    DW_TAG_namelist = 0x2b,
170
    DW_TAG_namelist_item = 0x2c,
171
    DW_TAG_packed_type = 0x2d,
172
    DW_TAG_subprogram = 0x2e,
173
    DW_TAG_template_type_param = 0x2f,
174
    DW_TAG_template_value_param = 0x30,
175
    DW_TAG_thrown_type = 0x31,
176
    DW_TAG_try_block = 0x32,
177
    DW_TAG_variant_part = 0x33,
178
    DW_TAG_variable = 0x34,
179
    DW_TAG_volatile_type = 0x35,
180
    /* DWARF 3.  */
181
    DW_TAG_dwarf_procedure = 0x36,
182
    DW_TAG_restrict_type = 0x37,
183
    DW_TAG_interface_type = 0x38,
184
    DW_TAG_namespace = 0x39,
185
    DW_TAG_imported_module = 0x3a,
186
    DW_TAG_unspecified_type = 0x3b,
187
    DW_TAG_partial_unit = 0x3c,
188
    DW_TAG_imported_unit = 0x3d,
189
    DW_TAG_condition = 0x3f,
190
    DW_TAG_shared_type = 0x40,
191
    /* SGI/MIPS Extensions.  */
192
    DW_TAG_MIPS_loop = 0x4081,
193
    /* HP extensions.  See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz .  */
194
    DW_TAG_HP_array_descriptor = 0x4090,
195
    /* GNU extensions.  */
196
    DW_TAG_format_label = 0x4101,       /* For FORTRAN 77 and Fortran 90.  */
197
    DW_TAG_function_template = 0x4102,  /* For C++.  */
198
    DW_TAG_class_template = 0x4103,     /* For C++.  */
199
    DW_TAG_GNU_BINCL = 0x4104,
200
    DW_TAG_GNU_EINCL = 0x4105,
201
    /* Extensions for UPC.  See: http://upc.gwu.edu/~upc.  */
202
    DW_TAG_upc_shared_type = 0x8765,
203
    DW_TAG_upc_strict_type = 0x8766,
204
    DW_TAG_upc_relaxed_type = 0x8767,
205
    /* PGI (STMicroelectronics) extensions.  No documentation available.  */
206
    DW_TAG_PGI_kanji_type      = 0xA000,
207
    DW_TAG_PGI_interface_block = 0xA020
208
  };
209
 
210
#define DW_TAG_lo_user  0x4080
211
#define DW_TAG_hi_user  0xffff
212
 
213
/* Flag that tells whether entry has a child or not.  */
214
#define DW_children_no   0
215
#define DW_children_yes  1
216
 
217
/* Form names and codes.  */
218
enum dwarf_form
219
  {
220
    DW_FORM_addr = 0x01,
221
    DW_FORM_block2 = 0x03,
222
    DW_FORM_block4 = 0x04,
223
    DW_FORM_data2 = 0x05,
224
    DW_FORM_data4 = 0x06,
225
    DW_FORM_data8 = 0x07,
226
    DW_FORM_string = 0x08,
227
    DW_FORM_block = 0x09,
228
    DW_FORM_block1 = 0x0a,
229
    DW_FORM_data1 = 0x0b,
230
    DW_FORM_flag = 0x0c,
231
    DW_FORM_sdata = 0x0d,
232
    DW_FORM_strp = 0x0e,
233
    DW_FORM_udata = 0x0f,
234
    DW_FORM_ref_addr = 0x10,
235
    DW_FORM_ref1 = 0x11,
236
    DW_FORM_ref2 = 0x12,
237
    DW_FORM_ref4 = 0x13,
238
    DW_FORM_ref8 = 0x14,
239
    DW_FORM_ref_udata = 0x15,
240
    DW_FORM_indirect = 0x16
241
  };
242
 
243
/* Attribute names and codes.  */
244
enum dwarf_attribute
245
  {
246
    DW_AT_sibling = 0x01,
247
    DW_AT_location = 0x02,
248
    DW_AT_name = 0x03,
249
    DW_AT_ordering = 0x09,
250
    DW_AT_subscr_data = 0x0a,
251
    DW_AT_byte_size = 0x0b,
252
    DW_AT_bit_offset = 0x0c,
253
    DW_AT_bit_size = 0x0d,
254
    DW_AT_element_list = 0x0f,
255
    DW_AT_stmt_list = 0x10,
256
    DW_AT_low_pc = 0x11,
257
    DW_AT_high_pc = 0x12,
258
    DW_AT_language = 0x13,
259
    DW_AT_member = 0x14,
260
    DW_AT_discr = 0x15,
261
    DW_AT_discr_value = 0x16,
262
    DW_AT_visibility = 0x17,
263
    DW_AT_import = 0x18,
264
    DW_AT_string_length = 0x19,
265
    DW_AT_common_reference = 0x1a,
266
    DW_AT_comp_dir = 0x1b,
267
    DW_AT_const_value = 0x1c,
268
    DW_AT_containing_type = 0x1d,
269
    DW_AT_default_value = 0x1e,
270
    DW_AT_inline = 0x20,
271
    DW_AT_is_optional = 0x21,
272
    DW_AT_lower_bound = 0x22,
273
    DW_AT_producer = 0x25,
274
    DW_AT_prototyped = 0x27,
275
    DW_AT_return_addr = 0x2a,
276
    DW_AT_start_scope = 0x2c,
277
    DW_AT_stride_size = 0x2e,
278
    DW_AT_upper_bound = 0x2f,
279
    DW_AT_abstract_origin = 0x31,
280
    DW_AT_accessibility = 0x32,
281
    DW_AT_address_class = 0x33,
282
    DW_AT_artificial = 0x34,
283
    DW_AT_base_types = 0x35,
284
    DW_AT_calling_convention = 0x36,
285
    DW_AT_count = 0x37,
286
    DW_AT_data_member_location = 0x38,
287
    DW_AT_decl_column = 0x39,
288
    DW_AT_decl_file = 0x3a,
289
    DW_AT_decl_line = 0x3b,
290
    DW_AT_declaration = 0x3c,
291
    DW_AT_discr_list = 0x3d,
292
    DW_AT_encoding = 0x3e,
293
    DW_AT_external = 0x3f,
294
    DW_AT_frame_base = 0x40,
295
    DW_AT_friend = 0x41,
296
    DW_AT_identifier_case = 0x42,
297
    DW_AT_macro_info = 0x43,
298
    DW_AT_namelist_items = 0x44,
299
    DW_AT_priority = 0x45,
300
    DW_AT_segment = 0x46,
301
    DW_AT_specification = 0x47,
302
    DW_AT_static_link = 0x48,
303
    DW_AT_type = 0x49,
304
    DW_AT_use_location = 0x4a,
305
    DW_AT_variable_parameter = 0x4b,
306
    DW_AT_virtuality = 0x4c,
307
    DW_AT_vtable_elem_location = 0x4d,
308
    /* DWARF 3 values.  */
309
    DW_AT_allocated     = 0x4e,
310
    DW_AT_associated    = 0x4f,
311
    DW_AT_data_location = 0x50,
312
    DW_AT_stride        = 0x51,
313
    DW_AT_entry_pc      = 0x52,
314
    DW_AT_use_UTF8      = 0x53,
315
    DW_AT_extension     = 0x54,
316
    DW_AT_ranges        = 0x55,
317
    DW_AT_trampoline    = 0x56,
318
    DW_AT_call_column   = 0x57,
319
    DW_AT_call_file     = 0x58,
320
    DW_AT_call_line     = 0x59,
321
    DW_AT_description   = 0x5a,
322
    DW_AT_binary_scale  = 0x5b,
323
    DW_AT_decimal_scale = 0x5c,
324
    DW_AT_small         = 0x5d,
325
    DW_AT_decimal_sign  = 0x5e,
326
    DW_AT_digit_count   = 0x5f,
327
    DW_AT_picture_string = 0x60,
328
    DW_AT_mutable       = 0x61,
329
    DW_AT_threads_scaled = 0x62,
330
    DW_AT_explicit      = 0x63,
331
    DW_AT_object_pointer = 0x64,
332
    DW_AT_endianity     = 0x65,
333
    DW_AT_elemental     = 0x66,
334
    DW_AT_pure          = 0x67,
335
    DW_AT_recursive     = 0x68,
336
    /* SGI/MIPS extensions.  */
337
    DW_AT_MIPS_fde = 0x2001,
338
    DW_AT_MIPS_loop_begin = 0x2002,
339
    DW_AT_MIPS_tail_loop_begin = 0x2003,
340
    DW_AT_MIPS_epilog_begin = 0x2004,
341
    DW_AT_MIPS_loop_unroll_factor = 0x2005,
342
    DW_AT_MIPS_software_pipeline_depth = 0x2006,
343
    DW_AT_MIPS_linkage_name = 0x2007,
344
    DW_AT_MIPS_stride = 0x2008,
345
    DW_AT_MIPS_abstract_name = 0x2009,
346
    DW_AT_MIPS_clone_origin = 0x200a,
347
    DW_AT_MIPS_has_inlines = 0x200b,
348
    /* HP extensions.  */
349
    DW_AT_HP_block_index         = 0x2000,
350
    DW_AT_HP_unmodifiable        = 0x2001, /* Same as DW_AT_MIPS_fde.  */
351
    DW_AT_HP_actuals_stmt_list   = 0x2010,
352
    DW_AT_HP_proc_per_section    = 0x2011,
353
    DW_AT_HP_raw_data_ptr        = 0x2012,
354
    DW_AT_HP_pass_by_reference   = 0x2013,
355
    DW_AT_HP_opt_level           = 0x2014,
356
    DW_AT_HP_prof_version_id     = 0x2015,
357
    DW_AT_HP_opt_flags           = 0x2016,
358
    DW_AT_HP_cold_region_low_pc  = 0x2017,
359
    DW_AT_HP_cold_region_high_pc = 0x2018,
360
    DW_AT_HP_all_variables_modifiable = 0x2019,
361
    DW_AT_HP_linkage_name        = 0x201a,
362
    DW_AT_HP_prof_flags          = 0x201b,  /* In comp unit of procs_info for -g.  */
363
    /* GNU extensions.  */
364
    DW_AT_sf_names   = 0x2101,
365
    DW_AT_src_info   = 0x2102,
366
    DW_AT_mac_info   = 0x2103,
367
    DW_AT_src_coords = 0x2104,
368
    DW_AT_body_begin = 0x2105,
369
    DW_AT_body_end   = 0x2106,
370
    DW_AT_GNU_vector = 0x2107,
371
    /* VMS extensions.  */
372
    DW_AT_VMS_rtnbeg_pd_address = 0x2201,
373
    /* UPC extension.  */
374
    DW_AT_upc_threads_scaled = 0x3210,
375
    /* PGI (STMicroelectronics) extensions.  */
376
    DW_AT_PGI_lbase    = 0x3a00,
377
    DW_AT_PGI_soffset  = 0x3a01,
378
    DW_AT_PGI_lstride  = 0x3a02
379
  };
380
 
381
#define DW_AT_lo_user   0x2000  /* Implementation-defined range start.  */
382
#define DW_AT_hi_user   0x3ff0  /* Implementation-defined range end.  */
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
    /* GNU extensions.  */
541
    DW_OP_GNU_push_tls_address = 0xe0,
542
    /* HP extensions.  */
543
    DW_OP_HP_unknown     = 0xe0, /* Ouch, the same as GNU_push_tls_address.  */
544
    DW_OP_HP_is_value    = 0xe1,
545
    DW_OP_HP_fltconst4   = 0xe2,
546
    DW_OP_HP_fltconst8   = 0xe3,
547
    DW_OP_HP_mod_range   = 0xe4,
548
    DW_OP_HP_unmod_range = 0xe5,
549
    DW_OP_HP_tls         = 0xe6
550
  };
551
 
552
#define DW_OP_lo_user   0xe0    /* Implementation-defined range start.  */
553
#define DW_OP_hi_user   0xff    /* Implementation-defined range end.  */
554
 
555
/* Type encodings.  */
556
enum dwarf_type
557
  {
558
    DW_ATE_void = 0x0,
559
    DW_ATE_address = 0x1,
560
    DW_ATE_boolean = 0x2,
561
    DW_ATE_complex_float = 0x3,
562
    DW_ATE_float = 0x4,
563
    DW_ATE_signed = 0x5,
564
    DW_ATE_signed_char = 0x6,
565
    DW_ATE_unsigned = 0x7,
566
    DW_ATE_unsigned_char = 0x8,
567
    /* DWARF 3.  */
568
    DW_ATE_imaginary_float = 0x9,
569
    DW_ATE_packed_decimal = 0xa,
570
    DW_ATE_numeric_string = 0xb,
571
    DW_ATE_edited = 0xc,
572
    DW_ATE_signed_fixed = 0xd,
573
    DW_ATE_unsigned_fixed = 0xe,
574
    DW_ATE_decimal_float = 0xf,
575
    /* HP extensions.  */
576
    DW_ATE_HP_float80            = 0x80, /* Floating-point (80 bit).  */
577
    DW_ATE_HP_complex_float80    = 0x81, /* Complex floating-point (80 bit).  */
578
    DW_ATE_HP_float128           = 0x82, /* Floating-point (128 bit).  */
579
    DW_ATE_HP_complex_float128   = 0x83, /* Complex floating-point (128 bit).  */
580
    DW_ATE_HP_floathpintel       = 0x84, /* Floating-point (82 bit IA64).  */
581
    DW_ATE_HP_imaginary_float80  = 0x85,
582
    DW_ATE_HP_imaginary_float128 = 0x86
583
  };
584
 
585
#define DW_ATE_lo_user 0x80
586
#define DW_ATE_hi_user 0xff
587
 
588
/* Decimal sign encodings.  */
589
enum dwarf_decimal_sign_encoding
590
  {
591
    /* DWARF 3.  */
592
    DW_DS_unsigned = 0x01,
593
    DW_DS_leading_overpunch = 0x02,
594
    DW_DS_trailing_overpunch = 0x03,
595
    DW_DS_leading_separate = 0x04,
596
    DW_DS_trailing_separate = 0x05
597
  };
598
 
599
/* Endianity encodings.  */
600
enum dwarf_endianity_encoding
601
  {
602
    /* DWARF 3.  */
603
    DW_END_default = 0x00,
604
    DW_END_big = 0x01,
605
    DW_END_little = 0x02
606
  };
607
 
608
#define DW_END_lo_user 0x40
609
#define DW_END_hi_user 0xff
610
 
611
/* Array ordering names and codes.  */
612
enum dwarf_array_dim_ordering
613
  {
614
    DW_ORD_row_major = 0,
615
    DW_ORD_col_major = 1
616
  };
617
 
618
/* Access attribute.  */
619
enum dwarf_access_attribute
620
  {
621
    DW_ACCESS_public = 1,
622
    DW_ACCESS_protected = 2,
623
    DW_ACCESS_private = 3
624
  };
625
 
626
/* Visibility.  */
627
enum dwarf_visibility_attribute
628
  {
629
    DW_VIS_local = 1,
630
    DW_VIS_exported = 2,
631
    DW_VIS_qualified = 3
632
  };
633
 
634
/* Virtuality.  */
635
enum dwarf_virtuality_attribute
636
  {
637
    DW_VIRTUALITY_none = 0,
638
    DW_VIRTUALITY_virtual = 1,
639
    DW_VIRTUALITY_pure_virtual = 2
640
  };
641
 
642
/* Case sensitivity.  */
643
enum dwarf_id_case
644
  {
645
    DW_ID_case_sensitive = 0,
646
    DW_ID_up_case = 1,
647
    DW_ID_down_case = 2,
648
    DW_ID_case_insensitive = 3
649
  };
650
 
651
/* Calling convention.  */
652
enum dwarf_calling_convention
653
  {
654
    DW_CC_normal = 0x1,
655
    DW_CC_program = 0x2,
656
    DW_CC_nocall = 0x3,
657
    DW_CC_GNU_renesas_sh = 0x40
658
  };
659
 
660
#define DW_CC_lo_user 0x40
661
#define DW_CC_hi_user 0xff
662
 
663
/* Inline attribute.  */
664
enum dwarf_inline_attribute
665
  {
666
    DW_INL_not_inlined = 0,
667
    DW_INL_inlined = 1,
668
    DW_INL_declared_not_inlined = 2,
669
    DW_INL_declared_inlined = 3
670
  };
671
 
672
/* Discriminant lists.  */
673
enum dwarf_discrim_list
674
  {
675
    DW_DSC_label = 0,
676
    DW_DSC_range = 1
677
  };
678
 
679
/* Line number opcodes.  */
680
enum dwarf_line_number_ops
681
  {
682
    DW_LNS_extended_op = 0,
683
    DW_LNS_copy = 1,
684
    DW_LNS_advance_pc = 2,
685
    DW_LNS_advance_line = 3,
686
    DW_LNS_set_file = 4,
687
    DW_LNS_set_column = 5,
688
    DW_LNS_negate_stmt = 6,
689
    DW_LNS_set_basic_block = 7,
690
    DW_LNS_const_add_pc = 8,
691
    DW_LNS_fixed_advance_pc = 9,
692
    /* DWARF 3.  */
693
    DW_LNS_set_prologue_end = 10,
694
    DW_LNS_set_epilogue_begin = 11,
695
    DW_LNS_set_isa = 12
696
  };
697
 
698
/* Line number extended opcodes.  */
699
enum dwarf_line_number_x_ops
700
  {
701
    DW_LNE_end_sequence = 1,
702
    DW_LNE_set_address = 2,
703
    DW_LNE_define_file = 3,
704
    /* HP extensions.  */
705
    DW_LNE_HP_negate_is_UV_update      = 0x11,
706
    DW_LNE_HP_push_context             = 0x12,
707
    DW_LNE_HP_pop_context              = 0x13,
708
    DW_LNE_HP_set_file_line_column     = 0x14,
709
    DW_LNE_HP_set_routine_name         = 0x15,
710
    DW_LNE_HP_set_sequence             = 0x16,
711
    DW_LNE_HP_negate_post_semantics    = 0x17,
712
    DW_LNE_HP_negate_function_exit     = 0x18,
713
    DW_LNE_HP_negate_front_end_logical = 0x19,
714
    DW_LNE_HP_define_proc              = 0x20
715
  };
716
 
717
#define DW_LNE_lo_user 0x80
718
#define DW_LNE_hi_user 0xff
719
 
720
/* Call frame information.  */
721
enum dwarf_call_frame_info
722
  {
723
    DW_CFA_advance_loc = 0x40,
724
    DW_CFA_offset = 0x80,
725
    DW_CFA_restore = 0xc0,
726
    DW_CFA_nop = 0x00,
727
    DW_CFA_set_loc = 0x01,
728
    DW_CFA_advance_loc1 = 0x02,
729
    DW_CFA_advance_loc2 = 0x03,
730
    DW_CFA_advance_loc4 = 0x04,
731
    DW_CFA_offset_extended = 0x05,
732
    DW_CFA_restore_extended = 0x06,
733
    DW_CFA_undefined = 0x07,
734
    DW_CFA_same_value = 0x08,
735
    DW_CFA_register = 0x09,
736
    DW_CFA_remember_state = 0x0a,
737
    DW_CFA_restore_state = 0x0b,
738
    DW_CFA_def_cfa = 0x0c,
739
    DW_CFA_def_cfa_register = 0x0d,
740
    DW_CFA_def_cfa_offset = 0x0e,
741
    /* DWARF 3.  */
742
    DW_CFA_def_cfa_expression = 0x0f,
743
    DW_CFA_expression = 0x10,
744
    DW_CFA_offset_extended_sf = 0x11,
745
    DW_CFA_def_cfa_sf = 0x12,
746
    DW_CFA_def_cfa_offset_sf = 0x13,
747
    DW_CFA_val_offset = 0x14,
748
    DW_CFA_val_offset_sf = 0x15,
749
    DW_CFA_val_expression = 0x16,
750
    /* SGI/MIPS specific.  */
751
    DW_CFA_MIPS_advance_loc8 = 0x1d,
752
    /* GNU extensions.  */
753
    DW_CFA_GNU_window_save = 0x2d,
754
    DW_CFA_GNU_args_size = 0x2e,
755
    DW_CFA_GNU_negative_offset_extended = 0x2f
756
  };
757
 
758
#define DW_CIE_ID         0xffffffff
759
#define DW64_CIE_ID       0xffffffffffffffffULL
760
#define DW_CIE_VERSION    1
761
 
762
#define DW_CFA_extended   0
763
#define DW_CFA_lo_user    0x1c
764
#define DW_CFA_hi_user    0x3f
765
 
766
#define DW_CHILDREN_no               0x00
767
#define DW_CHILDREN_yes              0x01
768
 
769
#define DW_ADDR_none            0
770
 
771
/* Source language names and codes.  */
772
enum dwarf_source_language
773
  {
774
    DW_LANG_C89 = 0x0001,
775
    DW_LANG_C = 0x0002,
776
    DW_LANG_Ada83 = 0x0003,
777
    DW_LANG_C_plus_plus = 0x0004,
778
    DW_LANG_Cobol74 = 0x0005,
779
    DW_LANG_Cobol85 = 0x0006,
780
    DW_LANG_Fortran77 = 0x0007,
781
    DW_LANG_Fortran90 = 0x0008,
782
    DW_LANG_Pascal83 = 0x0009,
783
    DW_LANG_Modula2 = 0x000a,
784
    /* DWARF 3.  */
785
    DW_LANG_Java = 0x000b,
786
    DW_LANG_C99 = 0x000c,
787
    DW_LANG_Ada95 = 0x000d,
788
    DW_LANG_Fortran95 = 0x000e,
789
    DW_LANG_PLI = 0x000f,
790
    DW_LANG_ObjC = 0x0010,
791
    DW_LANG_ObjC_plus_plus = 0x0011,
792
    DW_LANG_UPC = 0x0012,
793
    DW_LANG_D = 0x0013,
794
    /* MIPS.  */
795
    DW_LANG_Mips_Assembler = 0x8001,
796
    /* UPC.  */
797
    DW_LANG_Upc = 0x8765
798
  };
799
 
800
#define DW_LANG_lo_user 0x8000  /* Implementation-defined range start.  */
801
#define DW_LANG_hi_user 0xffff  /* Implementation-defined range start.  */
802
 
803
/* Names and codes for macro information.  */
804
enum dwarf_macinfo_record_type
805
  {
806
    DW_MACINFO_define = 1,
807
    DW_MACINFO_undef = 2,
808
    DW_MACINFO_start_file = 3,
809
    DW_MACINFO_end_file = 4,
810
    DW_MACINFO_vendor_ext = 255
811
  };
812
 
813
/* @@@ For use with GNU frame unwind information.  */
814
 
815
#define DW_EH_PE_absptr         0x00
816
#define DW_EH_PE_omit           0xff
817
 
818
#define DW_EH_PE_uleb128        0x01
819
#define DW_EH_PE_udata2         0x02
820
#define DW_EH_PE_udata4         0x03
821
#define DW_EH_PE_udata8         0x04
822
#define DW_EH_PE_sleb128        0x09
823
#define DW_EH_PE_sdata2         0x0A
824
#define DW_EH_PE_sdata4         0x0B
825
#define DW_EH_PE_sdata8         0x0C
826
#define DW_EH_PE_signed         0x08
827
 
828
#define DW_EH_PE_pcrel          0x10
829
#define DW_EH_PE_textrel        0x20
830
#define DW_EH_PE_datarel        0x30
831
#define DW_EH_PE_funcrel        0x40
832
#define DW_EH_PE_aligned        0x50
833
 
834
#define DW_EH_PE_indirect       0x80
835
 
836
#endif /* dwarf2.h */

powered by: WebSVN 2.1.0

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