From 0b1c1de8a82086a0fb0a94e65285067609775efe Mon Sep 17 00:00:00 2001 From: cryptozoidberg Date: Tue, 16 Jul 2019 21:14:21 +0200 Subject: [PATCH] added std analog of __builtin_popcount poor performance, but good compability --- contrib/ethereum/libethash/bit_manipulation.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contrib/ethereum/libethash/bit_manipulation.h b/contrib/ethereum/libethash/bit_manipulation.h index 3fa22948..5c7baa79 100644 --- a/contrib/ethereum/libethash/bit_manipulation.h +++ b/contrib/ethereum/libethash/bit_manipulation.h @@ -9,6 +9,7 @@ #include "support/attributes.h" #include +#include #ifdef __cplusplus extern "C" { @@ -39,7 +40,7 @@ static inline uint32_t clz32(uint32_t x) static inline uint32_t popcount32(uint32_t x) { - return (uint32_t)__builtin_popcount(x); + return std::bitset<32>(x).count(); } static inline uint32_t mul_hi32(uint32_t x, uint32_t y)