aboutsummaryrefslogtreecommitdiff
path: root/core/mem/tlsf
diff options
context:
space:
mode:
authorJeroen van Rijn <Kelimion@users.noreply.github.com>2024-06-06 14:59:19 +0200
committerJeroen van Rijn <Kelimion@users.noreply.github.com>2024-06-06 14:59:19 +0200
commit28ea9425fdd1dca0179873a3fe2c2d64df2e3299 (patch)
tree1491c9de7d2c62879b2ad3e6cd4ed878ee3639be /core/mem/tlsf
parent72f6b5479dd77a69be78faac2afaee7c3a1c2a6d (diff)
Add `core:mem` tests.
Diffstat (limited to 'core/mem/tlsf')
-rw-r--r--core/mem/tlsf/tlsf_internal.odin14
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)