Fix compilation with TinyCC
This commit is contained in:
parent
135c630e92
commit
3eee1d5376
2 changed files with 31 additions and 2 deletions
|
|
@ -7,7 +7,20 @@ static inline uint32_t bitmask_for_index(uint16_t id) {
|
|||
return (1u << (31 - id));
|
||||
}
|
||||
|
||||
#if defined _WIN32 && !defined __GNUC__
|
||||
#ifdef __TINYC__
|
||||
|
||||
// Algorithm taken from the Hacker's Delight book
|
||||
// See also https://graphics.stanford.edu/~seander/bithacks.html
|
||||
static inline uint32_t count_leading_zeros(uint32_t x) {
|
||||
int count = 0;
|
||||
if (x == 0) return 32;
|
||||
x = x - ((x >> 1) & 0x55555555);
|
||||
x = (x & 0x33333333) + ((x >> 2) & 0x33333333);
|
||||
count = (((x + (x >> 4)) & 0x0f0f0f0f) * 0x01010101) >> 24;
|
||||
return count;
|
||||
}
|
||||
|
||||
#elif defined _WIN32 && !defined __GNUC__
|
||||
|
||||
#include <intrin.h>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue