From: lucasart Date: Thu, 3 Jul 2014 10:22:53 +0000 (+0800) Subject: Use compiler intrinsic instead of assembly for popcnt X-Git-Url: http://winboard.nl/cgi-bin?a=commitdiff_plain;h=85b08ce3adafbb1a70cd371cadb1e136e8879ebf;p=fairystockfish.git Use compiler intrinsic instead of assembly for popcnt This time, do not break compatibility with some AMD machines that have SSE3 and popcnt, but do not have SSE4.2. No functional change. --- diff --git a/src/Makefile b/src/Makefile index 187e7b3..1e5a165 100644 --- a/src/Makefile +++ b/src/Makefile @@ -285,7 +285,7 @@ endif ### 3.9 popcnt ifeq ($(popcnt),yes) - CXXFLAGS += -msse3 -DUSE_POPCNT + CXXFLAGS += -msse3 -mpopcnt -DUSE_POPCNT endif ### 3.10 pext diff --git a/src/bitcount.h b/src/bitcount.h index f84c51c..9feed19 100644 --- a/src/bitcount.h +++ b/src/bitcount.h @@ -96,8 +96,7 @@ inline int popcount(Bitboard b) { #else - __asm__("popcnt %1, %0" : "=r" (b) : "r" (b)); - return b; + return __builtin_popcountll(b); #endif }