X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fbitboard.cpp;h=dd5b57995056a356b0b2235253596e6e8bd7325b;hp=994279cce2504e307542b6cedb3e26231744b1f0;hb=09acdac56bd419a68126e8a0ac6dc868d3d11ec5;hpb=e4a0482e43a5af1e4ef3f60b5fb0326c6e786527 diff --git a/src/bitboard.cpp b/src/bitboard.cpp index 994279cc..dd5b5799 100644 --- a/src/bitboard.cpp +++ b/src/bitboard.cpp @@ -72,6 +72,16 @@ namespace { void init_magics(Bitboard table[], Bitboard* attacks[], Bitboard magics[], Bitboard masks[], unsigned shifts[], Square deltas[], Fn index); + + FORCE_INLINE unsigned bsf_index(Bitboard b) { + + if (Is64Bit) + return ((b & -b) * DeBruijn_64) >> 58; + + // Use Matt Taylor's folding trick for 32 bit systems + b ^= (b - 1); + return ((unsigned(b) ^ unsigned(b >> 32)) * DeBruijn_32) >> 26; + } } /// lsb()/msb() finds the least/most significant bit in a nonzero bitboard. @@ -79,16 +89,6 @@ namespace { #if !defined(USE_BSFQ) -FORCE_INLINE unsigned bsf_index(Bitboard b) { - - if (Is64Bit) - return ((b & -b) * DeBruijn_64) >> 58; - - // Use Matt Taylor's folding trick for 32 bit systems - b ^= (b - 1); - return ((unsigned(b) ^ unsigned(b >> 32)) * DeBruijn_32) >> 26; -} - Square lsb(Bitboard b) { return BSFTable[bsf_index(b)]; } Square pop_lsb(Bitboard* b) {