diff options
Diffstat (limited to 'vespamalloc/src/vespamalloc/malloc/common.h')
-rw-r--r-- | vespamalloc/src/vespamalloc/malloc/common.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/vespamalloc/src/vespamalloc/malloc/common.h b/vespamalloc/src/vespamalloc/malloc/common.h index 5041b545b4d..96dd1869a43 100644 --- a/vespamalloc/src/vespamalloc/malloc/common.h +++ b/vespamalloc/src/vespamalloc/malloc/common.h @@ -57,7 +57,9 @@ typedef int SizeClassT; inline int msbIdx(uint64_t v) { - return v ? 63 - __builtin_clzl(v) : 0; + int64_t result; + __asm __volatile("bsrq %0,%0" : "=r" (result) : "0" (v)); + return result; } template <size_t MinClassSizeC> |