X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fposition.cpp;h=abe7fde3226692ad6fc1f0d376f0518c2d9cfb4a;hp=48614fdfa14d4303e64525f02d5f789e81b3f248;hb=6738b65be97af10e4b5b783dc8ad21ae0faf36a8;hpb=04108d45414c70c796d9378b247207b574e22414 diff --git a/src/position.cpp b/src/position.cpp index 48614fdf..abe7fde3 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -885,7 +885,6 @@ void Position::do_move(Move m, StateInfo& newSt, const CheckInfo& ci, bool moveI // Update pawn hash key and prefetch in L1/L2 cache st->pawnKey ^= zobrist[us][PAWN][from] ^ zobrist[us][PAWN][to]; - prefetchPawn(st->pawnKey, threadID); // Set en passant square, only if moved pawn can be captured if ((to ^ from) == 16) @@ -938,6 +937,9 @@ void Position::do_move(Move m, StateInfo& newSt, const CheckInfo& ci, bool moveI } } + // Prefetch pawn and material hash tables + prefetchTables(st->pawnKey, st->materialKey, threadID); + // Update incremental scores st->value += pst_delta(piece, from, to); @@ -1689,46 +1691,6 @@ bool Position::is_mate() const { } -/// Position::has_mate_threat() tests whether the side to move is under -/// a threat of being mated in one from the current position. - -bool Position::has_mate_threat() { - - MoveStack mlist[MOVES_MAX], *last, *cur; - StateInfo st1, st2; - bool mateFound = false; - - // If we are under check it's up to evasions to do the job - if (is_check()) - return false; - - // First pass the move to our opponent doing a null move - do_null_move(st1); - - // Then generate pseudo-legal moves that could give check - last = generate(*this, mlist); - last = generate(*this, last); - - // Loop through the moves, and see if one of them gives mate - Bitboard pinned = pinned_pieces(sideToMove); - CheckInfo ci(*this); - for (cur = mlist; !mateFound && cur != last; cur++) - { - Move move = cur->move; - if ( !pl_move_is_legal(move, pinned) - || !move_is_check(move, ci)) - continue; - - do_move(move, st2, ci, true); - mateFound = is_mate(); - undo_move(move); - } - - undo_null_move(); - return mateFound; -} - - /// Position::init_zobrist() is a static member function which initializes at /// startup the various arrays used to compute hash keys.