From: Marco Costalba Date: Wed, 4 Dec 2013 16:24:32 +0000 (+0100) Subject: Retire TheirHalf[] X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=b71cedb2b009adfd19e9f25c298ac6bd0304dcfc Retire TheirHalf[] We avoid to use an ad-hoc table at the cost of a relative_rank() call in advanced_pawn_push(). On my 32 bit system it is even slightly faster (on 64bit may be different). This is the speed in nps alternating old and new bench runs: new 368890 368825 369972 old 367798 367635 368026 No functional change. --- diff --git a/src/bitboard.h b/src/bitboard.h index ceac2c24..8154f574 100644 --- a/src/bitboard.h +++ b/src/bitboard.h @@ -84,8 +84,6 @@ extern Bitboard PseudoAttacks[PIECE_TYPE_NB][SQUARE_NB]; extern int SquareDistance[SQUARE_NB][SQUARE_NB]; const Bitboard DarkSquares = 0xAA55AA55AA55AA55ULL; -const Bitboard TheirHalf[COLOR_NB] = { Rank5BB | Rank6BB | Rank7BB | Rank8BB, - Rank1BB | Rank2BB | Rank3BB | Rank4BB }; /// Overloads of bitwise operators between a Bitboard and a Square for testing /// whether a given bit is set in a bitboard, and for setting and clearing bits. diff --git a/src/position.h b/src/position.h index 6defeb22..4e15bb13 100644 --- a/src/position.h +++ b/src/position.h @@ -327,7 +327,8 @@ inline bool Position::pawn_passed(Color c, Square s) const { } inline bool Position::advanced_pawn_push(Move m) const { - return pieces(PAWN) & TheirHalf[sideToMove] & from_sq(m); + return type_of(moved_piece(m)) == PAWN + && relative_rank(sideToMove, from_sq(m)) > RANK_4; } inline Key Position::key() const {