diff options
| author | gingerBill <bill@gingerbill.org> | 2021-10-31 00:11:38 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2021-10-31 00:11:38 +0100 |
| commit | 8ef6f9dd7bbb1611dd7166c4e14034e53df4a8b6 (patch) | |
| tree | d13e60bb55f8d8167ebd906ee66485a0097c208b /core | |
| parent | 5bc8a491a7768da0019b7b17da637e681f2ace90 (diff) | |
Compile `wasm64`; Add `lb_run_remove_unused_function_pass`
Diffstat (limited to 'core')
| -rw-r--r-- | core/runtime/default_temporary_allocator.odin | 25 | ||||
| -rw-r--r-- | core/runtime/internal.odin | 5 |
2 files changed, 16 insertions, 14 deletions
diff --git a/core/runtime/default_temporary_allocator.odin b/core/runtime/default_temporary_allocator.odin index b3602469d..afe3ee922 100644 --- a/core/runtime/default_temporary_allocator.odin +++ b/core/runtime/default_temporary_allocator.odin @@ -1,23 +1,12 @@ package runtime -@(private) -byte_slice :: #force_inline proc "contextless" (data: rawptr, len: int) -> []byte { - return transmute([]u8)Raw_Slice{data=data, len=max(len, 0)} -} - - DEFAULT_TEMP_ALLOCATOR_BACKING_SIZE: int : #config(DEFAULT_TEMP_ALLOCATOR_BACKING_SIZE, 1<<22) -Default_Temp_Allocator :: struct { - data: []byte, - curr_offset: int, - prev_allocation: rawptr, - backup_allocator: Allocator, - leaked_allocations: [dynamic][]byte, -} - when ODIN_OS == "freestanding" { + Default_Temp_Allocator :: struct { + } + default_temp_allocator_init :: proc(s: ^Default_Temp_Allocator, size: int, backup_allocator := context.allocator) { } @@ -30,6 +19,14 @@ when ODIN_OS == "freestanding" { return nil, nil } } else { + Default_Temp_Allocator :: struct { + data: []byte, + curr_offset: int, + prev_allocation: rawptr, + backup_allocator: Allocator, + leaked_allocations: [dynamic][]byte, + } + default_temp_allocator_init :: proc(s: ^Default_Temp_Allocator, size: int, backup_allocator := context.allocator) { s.data = make_aligned([]byte, size, 2*align_of(rawptr), backup_allocator) s.curr_offset = 0 diff --git a/core/runtime/internal.odin b/core/runtime/internal.odin index 4347f28c0..0a6d07467 100644 --- a/core/runtime/internal.odin +++ b/core/runtime/internal.odin @@ -2,6 +2,11 @@ package runtime import "core:intrinsics" +@(private) +byte_slice :: #force_inline proc "contextless" (data: rawptr, len: int) -> []byte #no_bounds_check { + return ([^]byte)(data)[:max(len, 0)] +} + bswap_16 :: proc "contextless" (x: u16) -> u16 { return x>>8 | x<<8 } |