From 0a61d4bf2b2d6e8c8d0c92410f6dcfd2b6046f86 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sat, 10 Jul 2021 19:57:54 +0100 Subject: Use `next_pow2_isize` --- src/common.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/common.cpp') diff --git a/src/common.cpp b/src/common.cpp index 44e0158b3..2591ca068 100644 --- a/src/common.cpp +++ b/src/common.cpp @@ -37,6 +37,7 @@ gb_inline void zero_size(void *ptr, isize len) { i32 next_pow2(i32 n); i64 next_pow2(i64 n); +isize next_pow2_isize(isize n); template @@ -680,6 +681,24 @@ i64 next_pow2(i64 n) { n++; return n; } +isize next_pow2_isize(isize n) { + if (n <= 0) { + return 0; + } + n--; + n |= n >> 1; + n |= n >> 2; + n |= n >> 4; + n |= n >> 8; + n |= n >> 16; + if (gb_size_of(isize) == 8) { + n |= n >> 32; + } + n++; + return n; +} + + i32 bit_set_count(u32 x) { x -= ((x >> 1) & 0x55555555); -- cgit v1.2.3