mirror of
https://github.com/microsoft/mimalloc.git
synced 2025-07-06 11:34:38 +03:00
fix 32 bit multiply in generic ctz/clz
This commit is contained in:
parent
f28d5c7029
commit
56a1bd7f9e
2 changed files with 4 additions and 4 deletions
|
@ -289,7 +289,7 @@ static size_t mi_ctz_generic32(uint32_t x) {
|
|||
31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9
|
||||
};
|
||||
if (x==0) return 32;
|
||||
return debruijn[((x & -(int32_t)x) * 0x077CB531UL) >> 27];
|
||||
return debruijn[((x & -(int32_t)x) * (uint32_t)(0x077CB531U)) >> 27];
|
||||
}
|
||||
|
||||
static size_t mi_clz_generic32(uint32_t x) {
|
||||
|
@ -304,7 +304,7 @@ static size_t mi_clz_generic32(uint32_t x) {
|
|||
x |= x >> 4;
|
||||
x |= x >> 8;
|
||||
x |= x >> 16;
|
||||
return debruijn[(uint32_t)(x * 0x07C4ACDDUL) >> 27];
|
||||
return debruijn[(uint32_t)(x * (uint32_t)(0x07C4ACDDU)) >> 27];
|
||||
}
|
||||
|
||||
size_t _mi_clz_generic(size_t x) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue