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

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [gcc/] [dwarf2.h] - Blame information for rev 17

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

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

powered by: WebSVN 2.1.0

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