moveList = make_move_and_gating<NORMAL>(pos, moveList, us, from, pop_lsb(&b));
}
- return us == WHITE ? generate_all<WHITE, QUIET_CHECKS>(pos, moveList, ~pos.pieces())
- : generate_all<BLACK, QUIET_CHECKS>(pos, moveList, ~pos.pieces());
+ return us == WHITE ? generate_all<WHITE, QUIET_CHECKS>(pos, moveList, ~pos.pieces() & pos.board_bb())
+ : generate_all<BLACK, QUIET_CHECKS>(pos, moveList, ~pos.pieces() & pos.board_bb());
}
assert(color_of(moved_piece(m)) == us);
assert(!count<KING>(us) || piece_on(square<KING>(us)) == make_piece(us, KING));
+ assert(board_bb() & to);
// Illegal checks
if ((!checking_permitted() || (sittuyin_promotion() && type_of(m) == PROMOTION)) && gives_check(m))