clean up / debugging / bugfixes in new converter

This commit is contained in:
Ryan Fleury
2024-02-17 08:41:27 -08:00
parent e9d2cb82b2
commit 4f9e3bb4f5
3 changed files with 14 additions and 12 deletions
+11 -6
View File
@@ -736,11 +736,11 @@ rdim_scope_chunk_list_concat_in_place(RDIM_ScopeChunkList *dst, RDIM_ScopeChunkL
{
dst->last->next = to_push->first;
dst->last = to_push->last;
dst->chunk_count += to_push->chunk_count;
dst->total_count += to_push->total_count;
dst->chunk_count += to_push->chunk_count;
dst->total_count += to_push->total_count;
dst->scope_voff_count += to_push->scope_voff_count;
dst->local_count += to_push->local_count;
dst->location_count += to_push->location_count;
dst->local_count += to_push->local_count;
dst->location_count += to_push->location_count;
}
else if(dst->first == 0)
{
@@ -1405,6 +1405,11 @@ rdim_bake(RDIM_Arena *arena, RDIM_BakeParams *params)
name_maps[k].slots_count = 65536;
name_maps[k].slots = rdim_push_array(arena, RDIM_BakeNameMapNode *, name_maps[k].slots_count);
}
RDIM_BakePathNode *nil_path = rdim_bake_path_node_from_string(arena, &path_tree, rdim_str8_lit("<nil>"));
RDIM_BakeSrcNode *nil_src = rdim_bake_src_node_from_path_node(arena, &path_tree, nil_path);
(void)nil_src;
rdim_bake_string(arena, &strings, rdim_str8_lit(""));
rdim_bake_idx_run(arena, &idx_runs, 0, 0);
}
//////////////////////////////
@@ -2066,7 +2071,7 @@ rdim_bake(RDIM_Arena *arena, RDIM_BakeParams *params)
RDIM_ProfScope("build all procedures")
{
RDI_U32 dst_idx = 0;
for(RDIM_SymbolChunkNode *n = params->global_variables.first; n != 0; n = n->next)
for(RDIM_SymbolChunkNode *n = params->procedures.first; n != 0; n = n->next)
{
for(RDI_U64 chunk_idx = 0; chunk_idx < n->count; chunk_idx += 1, dst_idx += 1)
{
@@ -2343,7 +2348,7 @@ rdim_bake(RDIM_Arena *arena, RDIM_BakeParams *params)
{
RDIM_Scope *src_scope = &chunk_n->v[chunk_idx];
RDI_U32 scope_idx = (RDI_U32)rdim_idx_from_scope(src_scope); // TODO(rjf): @u64_to_u32
for(RDIM_Rng1U64Node *n = 0; n != 0; n = n->next)
for(RDIM_Rng1U64Node *n = src_scope->voff_ranges.first; n != 0; n = n->next)
{
key_ptr->key = n->v.min;
key_ptr->val = marker_ptr;
-1
View File
@@ -675,7 +675,6 @@ typedef struct RDIM_Symbol RDIM_Symbol;
struct RDIM_Symbol
{
struct RDIM_SymbolChunkNode *chunk;
RDIM_SymbolKind kind;
RDI_S32 is_extern;
RDIM_String8 name;
RDIM_String8 link_name;
+3 -5
View File
@@ -2377,7 +2377,7 @@ p2r_convert(Arena *arena, P2R_ConvertIn *in)
U64 voff_first = section->voff + block32->off;
U64 voff_last = voff_first + block32->len;
RDIM_Rng1U64 voff_range = {voff_first, voff_last};
rdim_rng1u64_list_push(arena, &scope->voff_ranges, voff_range);
rdim_scope_push_voff_range(arena, &sym_scopes, scope, voff_range);
}
}
@@ -2437,7 +2437,6 @@ p2r_convert(Arena *arena, P2R_ConvertIn *in)
// rjf: build symbol
RDIM_Symbol *symbol = rdim_symbol_chunk_list_push(arena, &sym_global_variables, sym_global_variables_chunk_cap);
symbol->kind = RDIM_SymbolKind_GlobalVariable;
symbol->is_extern = (kind == CV_SymKind_GDATA32);
symbol->name = name;
symbol->type = type;
@@ -2488,7 +2487,7 @@ p2r_convert(Arena *arena, P2R_ConvertIn *in)
U64 voff_first = section->voff + proc32->off;
U64 voff_last = voff_first + proc32->len;
RDIM_Rng1U64 voff_range = {voff_first, voff_last};
rdim_rng1u64_list_push(arena, &procedure_root_scope->voff_ranges, voff_range);
rdim_scope_push_voff_range(arena, &sym_scopes, procedure_root_scope, voff_range);
}
}
@@ -2512,13 +2511,13 @@ p2r_convert(Arena *arena, P2R_ConvertIn *in)
// rjf: build procedure symbol
RDIM_Symbol *procedure_symbol = rdim_symbol_chunk_list_push(arena, &sym_procedures, sym_procedures_chunk_cap);
procedure_symbol->kind = RDIM_SymbolKind_Procedure;
procedure_symbol->is_extern = (kind == CV_SymKind_GPROC32);
procedure_symbol->name = name;
procedure_symbol->link_name = link_name;
procedure_symbol->type = type;
procedure_symbol->container_symbol = container_symbol;
procedure_symbol->container_type = container_type;
procedure_symbol->root_scope = procedure_root_scope;
// rjf: fill root scope's symbol
procedure_root_scope->symbol = procedure_symbol;
@@ -2649,7 +2648,6 @@ p2r_convert(Arena *arena, P2R_ConvertIn *in)
// rjf: build symbol
RDIM_Symbol *tvar = rdim_symbol_chunk_list_push(arena, &sym_thread_variables, sym_thread_variables_chunk_cap);
tvar->kind = RDIM_SymbolKind_ThreadVariable;
tvar->name = name;
tvar->type = type;
tvar->is_extern = (kind == CV_SymKind_GTHREAD32);