beuses: Remove stale start loop test.
[libfirm] / ir / be / bedwarf_t.h
1 #ifndef FIRM_BE_BEDWARF_T_H
2 #define FIRM_BE_BEDWARF_T_H
3
4 #include "bedwarf.h"
5
6 /* Tag names and codes.  */
7 typedef enum dwarf_tag {
8         DW_TAG_padding                = 0x00,
9         DW_TAG_array_type             = 0x01,
10         DW_TAG_class_type             = 0x02,
11         DW_TAG_entry_point            = 0x03,
12         DW_TAG_enumeration_type       = 0x04,
13         DW_TAG_formal_parameter       = 0x05,
14         DW_TAG_imported_declaration   = 0x08,
15         DW_TAG_label                  = 0x0A,
16         DW_TAG_lexical_block          = 0x0B,
17         DW_TAG_member                 = 0x0D,
18         DW_TAG_pointer_type           = 0x0F,
19         DW_TAG_reference_type         = 0x10,
20         DW_TAG_compile_unit           = 0x11,
21         DW_TAG_string_type            = 0x12,
22         DW_TAG_structure_type         = 0x13,
23         DW_TAG_subroutine_type        = 0x15,
24         DW_TAG_typedef                = 0x16,
25         DW_TAG_union_type             = 0x17,
26         DW_TAG_unspecified_parameters = 0x18,
27         DW_TAG_variant                = 0x19,
28         DW_TAG_common_block           = 0x1A,
29         DW_TAG_common_inclusion       = 0x1B,
30         DW_TAG_inheritance            = 0x1C,
31         DW_TAG_inlined_subroutine     = 0x1D,
32         DW_TAG_module                 = 0x1E,
33         DW_TAG_ptr_to_member_type     = 0x1F,
34         DW_TAG_set_type               = 0x20,
35         DW_TAG_subrange_type          = 0x21,
36         DW_TAG_with_stmt              = 0x22,
37         DW_TAG_access_declaration     = 0x23,
38         DW_TAG_base_type              = 0x24,
39         DW_TAG_catch_block            = 0x25,
40         DW_TAG_const_type             = 0x26,
41         DW_TAG_constant               = 0x27,
42         DW_TAG_enumerator             = 0x28,
43         DW_TAG_file_type              = 0x29,
44         DW_TAG_friend                 = 0x2A,
45         DW_TAG_namelist               = 0x2B,
46         DW_TAG_namelist_item          = 0x2C,
47         DW_TAG_packed_type            = 0x2D,
48         DW_TAG_subprogram             = 0x2E,
49         DW_TAG_template_type_param    = 0x2F,
50         DW_TAG_template_value_param   = 0x30,
51         DW_TAG_thrown_type            = 0x31,
52         DW_TAG_try_block              = 0x32,
53         DW_TAG_variant_part           = 0x33,
54         DW_TAG_variable               = 0x34,
55         DW_TAG_volatile_type          = 0x35,
56         /* DWARF 3.  */
57         DW_TAG_dwarf_procedure        = 0x36,
58         DW_TAG_restrict_type          = 0x37,
59         DW_TAG_interface_type         = 0x38,
60         DW_TAG_namespace              = 0x39,
61         DW_TAG_imported_module        = 0x3A,
62         DW_TAG_unspecified_type       = 0x3B,
63         DW_TAG_partial_unit           = 0x3C,
64         DW_TAG_imported_unit          = 0x3D,
65         DW_TAG_condition              = 0x3F,
66         DW_TAG_shared_type            = 0x40,
67 } dwarf_tag;
68
69 typedef enum dw_children {
70         DW_CHILDREN_no  = 0x00,
71         DW_CHILDREN_yes = 0x01
72 } dw_children;
73
74 typedef enum dwarf_form {
75         DW_FORM_addr      = 0x01,
76         DW_FORM_block2    = 0x03,
77         DW_FORM_block4    = 0x04,
78         DW_FORM_data2     = 0x05,
79         DW_FORM_data4     = 0x06,
80         DW_FORM_data8     = 0x07,
81         DW_FORM_string    = 0x08,
82         DW_FORM_block     = 0x09,
83         DW_FORM_block1    = 0x0A,
84         DW_FORM_data1     = 0x0B,
85         DW_FORM_flag      = 0x0C,
86         DW_FORM_sdata     = 0x0D,
87         DW_FORM_strp      = 0x0E,
88         DW_FORM_udata     = 0x0F,
89         DW_FORM_ref_addr  = 0x10,
90         DW_FORM_ref1      = 0x11,
91         DW_FORM_ref2      = 0x12,
92         DW_FORM_ref4      = 0x13,
93         DW_FORM_ref8      = 0x14,
94         DW_FORM_ref_udata = 0x15,
95         DW_FORM_indirect  = 0x16
96 } dwarf_form;
97
98 typedef enum dwarf_attribute {
99         DW_AT_sibling              = 0x01,
100         DW_AT_location             = 0x02,
101         DW_AT_name                 = 0x03,
102         DW_AT_ordering             = 0x09,
103         DW_AT_subscr_data          = 0x0A,
104         DW_AT_byte_size            = 0x0B,
105         DW_AT_bit_offset           = 0x0C,
106         DW_AT_bit_size             = 0x0D,
107         DW_AT_element_list         = 0x0F,
108         DW_AT_stmt_list            = 0x10,
109         DW_AT_low_pc               = 0x11,
110         DW_AT_high_pc              = 0x12,
111         DW_AT_language             = 0x13,
112         DW_AT_member               = 0x14,
113         DW_AT_discr                = 0x15,
114         DW_AT_discr_value          = 0x16,
115         DW_AT_visibility           = 0x17,
116         DW_AT_import               = 0x18,
117         DW_AT_string_length        = 0x19,
118         DW_AT_common_reference     = 0x1A,
119         DW_AT_comp_dir             = 0x1B,
120         DW_AT_const_value          = 0x1C,
121         DW_AT_containing_type      = 0x1D,
122         DW_AT_default_value        = 0x1E,
123         DW_AT_inline               = 0x20,
124         DW_AT_is_optional          = 0x21,
125         DW_AT_lower_bound          = 0x22,
126         DW_AT_producer             = 0x25,
127         DW_AT_prototyped           = 0x27,
128         DW_AT_return_addr          = 0x2A,
129         DW_AT_start_scope          = 0x2C,
130         DW_AT_bit_stride           = 0x2E,
131         DW_AT_stride_size          = DW_AT_bit_stride,
132         DW_AT_upper_bound          = 0x2F,
133         DW_AT_abstract_origin      = 0x31,
134         DW_AT_accessibility        = 0x32,
135         DW_AT_address_class        = 0x33,
136         DW_AT_artificial           = 0x34,
137         DW_AT_base_types           = 0x35,
138         DW_AT_calling_convention   = 0x36,
139         DW_AT_count                = 0x37,
140         DW_AT_data_member_location = 0x38,
141         DW_AT_decl_column          = 0x39,
142         DW_AT_decl_file            = 0x3A,
143         DW_AT_decl_line            = 0x3B,
144         DW_AT_declaration          = 0x3C,
145         DW_AT_discr_list           = 0x3D,
146         DW_AT_encoding             = 0x3E,
147         DW_AT_external             = 0x3F,
148         DW_AT_frame_base           = 0x40,
149         DW_AT_friend               = 0x41,
150         DW_AT_identifier_case      = 0x42,
151         DW_AT_macro_info           = 0x43,
152         DW_AT_namelist_items       = 0x44,
153         DW_AT_priority             = 0x45,
154         DW_AT_segment              = 0x46,
155         DW_AT_specification        = 0x47,
156         DW_AT_static_link          = 0x48,
157         DW_AT_type                 = 0x49,
158         DW_AT_use_location         = 0x4A,
159         DW_AT_variable_parameter   = 0x4B,
160         DW_AT_virtuality           = 0x4C,
161         DW_AT_vtable_elem_location = 0x4D,
162         /* DWARF 3 values.  */
163         DW_AT_allocated            = 0x4E,
164         DW_AT_associated           = 0x4F,
165         DW_AT_data_location        = 0x50,
166         DW_AT_byte_stride          = 0x51,
167         DW_AT_stride               = DW_AT_byte_stride,
168         DW_AT_entry_pc             = 0x52,
169         DW_AT_use_UTF8             = 0x53,
170         DW_AT_extension            = 0x54,
171         DW_AT_ranges               = 0x55,
172         DW_AT_trampoline           = 0x56,
173         DW_AT_call_column          = 0x57,
174         DW_AT_call_file            = 0x58,
175         DW_AT_call_line            = 0x59,
176         DW_AT_description          = 0x5A,
177         DW_AT_binary_scale         = 0x5B,
178         DW_AT_decimal_scale        = 0x5C,
179         DW_AT_small                = 0x5D,
180         DW_AT_decimal_sign         = 0x5E,
181         DW_AT_digit_count          = 0x5F,
182         DW_AT_picture_string       = 0x60,
183         DW_AT_mutable              = 0x61,
184         DW_AT_threads_scaled       = 0x62,
185         DW_AT_explicit             = 0x63,
186         DW_AT_object_pointer       = 0x64,
187         DW_AT_endianity            = 0x65,
188         DW_AT_elemental            = 0x66,
189         DW_AT_pure                 = 0x67,
190         DW_AT_recursive            = 0x68,
191 } dwarf_attribute;
192
193 typedef enum dwarf_type {
194         DW_ATE_void            = 0x0,
195         DW_ATE_address         = 0x1,
196         DW_ATE_boolean         = 0x2,
197         DW_ATE_complex_float   = 0x3,
198         DW_ATE_float           = 0x4,
199         DW_ATE_signed          = 0x5,
200         DW_ATE_signed_char     = 0x6,
201         DW_ATE_unsigned        = 0x7,
202         DW_ATE_unsigned_char   = 0x8,
203         /* DWARF 3.  */
204         DW_ATE_imaginary_float = 0x9,
205         DW_ATE_packed_decimal  = 0xA,
206         DW_ATE_numeric_string  = 0xB,
207         DW_ATE_edited          = 0xC,
208         DW_ATE_signed_fixed    = 0xD,
209         DW_ATE_unsigned_fixed  = 0xE,
210         DW_ATE_decimal_float   = 0xF,
211 } dwarf_type;
212
213 typedef enum dwarf_line_number_x_ops {
214         DW_LNE_end_sequence = 1,
215         DW_LNE_set_address  = 2,
216         DW_LNE_define_file  = 3,
217 } dwarf_line_number_x_ops;
218
219 typedef enum dwarf_location_op {
220         DW_OP_addr                = 0x03,
221         DW_OP_deref               = 0x06,
222         DW_OP_const1u             = 0x08,
223         DW_OP_const1s             = 0x09,
224         DW_OP_const2u             = 0x0A,
225         DW_OP_const2s             = 0x0B,
226         DW_OP_const4u             = 0x0C,
227         DW_OP_const4s             = 0x0D,
228         DW_OP_const8u             = 0x0E,
229         DW_OP_const8s             = 0x0F,
230         DW_OP_constu              = 0x10,
231         DW_OP_consts              = 0x11,
232         DW_OP_dup                 = 0x12,
233         DW_OP_drop                = 0x13,
234         DW_OP_over                = 0x14,
235         DW_OP_pick                = 0x15,
236         DW_OP_swap                = 0x16,
237         DW_OP_rot                 = 0x17,
238         DW_OP_xderef              = 0x18,
239         DW_OP_abs                 = 0x19,
240         DW_OP_and                 = 0x1A,
241         DW_OP_div                 = 0x1B,
242         DW_OP_minus               = 0x1C,
243         DW_OP_mod                 = 0x1D,
244         DW_OP_mul                 = 0x1E,
245         DW_OP_neg                 = 0x1F,
246         DW_OP_not                 = 0x20,
247         DW_OP_or                  = 0x21,
248         DW_OP_plus                = 0x22,
249         DW_OP_plus_uconst         = 0x23,
250         DW_OP_shl                 = 0x24,
251         DW_OP_shr                 = 0x25,
252         DW_OP_shra                = 0x26,
253         DW_OP_xor                 = 0x27,
254         DW_OP_bra                 = 0x28,
255         DW_OP_eq                  = 0x29,
256         DW_OP_ge                  = 0x2A,
257         DW_OP_gt                  = 0x2B,
258         DW_OP_le                  = 0x2C,
259         DW_OP_lt                  = 0x2D,
260         DW_OP_ne                  = 0x2E,
261         DW_OP_skip                = 0x2F,
262         DW_OP_lit0                = 0x30,
263         DW_OP_lit1                = 0x31,
264         DW_OP_lit2                = 0x32,
265         DW_OP_lit3                = 0x33,
266         DW_OP_lit4                = 0x34,
267         DW_OP_lit5                = 0x35,
268         DW_OP_lit6                = 0x36,
269         DW_OP_lit7                = 0x37,
270         DW_OP_lit8                = 0x38,
271         DW_OP_lit9                = 0x39,
272         DW_OP_lit10               = 0x3A,
273         DW_OP_lit11               = 0x3B,
274         DW_OP_lit12               = 0x3C,
275         DW_OP_lit13               = 0x3D,
276         DW_OP_lit14               = 0x3E,
277         DW_OP_lit15               = 0x3F,
278         DW_OP_lit16               = 0x40,
279         DW_OP_lit17               = 0x41,
280         DW_OP_lit18               = 0x42,
281         DW_OP_lit19               = 0x43,
282         DW_OP_lit20               = 0x44,
283         DW_OP_lit21               = 0x45,
284         DW_OP_lit22               = 0x46,
285         DW_OP_lit23               = 0x47,
286         DW_OP_lit24               = 0x48,
287         DW_OP_lit25               = 0x49,
288         DW_OP_lit26               = 0x4A,
289         DW_OP_lit27               = 0x4B,
290         DW_OP_lit28               = 0x4C,
291         DW_OP_lit29               = 0x4D,
292         DW_OP_lit30               = 0x4E,
293         DW_OP_lit31               = 0x4F,
294         DW_OP_reg0                = 0x50,
295         DW_OP_reg1                = 0x51,
296         DW_OP_reg2                = 0x52,
297         DW_OP_reg3                = 0x53,
298         DW_OP_reg4                = 0x54,
299         DW_OP_reg5                = 0x55,
300         DW_OP_reg6                = 0x56,
301         DW_OP_reg7                = 0x57,
302         DW_OP_reg8                = 0x58,
303         DW_OP_reg9                = 0x59,
304         DW_OP_reg10               = 0x5A,
305         DW_OP_reg11               = 0x5B,
306         DW_OP_reg12               = 0x5C,
307         DW_OP_reg13               = 0x5D,
308         DW_OP_reg14               = 0x5E,
309         DW_OP_reg15               = 0x5F,
310         DW_OP_reg16               = 0x60,
311         DW_OP_reg17               = 0x61,
312         DW_OP_reg18               = 0x62,
313         DW_OP_reg19               = 0x63,
314         DW_OP_reg20               = 0x64,
315         DW_OP_reg21               = 0x65,
316         DW_OP_reg22               = 0x66,
317         DW_OP_reg23               = 0x67,
318         DW_OP_reg24               = 0x68,
319         DW_OP_reg25               = 0x69,
320         DW_OP_reg26               = 0x6A,
321         DW_OP_reg27               = 0x6B,
322         DW_OP_reg28               = 0x6C,
323         DW_OP_reg29               = 0x6D,
324         DW_OP_reg30               = 0x6E,
325         DW_OP_reg31               = 0x6F,
326         DW_OP_breg0               = 0x70,
327         DW_OP_breg1               = 0x71,
328         DW_OP_breg2               = 0x72,
329         DW_OP_breg3               = 0x73,
330         DW_OP_breg4               = 0x74,
331         DW_OP_breg5               = 0x75,
332         DW_OP_breg6               = 0x76,
333         DW_OP_breg7               = 0x77,
334         DW_OP_breg8               = 0x78,
335         DW_OP_breg9               = 0x79,
336         DW_OP_breg10              = 0x7A,
337         DW_OP_breg11              = 0x7B,
338         DW_OP_breg12              = 0x7C,
339         DW_OP_breg13              = 0x7D,
340         DW_OP_breg14              = 0x7E,
341         DW_OP_breg15              = 0x7F,
342         DW_OP_breg16              = 0x80,
343         DW_OP_breg17              = 0x81,
344         DW_OP_breg18              = 0x82,
345         DW_OP_breg19              = 0x83,
346         DW_OP_breg20              = 0x84,
347         DW_OP_breg21              = 0x85,
348         DW_OP_breg22              = 0x86,
349         DW_OP_breg23              = 0x87,
350         DW_OP_breg24              = 0x88,
351         DW_OP_breg25              = 0x89,
352         DW_OP_breg26              = 0x8A,
353         DW_OP_breg27              = 0x8B,
354         DW_OP_breg28              = 0x8C,
355         DW_OP_breg29              = 0x8D,
356         DW_OP_breg30              = 0x8E,
357         DW_OP_breg31              = 0x8F,
358         DW_OP_regx                = 0x90,
359         DW_OP_fbreg               = 0x91,
360         DW_OP_bregx               = 0x92,
361         DW_OP_piece               = 0x93,
362         DW_OP_deref_size          = 0x94,
363         DW_OP_xderef_size         = 0x95,
364         DW_OP_nop                 = 0x96,
365         DW_OP_push_object_address = 0x97,
366         DW_OP_call2               = 0x98,
367         DW_OP_call4               = 0x99,
368         DW_OP_call_ref            = 0x9a,
369         DW_OP_form_tls_address    = 0x9b,
370         DW_OP_call_frame_cfa      = 0x9c,
371         DW_OP_bit_piece           = 0x9d,
372 } dwarf_location_op;
373
374 #endif