X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fbitboard.h;h=0cf0cd0a83021bb1d0a95abdc811287abc05dea2;hp=3ff0408a61b16faab014965ed063af2c85124a0c;hb=d12378497cb24f40d3510cdcfaecd1335f523196;hpb=64d29a633066e39b62af5ee0bbf32645994744ec diff --git a/src/bitboard.h b/src/bitboard.h index 3ff0408a..0cf0cd0a 100644 --- a/src/bitboard.h +++ b/src/bitboard.h @@ -21,6 +21,8 @@ #ifndef BITBOARD_H_INCLUDED #define BITBOARD_H_INCLUDED +#include + #include "types.h" namespace Bitboards { @@ -117,11 +119,11 @@ inline int square_distance(Square s1, Square s2) { } inline int file_distance(Square s1, Square s2) { - return abs(file_of(s1) - file_of(s2)); + return dist(file_of(s1), file_of(s2)); } inline int rank_distance(Square s1, Square s2) { - return abs(rank_of(s1) - rank_of(s2)); + return dist(rank_of(s1), rank_of(s2)); } @@ -241,6 +243,9 @@ FORCE_INLINE unsigned magic_index(Square s, Bitboard occ) { Bitboard* const Magics = Pt == ROOK ? RMagics : BMagics; unsigned* const Shifts = Pt == ROOK ? RShifts : BShifts; + if (HasPext) + return unsigned(_pext_u64(occ, Masks[s])); + if (Is64Bit) return unsigned(((occ & Masks[s]) * Magics[s]) >> Shifts[s]);