diff --git a/src/eval/eval_interpret.c b/src/eval/eval_interpret.c index e507c46b..630bd720 100644 --- a/src/eval/eval_interpret.c +++ b/src/eval/eval_interpret.c @@ -75,7 +75,6 @@ e_interpret(String8 bytecode) else switch(op) { case E_IRExtKind_SetSpace: {ctrlbits = RDI_EVAL_CTRLBITS(32, 0, 0);}break; - case E_IRExtKind_DerefSpacePtr:{ctrlbits = RDI_EVAL_CTRLBITS(0, 1, 1);}break; default: { result.code = E_InterpretationCode_BadOp; @@ -125,27 +124,6 @@ e_interpret(String8 bytecode) MemoryCopy(&selected_space, &imm, sizeof(selected_space)); }break; - case E_IRExtKind_DerefSpacePtr: - { - U64 addr = svals[0].u64; - U64 size = sizeof(E_Space) + sizeof(U64); - typedef struct SpacePtrRead SpacePtrRead; - struct SpacePtrRead - { - E_Space space; - U64 off; - }; - SpacePtrRead space_ptr_read = {0}; - B32 good_read = e_space_read(selected_space, &space_ptr_read, r1u64(addr, addr+size)); - if(!good_read) - { - result.code = E_InterpretationCode_BadMemRead; - goto done; - } - MemoryCopyStruct(&selected_space, &space_ptr_read.space); - nval.u64 = space_ptr_read.off; - }break; - case RDI_EvalOp_Stop: { goto done; diff --git a/src/eval/eval_ir.c b/src/eval/eval_ir.c index 4432f44c..1e481db7 100644 --- a/src/eval/eval_ir.c +++ b/src/eval/eval_ir.c @@ -464,16 +464,6 @@ e_oplist_push_set_space(Arena *arena, E_OpList *list, E_Space space) list->encoded_size += 1 + sizeof(space); } -internal void -e_oplist_push_deref_space_ptr(Arena *arena, E_OpList *list) -{ - E_Op *node = push_array_no_zero(arena, E_Op, 1); - node->opcode = E_IRExtKind_DerefSpacePtr; - SLLQueuePush(list->first, list->last, node); - list->op_count += 1; - list->encoded_size += 1; -} - internal void e_oplist_push_string_literal(Arena *arena, E_OpList *list, String8 string) { @@ -602,14 +592,6 @@ e_irtree_set_space(Arena *arena, E_Space space, E_IRNode *c) return root; } -internal E_IRNode * -e_irtree_deref_space_ptr(Arena *arena, E_IRNode *c) -{ - E_IRNode *root = e_push_irnode(arena, E_IRExtKind_DerefSpacePtr); - e_irnode_push_child(root, c); - return root; -} - internal E_IRNode * e_irtree_mem_read_type(Arena *arena, E_IRNode *c, E_TypeKey type_key) { @@ -1484,14 +1466,6 @@ e_irtree_and_type_from_expr__space(Arena *arena, E_Space *current_space, E_Expr }break; } - //- rjf: evaluating a space pointer -> generate a dynamic set-space & resolve to the offset - if(e_type_kind_from_key(result.type_key) == E_TypeKind_SpacePtr) - { - result.root = e_irtree_deref_space_ptr(arena, result.root); - result.type_key = e_type_direct_from_key(result.type_key); - result.mode = E_Mode_Offset; - } - //- rjf: if the expression's space does not match the current, then push a set-space node // before returning E_Space zero_space = zero_struct; @@ -1545,17 +1519,6 @@ e_append_oplist_from_irtree(Arena *arena, E_IRNode *root, E_OpList *out) } }break; - case E_IRExtKind_DerefSpacePtr: - { - for(E_IRNode *child = root->first; - child != &e_irnode_nil; - child = child->next) - { - e_append_oplist_from_irtree(arena, child, out); - } - e_oplist_push_deref_space_ptr(arena, out); - }break; - case RDI_EvalOp_Cond: { // rjf: generate oplists for each child @@ -1697,12 +1660,6 @@ e_bytecode_from_oplist(Arena *arena, E_OpList *oplist) // rjf: advance ptr = next_ptr; }break; - - case E_IRExtKind_DerefSpacePtr: - { - ptr[0] = opcode; - ptr += 1; - }break; } } diff --git a/src/eval/eval_ir.h b/src/eval/eval_ir.h index 67af8a91..dca8931c 100644 --- a/src/eval/eval_ir.h +++ b/src/eval/eval_ir.h @@ -11,7 +11,6 @@ enum { E_IRExtKind_Bytecode = RDI_EvalOp_COUNT, E_IRExtKind_SetSpace, - E_IRExtKind_DerefSpacePtr, E_IRExtKind_COUNT }; @@ -169,7 +168,6 @@ internal void e_oplist_push_uconst(Arena *arena, E_OpList *list, U64 x); internal void e_oplist_push_sconst(Arena *arena, E_OpList *list, S64 x); internal void e_oplist_push_bytecode(Arena *arena, E_OpList *list, String8 bytecode); internal void e_oplist_push_set_space(Arena *arena, E_OpList *list, E_Space space); -internal void e_oplist_push_deref_space_ptr(Arena *arena, E_OpList *list); internal void e_oplist_push_string_literal(Arena *arena, E_OpList *list, String8 string); internal void e_oplist_concat_in_place(E_OpList *dst, E_OpList *to_push); @@ -186,7 +184,6 @@ internal E_IRNode *e_irtree_conditional(Arena *arena, E_IRNode *c, E_IRNode *l, internal E_IRNode *e_irtree_bytecode_no_copy(Arena *arena, String8 bytecode); internal E_IRNode *e_irtree_string_literal(Arena *arena, String8 string); internal E_IRNode *e_irtree_set_space(Arena *arena, E_Space space, E_IRNode *c); -internal E_IRNode *e_irtree_deref_space_ptr(Arena *arena, E_IRNode *c); internal E_IRNode *e_irtree_mem_read_type(Arena *arena, E_IRNode *c, E_TypeKey type_key); internal E_IRNode *e_irtree_convert_lo(Arena *arena, E_IRNode *c, RDI_EvalTypeGroup out, RDI_EvalTypeGroup in); internal E_IRNode *e_irtree_trunc(Arena *arena, E_IRNode *c, E_TypeKey type_key); diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index b6392876..431154f9 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -2846,38 +2846,6 @@ rd_eval_space_read(void *u, E_Space space, void *out, Rng1U64 range) } } }break; - - //- rjf: meta collections - case RD_EvalSpaceKind_MetaCollection: - { - typedef struct SpacePtr SpacePtr; - struct SpacePtr - { - E_Space space; - U64 off; - }; - RD_CfgArray cfgs_array = {0}; - if(space.u64s[0] < rd_state->eval_collection_cfg_names->count) - { - cfgs_array = rd_state->eval_collection_cfgs[space.u64s[0]]; - } - U64 space_ptr_size = sizeof(SpacePtr); - Rng1U64 idx_range = r1u64(range.min/space_ptr_size, range.max/space_ptr_size); - U64 out_off = 0; - U64 out_opl = dim_1u64(range); - for(U64 src_idx = idx_range.min; src_idx < idx_range.max && out_off+space_ptr_size <= out_opl; src_idx += 1) - { - RD_Cfg *cfg = &rd_nil_cfg; - if(src_idx < cfgs_array.count) - { - cfg = cfgs_array.v[src_idx]; - } - SpacePtr space_ptr = {rd_eval_space_from_cfg(cfg), 0}; - MemoryCopy((U8 *)out + out_off, &space_ptr, space_ptr_size); - out_off += sizeof(space_ptr); - } - result = 1; - }break; } scratch_end(scratch); return result; @@ -13197,7 +13165,6 @@ rd_frame(void) for EachElement(idx, rd_collection_name_table) { E_Expr *expr = e_push_expr(scratch.arena, E_ExprKind_LeafOffset, 0); - expr->space = e_space_make(RD_EvalSpaceKind_MetaCollection); expr->mode = E_Mode_Null; expr->type_key = collection_type_keys[idx]; e_string2expr_map_insert(scratch.arena, ctx->macro_map, rd_collection_name_table[idx], expr); @@ -13393,17 +13360,13 @@ rd_frame(void) e_lookup_rule_map_insert_new(scratch.arena, ctx->lookup_rule_map, collection_name, E_LOOKUP_INFO_FUNCTION_NAME(watch_group), E_LOOKUP_FUNCTION_NAME(watch_group)); } - //- rjf: add macros for collections (new @cfg) + //- rjf: add macros for all cfg collections (new @cfg) for EachElement(cfg_name_idx, evallable_cfg_names) { String8 cfg_name = evallable_cfg_names[cfg_name_idx]; String8 collection_name = rd_plural_from_code_name(cfg_name); E_TypeKey collection_type_key = e_type_key_cons(.kind = E_TypeKind_Set, .name = collection_name); E_Expr *expr = e_push_expr(scratch.arena, E_ExprKind_LeafOffset, 0); - E_Space space = e_space_make(RD_EvalSpaceKind_MetaCollection); - space.u64s[0] = cfg_name_idx; - expr->space = space; - expr->mode = E_Mode_Offset; expr->type_key = collection_type_key; e_string2expr_map_insert(scratch.arena, ctx->macro_map, collection_name, expr); e_lookup_rule_map_insert_new(scratch.arena, ctx->lookup_rule_map, collection_name, E_LOOKUP_INFO_FUNCTION_NAME(top_level_cfg), E_LOOKUP_FUNCTION_NAME(top_level_cfg)); diff --git a/src/raddbg/raddbg_core.h b/src/raddbg/raddbg_core.h index dabf65be..e4068719 100644 --- a/src/raddbg/raddbg_core.h +++ b/src/raddbg/raddbg_core.h @@ -97,7 +97,6 @@ enum RD_EvalSpaceKind_MetaCfg, RD_EvalSpaceKind_MetaEntity, RD_EvalSpaceKind_MetaCtrlEntity, - RD_EvalSpaceKind_MetaCollection, }; //////////////////////////////// diff --git a/src/raddbg/raddbg_views.c b/src/raddbg/raddbg_views.c index 5155e92a..0fc63153 100644 --- a/src/raddbg/raddbg_views.c +++ b/src/raddbg/raddbg_views.c @@ -4142,7 +4142,7 @@ RD_VIEW_RULE_UI_FUNCTION_DEF(file_path_map) rd_watch_view_column_alloc(wv, RD_WatchViewColumnKind_Expr, 0.25f); rd_watch_view_column_alloc(wv, RD_WatchViewColumnKind_Value, 0.75f, .dequote_string = 1, .is_non_code = 0); } - rd_watch_view_build(wv, str8_lit("collection:file_path_maps"), str8_lit("only: source_path destination_path str"), 1, 10, rect); + rd_watch_view_build(wv, str8_lit("collection:file_path_maps"), str8_zero(), 1, 10, rect); ProfEnd(); } @@ -4159,7 +4159,7 @@ RD_VIEW_RULE_UI_FUNCTION_DEF(auto_view_rules) rd_watch_view_column_alloc(wv, RD_WatchViewColumnKind_Expr, 0.25f); rd_watch_view_column_alloc(wv, RD_WatchViewColumnKind_Value, 0.75f, .dequote_string = 1, .is_non_code = 0); } - rd_watch_view_build(wv, str8_lit("collection:auto_view_rules"), str8_lit("only: type view_rule str"), 1, 10, rect); + rd_watch_view_build(wv, str8_lit("collection:auto_view_rules"), str8_zero(), 1, 10, rect); ProfEnd(); } @@ -4176,7 +4176,7 @@ RD_VIEW_RULE_UI_FUNCTION_DEF(breakpoints) rd_watch_view_column_alloc(wv, RD_WatchViewColumnKind_Expr, 0.25f); rd_watch_view_column_alloc(wv, RD_WatchViewColumnKind_Value, 0.75f, .dequote_string = 1); } - rd_watch_view_build(wv, str8_lit("collection:breakpoints"), str8_lit("only: label condition str hit_count source_location address_location function_location"), 0, 10, rect); + rd_watch_view_build(wv, str8_lit("collection:breakpoints"), str8_zero(), 0, 10, rect); ProfEnd(); } @@ -4193,7 +4193,7 @@ RD_VIEW_RULE_UI_FUNCTION_DEF(watch_pins) rd_watch_view_column_alloc(wv, RD_WatchViewColumnKind_Expr, 0.25f); rd_watch_view_column_alloc(wv, RD_WatchViewColumnKind_Value, 0.75f, .dequote_string = 1); } - rd_watch_view_build(wv, str8_lit("collection:watch_pins"), str8_lit("only: label source_location address_location str"), 0, 10, rect); + rd_watch_view_build(wv, str8_lit("collection:watch_pins"), str8_zero(), 0, 10, rect); ProfEnd(); }