summaryrefslogtreecommitdiffstats
path: root/include/iprt/formats/dwarf.mac
blob: a54b096559b11369bfc521fad036e5fe3dad67e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
;; @file
; IPRT - DWARF constants.
;
; Automatically generated by various.sed.  DO NOT EDIT!
;

;
; Copyright (C) 2006-2022 Oracle and/or its affiliates.
;
; This file is part of VirtualBox base platform packages, as
; available from https://www.virtualbox.org.
;
; This program is free software; you can redistribute it and/or
; modify it under the terms of the GNU General Public License
; as published by the Free Software Foundation, in version 3 of the
; License.
;
; This program is distributed in the hope that it will be useful, but
; WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
; General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with this program; if not, see <https://www.gnu.org/licenses>.
;
; The contents of this file may alternatively be used under the terms
; of the Common Development and Distribution License Version 1.0
; (CDDL), a copy of it is provided in the "COPYING.CDDL" file included
; in the VirtualBox distribution, in which case the provisions of the
; CDDL are applicable instead of those of the GPL.
;
; You may elect to license modified versions of this file under the
; terms and conditions of either the GPL or the CDDL or both.
;
; SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0
;

%ifndef IPRT_INCLUDED_formats_dwarf_h
%define IPRT_INCLUDED_formats_dwarf_h
%ifndef RT_WITHOUT_PRAGMA_ONCE
%endif
%define DW_LNS_extended                    0x00
%define DW_LNS_copy                        0x01
%define DW_LNS_advance_pc                  0x02
%define DW_LNS_advance_line                0x03
%define DW_LNS_set_file                    0x04
%define DW_LNS_set_column                  0x05
%define DW_LNS_negate_stmt                 0x06
%define DW_LNS_set_basic_block             0x07
%define DW_LNS_const_add_pc                0x08
%define DW_LNS_fixed_advance_pc            0x09
%define DW_LNS_set_prologue_end            0x0a
%define DW_LNS_set_epilogue_begin          0x0b
%define DW_LNS_set_isa                     0x0c
%define DW_LNS_what_question_mark          0x0d
%define DW_LNE_end_sequence                 1
%define DW_LNE_set_address                  2
%define DW_LNE_define_file                  3
%define DW_LNE_set_descriminator            4
%define DW_TAG_array_type                   0x0001
%define DW_TAG_class_type                   0x0002
%define DW_TAG_entry_point                  0x0003
%define DW_TAG_enumeration_type             0x0004
%define DW_TAG_formal_parameter             0x0005
%define DW_TAG_imported_declaration         0x0008
%define DW_TAG_label                        0x000a
%define DW_TAG_lexical_block                0x000b
%define DW_TAG_member                       0x000d
%define DW_TAG_pointer_type                 0x000f
%define DW_TAG_reference_type               0x0010
%define DW_TAG_compile_unit                 0x0011
%define DW_TAG_string_type                  0x0012
%define DW_TAG_structure_type               0x0013
%define DW_TAG_subroutine_type              0x0015
%define DW_TAG_typedef                      0x0016
%define DW_TAG_union_type                   0x0017
%define DW_TAG_unspecified_parameters       0x0018
%define DW_TAG_variant                      0x0019
%define DW_TAG_common_block                 0x001a
%define DW_TAG_common_inclusion             0x001b
%define DW_TAG_inheritance                  0x001c
%define DW_TAG_inlined_subroutine           0x001d
%define DW_TAG_module                       0x001e
%define DW_TAG_ptr_to_member_type           0x001f
%define DW_TAG_set_type                     0x0020
%define DW_TAG_subrange_type                0x0021
%define DW_TAG_with_stmt                    0x0022
%define DW_TAG_access_declaration           0x0023
%define DW_TAG_base_type                    0x0024
%define DW_TAG_catch_block                  0x0025
%define DW_TAG_const_type                   0x0026
%define DW_TAG_constant                     0x0027
%define DW_TAG_enumerator                   0x0028
%define DW_TAG_file_type                    0x0029
%define DW_TAG_friend                       0x002a
%define DW_TAG_namelist                     0x002b
%define DW_TAG_namelist_item                0x002c
%define DW_TAG_packed_type                  0x002d
%define DW_TAG_subprogram                   0x002e
%define DW_TAG_template_type_parameter      0x002f
%define DW_TAG_template_value_parameter     0x0030
%define DW_TAG_thrown_type                  0x0031
%define DW_TAG_try_block                    0x0032
%define DW_TAG_variant_part                 0x0033
%define DW_TAG_variable                     0x0034
%define DW_TAG_volatile_type                0x0035
%define DW_TAG_dwarf_procedure              0x0036
%define DW_TAG_restrict_type                0x0037
%define DW_TAG_interface_type               0x0038
%define DW_TAG_namespace                    0x0039
%define DW_TAG_imported_module              0x003a
%define DW_TAG_unspecified_type             0x003b
%define DW_TAG_partial_unit                 0x003c
%define DW_TAG_imported_unit                0x003d
%define DW_TAG_condition                    0x003f
%define DW_TAG_shared_type                  0x0040
%define DW_TAG_type_unit                    0x0041
%define DW_TAG_rvalue_reference_type        0x0042
%define DW_TAG_template_alias               0x0043
%define DW_TAG_lo_user                      0x4080
%define DW_TAG_GNU_call_site                0x4109
%define DW_TAG_GNU_call_site_parameter      0x410a
%define DW_TAG_WATCOM_address_class_type    0x4100
%define DW_TAG_WATCOM_namespace             0x4101
%define DW_TAG_hi_user                      0xffff
%define DW_CHILDREN_yes 1
%define DW_CHILDREN_no  0
%define DW_AT_sibling                       0x0001
%define DW_AT_location                      0x0002
%define DW_AT_name                          0x0003
%define DW_AT_ordering                      0x0009
%define DW_AT_byte_size                     0x000b
%define DW_AT_bit_offset                    0x000c
%define DW_AT_bit_size                      0x000d
%define DW_AT_stmt_list                     0x0010
%define DW_AT_low_pc                        0x0011
%define DW_AT_high_pc                       0x0012
%define DW_AT_language                      0x0013
%define DW_AT_discr                         0x0015
%define DW_AT_discr_value                   0x0016
%define DW_AT_visibility                    0x0017
%define DW_AT_import                        0x0018
%define DW_AT_string_length                 0x0019
%define DW_AT_common_reference              0x001a
%define DW_AT_comp_dir                      0x001b
%define DW_AT_const_value                   0x001c
%define DW_AT_containing_type               0x001d
%define DW_AT_default_value                 0x001e
%define DW_AT_inline                        0x0020
%define DW_AT_is_optional                   0x0021
%define DW_AT_lower_bound                   0x0022
%define DW_AT_producer                      0x0025
%define DW_AT_prototyped                    0x0027
%define DW_AT_return_addr                   0x002a
%define DW_AT_start_scope                   0x002c
%define DW_AT_bit_stride                    0x002e
%define DW_AT_upper_bound                   0x002f
%define DW_AT_abstract_origin               0x0031
%define DW_AT_accessibility                 0x0032
%define DW_AT_address_class                 0x0033
%define DW_AT_artificial                    0x0034
%define DW_AT_base_types                    0x0035
%define DW_AT_calling_convention            0x0036
%define DW_AT_count                         0x0037
%define DW_AT_data_member_location          0x0038
%define DW_AT_decl_column                   0x0039
%define DW_AT_decl_file                     0x003a
%define DW_AT_decl_line                     0x003b
%define DW_AT_declaration                   0x003c
%define DW_AT_discr_list                    0x003d
%define DW_AT_encoding                      0x003e
%define DW_AT_external                      0x003f
%define DW_AT_frame_base                    0x0040
%define DW_AT_friend                        0x0041
%define DW_AT_identifier_case               0x0042
%define DW_AT_macro_info                    0x0043
%define DW_AT_namelist_item                 0x0044
%define DW_AT_priority                      0x0045
%define DW_AT_segment                       0x0046
%define DW_AT_specification                 0x0047
%define DW_AT_static_link                   0x0048
%define DW_AT_type                          0x0049
%define DW_AT_use_location                  0x004a
%define DW_AT_variable_parameter            0x004b
%define DW_AT_virtuality                    0x004c
%define DW_AT_vtable_elem_location          0x004d
%define DW_AT_allocated                     0x004e
%define DW_AT_associated                    0x004f
%define DW_AT_data_location                 0x0050
%define DW_AT_byte_stride                   0x0051
%define DW_AT_entry_pc                      0x0052
%define DW_AT_use_UTF8                      0x0053
%define DW_AT_extension                     0x0054
%define DW_AT_ranges                        0x0055
%define DW_AT_trampoline                    0x0056
%define DW_AT_call_column                   0x0057
%define DW_AT_call_file                     0x0058
%define DW_AT_call_line                     0x0059
%define DW_AT_description                   0x005a
%define DW_AT_binary_scale                  0x005b
%define DW_AT_decimal_scale                 0x005c
%define DW_AT_small                         0x005d
%define DW_AT_decimal_sign                  0x005e
%define DW_AT_digit_count                   0x005f
%define DW_AT_picture_string                0x0060
%define DW_AT_mutable                       0x0061
%define DW_AT_threads_scaled                0x0062
%define DW_AT_explicit                      0x0063
%define DW_AT_object_pointer                0x0064
%define DW_AT_endianity                     0x0065
%define DW_AT_elemental                     0x0066
%define DW_AT_pure                          0x0067
%define DW_AT_recursive                     0x0068
%define DW_AT_signature                     0x0069
%define DW_AT_main_subprogram               0x006a
%define DW_AT_data_bit_offset               0x006b
%define DW_AT_const_expr                    0x006c
%define DW_AT_enum_class                    0x006d
%define DW_AT_linkage_name                  0x006e
%define DW_AT_lo_user                       0x2000
%define DW_AT_MIPS_linkage_name             0x2007
%define DW_AT_WATCOM_memory_model           0x2082
%define DW_AT_WATCOM_references_start       0x2083
%define DW_AT_WATCOM_parm_entry             0x2084
%define DW_AT_hi_user                       0x3fff
%define DW_FORM_addr                        0x01
%define DW_FORM_block2                      0x03
%define DW_FORM_block4                      0x04
%define DW_FORM_data2                       0x05
%define DW_FORM_data4                       0x06
%define DW_FORM_data8                       0x07
%define DW_FORM_string                      0x08
%define DW_FORM_block                       0x09
%define DW_FORM_block1                      0x0a
%define DW_FORM_data1                       0x0b
%define DW_FORM_flag                        0x0c
%define DW_FORM_sdata                       0x0d
%define DW_FORM_strp                        0x0e
%define DW_FORM_udata                       0x0f
%define DW_FORM_ref_addr                    0x10
%define DW_FORM_ref1                        0x11
%define DW_FORM_ref2                        0x12
%define DW_FORM_ref4                        0x13
%define DW_FORM_ref8                        0x14
%define DW_FORM_ref_udata                   0x15
%define DW_FORM_indirect                    0x16
%define DW_FORM_sec_offset                  0x17
%define DW_FORM_exprloc                     0x18
%define DW_FORM_flag_present                0x19
%define DW_FORM_ref_sig8                    0x20
%define DW_ADDR_none            0
%define DW_ADDR_i386_near16     1
%define DW_ADDR_i386_far16      2
%define DW_ADDR_i386_huge16     3
%define DW_ADDR_i386_near32     4
%define DW_ADDR_i386_far32      5
%define DW_OP_addr              0x03
%define DW_OP_deref             0x06
%define DW_OP_const1u           0x08
%define DW_OP_const1s           0x09
%define DW_OP_const2u           0x0a
%define DW_OP_const2s           0x0b
%define DW_OP_const4u           0x0c
%define DW_OP_const4s           0x0d
%define DW_OP_const8u           0x0e
%define DW_OP_const8s           0x0f
%define DW_OP_constu            0x10
%define DW_OP_consts            0x11
%define DW_OP_dup               0x12
%define DW_OP_drop              0x13
%define DW_OP_over              0x14
%define DW_OP_pick              0x15
%define DW_OP_swap              0x16
%define DW_OP_rot               0x17
%define DW_OP_xderef            0x18
%define DW_OP_abs               0x19
%define DW_OP_and               0x1a
%define DW_OP_div               0x1b
%define DW_OP_minus             0x1c
%define DW_OP_mod               0x1d
%define DW_OP_mul               0x1e
%define DW_OP_neg               0x1f
%define DW_OP_not               0x20
%define DW_OP_or                0x21
%define DW_OP_plus              0x22
%define DW_OP_plus_uconst       0x23
%define DW_OP_shl               0x24
%define DW_OP_shr               0x25
%define DW_OP_shra              0x26
%define DW_OP_xor               0x27
%define DW_OP_skip              0x2f
%define DW_OP_bra               0x28
%define DW_OP_eq                0x29
%define DW_OP_ge                0x2a
%define DW_OP_gt                0x2b
%define DW_OP_le                0x2c
%define DW_OP_lt                0x2d
%define DW_OP_ne                0x2e
%define DW_OP_lit0              0x30
%define DW_OP_lit31             0x4f
%define DW_OP_reg0              0x50
%define DW_OP_reg31             0x6f
%define DW_OP_breg0             0x70
%define DW_OP_breg31            0x8f
%define DW_OP_regx              0x90
%define DW_OP_fbreg             0x91
%define DW_OP_bregx             0x92
%define DW_OP_piece             0x93
%define DW_OP_deref_size        0x94
%define DW_OP_xderef_size       0x95
%define DW_OP_nop               0x96
%define DW_OP_lo_user           0xe0
%define DW_OP_hi_user           0xff
%define DW_EH_PE_FORMAT_MASK    0x0f
%define DW_EH_PE_APPL_MASK      0x70
%define DW_EH_PE_indirect       0x80
%define DW_EH_PE_omit           0xff
%define DW_EH_PE_ptr            0x00
%define DW_EH_PE_uleb128        0x01
%define DW_EH_PE_udata2         0x02
%define DW_EH_PE_udata4         0x03
%define DW_EH_PE_udata8         0x04
%define DW_EH_PE_sleb128        0x09
%define DW_EH_PE_sdata2         0x0a
%define DW_EH_PE_sdata4         0x0b
%define DW_EH_PE_sdata8         0x0c
%define DW_EH_PE_absptr         0x00
%define DW_EH_PE_pcrel          0x10
%define DW_EH_PE_textrel        0x20
%define DW_EH_PE_datarel        0x30
%define DW_EH_PE_funcrel        0x40
%define DW_EH_PE_aligned        0x50
%define DW_CFA_high_bit_mask        0xc0
%define DW_CFA_nop                  0x00
%define DW_CFA_advance_loc          0x40
%define DW_CFA_set_loc              0x01
%define DW_CFA_advance_loc1         0x02
%define DW_CFA_advance_loc2         0x03
%define DW_CFA_advance_loc4         0x04
%define DW_CFA_offset               0x80
%define DW_CFA_offset_extended      0x05
%define DW_CFA_offset_extended_sf   0x11
%define DW_CFA_restore              0xc0
%define DW_CFA_restore_extended     0x06
%define DW_CFA_undefined            0x07
%define DW_CFA_same_value           0x08
%define DW_CFA_register             0x09
%define DW_CFA_expression           0x10
%define DW_CFA_val_offset           0x14
%define DW_CFA_val_offset_sf        0x15
%define DW_CFA_val_expression       0x16
%define DW_CFA_remember_state       0x0a
%define DW_CFA_restore_state        0x0b
%define DW_CFA_def_cfa              0x0c
%define DW_CFA_def_cfa_register     0x0d
%define DW_CFA_def_cfa_offset       0x0e
%define DW_CFA_def_cfa_expression   0x0f
%define DW_CFA_def_cfa_sf           0x12
%define DW_CFA_def_cfa_offset_sf    0x13
%define DW_CFA_lo_user              0x1c
%define DW_CFA_MIPS_advance_loc8    0x1d
%define DW_CFA_GNU_window_save      0x2d
%define DW_CFA_GNU_args_size        0x2e
%define DW_CFA_GNU_negative_offset_extended 0x2f
%define DW_CFA_hi_user              0x3f
%define DWREG_X86_EAX       0
%define DWREG_X86_ECX       1
%define DWREG_X86_EDX       2
%define DWREG_X86_EBX       3
%define DWREG_X86_ESP       4
%define DWREG_X86_EBP       5
%define DWREG_X86_ESI       6
%define DWREG_X86_EDI       7
%define DWREG_X86_RA        8
%define DWREG_X86_EFLAGS    9
%define DWREG_X86_ST1       11
%define DWREG_X86_ST2       12
%define DWREG_X86_ST3       13
%define DWREG_X86_ST4       14
%define DWREG_X86_ST5       15
%define DWREG_X86_ST6       16
%define DWREG_X86_ST7       17
%define DWREG_X86_XMM0      21
%define DWREG_X86_XMM1      22
%define DWREG_X86_XMM2      23
%define DWREG_X86_XMM3      24
%define DWREG_X86_XMM4      25
%define DWREG_X86_XMM5      26
%define DWREG_X86_XMM6      27
%define DWREG_X86_XMM7      28
%define DWREG_X86_MM0       29
%define DWREG_X86_MM1       30
%define DWREG_X86_MM2       31
%define DWREG_X86_MM3       32
%define DWREG_X86_MM4       33
%define DWREG_X86_MM5       34
%define DWREG_X86_MM6       35
%define DWREG_X86_MM7       36
%define DWREG_X86_MXCSR     39
%define DWREG_X86_ES        40
%define DWREG_X86_CS        41
%define DWREG_X86_SS        42
%define DWREG_X86_DS        43
%define DWREG_X86_FS        44
%define DWREG_X86_GS        45
%define DWREG_X86_TR        48
%define DWREG_X86_LDTR      49
%define DWREG_AMD64_RAX     0
%define DWREG_AMD64_RDX     1
%define DWREG_AMD64_RCX     2
%define DWREG_AMD64_RBX     3
%define DWREG_AMD64_RSI     4
%define DWREG_AMD64_RDI     5
%define DWREG_AMD64_RBP     6
%define DWREG_AMD64_RSP     7
%define DWREG_AMD64_R8      8
%define DWREG_AMD64_R9      9
%define DWREG_AMD64_R10     10
%define DWREG_AMD64_R11     11
%define DWREG_AMD64_R12     12
%define DWREG_AMD64_R13     13
%define DWREG_AMD64_R14     14
%define DWREG_AMD64_R15     15
%define DWREG_AMD64_RA      16
%define DWREG_AMD64_XMM0    17
%define DWREG_AMD64_XMM1    18
%define DWREG_AMD64_XMM2    19
%define DWREG_AMD64_XMM3    20
%define DWREG_AMD64_XMM4    21
%define DWREG_AMD64_XMM5    22
%define DWREG_AMD64_XMM6    23
%define DWREG_AMD64_XMM7    24
%define DWREG_AMD64_XMM8    25
%define DWREG_AMD64_XMM9    26
%define DWREG_AMD64_XMM10   27
%define DWREG_AMD64_XMM11   28
%define DWREG_AMD64_XMM12   29
%define DWREG_AMD64_XMM13   30
%define DWREG_AMD64_XMM14   31
%define DWREG_AMD64_XMM15   32
%define DWREG_AMD64_ST0     33
%define DWREG_AMD64_ST1     34
%define DWREG_AMD64_ST2     35
%define DWREG_AMD64_ST3     36
%define DWREG_AMD64_ST4     37
%define DWREG_AMD64_ST5     38
%define DWREG_AMD64_ST6     39
%define DWREG_AMD64_ST7     40
%define DWREG_AMD64_MM0     41
%define DWREG_AMD64_MM1     42
%define DWREG_AMD64_MM2     43
%define DWREG_AMD64_MM3     44
%define DWREG_AMD64_MM4     45
%define DWREG_AMD64_MM5     46
%define DWREG_AMD64_MM6     47
%define DWREG_AMD64_MM7     48
%define DWREG_AMD64_RFLAGS  49
%define DWREG_AMD64_ES      50
%define DWREG_AMD64_CS      51
%define DWREG_AMD64_SS      52
%define DWREG_AMD64_DS      53
%define DWREG_AMD64_FS      54
%define DWREG_AMD64_GS      55
%define DWREG_AMD64_FS_BASE 58
%define DWREG_AMD64_GS_BASE 59
%define DWREG_AMD64_TR      62
%define DWREG_AMD64_LDTR    63
%define DWREG_AMD64_MXCSR   64
%define DWREG_AMD64_FCW     65
%define DWREG_AMD64_FSW     66
%endif