summaryrefslogtreecommitdiffhomepage
path: root/src/nxt_clang.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/nxt_clang.h')
-rw-r--r--src/nxt_clang.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/nxt_clang.h b/src/nxt_clang.h
index 60d12fb2..0622aad3 100644
--- a/src/nxt_clang.h
+++ b/src/nxt_clang.h
@@ -132,6 +132,27 @@ nxt_prefetch(a)
#endif
+#if (NXT_HAVE_BUILTIN_POPCOUNT)
+
+#define nxt_popcount __builtin_popcount
+
+#else
+
+nxt_inline int
+nxt_popcount(unsigned int x)
+{
+ int count;
+
+ for (count = 0; x != 0; x >>= 1) {
+ count += (x & 1);
+ }
+
+ return count;
+}
+
+#endif
+
+
#ifndef NXT_ALIGNMENT
#if (NXT_SOLARIS)