]> git.sesse.net Git - stockfish/blobdiff - src/position.cpp
Remove a redundant check in passed pawn eval
[stockfish] / src / position.cpp
index 3cf0016b783c57e1070e8b8b4ad08ce9d2a067ad..176806976bb4234105d25826a973097537984b4a 100644 (file)
@@ -641,10 +641,10 @@ bool Position::move_is_check(Move m, const CheckInfo& ci) const {
       }
   }
 
-  // En passant capture with check We have already handled the case
+  // En passant capture with check ? We have already handled the case
   // of direct checks and ordinary discovered check, the only case we
-  // need to handle is the unusual case of a discovered check through the
-  // captured pawn.
+  // need to handle is the unusual case of a discovered check through
+  // the captured pawn.
   if (move_is_ep(m))
   {
       Square capsq = make_square(square_file(to), square_rank(from));
@@ -772,7 +772,7 @@ void Position::do_move(Move m, StateInfo& newSt, const CheckInfo& ci, bool moveI
   }
 
   // Prefetch TT access as soon as we know key is updated
-  TT.prefetch(key);
+  prefetch((char*)TT.first_entry(key));
 
   // Move the piece
   Bitboard move_bb = make_move_bb(from, to);
@@ -1250,7 +1250,7 @@ void Position::do_null_move(StateInfo& backupSt) {
       st->key ^= zobEp[st->epSquare];
 
   st->key ^= zobSideToMove;
-  TT.prefetch(st->key);
+  prefetch((char*)TT.first_entry(st->key));
 
   sideToMove = opposite_color(sideToMove);
   st->epSquare = SQ_NONE;
@@ -1307,11 +1307,11 @@ int Position::see_sign(Move m) const {
   Square from = move_from(m);
   Square to = move_to(m);
 
-  // Early return if SEE cannot be negative because capturing piece value
-  // is not bigger then captured one.
-  if (   midgame_value_of_piece_on(from) <= midgame_value_of_piece_on(to)
-      && type_of_piece_on(from) != KING)
-         return 1;
+  // Early return if SEE cannot be negative because captured piece value
+  // is not less then capturing one. Note that king moves always return
+  // here because king midgame value is set to 0.
+  if (midgame_value_of_piece_on(to) >= midgame_value_of_piece_on(from))
+      return 1;
 
   return see(from, to);
 }