X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fbitboard.cpp;h=a73c5a2dc7ad970d6c8f16275ead918d2af46ac1;hp=b60f54bd55bef9339d4a5fe750a7156e36d0393c;hb=b1e79fed99d52dcb20d2d6a9c62522226e957963;hpb=5c81602d14539f8259a715477315e28b5de7cb54 diff --git a/src/bitboard.cpp b/src/bitboard.cpp index b60f54bd..a73c5a2d 100644 --- a/src/bitboard.cpp +++ b/src/bitboard.cpp @@ -35,6 +35,7 @@ #include #include "bitboard.h" +#include "bitcount.h" #include "direction.h" @@ -302,7 +303,7 @@ union b_union { struct { uint32_t l; uint32_t h; - }; + } dw; }; // WARNING: Needs -fno-strict-aliasing compiler option @@ -313,15 +314,15 @@ Square pop_1st_bit(Bitboard *bb) { u.b = *bb; - if (u.l) + if (u.dw.l) { - b = u.l; + b = u.dw.l; *((uint32_t*)bb) = b & (b - 1); b ^= (b - 1); } else { - b = u.h; + b = u.dw.h; *((uint32_t*)bb+1) = b & (b - 1); // Little endian only? b = ~(b ^ (b - 1)); } @@ -339,7 +340,7 @@ Square pop_1st_bit(Bitboard *b) { #endif -#else +#else // defined(USE_FOLDED_BITSCAN) static const int BitTable[64] = { 0, 1, 2, 7, 3, 13, 8, 19, 4, 25, 14, 28, 9, 34, 20, 40, 5, 17, 26, 38, 15,