summaryrefslogtreecommitdiffstats
path: root/vespamalloc/src/vespamalloc/malloc/common.h
diff options
context:
space:
mode:
Diffstat (limited to 'vespamalloc/src/vespamalloc/malloc/common.h')
-rw-r--r--vespamalloc/src/vespamalloc/malloc/common.h4
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>