From be4ee0729ddc7eddcbb7912143a75769ea20fcd1 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Thu, 7 May 2009 17:08:55 +0200 Subject: [PATCH] Convert also generate_pawn_blocking_evasions() to new API New compact parameter passing API. No functional change. Signed-off-by: Marco Costalba --- src/movegen.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/movegen.cpp b/src/movegen.cpp index be9309d1..14705d30 100644 --- a/src/movegen.cpp +++ b/src/movegen.cpp @@ -53,7 +53,7 @@ namespace { template MoveStack* generate_castle_moves(const Position& pos, MoveStack* mlist); - template + template MoveStack* generate_pawn_blocking_evasions(const Position&, Bitboard, Bitboard, MoveStack*); template @@ -118,10 +118,9 @@ namespace { template<> inline MoveStack* generate_piece_moves(const Position& p, MoveStack* m, Color us, Bitboard t, Bitboard pnd) { - if (us == WHITE) - return generate_pawn_blocking_evasions(p, pnd, t, m); - else - return generate_pawn_blocking_evasions(p, pnd, t, m); + + return (us == WHITE ? generate_pawn_blocking_evasions(p, pnd, t, m) + : generate_pawn_blocking_evasions(p, pnd, t, m)); } } @@ -850,9 +849,15 @@ namespace { return mlist; } - template + template MoveStack* generate_pawn_blocking_evasions(const Position& pos, Bitboard pinned, Bitboard blockSquares, MoveStack* mlist) { + + // Calculate our parametrized parameters at compile time + const Bitboard TRank8BB = (Us == WHITE ? Rank8BB : Rank1BB); + const Bitboard TRank3BB = (Us == WHITE ? Rank3BB : Rank6BB); + const SquareDelta TDELTA_N = (Us == WHITE ? DELTA_N : DELTA_S); + Square to; // Find non-pinned pawns and push them one square @@ -867,7 +872,7 @@ namespace { assert(pos.piece_on(to) == EMPTY); - if (square_rank(to) == TRANK_8) + if (square_rank(to) == TRank8BB) { (*mlist++).move = make_promotion_move(to - TDELTA_N, to, QUEEN); (*mlist++).move = make_promotion_move(to - TDELTA_N, to, ROOK); -- 2.39.2