moved unsigned range list to base math

This commit is contained in:
Nikita Smith
2024-12-06 11:38:38 -08:00
parent d73e53a5b5
commit 29de0c5a9e
9 changed files with 60 additions and 55 deletions
-1
View File
@@ -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"
-1
View File
@@ -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"
-19
View File
@@ -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;
}
-23
View File
@@ -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);
+4 -4
View File
@@ -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);
}
}
}
+5 -5
View File
@@ -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;
+2 -2
View File
@@ -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);