diff options
| author | Jeroen van Rijn <Kelimion@users.noreply.github.com> | 2024-06-06 14:59:19 +0200 |
|---|---|---|
| committer | Jeroen van Rijn <Kelimion@users.noreply.github.com> | 2024-06-06 14:59:19 +0200 |
| commit | 28ea9425fdd1dca0179873a3fe2c2d64df2e3299 (patch) | |
| tree | 1491c9de7d2c62879b2ad3e6cd4ed878ee3639be /core/mem | |
| parent | 72f6b5479dd77a69be78faac2afaee7c3a1c2a6d (diff) | |
Add `core:mem` tests.
Diffstat (limited to 'core/mem')
| -rw-r--r-- | core/mem/tlsf/tlsf_internal.odin | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/core/mem/tlsf/tlsf_internal.odin b/core/mem/tlsf/tlsf_internal.odin index 9c8f5c6d8..6f33e516c 100644 --- a/core/mem/tlsf/tlsf_internal.odin +++ b/core/mem/tlsf/tlsf_internal.odin @@ -124,16 +124,14 @@ ffs :: proc "contextless" (word: u32) -> (bit: i32) { @(require_results) fls :: proc "contextless" (word: u32) -> (bit: i32) { - return i32(31 - intrinsics.count_leading_zeros(word)) + N :: (size_of(u32) * 8) - 1 + return i32(N - intrinsics.count_leading_zeros(word)) } -when size_of(uintptr) == 8 { - @(require_results) - fls_uint :: proc "contextless" (size: uint) -> (bit: i32) { - return i32(63 - intrinsics.count_leading_zeros(size)) - } -} else { - fls_uint :: fls_u32 +@(require_results) +fls_uint :: proc "contextless" (size: uint) -> (bit: i32) { + N :: (size_of(uint) * 8) - 1 + return i32(N - intrinsics.count_leading_zeros(size)) } @(require_results) |