UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
syms_dwarf_transpiler.c
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
4//~ NOTE(allen): Dwarf Transpiler Functions
5
8 SYMS_U64 count = 0;
9 SYMS_RegID *tbl = 0;
10 switch (arch){
13 }
14 SYMS_RegID result = 0;
15 if (reg_idx < count){
16 result = tbl[reg_idx];
17 }
18 return(result);
19}
20
23 SYMS_U64 count = 0;
24 SYMS_RegID *tbl = 0;
26 switch (arch){
27 case SYMS_Arch_X86:
28 {
31 sec_tbl = syms_reg_section_X86;
32 }break;
33 case SYMS_Arch_X64:
34 {
37 sec_tbl = syms_reg_section_X64;
38 }break;
39 }
40 SYMS_U64 result = 0;
41 if (reg_idx < count){
42 SYMS_RegID reg_id = tbl[reg_idx];
43 result = sec_tbl[reg_id].off;
44 }
45 return(result);
46}
47
52 SYMS_QueuePush(graph->first, graph->last, result);
53 result->op = op;
54 result->params = params;
55 return(result);
56}
57
60 // TODO(allen): deduplicate with op encode
62 if (u <= SYMS_U8_MAX){
64 }
65 else if (u <= SYMS_U16_MAX){
67 }
68 else if (u <= SYMS_U32_MAX){
70 }
71
73 return(result);
74}
75
78 // TODO(allen): deduplicate with op encode
79 SYMS_U64 size = 64;
81 if (SYMS_S8_MIN <= s && s <= SYMS_S8_MAX){
83 size = 8;
84 }
85 else if (SYMS_S16_MIN <= s && s <= SYMS_S16_MAX){
87 size = 16;
88 }
89 else if (SYMS_S32_MIN <= s && s <= SYMS_S32_MAX){
91 size = 32;
92 }
93
95 if (size < 64){
97 }
98 return(result);
99}
100
105
106 SYMS_Arch arch = dbg->arch;
107
108 // scratch
110
112
115 off_count);
116
117 // setup decoder
118 SYMS_U64 cursor = 0;
119
120 //- step 1: decode
121 for (;;){
122
123 // decode op
124 SYMS_U64 op_offset = cursor;
125 SYMS_U8 op = 0;
127 SYMS_U64 after_op_off = cursor + 1;
128
129 // step params
131 SYMS_B8 is_signed = 0;
132
133 // new graph node
135
136 // step
138 switch (op){
139
141
153 {
155 }break;
156
157 case SYMS_DwOp_CONST1U:size_param = 1; goto const_n;
158 case SYMS_DwOp_CONST2U:size_param = 2; goto const_n;
159 case SYMS_DwOp_CONST4U:size_param = 4; goto const_n;
160 case SYMS_DwOp_CONST8U:size_param = 8; goto const_n;
161 case SYMS_DwOp_CONST1S:size_param = 1; is_signed = 1; goto const_n;
162 case SYMS_DwOp_CONST2S:size_param = 2; is_signed = 1; goto const_n;
163 case SYMS_DwOp_CONST4S:size_param = 4; is_signed = 1; goto const_n;
164 case SYMS_DwOp_CONST8S:size_param = 8; is_signed = 1; goto const_n;
165 const_n:
166 {
167 SYMS_U64 x = 0;
169 if (is_signed){
171 }
172 else{
174 }
175 }break;
176
177 case SYMS_DwOp_ADDR:
178 {
181
183 SYMS_U64 text_voff = text_sec->vrange.min;
184
185 SYMS_U64 offset = raw_offset + text_voff;
186
187 if (offset < 0xFFFFFFFF){
189 }
190 else{
192 syms_eval_op_params(0xFFFFFFFF));
193 syms_dw_expr__ir_encode_u(arena, &graph, offset - 0xFFFFFFFF);
195 }
196 }break;
197
198 case SYMS_DwOp_CONSTU:
199 {
200 SYMS_U64 x = 0;
203 }break;
204
205 case SYMS_DwOp_CONSTS:
206 {
207 SYMS_S64 x = 0;
210 }break;
211
212
214
215 case SYMS_DwOp_FBREG:
216 {
217 SYMS_U64 offset = 0;
219
220 if (offset < 256){
223 }
224 else{
226 syms_dw_expr__ir_encode_u(arena, &graph, offset - 255);
228 }
229 }break;
230
242 {
243 SYMS_S64 offset = 0;
245
246 SYMS_U64 reg_idx = op - SYMS_DwOp_REG0;
247
248 SYMS_RegID reg_id = syms_reg_id_from_dw_reg(arch, reg_idx);
249 // TODO(allen): change size based on arch
250 SYMS_U8 size = 8;
251
253 syms_dw_expr__ir_encode_u(arena, &graph, offset);
255 }break;
256
257 case SYMS_DwOp_BREGX:
258 {
259 SYMS_U64 reg_idx = 0;
261 SYMS_S64 offset = 0;
263
264 SYMS_RegID reg_id = syms_reg_id_from_dw_reg(arch, reg_idx);
265 // TODO(allen): change size based on arch
266 SYMS_U8 size = 8;
267
269
270 syms_dw_expr__ir_encode_u(arena, &graph, offset);
272 }break;
273
275
276 case SYMS_DwOp_DUP:
277 {
279 }break;
280
281 case SYMS_DwOp_DROP:
282 {
284 }break;
285
286 case SYMS_DwOp_PICK:
287 {
288 SYMS_U64 idx = 0;
290 // TODO: if (idx >= 256) no-convert
292 }break;
293
294 case SYMS_DwOp_OVER:
295 {
297 }break;
298
299 case SYMS_DwOp_SWAP:
300 {
302 }break;
303
304 case SYMS_DwOp_ROT:
305 {
307 }break;
308
309 case SYMS_DwOp_DEREF:
310 {
312 }break;
313
315 {
316 SYMS_U64 raw_size = 0;
320 }break;
321
322 case SYMS_DwOp_XDEREF:
324 {
325 // NOT SUPPORTED
326 }break;
327
329 {
331 }break;
332
334 {
335 // TODO(allen):
336 }break;
337
339 {
341 }break;
342
344
345 case SYMS_DwOp_ABS:
346 {
349 }break;
350
351 case SYMS_DwOp_AND:
352 {
355 }break;
356
357 case SYMS_DwOp_DIV:
358 {
361 }break;
362
363 case SYMS_DwOp_MINUS:
364 {
367 }break;
368
369 case SYMS_DwOp_MOD:
370 {
373 }break;
374
375 case SYMS_DwOp_MUL:
376 {
379 }break;
380
381 case SYMS_DwOp_NEG:
382 {
385 }break;
386
387 case SYMS_DwOp_NOT:
388 {
391 }break;
392
393 case SYMS_DwOp_OR:
394 {
397 }break;
398
399 case SYMS_DwOp_PLUS:
400 {
402 }break;
403
405 {
406 SYMS_U64 y = 0;
410 }break;
411
412 case SYMS_DwOp_SHL:
413 {
416 }break;
417
418 case SYMS_DwOp_SHR:
419 {
422 }break;
423
424 case SYMS_DwOp_SHRA:
425 {
428 }break;
429
430 case SYMS_DwOp_XOR:
431 {
434 }break;
435
437
438 case SYMS_DwOp_LE:
439 {
442 }break;
443
444 case SYMS_DwOp_GE:
445 {
448 }break;
449
450 case SYMS_DwOp_EQ:
451 {
454 }break;
455
456 case SYMS_DwOp_LT:
457 {
460 }break;
461
462 case SYMS_DwOp_GT:
463 {
466 }break;
467
468 case SYMS_DwOp_NE:
469 {
472 }break;
473
474 case SYMS_DwOp_SKIP:
475 {
476 SYMS_S16 d = 0;
479
480 // save a jump patch
482
485 new_patch->node = new_node;
486 new_patch->cnext_dw_off = dst_off;
487 }break;
488
489 case SYMS_DwOp_BRA:
490 {
491 SYMS_S16 d = 0;
494
495 // save a jump patch
497
500 new_patch->node = new_node;
501 new_patch->cnext_dw_off = dst_off;
502 }break;
503
504 case SYMS_DwOp_CALL2:
505 case SYMS_DwOp_CALL4:
507 {
508 // TODO: NOT SUPPORTED
509 }break;
510
512
513 case SYMS_DwOp_NOP:
514 {
517 }break;
518
520
532 {
533 SYMS_U64 reg_idx = op - SYMS_DwOp_REG0;
534 SYMS_U64 off = syms_reg_off_from_dw_reg(arch, reg_idx);
535 // TODO(allen): size from architecture
536 SYMS_U8 size = 8;
537 SYMS_U64 x = off | (size << 8);
539 // TODO(allen): register mode
540 }break;
541
542 case SYMS_DwOp_REGX:
543 {
544 SYMS_U64 reg_idx = 0;
546 SYMS_U64 off = syms_reg_off_from_dw_reg(arch, reg_idx);
547 // TODO(allen): size from architecture
548 SYMS_U8 size = 8;
549 SYMS_U64 x = off | (size << 8);
551 // TODO(allen): register mode
552 }break;
553
555
557 {
558 SYMS_U64 size = 0;
560 // TODO(allen): size > 8 ?
561
562 SYMS_U64 x = 0;
564 step_cursor += size;
565
567 // TODO(allen): value mode
568 }break;
569
571 {
572 // TODO(allen): value mode
573 }break;
574
576
577 case SYMS_DwOp_PIECE:
579 {
580 // TODO(allen): ???? how do we even handle this?
581 }break;
582
584
585 default:
586 {
587 // NOT SUPPORTED
588 }break;
589 }
590
591 // save the new node
592 off_tbl[cursor] = new_node;
593
594 // increment cursor
595 cursor = step_cursor;
596 }
597
598 if (cursor >= off_count){
599 break;
600 }
601 }
602
603 //- step 2: resolve jump patches
605 patch != 0;
606 patch = patch->next){
608
609 SYMS_U64 cnext_dw_off = patch->cnext_dw_off;
610 if (cnext_dw_off < off_count){
611 dst_node = off_tbl[cnext_dw_off];
612 }
613
614 if (dst_node != 0){
615 patch->node->cnext = dst_node;
616 }
617 else{
618 // TODO(allen): cannot transpile
619 }
620 }
621
623
624 // finish filling in result graph
625 graph.tbl = off_tbl;
626 graph.count = off_count;
627
628 return(graph);
629}
630
631SYMS_API void
635 if (stack_node == 0){
637 }
638 else{
639 SYMS_StackPop(stack->free);
640 }
642 stack_node->node = node;
643 stack_node->stage = 0;
644}
645
646SYMS_API void
654
657 SYMS_B32 result = syms_false;
658
660 SYMS_DwEvalIRGraphStack stack = {0};
661
662 entry_node->in_stack = syms_true;
664
665 for (;;){
667 if (stack_node == 0){
668 break;
669 }
670
672
673 switch (stack_node->stage){
674 case 0:
675 {
676 if (node->op != SYMS_EvalOp_Skip){
678 if (next_node != 0){
679 if (next_node->in_stack){
680 result = syms_true;
681 goto done;
682 }
683 else{
686 }
687 }
688 }
689 }break;
690
691 case 1:
692 {
694 if (next_node != 0){
695 if (next_node->in_stack){
696 result = syms_true;
697 goto done;
698 }
699 else{
702 }
703 }
704 }break;
705
706 case 2:
707 {
708 node->in_stack = syms_false;
710 }break;
711 }
712
713 stack_node->stage += 1;
714 }
715
716 done:;
717
719
720 return(result);
721}
722
725 SYMS_DwEvalIRGraphBlock *result = 0;
726
727
728
729 return(result);
730}
731
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define op
Definition syms_base.h:402
Definition syms_dwarf_parser.h:94
SYMS_U64 text_section_idx
Definition syms_dwarf_parser.h:99
SYMS_Arch arch
Definition syms_dwarf_parser.h:96
SYMS_SecInfoArray sections
Definition syms_dwarf_parser.h:98
Definition syms_dwarf_transpiler.h:51
Definition syms_dwarf_transpiler.h:15
SYMS_EvalOpParams params
Definition syms_dwarf_transpiler.h:20
struct SYMS_DwEvalIRGraphNode * next
Definition syms_dwarf_transpiler.h:17
struct SYMS_DwEvalIRGraphNode * cnext
Definition syms_dwarf_transpiler.h:18
SYMS_B8 in_stack
Definition syms_dwarf_transpiler.h:23
SYMS_U32 op
Definition syms_dwarf_transpiler.h:19
Definition syms_dwarf_transpiler.h:40
Definition syms_dwarf_transpiler.h:46
SYMS_DwEvalIRGraphStackNode * stack
Definition syms_dwarf_transpiler.h:47
SYMS_DwEvalIRGraphStackNode * free
Definition syms_dwarf_transpiler.h:48
Definition syms_dwarf_transpiler.h:26
Definition syms_dwarf_transpiler.h:34
struct SYMS_DwEvalJumpPatch * next
Definition syms_dwarf_transpiler.h:35
Definition syms_regs.h:49
SYMS_SecInfo * sec_info
Definition syms_debug_info.h:22
Definition syms_debug_info.h:15
Definition syms_base.h:296
Definition syms_base.h:264
SYMS_API SYMS_U64 syms_based_range_read(void *base, SYMS_U64Range range, SYMS_U64 offset, SYMS_U64 out_size, void *out)
Definition syms_base.c:753
SYMS_API SYMS_ArenaTemp syms_get_scratch(SYMS_Arena **conflicts, SYMS_U64 conflict_count)
Definition syms_base.c:694
SYMS_API SYMS_U64 syms_based_range_read_sleb128(void *base, SYMS_U64Range range, SYMS_U64 offset, SYMS_S64 *out_value)
Definition syms_base.c:792
SYMS_API SYMS_U64 syms_based_range_read_uleb128(void *base, SYMS_U64Range range, SYMS_U64 offset, SYMS_U64 *out_value)
Definition syms_base.c:765
#define syms_true
Definition syms_base.h:105
#define SYMS_S32_MIN
Definition syms_base.h:168
#define SYMS_U16_MAX
Definition syms_base.h:174
#define SYMS_StackPush(f, n)
Definition syms_base.h:227
#define SYMS_U8_MAX
Definition syms_base.h:173
#define SYMS_S16_MAX
Definition syms_base.h:167
#define SYMS_U32_MAX
Definition syms_base.h:175
#define syms_push_array(a, T, c)
Definition syms_base.h:561
#define SYMS_S8_MAX
Definition syms_base.h:165
#define SYMS_ClampTop(a, b)
Definition syms_base.h:182
#define syms_false
Definition syms_base.h:104
#define SYMS_API
Definition syms_base.h:29
#define SYMS_ARRAY_SIZE(x)
Definition syms_base.h:144
SYMS_U32 SYMS_RegID
Definition syms_base.h:107
#define SYMS_S32_MAX
Definition syms_base.h:169
SYMS_S32 SYMS_B32
Definition syms_base.h:99
#define SYMS_StackPop(f)
Definition syms_base.h:228
#define SYMS_S8_MIN
Definition syms_base.h:164
#define syms_push_array_zero(a, T, c)
Definition syms_base.h:564
#define SYMS_S16_MIN
Definition syms_base.h:166
SYMS_S8 SYMS_B8
Definition syms_base.h:97
#define SYMS_QueuePush(f, l, n)
Definition syms_base.h:220
#define syms_release_scratch
Definition syms_base.h:567
uint64_t SYMS_U64
Definition syms_crt_overrides.h:39
#define syms_memmove
Definition syms_crt_overrides.h:65
int64_t SYMS_S64
Definition syms_crt_overrides.h:35
int16_t SYMS_S16
Definition syms_crt_overrides.h:33
uint8_t SYMS_U8
Definition syms_crt_overrides.h:36
#define SYMS_Arena
Definition syms_default_arena.h:61
SYMS_GLOBAL SYMS_READ_ONLY SYMS_RegID syms_dw_reg_table_x86[]
Definition syms_dwarf_expr.h:60
SYMS_GLOBAL SYMS_READ_ONLY SYMS_RegID syms_dw_reg_table_x64[]
Definition syms_dwarf_expr.h:40
SYMS_API void syms_dw_expr__ir_graph_stack_pop(SYMS_DwEvalIRGraphStack *stack)
Definition syms_dwarf_transpiler.c:647
SYMS_API SYMS_U64 syms_reg_off_from_dw_reg(SYMS_Arch arch, SYMS_U64 reg_idx)
Definition syms_dwarf_transpiler.c:22
SYMS_API SYMS_DwEvalIRGraphNode * syms_dw_expr__ir_encode_u(SYMS_Arena *arena, SYMS_DwEvalIRGraph *graph, SYMS_U64 u)
Definition syms_dwarf_transpiler.c:59
SYMS_API SYMS_DwEvalIRGraph syms_dw_expr__ir_graph_from_dw_expr(SYMS_Arena *arena, SYMS_DwDbgAccel *dbg, void *expr_base, SYMS_U64Range expr_range)
Definition syms_dwarf_transpiler.c:102
SYMS_API SYMS_RegID syms_reg_id_from_dw_reg(SYMS_Arch arch, SYMS_U64 reg_idx)
Definition syms_dwarf_transpiler.c:7
SYMS_API SYMS_DwEvalIRGraphNode * syms_dw_expr__ir_encode_s(SYMS_Arena *arena, SYMS_DwEvalIRGraph *graph, SYMS_S64 s)
Definition syms_dwarf_transpiler.c:77
SYMS_API SYMS_String8 syms_dw_expr__transpile_to_eval(SYMS_Arena *arena, SYMS_DwDbgAccel *dbg, void *expr_base, SYMS_U64Range expr_range)
Definition syms_dwarf_transpiler.c:733
SYMS_API SYMS_DwEvalIRGraphNode * syms_dw_expr__ir_push_node(SYMS_Arena *arena, SYMS_DwEvalIRGraph *graph, SYMS_EvalOp op, SYMS_EvalOpParams params)
Definition syms_dwarf_transpiler.c:49
SYMS_API SYMS_B32 syms_dw_expr__ir_contains_cycle(SYMS_DwEvalIRGraphNode *entry_node)
Definition syms_dwarf_transpiler.c:656
SYMS_API SYMS_DwEvalIRGraphBlock * syms_dw_expr__ir_blocks_from_graph(SYMS_Arena *arena, SYMS_DwEvalIRGraph graph)
Definition syms_dwarf_transpiler.c:724
SYMS_API void syms_dw_expr__ir_graph_stack_push(SYMS_Arena *arena, SYMS_DwEvalIRGraphStack *stack, SYMS_DwEvalIRGraphNode *node)
Definition syms_dwarf_transpiler.c:632
SYMS_API SYMS_EvalOpParams syms_eval_op_params_2u8(SYMS_U8 p1, SYMS_U8 p2)
Definition syms_eval.c:25
SYMS_API SYMS_EvalOpParams syms_eval_op_params(SYMS_U64 p)
Definition syms_eval.c:18
@ SYMS_EvalIRExtKind_Noop
Definition syms_eval.h:27
SYMS_Arch
Definition syms_meta_base.h:6
@ SYMS_Arch_X64
Definition syms_meta_base.h:8
@ SYMS_Arch_X86
Definition syms_meta_base.h:9
@ SYMS_DwOp_REG11
Definition syms_meta_dwarf_expr.h:206
@ SYMS_DwOp_REG22
Definition syms_meta_dwarf_expr.h:217
@ SYMS_DwOp_REG26
Definition syms_meta_dwarf_expr.h:221
@ SYMS_DwOp_REG23
Definition syms_meta_dwarf_expr.h:218
@ SYMS_DwOp_LIT21
Definition syms_meta_dwarf_expr.h:184
@ SYMS_DwOp_LT
Definition syms_meta_dwarf_expr.h:161
@ SYMS_DwOp_ABS
Definition syms_meta_dwarf_expr.h:140
@ SYMS_DwOp_CALL2
Definition syms_meta_dwarf_expr.h:267
@ SYMS_DwOp_XDEREF
Definition syms_meta_dwarf_expr.h:139
@ SYMS_DwOp_REG27
Definition syms_meta_dwarf_expr.h:222
@ SYMS_DwOp_ROT
Definition syms_meta_dwarf_expr.h:138
@ SYMS_DwOp_LIT16
Definition syms_meta_dwarf_expr.h:179
@ SYMS_DwOp_BREGX
Definition syms_meta_dwarf_expr.h:261
@ SYMS_DwOp_MUL
Definition syms_meta_dwarf_expr.h:145
@ SYMS_DwOp_BREG16
Definition syms_meta_dwarf_expr.h:243
@ SYMS_DwOp_ADDR
Definition syms_meta_dwarf_expr.h:121
@ SYMS_DwOp_BREG25
Definition syms_meta_dwarf_expr.h:252
@ SYMS_DwOp_CALL_FRAME_CFA
Definition syms_meta_dwarf_expr.h:271
@ SYMS_DwOp_REG5
Definition syms_meta_dwarf_expr.h:200
@ SYMS_DwOp_OVER
Definition syms_meta_dwarf_expr.h:135
@ SYMS_DwOp_SHRA
Definition syms_meta_dwarf_expr.h:153
@ SYMS_DwOp_LIT24
Definition syms_meta_dwarf_expr.h:187
@ SYMS_DwOp_LIT14
Definition syms_meta_dwarf_expr.h:177
@ SYMS_DwOp_LIT15
Definition syms_meta_dwarf_expr.h:178
@ SYMS_DwOp_REG0
Definition syms_meta_dwarf_expr.h:195
@ SYMS_DwOp_XDEREF_SIZE
Definition syms_meta_dwarf_expr.h:264
@ SYMS_DwOp_CONST4S
Definition syms_meta_dwarf_expr.h:128
@ SYMS_DwOp_BREG19
Definition syms_meta_dwarf_expr.h:246
@ SYMS_DwOp_FORM_TLS_ADDRESS
Definition syms_meta_dwarf_expr.h:270
@ SYMS_DwOp_BREG2
Definition syms_meta_dwarf_expr.h:229
@ SYMS_DwOp_BREG15
Definition syms_meta_dwarf_expr.h:242
@ SYMS_DwOp_BREG13
Definition syms_meta_dwarf_expr.h:240
@ SYMS_DwOp_LIT7
Definition syms_meta_dwarf_expr.h:170
@ SYMS_DwOp_LIT30
Definition syms_meta_dwarf_expr.h:193
@ SYMS_DwOp_LIT26
Definition syms_meta_dwarf_expr.h:189
@ SYMS_DwOp_GT
Definition syms_meta_dwarf_expr.h:159
@ SYMS_DwOp_NOP
Definition syms_meta_dwarf_expr.h:265
@ SYMS_DwOp_NEG
Definition syms_meta_dwarf_expr.h:146
@ SYMS_DwOp_DUP
Definition syms_meta_dwarf_expr.h:133
@ SYMS_DwOp_BREG31
Definition syms_meta_dwarf_expr.h:258
@ SYMS_DwOp_BREG21
Definition syms_meta_dwarf_expr.h:248
@ SYMS_DwOp_BREG3
Definition syms_meta_dwarf_expr.h:230
@ SYMS_DwOp_BRA
Definition syms_meta_dwarf_expr.h:156
@ SYMS_DwOp_MOD
Definition syms_meta_dwarf_expr.h:144
@ SYMS_DwOp_NE
Definition syms_meta_dwarf_expr.h:162
@ SYMS_DwOp_CONSTU
Definition syms_meta_dwarf_expr.h:131
@ SYMS_DwOp_BREG29
Definition syms_meta_dwarf_expr.h:256
@ SYMS_DwOp_REG24
Definition syms_meta_dwarf_expr.h:219
@ SYMS_DwOp_BREG22
Definition syms_meta_dwarf_expr.h:249
@ SYMS_DwOp_REG9
Definition syms_meta_dwarf_expr.h:204
@ SYMS_DwOp_SWAP
Definition syms_meta_dwarf_expr.h:137
@ SYMS_DwOp_BREG11
Definition syms_meta_dwarf_expr.h:238
@ SYMS_DwOp_LIT8
Definition syms_meta_dwarf_expr.h:171
@ SYMS_DwOp_BREG12
Definition syms_meta_dwarf_expr.h:239
@ SYMS_DwOp_CONST8S
Definition syms_meta_dwarf_expr.h:130
@ SYMS_DwOp_REG18
Definition syms_meta_dwarf_expr.h:213
@ SYMS_DwOp_REG16
Definition syms_meta_dwarf_expr.h:211
@ SYMS_DwOp_REG2
Definition syms_meta_dwarf_expr.h:197
@ SYMS_DwOp_LIT31
Definition syms_meta_dwarf_expr.h:194
@ SYMS_DwOp_EQ
Definition syms_meta_dwarf_expr.h:157
@ SYMS_DwOp_REG7
Definition syms_meta_dwarf_expr.h:202
@ SYMS_DwOp_CONST1U
Definition syms_meta_dwarf_expr.h:123
@ SYMS_DwOp_REG29
Definition syms_meta_dwarf_expr.h:224
@ SYMS_DwOp_REG21
Definition syms_meta_dwarf_expr.h:216
@ SYMS_DwOp_IMPLICIT_VALUE
Definition syms_meta_dwarf_expr.h:273
@ SYMS_DwOp_AND
Definition syms_meta_dwarf_expr.h:141
@ SYMS_DwOp_CONST8U
Definition syms_meta_dwarf_expr.h:129
@ SYMS_DwOp_LIT9
Definition syms_meta_dwarf_expr.h:172
@ SYMS_DwOp_PIECE
Definition syms_meta_dwarf_expr.h:262
@ SYMS_DwOp_BREG20
Definition syms_meta_dwarf_expr.h:247
@ SYMS_DwOp_BREG6
Definition syms_meta_dwarf_expr.h:233
@ SYMS_DwOp_LIT22
Definition syms_meta_dwarf_expr.h:185
@ SYMS_DwOp_DEREF
Definition syms_meta_dwarf_expr.h:122
@ SYMS_DwOp_BREG23
Definition syms_meta_dwarf_expr.h:250
@ SYMS_DwOp_LIT27
Definition syms_meta_dwarf_expr.h:190
@ SYMS_DwOp_LIT20
Definition syms_meta_dwarf_expr.h:183
@ SYMS_DwOp_BREG8
Definition syms_meta_dwarf_expr.h:235
@ SYMS_DwOp_REG30
Definition syms_meta_dwarf_expr.h:225
@ SYMS_DwOp_REG13
Definition syms_meta_dwarf_expr.h:208
@ SYMS_DwOp_REG8
Definition syms_meta_dwarf_expr.h:203
@ SYMS_DwOp_SHR
Definition syms_meta_dwarf_expr.h:152
@ SYMS_DwOp_PICK
Definition syms_meta_dwarf_expr.h:136
@ SYMS_DwOp_LIT17
Definition syms_meta_dwarf_expr.h:180
@ SYMS_DwOp_LIT12
Definition syms_meta_dwarf_expr.h:175
@ SYMS_DwOp_PLUS_UCONST
Definition syms_meta_dwarf_expr.h:150
@ SYMS_DwOp_SHL
Definition syms_meta_dwarf_expr.h:151
@ SYMS_DwOp_LIT11
Definition syms_meta_dwarf_expr.h:174
@ SYMS_DwOp_REG19
Definition syms_meta_dwarf_expr.h:214
@ SYMS_DwOp_BREG30
Definition syms_meta_dwarf_expr.h:257
@ SYMS_DwOp_REG25
Definition syms_meta_dwarf_expr.h:220
@ SYMS_DwOp_LIT23
Definition syms_meta_dwarf_expr.h:186
@ SYMS_DwOp_BREG26
Definition syms_meta_dwarf_expr.h:253
@ SYMS_DwOp_DROP
Definition syms_meta_dwarf_expr.h:134
@ SYMS_DwOp_CONST2U
Definition syms_meta_dwarf_expr.h:125
@ SYMS_DwOp_LIT28
Definition syms_meta_dwarf_expr.h:191
@ SYMS_DwOp_LIT4
Definition syms_meta_dwarf_expr.h:167
@ SYMS_DwOp_REG28
Definition syms_meta_dwarf_expr.h:223
@ SYMS_DwOp_REG12
Definition syms_meta_dwarf_expr.h:207
@ SYMS_DwOp_REG15
Definition syms_meta_dwarf_expr.h:210
@ SYMS_DwOp_NOT
Definition syms_meta_dwarf_expr.h:147
@ SYMS_DwOp_SKIP
Definition syms_meta_dwarf_expr.h:155
@ SYMS_DwOp_OR
Definition syms_meta_dwarf_expr.h:148
@ SYMS_DwOp_BREG27
Definition syms_meta_dwarf_expr.h:254
@ SYMS_DwOp_PUSH_OBJECT_ADDRESS
Definition syms_meta_dwarf_expr.h:266
@ SYMS_DwOp_BREG7
Definition syms_meta_dwarf_expr.h:234
@ SYMS_DwOp_BREG5
Definition syms_meta_dwarf_expr.h:232
@ SYMS_DwOp_REG20
Definition syms_meta_dwarf_expr.h:215
@ SYMS_DwOp_BREG4
Definition syms_meta_dwarf_expr.h:231
@ SYMS_DwOp_FBREG
Definition syms_meta_dwarf_expr.h:260
@ SYMS_DwOp_DEREF_SIZE
Definition syms_meta_dwarf_expr.h:263
@ SYMS_DwOp_REG14
Definition syms_meta_dwarf_expr.h:209
@ SYMS_DwOp_BREG24
Definition syms_meta_dwarf_expr.h:251
@ SYMS_DwOp_LIT2
Definition syms_meta_dwarf_expr.h:165
@ SYMS_DwOp_CONSTS
Definition syms_meta_dwarf_expr.h:132
@ SYMS_DwOp_LIT6
Definition syms_meta_dwarf_expr.h:169
@ SYMS_DwOp_CALL_REF
Definition syms_meta_dwarf_expr.h:269
@ SYMS_DwOp_BREG17
Definition syms_meta_dwarf_expr.h:244
@ SYMS_DwOp_GE
Definition syms_meta_dwarf_expr.h:158
@ SYMS_DwOp_LE
Definition syms_meta_dwarf_expr.h:160
@ SYMS_DwOp_LIT1
Definition syms_meta_dwarf_expr.h:164
@ SYMS_DwOp_CONST4U
Definition syms_meta_dwarf_expr.h:127
@ SYMS_DwOp_LIT13
Definition syms_meta_dwarf_expr.h:176
@ SYMS_DwOp_REG10
Definition syms_meta_dwarf_expr.h:205
@ SYMS_DwOp_LIT0
Definition syms_meta_dwarf_expr.h:163
@ SYMS_DwOp_LIT29
Definition syms_meta_dwarf_expr.h:192
@ SYMS_DwOp_BREG1
Definition syms_meta_dwarf_expr.h:228
@ SYMS_DwOp_REG17
Definition syms_meta_dwarf_expr.h:212
@ SYMS_DwOp_CONST1S
Definition syms_meta_dwarf_expr.h:124
@ SYMS_DwOp_REG4
Definition syms_meta_dwarf_expr.h:199
@ SYMS_DwOp_BIT_PIECE
Definition syms_meta_dwarf_expr.h:272
@ SYMS_DwOp_BREG18
Definition syms_meta_dwarf_expr.h:245
@ SYMS_DwOp_BREG9
Definition syms_meta_dwarf_expr.h:236
@ SYMS_DwOp_DIV
Definition syms_meta_dwarf_expr.h:142
@ SYMS_DwOp_BREG14
Definition syms_meta_dwarf_expr.h:241
@ SYMS_DwOp_LIT5
Definition syms_meta_dwarf_expr.h:168
@ SYMS_DwOp_REG1
Definition syms_meta_dwarf_expr.h:196
@ SYMS_DwOp_BREG10
Definition syms_meta_dwarf_expr.h:237
@ SYMS_DwOp_XOR
Definition syms_meta_dwarf_expr.h:154
@ SYMS_DwOp_REGX
Definition syms_meta_dwarf_expr.h:259
@ SYMS_DwOp_REG3
Definition syms_meta_dwarf_expr.h:198
@ SYMS_DwOp_STACK_VALUE
Definition syms_meta_dwarf_expr.h:274
@ SYMS_DwOp_CONST2S
Definition syms_meta_dwarf_expr.h:126
@ SYMS_DwOp_BREG0
Definition syms_meta_dwarf_expr.h:227
@ SYMS_DwOp_MINUS
Definition syms_meta_dwarf_expr.h:143
@ SYMS_DwOp_REG31
Definition syms_meta_dwarf_expr.h:226
@ SYMS_DwOp_LIT25
Definition syms_meta_dwarf_expr.h:188
@ SYMS_DwOp_PLUS
Definition syms_meta_dwarf_expr.h:149
@ SYMS_DwOp_BREG28
Definition syms_meta_dwarf_expr.h:255
@ SYMS_DwOp_REG6
Definition syms_meta_dwarf_expr.h:201
@ SYMS_DwOp_LIT18
Definition syms_meta_dwarf_expr.h:181
@ SYMS_DwOp_CALL4
Definition syms_meta_dwarf_expr.h:268
@ SYMS_DwOp_LIT19
Definition syms_meta_dwarf_expr.h:182
@ SYMS_DwOp_LIT3
Definition syms_meta_dwarf_expr.h:166
@ SYMS_DwOp_LIT10
Definition syms_meta_dwarf_expr.h:173
SYMS_EvalOp
Definition syms_meta_eval.h:6
@ SYMS_EvalOp_Cond
Definition syms_meta_eval.h:8
@ SYMS_EvalOp_BitAnd
Definition syms_meta_eval.h:31
@ SYMS_EvalOp_Div
Definition syms_meta_eval.h:27
@ SYMS_EvalOp_ObjectOff
Definition syms_meta_eval.h:16
@ SYMS_EvalOp_GrEq
Definition syms_meta_eval.h:41
@ SYMS_EvalOp_Pick
Definition syms_meta_eval.h:47
@ SYMS_EvalOp_FrameOff
Definition syms_meta_eval.h:13
@ SYMS_EvalOp_Skip
Definition syms_meta_eval.h:9
@ SYMS_EvalOp_Mod
Definition syms_meta_eval.h:28
@ SYMS_EvalOp_MemRead
Definition syms_meta_eval.h:10
@ SYMS_EvalOp_TruncSigned
Definition syms_meta_eval.h:45
@ SYMS_EvalOp_Abs
Definition syms_meta_eval.h:22
@ SYMS_EvalOp_Insert
Definition syms_meta_eval.h:49
@ SYMS_EvalOp_NtEq
Definition syms_meta_eval.h:39
@ SYMS_EvalOp_BitNot
Definition syms_meta_eval.h:34
@ SYMS_EvalOp_RShift
Definition syms_meta_eval.h:30
@ SYMS_EvalOp_RegRead
Definition syms_meta_eval.h:11
@ SYMS_EvalOp_BitOr
Definition syms_meta_eval.h:32
@ SYMS_EvalOp_CFA
Definition syms_meta_eval.h:17
@ SYMS_EvalOp_Pop
Definition syms_meta_eval.h:48
@ SYMS_EvalOp_EqEq
Definition syms_meta_eval.h:38
@ SYMS_EvalOp_ModuleOff
Definition syms_meta_eval.h:14
@ SYMS_EvalOp_ConstU32
Definition syms_meta_eval.h:20
@ SYMS_EvalOp_Mul
Definition syms_meta_eval.h:26
@ SYMS_EvalOp_ConstU64
Definition syms_meta_eval.h:21
@ SYMS_EvalOp_Neg
Definition syms_meta_eval.h:23
@ SYMS_EvalOp_Less
Definition syms_meta_eval.h:42
@ SYMS_EvalOp_Grtr
Definition syms_meta_eval.h:43
@ SYMS_EvalOp_Sub
Definition syms_meta_eval.h:25
@ SYMS_EvalOp_ConstU8
Definition syms_meta_eval.h:18
@ SYMS_EvalOp_BitXor
Definition syms_meta_eval.h:33
@ SYMS_EvalOp_Add
Definition syms_meta_eval.h:24
@ SYMS_EvalOp_LsEq
Definition syms_meta_eval.h:40
@ SYMS_EvalOp_LShift
Definition syms_meta_eval.h:29
@ SYMS_EvalOp_ConstU16
Definition syms_meta_eval.h:19
@ SYMS_EvalTypeGroup_U
Definition syms_meta_eval.h:64
@ SYMS_EvalTypeGroup_S
Definition syms_meta_eval.h:65
Definition syms_eval.h:32