X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fbitboard.h;h=24ae794b68b0f4183087a882cb94ca1bd64cc29c;hp=fafe9c356ff5e6522b29654c72c2b7caf1c8fec3;hb=099b5e45e6fb84c0c6ac9c867e0902e0195d97a5;hpb=b1768c115cf2bbe7ed6f89dc53a8db85b4442353 diff --git a/src/bitboard.h b/src/bitboard.h index fafe9c35..24ae794b 100644 --- a/src/bitboard.h +++ b/src/bitboard.h @@ -28,12 +28,12 @@ CACHE_LINE_ALIGNMENT extern Bitboard RMasks[64]; extern Bitboard RMagics[64]; extern Bitboard* RAttacks[64]; -extern int RShifts[64]; +extern unsigned RShifts[64]; extern Bitboard BMasks[64]; extern Bitboard BMagics[64]; extern Bitboard* BAttacks[64]; -extern int BShifts[64]; +extern unsigned BShifts[64]; extern Bitboard SquareBB[64]; extern Bitboard FileBB[8]; @@ -134,13 +134,15 @@ FORCE_INLINE unsigned b_index(Square s, Bitboard occ) { #else // if !defined(IS_64BIT) FORCE_INLINE unsigned r_index(Square s, Bitboard occ) { - Bitboard b = occ & RMasks[s]; - return unsigned(int(b) * int(RMagics[s]) ^ int(b >> 32) * int(RMagics[s] >> 32)) >> RShifts[s]; + unsigned lo = unsigned(occ) & unsigned(RMasks[s]); + unsigned hi = unsigned(occ >> 32) & unsigned(RMasks[s] >> 32); + return (lo * unsigned(RMagics[s]) ^ hi * unsigned(RMagics[s] >> 32)) >> RShifts[s]; } FORCE_INLINE unsigned b_index(Square s, Bitboard occ) { - Bitboard b = occ & BMasks[s]; - return unsigned(int(b) * int(BMagics[s]) ^ int(b >> 32) * int(BMagics[s] >> 32)) >> BShifts[s]; + unsigned lo = unsigned(occ) & unsigned(BMasks[s]); + unsigned hi = unsigned(occ >> 32) & unsigned(BMasks[s] >> 32); + return (lo * unsigned(BMagics[s]) ^ hi * unsigned(BMagics[s] >> 32)) >> BShifts[s]; } #endif