mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-07-19 23:16:48 +00:00
moved unsigned range list to base math
This commit is contained in:
@@ -4,7 +4,6 @@
|
||||
#include "base_core.c"
|
||||
#include "base_strings.c"
|
||||
#include "base_arena.c"
|
||||
#include "base_math.c"
|
||||
#include "base_arrays.c"
|
||||
#include "base_bit_array.c"
|
||||
#include "base_crc32.c"
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
#include "base_core.h"
|
||||
#include "base_strings.h"
|
||||
#include "base_arena.h"
|
||||
#include "base_math.h"
|
||||
#include "base_arrays.h"
|
||||
#include "base_blake3.h"
|
||||
#include "base_bit_array.h"
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
internal void
|
||||
rng_1u64_list_push_node(Rng1U64List *list, Rng1U64Node *node)
|
||||
{
|
||||
SLLQueuePush(list->first, list->last, node);
|
||||
++list->count;
|
||||
}
|
||||
|
||||
internal Rng1U64Node *
|
||||
rng_1u64_list_push(Arena *arena, Rng1U64List *list, Rng1U64 range)
|
||||
{
|
||||
Rng1U64Node *node = push_array(arena, Rng1U64Node, 1);
|
||||
node->v = range;
|
||||
rng_1u64_list_push_node(list, node);
|
||||
return node;
|
||||
}
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
#pragma once
|
||||
|
||||
typedef struct Rng1U64Node
|
||||
{
|
||||
struct Rng1U64Node *next;
|
||||
Rng1U64 v;
|
||||
} Rng1U64Node;
|
||||
|
||||
typedef struct Rng1U64List
|
||||
{
|
||||
U64 count;
|
||||
Rng1U64Node *first;
|
||||
Rng1U64Node *last;
|
||||
} Rng1U64List;
|
||||
|
||||
////////////////////////////////
|
||||
|
||||
internal void rng_1u64_list_push_node(Rng1U64List *list, Rng1U64Node *node);
|
||||
internal Rng1U64Node * rng_1u64_list_push(Arena *arena, Rng1U64List *list, Rng1U64 range);
|
||||
|
||||
@@ -2127,7 +2127,7 @@ cv_c13_parse_inline_binary_annots(Arena *arena,
|
||||
code_ranges.last->v.max = parent_voff + code_offset_hi;
|
||||
} else {
|
||||
// append range
|
||||
rng_1u64_list_push(arena, &code_ranges, rng_1u64(parent_voff + code_offset_lo, parent_voff + code_offset_hi));
|
||||
rng1u64_list_push(arena, &code_ranges, rng_1u64(parent_voff + code_offset_lo, parent_voff + code_offset_hi));
|
||||
|
||||
// update last code range in file
|
||||
if (file_last) {
|
||||
@@ -2226,13 +2226,13 @@ cv_make_defined_range_list_from_gaps(Arena *arena, Rng1U64 defrange, CV_LvarAddr
|
||||
|
||||
if (gap_count == 0) {
|
||||
// no gaps, push whole range
|
||||
rng_1u64_list_push(arena, &result, defrange);
|
||||
rng1u64_list_push(arena, &result, defrange);
|
||||
} else {
|
||||
U64 cursor = defrange.min;
|
||||
for (U64 gap_idx = 0; gap_idx < gap_count; ++gap_idx) {
|
||||
// make range
|
||||
Rng1U64 range = rng_1u64(cursor, cursor + gaps[gap_idx].off);
|
||||
rng_1u64_list_push(arena, &result, range);
|
||||
rng1u64_list_push(arena, &result, range);
|
||||
|
||||
// advance
|
||||
cursor = defrange.min + gaps[gap_idx].off + gaps[gap_idx].len;
|
||||
@@ -2245,7 +2245,7 @@ cv_make_defined_range_list_from_gaps(Arena *arena, Rng1U64 defrange, CV_LvarAddr
|
||||
U64 last_range_byte_size = dim_1u64(defrange) - (last_gap.off + last_gap.len);
|
||||
if (last_range_byte_size) {
|
||||
Rng1U64 last_range = rng_1u64(defrange.min + last_gap.off + last_gap.len, defrange.max);
|
||||
rng_1u64_list_push(arena, &result, last_range);
|
||||
rng1u64_list_push(arena, &result, last_range);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4704,7 +4704,7 @@ THREAD_POOL_TASK_FUNC(lnk_convert_symbols_to_rdi_task)
|
||||
scope->container_proc = scope_stack->proc;
|
||||
scope->parent = scope_stack->scope;
|
||||
SLLQueuePush_N(scope_stack->scope->first_child, scope_stack->scope->last_child, scope, next_sibling);
|
||||
rng_1u64_list_push(arena, &scope->ranges, virt_range);
|
||||
rng1u64_list_push(arena, &scope->ranges, virt_range);
|
||||
|
||||
#if 0
|
||||
if (scope->parent) {
|
||||
@@ -4753,7 +4753,7 @@ THREAD_POOL_TASK_FUNC(lnk_convert_symbols_to_rdi_task)
|
||||
}
|
||||
|
||||
Rng1U64List ranges = {0};
|
||||
rng_1u64_list_push(arena, &ranges, rng_1u64(data_voff, data_voff + data_size));
|
||||
rng1u64_list_push(arena, &ranges, rng_1u64(data_voff, data_voff + data_size));
|
||||
|
||||
RDIB_Location location = rdib_make_location_addr_byte_stream(ranges, bytecode);
|
||||
rdib_location_list_push(arena, &locations, location);
|
||||
@@ -4787,7 +4787,7 @@ THREAD_POOL_TASK_FUNC(lnk_convert_symbols_to_rdi_task)
|
||||
rdib_bytecode_push_op(arena, &bytecode, RDI_EvalOp_TLSOff, thread32->tls_off);
|
||||
|
||||
Rng1U64List ranges = {0};
|
||||
rng_1u64_list_push(arena, &ranges, rng_1u64(0, max_U64));
|
||||
rng1u64_list_push(arena, &ranges, rng_1u64(0, max_U64));
|
||||
|
||||
RDIB_Location location = rdib_make_location_addr_byte_stream(ranges, bytecode);
|
||||
rdib_location_list_push(arena, &locations, location);
|
||||
@@ -4868,7 +4868,7 @@ THREAD_POOL_TASK_FUNC(lnk_convert_symbols_to_rdi_task)
|
||||
if (scope_stack->scope != 0) {
|
||||
SLLQueuePush_N(scope_stack->scope->first_child, scope_stack->scope->last_child, root_scope, next_sibling);
|
||||
}
|
||||
rng_1u64_list_push(arena, &root_scope->ranges, virt_range);
|
||||
rng1u64_list_push(arena, &root_scope->ranges, virt_range);
|
||||
|
||||
// fill out procedure
|
||||
proc->link_flags = symbol.kind == CV_SymKind_GPROC32 ? RDI_LinkFlag_External : 0;
|
||||
@@ -4951,7 +4951,7 @@ THREAD_POOL_TASK_FUNC(lnk_convert_symbols_to_rdi_task)
|
||||
if (scope_stack->scope != 0) {
|
||||
SLLQueuePush_N(scope_stack->scope->first_child, scope_stack->scope->last_child, root_scope, next_sibling);
|
||||
}
|
||||
rng_1u64_list_push(arena, &root_scope->ranges, virt_range);
|
||||
rng1u64_list_push(arena, &root_scope->ranges, virt_range);
|
||||
|
||||
// fill out procedure
|
||||
thunk->name = name;
|
||||
|
||||
@@ -4985,11 +4985,11 @@ rdib_init_input(Arena *arena)
|
||||
null_unit->line_table = null_line_table;
|
||||
|
||||
// Scope
|
||||
rng_1u64_list_push(arena, &null_scope->ranges, rng_1u64(0,max_U32));
|
||||
rng1u64_list_push(arena, &null_scope->ranges, rng_1u64(0,max_U32));
|
||||
|
||||
// Location
|
||||
RDIB_Location null_loc = {0};
|
||||
rng_1u64_list_push(arena, &null_loc.ranges, rng_1u64(0,0));
|
||||
rng1u64_list_push(arena, &null_loc.ranges, rng_1u64(0,0));
|
||||
RDIB_LocationList null_loc_list = {0};
|
||||
rdib_location_list_push(arena, &null_loc_list, null_loc);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user