3#if !defined(SYMS_DWARF_EXPR_C)
4#define SYMS_DWARF_EXPR_C
77 SYMS_U64 x = text_section_base + offset;
599 SYMS_U64 max_step_count = config->max_step_count;
609 void *base = call->
ptr;
692 if (config->text_section_base != 0){
693 addr += *config->text_section_base;
726 if (config->frame_base != 0){
727 SYMS_U64 x = *config->frame_base + offset;
897 if (config->object_address != 0){
898 SYMS_U64 x = *config->object_address;
914 if (config->tls_address != 0){
915 SYMS_U64 x = *config->tls_address + s;
927 if (config->cfa != 0){
1056 if (y > 0 && (z & (1ull << 63))){
1057 x |= ~((1 << (64 - y)) - 1);
1143 if (config->call.func != 0){
1158 if (config->call.func != 0){
1285 piece->bit_size = bit_size;
1286 piece->bit_off = bit_off;
1287 piece->is_bit_loc = is_bit_loc;
1412 for (;node != 0 &&
counter > 0;
1414 if (
counter == 0 && node != 0){
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition syms_base.h:402
Definition syms_dwarf_expr.h:119
struct SYMS_DwExprAnalysisTask * next
Definition syms_dwarf_expr.h:120
Definition syms_dwarf_expr.h:115
SYMS_DwExprFlags flags
Definition syms_dwarf_expr.h:116
Definition syms_dwarf_expr.h:237
SYMS_DwExprCall * stack
Definition syms_dwarf_expr.h:238
SYMS_DwExprCall * free_calls
Definition syms_dwarf_expr.h:239
SYMS_U64 depth
Definition syms_dwarf_expr.h:240
Definition syms_dwarf_expr.h:230
SYMS_U64 size
Definition syms_dwarf_expr.h:233
void * ptr
Definition syms_dwarf_expr.h:232
SYMS_U64 cursor
Definition syms_dwarf_expr.h:234
Definition syms_dwarf_expr.h:78
Definition syms_dwarf_expr.h:83
Definition syms_dwarf_expr.h:219
struct SYMS_DwExprStackNode * next
Definition syms_dwarf_expr.h:220
SYMS_U64 val
Definition syms_dwarf_expr.h:221
Definition syms_dwarf_expr.h:224
SYMS_U64 count
Definition syms_dwarf_expr.h:227
SYMS_DwExprStackNode * free_nodes
Definition syms_dwarf_expr.h:226
SYMS_DwExprStackNode * stack
Definition syms_dwarf_expr.h:225
Definition syms_dwarf_expr.h:186
SYMS_DwPiece * last_piece
Definition syms_dwarf_expr.h:211
SYMS_DwSimpleLoc non_piece_loc
Definition syms_dwarf_expr.h:214
SYMS_DwPiece * first_piece
Definition syms_dwarf_expr.h:210
Definition syms_dwarf_expr.h:173
Definition syms_dwarf_expr.h:15
SYMS_U64 r[17]
Definition syms_dwarf_expr.h:36
Definition syms_dwarf_expr.h:159
SYMS_DwSimpleLocKind kind
Definition syms_dwarf_expr.h:160
SYMS_U64 reg_idx
Definition syms_dwarf_expr.h:163
SYMS_U64 addr
Definition syms_dwarf_expr.h:162
SYMS_DwLocFailKind fail_kind
Definition syms_dwarf_expr.h:167
SYMS_String8 val_long
Definition syms_dwarf_expr.h:165
Definition syms_base.h:410
Definition syms_base.h:296
SYMS_U8 * str
Definition syms_base.h:297
SYMS_U64 size
Definition syms_base.h:298
Definition syms_base.h:264
SYMS_U64 max
Definition syms_base.h:266
SYMS_U64 min
Definition syms_base.h:265
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_B32 syms_memory_view_read(SYMS_MemoryView *memview, SYMS_U64 addr, SYMS_U64 size, void *ptr)
Definition syms_base.c:849
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_String8 syms_str8(SYMS_U8 *str, SYMS_U64 size)
Definition syms_base.c:169
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_StackPush(f, n)
Definition syms_base.h:227
#define syms_based_range_read_struct(b, r, o, p)
Definition syms_base.h:593
#define syms_push_array(a, T, c)
Definition syms_base.h:561
#define syms_memory_view_read_struct(s, a, p)
Definition syms_base.h:602
#define syms_memzero_struct(s)
Definition syms_base.h:161
#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_S32 SYMS_B32
Definition syms_base.h:99
#define SYMS_StackPop(f)
Definition syms_base.h:228
#define syms_push_array_zero(a, T, c)
Definition syms_base.h:564
SYMS_S8 SYMS_B8
Definition syms_base.h:97
#define SYMS_U64_MAX
Definition syms_base.h:176
#define SYMS_QueuePush(f, l, n)
Definition syms_base.h:220
#define syms_release_scratch
Definition syms_base.h:567
uint32_t SYMS_U32
Definition syms_crt_overrides.h:38
uint64_t SYMS_U64
Definition syms_crt_overrides.h:39
uint16_t SYMS_U16
Definition syms_crt_overrides.h:37
int64_t SYMS_S64
Definition syms_crt_overrides.h:35
#define SYMS_S64
Definition syms_crt_overrides.h:50
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_API void syms_dw_expr__call_pop(SYMS_DwExprCallStack *stack)
Definition syms_dwarf_expr.c:1450
SYMS_API SYMS_U64 syms_dw_expr__stack_pick(SYMS_DwExprStack *stack, SYMS_U64 idx)
Definition syms_dwarf_expr.c:1407
SYMS_API SYMS_B32 syms_dw_expr__stack_is_empty(SYMS_DwExprStack *stack)
Definition syms_dwarf_expr.c:1422
SYMS_API SYMS_DwExprAnalysis syms_dw_expr__analyze_details(void *in_base, SYMS_U64Range in_range, SYMS_DwExprMachineCallConfig *call_config)
Definition syms_dwarf_expr.c:192
SYMS_API SYMS_U64 syms_dw_expr__stack_pop(SYMS_DwExprStack *stack)
Definition syms_dwarf_expr.c:1395
SYMS_API SYMS_DwExprCall * syms_dw_expr__call_top(SYMS_DwExprCallStack *stack)
Definition syms_dwarf_expr.c:1430
SYMS_API SYMS_DwLocation syms_dw_expr__eval(SYMS_Arena *arena_optional, void *expr_base, SYMS_U64Range expr_range, SYMS_DwExprMachineConfig *config)
Definition syms_dwarf_expr.c:578
SYMS_API SYMS_DwSimpleLoc syms_dw_expr__analyze_fast(void *base, SYMS_U64Range range, SYMS_U64 text_section_base)
Definition syms_dwarf_expr.c:17
SYMS_API void syms_dw_expr__stack_push(SYMS_Arena *arena, SYMS_DwExprStack *stack, SYMS_U64 x)
Definition syms_dwarf_expr.c:1381
SYMS_API void syms_dw_expr__call_push(SYMS_Arena *arena, SYMS_DwExprCallStack *stack, void *ptr, SYMS_U64 size)
Definition syms_dwarf_expr.c:1436
SYMS_API SYMS_DwExprStack syms_dw_expr__stack_make(SYMS_Arena *arena)
Definition syms_dwarf_expr.c:1375
SYMS_API SYMS_DwExprAnalysisTask * syms_dw_expr__analysis_task_from_p(SYMS_DwExprAnalysisTask *first, SYMS_U64 p)
Definition syms_dwarf_expr.c:1461
@ SYMS_DwSimpleLocKind_Empty
Definition syms_dwarf_expr.h:132
@ SYMS_DwSimpleLocKind_Register
Definition syms_dwarf_expr.h:129
@ SYMS_DwSimpleLocKind_Address
Definition syms_dwarf_expr.h:128
@ SYMS_DwSimpleLocKind_ValueLong
Definition syms_dwarf_expr.h:131
@ SYMS_DwSimpleLocKind_Value
Definition syms_dwarf_expr.h:130
@ SYMS_DwSimpleLocKind_Fail
Definition syms_dwarf_expr.h:133
@ SYMS_DwExprFlag_NonLinearFlow
Definition syms_dwarf_expr.h:112
@ SYMS_DwExprFlag_NotSupported
Definition syms_dwarf_expr.h:110
@ SYMS_DwExprFlag_UsesTLSAddress
Definition syms_dwarf_expr.h:105
@ SYMS_DwExprFlag_UsesMemory
Definition syms_dwarf_expr.h:101
@ SYMS_DwExprFlag_UsesCallResolution
Definition syms_dwarf_expr.h:107
@ SYMS_DwExprFlag_UsesComposite
Definition syms_dwarf_expr.h:108
@ SYMS_DwExprFlag_UsesRegisters
Definition syms_dwarf_expr.h:102
@ SYMS_DwExprFlag_UsesCFA
Definition syms_dwarf_expr.h:106
@ SYMS_DwExprFlag_UsesObjectAddress
Definition syms_dwarf_expr.h:104
@ SYMS_DwExprFlag_BadData
Definition syms_dwarf_expr.h:111
@ SYMS_DwExprFlag_UsesTextBase
Definition syms_dwarf_expr.h:100
@ SYMS_DwExprFlag_UsesFrameBase
Definition syms_dwarf_expr.h:103
@ SYMS_DwLocFailKind_TimeOut
Definition syms_dwarf_expr.h:146
@ SYMS_DwLocFailKind_MissingObjectAddress
Definition syms_dwarf_expr.h:152
@ SYMS_DwLocFailKind_NotSupported
Definition syms_dwarf_expr.h:145
@ SYMS_DwLocFailKind_MissingMemory
Definition syms_dwarf_expr.h:149
@ SYMS_DwLocFailKind_MissingFrameBase
Definition syms_dwarf_expr.h:151
@ SYMS_DwLocFailKind_MissingCFA
Definition syms_dwarf_expr.h:154
@ SYMS_DwLocFailKind_MissingArenaForComposite
Definition syms_dwarf_expr.h:156
@ SYMS_DwLocFailKind_MissingTextBase
Definition syms_dwarf_expr.h:148
@ SYMS_DwLocFailKind_MissingRegisters
Definition syms_dwarf_expr.h:150
@ SYMS_DwLocFailKind_MissingCallResolution
Definition syms_dwarf_expr.h:155
@ SYMS_DwLocFailKind_BadData
Definition syms_dwarf_expr.h:144
@ SYMS_DwLocFailKind_TooComplicated
Definition syms_dwarf_expr.h:147
@ SYMS_DwLocFailKind_MissingTLSAddress
Definition syms_dwarf_expr.h:153