Subversion Repositories tendra.SVN

Rev

Rev 2 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 7u83 1
/*
2
    		 Crown Copyright (c) 1997
3
 
4
    This TenDRA(r) Computer Program is subject to Copyright
5
    owned by the United Kingdom Secretary of State for Defence
6
    acting through the Defence Evaluation and Research Agency
7
    (DERA).  It is made available to Recipients with a
8
    royalty-free licence for its use, reproduction, transfer
9
    to other parties and amendment for any purpose not excluding
10
    product development provided that any such use et cetera
11
    shall be deemed to be acceptance of the following conditions:-
12
 
13
        (1) Its Recipients shall ensure that this Notice is
14
        reproduced upon any copies or amended versions of it;
15
 
16
        (2) Any amended version of it shall be clearly marked to
17
        show both the nature of and the organisation responsible
18
        for the relevant amendment or amendments;
19
 
20
        (3) Its onward transfer from a recipient to another
21
        party shall be deemed to be that party's acceptance of
22
        these conditions;
23
 
24
        (4) DERA gives no warranty or assurance as to its
25
        quality or suitability for any purpose and DERA accepts
26
        no liability whatsoever in relation to any use to which
27
        it may be put.
28
*/
29
 
30
 
31
/**********************************************************************
32
$Author: pwe $
33
$Date: 1998/03/11 11:03:39 $
34
$Revision: 1.2 $
35
$Log: dw2_codes.h,v $
36
 * Revision 1.2  1998/03/11  11:03:39  pwe
37
 * DWARF optimisation info
38
 *
39
 * Revision 1.1.1.1  1998/01/17  15:55:48  release
40
 * First version to be checked into rolling release.
41
 *
42
 * Revision 1.6  1997/12/05  10:23:58  pwe
43
 * name change
44
 *
45
 * Revision 1.5  1997/12/04  19:41:18  pwe
46
 * ANDF-DE V1.9
47
 *
48
 * Revision 1.4  1997/10/23  09:27:28  pwe
49
 * ANDF-DE v1.7, extra diags
50
 *
51
 * Revision 1.3  1997/10/10  18:18:26  pwe
52
 * prep ANDF-DE revision
53
 *
54
 * Revision 1.2  1997/04/17  11:50:17  pwe
55
 * Sparc and 80x86 support
56
 *
57
 * Revision 1.1  1997/03/20  16:09:05  pwe
58
 * first version
59
 *
60
**********************************************************************/
61
 
62
/**********************************************************************
63
The identifier names and values in the first part of this file were derived from
64
 
65
DWARF Debugging Information Format, Revision 2.0.0, July 27, 1993
66
**********************************************************************/
67
 
68
#define DWARF_VERSION	2
69
 
70
 
71
#define DW_TAG_array_type		0x01
72
#define DW_TAG_class_type		0x02
73
#define DW_TAG_entry_point		0x03
74
#define DW_TAG_enumeration_type		0x04
75
#define DW_TAG_formal_parameter		0x05
76
#define DW_TAG_imported_declaration	0x08
77
#define DW_TAG_label			0x0a
78
#define DW_TAG_lexical_block		0x0b
79
#define DW_TAG_member			0x0d
80
#define DW_TAG_pointer_type		0x0f
81
#define DW_TAG_reference_type		0x10
82
#define DW_TAG_compile_unit		0x11
83
#define DW_TAG_string_type		0x12
84
#define DW_TAG_structure_type		0x13
85
#define DW_TAG_subroutine_type		0x15
86
#define DW_TAG_typedef			0x16
87
#define DW_TAG_union_type		0x17
88
#define DW_TAG_unspecified_parameters	0x18
89
#define DW_TAG_variant			0x19
90
#define DW_TAG_common_block		0x1a
91
#define DW_TAG_common_inclusion		0x1b
92
#define DW_TAG_inheritance		0x1c
93
#define DW_TAG_inlined_subroutine	0x1d
94
#define DW_TAG_module			0x1e
95
#define DW_TAG_ptr_to_member_type	0x1f
96
#define DW_TAG_set_type			0x20
97
#define DW_TAG_subrange_type		0x21
98
#define DW_TAG_with_stmt		0x22
99
#define DW_TAG_access_declaration	0x23
100
#define DW_TAG_base_type		0x24
101
#define DW_TAG_catch_block		0x25
102
#define DW_TAG_const_type		0x26
103
#define DW_TAG_constant			0x27
104
#define DW_TAG_enumerator		0x28
105
#define DW_TAG_file_type		0x29
106
#define DW_TAG_friend			0x2a
107
#define DW_TAG_namelist			0x2b
108
#define DW_TAG_namelist_item		0x2c
109
#define DW_TAG_packed_type		0x2d
110
#define DW_TAG_subprogram		0x2e
111
#define DW_TAG_template_type_param	0x2f
112
#define DW_TAG_template_value_param	0x30
113
#define DW_TAG_thrown_type		0x31
114
#define DW_TAG_try_block		0x32
115
#define DW_TAG_variant_part		0x33
116
#define DW_TAG_variable			0x34
117
#define DW_TAG_volatile_type		0x35
118
#define DW_TAG_lo_user			0x4080
119
#define DW_TAG_hi_user			0xffff
120
 
121
 
122
#define DW_CHILDREN_no			0
123
#define DW_CHILDREN_yes			1
124
 
125
 
126
#define DW_AT_sibling			0x01
127
#define DW_AT_location			0x02
128
#define DW_AT_name			0x03
129
#define DW_AT_ordering			0x09
130
#define DW_AT_byte_size			0x0b
131
#define DW_AT_bit_offset		0x0c
132
#define DW_AT_bit_size			0x0d
133
#define DW_AT_stmt_list			0x10
134
#define DW_AT_low_pc			0x11
135
#define DW_AT_high_pc			0x12
136
#define DW_AT_language			0x13
137
#define DW_AT_discr			0x15
138
#define DW_AT_discr_value		0x16
139
#define DW_AT_visibility		0x17
140
#define DW_AT_import			0x18
141
#define DW_AT_string_length		0x19
142
#define DW_AT_common_reference		0x1a
143
#define DW_AT_comp_dir			0x1b
144
#define DW_AT_const_value		0x1c
145
#define DW_AT_containing_type		0x1d
146
#define DW_AT_default_value		0x1e
147
#define DW_AT_inline			0x20
148
#define DW_AT_is_optional		0x21
149
#define DW_AT_lower_bound		0x22
150
#define DW_AT_producer			0x25
151
#define DW_AT_prototyped		0x27
152
#define DW_AT_return_addr		0x2a
153
#define DW_AT_start_scope		0x2c
154
#define DW_AT_stride_size		0x2e
155
#define DW_AT_upper_bound		0x2f
156
#define DW_AT_abstract_origin		0x31
157
#define DW_AT_accessibility		0x32
158
#define DW_AT_address_class		0x33
159
#define DW_AT_artificial		0x34
160
#define DW_AT_base_types		0x35
161
#define DW_AT_calling_convention	0x36
162
#define DW_AT_count			0x37
163
#define DW_AT_data_member_location	0x38
164
#define DW_AT_decl_column		0x39
165
#define DW_AT_decl_file			0x3a
166
#define DW_AT_decl_line			0x3b
167
#define DW_AT_declaration		0x3c
168
#define DW_AT_discr_list		0x3d
169
#define DW_AT_encoding			0x3e
170
#define DW_AT_external			0x3f
171
#define DW_AT_frame_base		0x40
172
#define DW_AT_friend			0x41
173
#define DW_AT_identifier_case		0x42
174
#define DW_AT_macro_info		0x43
175
#define DW_AT_namelist_item		0x44
176
#define DW_AT_priority			0x45
177
#define DW_AT_segment			0x46
178
#define DW_AT_specification		0x47
179
#define DW_AT_static_link		0x48
180
#define DW_AT_type			0x49
181
#define DW_AT_use_location		0x4a
182
#define DW_AT_variable_parameter	0x4b
183
#define DW_AT_virtuality		0x4c
184
#define DW_AT_vtable_elem_location	0x4d
185
#define DW_AT_lo_user			0x2000
186
#define DW_AT_hi_user			0x3fff
187
 
188
 
189
#define DW_FORM_addr			0x01
190
#define DW_FORM_block2			0x03
191
#define DW_FORM_block4			0x04
192
#define DW_FORM_data2			0x05
193
#define DW_FORM_data4			0x06
194
#define DW_FORM_data8			0x07
195
#define DW_FORM_string			0x08
196
#define DW_FORM_block			0x09
197
#define DW_FORM_block1			0x0a
198
#define DW_FORM_data1			0x0b
199
#define DW_FORM_flag			0x0c
200
#define DW_FORM_sdata			0x0d
201
#define DW_FORM_strp			0x0e
202
#define DW_FORM_udata			0x0f
203
#define DW_FORM_ref_addr		0x10
204
#define DW_FORM_ref1			0x11
205
#define DW_FORM_ref2			0x12
206
#define DW_FORM_ref4			0x13
207
#define DW_FORM_ref8			0x14
208
#define DW_FORM_ref_udata		0x15
209
#define DW_FORM_indirect		0x16
210
 
211
 
212
#define DW_OP_addr			0x03
213
#define DW_OP_deref			0x06
214
#define DW_OP_const1u			0x08
215
#define DW_OP_const1s			0x09
216
#define DW_OP_const2u			0x0a
217
#define DW_OP_const2s			0x0b
218
#define DW_OP_const4u			0x0c
219
#define DW_OP_const4s			0x0d
220
#define DW_OP_const8u			0x0e
221
#define DW_OP_const8s			0x0f
222
#define DW_OP_constu			0x10
223
#define DW_OP_consts			0x11
224
#define DW_OP_dup			0x12
225
#define DW_OP_drop			0x13
226
#define DW_OP_over			0x14
227
#define DW_OP_pick			0x15
228
#define DW_OP_swap			0x16
229
#define DW_OP_rot			0x17
230
#define DW_OP_xderef			0x18
231
#define DW_OP_abs			0x19
232
#define DW_OP_and			0x1a
233
#define DW_OP_div			0x1b
234
#define DW_OP_minus			0x1c
235
#define DW_OP_mod			0x1d
236
#define DW_OP_mul			0x1e
237
#define DW_OP_neg			0x1f
238
#define DW_OP_not			0x20
239
#define DW_OP_or			0x21
240
#define DW_OP_plus			0x22
241
#define DW_OP_plus_uconst		0x23
242
#define DW_OP_shl			0x24
243
#define DW_OP_shr			0x25
244
#define DW_OP_shra			0x26
245
#define DW_OP_xor			0x27
246
#define DW_OP_skip			0x2f
247
#define DW_OP_bra			0x28
248
#define DW_OP_eq			0x29
249
#define DW_OP_ge			0x2a
250
#define DW_OP_gt			0x2b
251
#define DW_OP_le			0x2c
252
#define DW_OP_lt			0x2d
253
#define DW_OP_ne			0x2e
254
#define DW_OP_lit0			0x30
255
#define DW_OP_lit1			0x31
256
#define DW_OP_lit31			0x4f
257
#define DW_OP_reg0			0x50
258
#define DW_OP_reg1			0x51
259
#define DW_OP_reg31			0x6f
260
#define DW_OP_breg0			0x70
261
#define DW_OP_breg1			0x71
262
#define DW_OP_breg31			0x8f
263
#define DW_OP_regx			0x90
264
#define DW_OP_fbreg			0x91
265
#define DW_OP_bregx			0x92
266
#define DW_OP_piece			0x93
267
#define DW_OP_deref_size		0x94
268
#define DW_OP_xderef_size		0x95
269
#define DW_OP_nop			0x96
270
#define DW_OP_lo_user			0xe0
271
#define DW_OP_hi_user			0xff
272
 
273
 
274
#define DW_ATE_address			0x1
275
#define DW_ATE_boolean			0x2
276
#define DW_ATE_complex_float		0x3
277
#define DW_ATE_float			0x4
278
#define DW_ATE_signed			0x5
279
#define DW_ATE_signed_char		0x6
280
#define DW_ATE_unsigned			0x7
281
#define DW_ATE_unsigned_char		0x8
282
#define DW_ATE_lo_user			0x80
283
#define DW_ATE_hi_user			0xff
284
 
285
 
286
#define DW_ACCESS_public		1
287
#define DW_ACCESS_protected		2
288
#define DW_ACCESS_private		3
289
 
290
 
291
#define DW_VIS_local			1
292
#define DW_VIS_exported			2
293
#define DW_VIS_qualified		3
294
 
295
 
296
#define DW_VIRTUALITY_none		0
297
#define DW_VIRTUALITY_virtual		1
298
#define DW_VIRTUALITY_pure_virtual	2
299
 
300
 
301
#define DW_LANG_C89			0x0001
302
#define DW_LANG_C			0x0002
303
#define DW_LANG_Ada83			0x0003
304
#define DW_LANG_C_plus_plus		0x0004
305
#define DW_LANG_Cobol74			0x0005
306
#define DW_LANG_Cobol85			0x0006
307
#define DW_LANG_Fortran77		0x0007
308
#define DW_LANG_Fortran90		0x0008
309
#define DW_LANG_Pascal83		0x0009
310
#define DW_LANG_Modula2			0x000a
311
#define DW_LANG_lo_user			0x8000
312
#define DW_LANG_hi_user			0xffff
313
 
314
 
315
#define DW_ID_case_sensitive		0
316
#define DW_ID_up_case			1
317
#define DW_ID_down_case			2
318
#define DW_ID_case_insensitive		3
319
 
320
 
321
#define DW_CC_normal			0x1
322
#define DW_CC_program			0x2
323
#define DW_CC_nocall			0x3
324
#define DW_CC_lo_user			0x40
325
#define DW_CC_hi_user			0xff
326
 
327
 
328
#define DW_INL_not_inlined		0
329
#define DW_INL_inlined			1
330
#define DW_INL_declared_not_inlined	2
331
#define DW_INL_declared_inlined		3
332
 
333
 
334
#define DW_ORD_row_major		0
335
#define DW_ORD_col_major		1
336
 
337
 
338
#define DW_DSC_label			0
339
#define DW_DSC_range			1
340
 
341
 
342
#define DW_LNS_copy			1
343
#define DW_LNS_advance_pc		2
344
#define DW_LNS_advance_line		3
345
#define DW_LNS_set_file			4
346
#define DW_LNS_set_column		5
347
#define DW_LNS_negate_stmt		6
348
#define DW_LNS_set_basic_block		7
349
#define DW_LNS_const_add_pc		8
350
#define DW_LNS_fixed_advance_pc		9
351
 
352
 
353
#define DW_LNE_end_sequence		1
354
#define DW_LNE_set_address		2
355
#define DW_LNE_define_file		3
356
 
357
 
358
#define DW_MACINFO_define		1
359
#define DW_MACINFO_undef		2
360
#define DW_MACINFO_start_file		3
361
#define DW_MACINFO_end_file		4
362
#define DW_MACINFO_vendor_ext		255
363
 
364
 
365
#define DW_CFA_advance_loc		0x40
366
#define DW_CFA_offset			0x80
367
#define DW_CFA_restore			0xc0
368
#define DW_CFA_set_loc			0x01
369
#define DW_CFA_advance_loc1		0x02
370
#define DW_CFA_advance_loc2		0x03
371
#define DW_CFA_advance_loc4		0x04
372
#define DW_CFA_offset_extended		0x05
373
#define DW_CFA_restore_extended		0x06
374
#define DW_CFA_undefined		0x07
375
#define DW_CFA_same_value		0x08
376
#define DW_CFA_register			0x09
377
#define DW_CFA_remember_state		0x0a
378
#define DW_CFA_restore_state		0x0b
379
#define DW_CFA_def_cfa			0x0c
380
#define DW_CFA_def_cfa_register		0x0d
381
#define DW_CFA_def_cfa_offset		0x0e
382
#define DW_CFA_nop			0
383
#define DW_CFA_lo_user			0x1c
384
#define DW_CFA_hi_user			0x3f
385
 
386
 
387
#define DW_CIE_id	0xffffffff
388
#define DW_CIE_VERSION	1
389
 
390
 
391
/* Proposed extensions */
392
 
393
#define DW_CFA_DD_def_cfa_inc_offset	(DW_CFA_lo_user + 1)
394
#define DW_CFA_DD_def_cfa_dec_offset	(DW_CFA_lo_user + 2)
395
#define DW_CFA_DD_def_cfa_fixed_offset	(DW_CFA_lo_user + 3)
396
 
397
#define DW_CFA_DD_sparc_save_regwindow	(DW_CFA_lo_user + 4)
398
#define DW_CFA_DD_sparc_restore_regwindow  (DW_CFA_lo_user + 5)
399
 
400
#define DW_CFA_DD_location		(DW_CFA_lo_user + 6)
401
 
402
 
403
#define DW_TAG_DD_lexical_fragment	(DW_TAG_lo_user + 0x00)
404
#define DW_TAG_DD_foreign_source	(DW_TAG_lo_user + 0x02)
405
#define DW_TAG_DD_subroutine_call	(DW_TAG_lo_user + 0x03)
406
#define DW_TAG_DD_subroutine_return	(DW_TAG_lo_user + 0x04)
407
#define DW_TAG_DD_breakpoint		(DW_TAG_lo_user + 0x05)
408
#define DW_TAG_DD_destruct		(DW_TAG_lo_user + 0x06)
409
#define DW_TAG_DD_branch		(DW_TAG_lo_user + 0x07)
410
#define DW_TAG_DD_test			(DW_TAG_lo_user + 0x08)
411
#define DW_TAG_DD_jump			(DW_TAG_lo_user + 0x09)
412
#define DW_TAG_DD_long_jump		(DW_TAG_lo_user + 0x0a)
413
#define DW_TAG_DD_throw			(DW_TAG_lo_user + 0x0b)
414
#define DW_TAG_DD_namespace		(DW_TAG_lo_user + 0x0c)
415
#define DW_TAG_DD_indirect_member	(DW_TAG_lo_user + 0x0d)
416
#define DW_TAG_DD_template_proc_param	(DW_TAG_lo_user + 0x0e)
417
#define DW_TAG_DD_template_module_param	(DW_TAG_lo_user + 0x0f)
418
#define DW_TAG_DD_class_wide_type	(DW_TAG_lo_user + 0x11)
419
#define DW_TAG_DD_aliased_type		(DW_TAG_lo_user + 0x12)
420
#define DW_TAG_DD_task_type		(DW_TAG_lo_user + 0x13)
421
#define DW_TAG_DD_synchronized_type	(DW_TAG_lo_user + 0x14)
422
#define DW_TAG_DD_entry			(DW_TAG_lo_user + 0x15)
423
#define DW_TAG_DD_entry_barrier		(DW_TAG_lo_user + 0x16)
424
#define DW_TAG_DD_select		(DW_TAG_lo_user + 0x17)
425
#define DW_TAG_DD_accept		(DW_TAG_lo_user + 0x18)
426
#define DW_TAG_DD_rts_call		(DW_TAG_lo_user + 0x19)
427
#define DW_TAG_DD_entrycall_alt		(DW_TAG_lo_user + 0x1a)
428
#define DW_TAG_DD_select_alternative	(DW_TAG_lo_user + 0x1b)
429
#define DW_TAG_DD_select_guard		(DW_TAG_lo_user + 0x1c)
430
#define DW_TAG_DD_asynchronous_select	(DW_TAG_lo_user + 0x1d)
431
#define DW_TAG_DD_triggering_alternate	(DW_TAG_lo_user + 0x1e)
432
#define DW_TAG_DD_abortable_part	(DW_TAG_lo_user + 0x1f)
433
#define DW_TAG_DD_floating_digits_type	(DW_TAG_lo_user + 0x20)
434
#define DW_TAG_DD_fixed_point_type	(DW_TAG_lo_user + 0x21)
435
#define DW_TAG_DD_limited_type		(DW_TAG_lo_user + 0x22)
436
#define DW_TAG_DD_modular_type		(DW_TAG_lo_user + 0x23)
437
#define DW_TAG_DD_requeue		(DW_TAG_lo_user + 0x24)
438
#define DW_TAG_DD_constraint		(DW_TAG_lo_user + 0x25)
439
#define DW_TAG_DD_subunit		(DW_TAG_lo_user + 0x26)
440
#define DW_TAG_DD_child_unit		(DW_TAG_lo_user + 0x27)
441
#define DW_TAG_DD_incomplete_type	(DW_TAG_lo_user + 0x28)
442
#define DW_TAG_DD_source_span		(DW_TAG_lo_user + 0x29)
443
#define DW_TAG_DD_source_start		(DW_TAG_lo_user + 0x2a)
444
#define DW_TAG_DD_source_end		(DW_TAG_lo_user + 0x2b)
445
 
446
#define DW_TAG_DD_optimisation_block	(DW_TAG_lo_user + 0x2c)
447
#define DW_TAG_DD_moved_code		(DW_TAG_lo_user + 0x2d)
448
#define DW_TAG_DD_absent_code		(DW_TAG_lo_user + 0x2e)
449
 
450
 
451
#define DW_AT_DD_indirect_attributes	(DW_AT_lo_user + 0x01)
452
#define DW_AT_DD_import_kind		(DW_AT_lo_user + 0x02)
453
#define DW_AT_DD_elaboration		(DW_AT_lo_user + 0x03)
454
#define DW_AT_DD_generic_name		(DW_AT_lo_user + 0x04)
455
#define DW_AT_DD_barrier		(DW_AT_lo_user + 0x05)
456
#define DW_AT_DD_begin			(DW_AT_lo_user + 0x06)
457
#define DW_AT_DD_newtype		(DW_AT_lo_user + 0x07)
458
#define DW_AT_DD_heap_only_pointer	(DW_AT_lo_user + 0x08)
459
#define DW_AT_DD_discriminant		(DW_AT_lo_user + 0x09)
460
#define DW_AT_DD_digits			(DW_AT_lo_user + 0x0a)
461
#define DW_AT_DD_delta			(DW_AT_lo_user + 0x0b)
462
#define DW_AT_DD_call_kind		(DW_AT_lo_user + 0x0c)
463
#define DW_AT_DD_module			(DW_AT_lo_user + 0x0d)
464
#define DW_AT_DD_rtti_static		(DW_AT_lo_user + 0x0f)
465
#define DW_AT_DD_rtti_dynamic		(DW_AT_lo_user + 0x10)
466
#define DW_AT_DD_task_control_block	(DW_AT_lo_user + 0x11)
467
#define DW_AT_DD_so_control_block	(DW_AT_lo_user + 0x12)
468
#define DW_AT_DD_entry_spec		(DW_AT_lo_user + 0x13)
469
#define DW_AT_DD_alt			(DW_AT_lo_user + 0x14)
470
#define DW_AT_DD_alt_kind		(DW_AT_lo_user + 0x15)
471
#define DW_AT_DD_alt_no			(DW_AT_lo_user + 0x16)
472
#define DW_AT_DD_repn			(DW_AT_lo_user + 0x17)
473
#define DW_AT_DD_jump_pc		(DW_AT_lo_user + 0x18)
474
#define DW_AT_DD_cont_pc		(DW_AT_lo_user + 0x19)
475
#define DW_AT_DD_abort			(DW_AT_lo_user + 0x1a)
476
#define DW_AT_DD_constraint_ref		(DW_AT_lo_user + 0x1b)
477
#define DW_AT_DD_task_id		(DW_AT_lo_user + 0x1c)
478
#define DW_AT_DD_vtable_static		(DW_AT_lo_user + 0x1d)
479
#define DW_AT_DD_vtable_dynamic		(DW_AT_lo_user + 0x1e)
480
#define DW_AT_DD_separate		(DW_AT_lo_user + 0x20)
481
#define DW_AT_DD_parent			(DW_AT_lo_user + 0x21)
482
#define DW_AT_DD_ada_derived		(DW_AT_lo_user + 0x22)
483
#define DW_AT_DD_small_value		(DW_AT_lo_user + 0x23)
484
/* #define DW_AT_DD_computed_default	(DW_AT_lo_user + 0x24) */
485
 
486
#define DW_AT_DD_optimisation_kind	(DW_AT_lo_user + 0x25)
487
#define DW_AT_DD_optim_ref		(DW_AT_lo_user + 0x26)
488
#define DW_AT_DD_obj_noassgn		(DW_AT_lo_user + 0x27)
489
#define DW_AT_DD_obj_assgn		(DW_AT_lo_user + 0x28)
490
#define DW_AT_DD_ext_location		(DW_AT_lo_user + 0x29)
491