X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fmovegen.cpp;h=88c31cfa4856643e60ca45c64cfa53706aff1d97;hp=fafa65ee53f11100d396d717bb374ee32a5032aa;hb=6dddcecb09df268d93810a1a38deb116f97672af;hpb=ee3f7b6b6e1a1051b32cedb38ac89b3458ff4ab2 diff --git a/src/movegen.cpp b/src/movegen.cpp index fafa65ee..88c31cfa 100644 --- a/src/movegen.cpp +++ b/src/movegen.cpp @@ -180,17 +180,17 @@ namespace { Bitboard bb = piecesToMove & pos.pieces(Pt); + if (!bb) + return moveList; + + [[maybe_unused]] const Bitboard checkSquares = pos.check_squares(Pt); + while (bb) { Square from = pop_lsb(&bb); - if (Checks && (Pt == BISHOP || Pt == ROOK || Pt == QUEEN) - && !(attacks_bb(from) & target & pos.check_squares(Pt))) - continue; - Bitboard b = attacks_bb(from, pos.pieces()) & target; - - if (Checks) - b &= pos.check_squares(Pt); + if constexpr (Checks) + b &= checkSquares; while (b) *moveList++ = make_move(from, pop_lsb(&b));