aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/mem/tlsf/tlsf_internal.odin14
-rw-r--r--tests/core/Makefile4
-rw-r--r--tests/core/build.bat5
3 files changed, 15 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)
diff --git a/tests/core/Makefile b/tests/core/Makefile
index 85f3783b4..48683250f 100644
--- a/tests/core/Makefile
+++ b/tests/core/Makefile
@@ -19,6 +19,7 @@ all_bsd: download_test_assets \
linalg_glsl_math_test \
match_test \
math_test \
+ mem_test \
noise_test \
odin_test \
os_exit_test \
@@ -80,6 +81,9 @@ linalg_glsl_math_test:
noise_test:
$(ODIN) test math/noise $(COMMON) -out:test_noise
+mem_test:
+ $(ODIN) test mem $(COMMON) -out:test_core_mem
+
net_test:
$(ODIN) test net $(COMMON) -out:test_core_net
diff --git a/tests/core/build.bat b/tests/core/build.bat
index 67ac10f86..aa68975f8 100644
--- a/tests/core/build.bat
+++ b/tests/core/build.bat
@@ -79,6 +79,11 @@ echo ---
%PATH_TO_ODIN% test math/noise %COMMON% -out:test_noise.exe || exit /b
echo ---
+echo Running core:mem tests
+echo ---
+%PATH_TO_ODIN% test mem %COMMON% -out:test_core_mem.exe || exit /b
+
+echo ---
echo Running core:net
echo ---
%PATH_TO_ODIN% test net %COMMON% -out:test_core_net.exe || exit /b