mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-17 15:46:24 +08:00
Inline Position::move_is_capture()
This is a very hot path function, profiling on Intel compiler shows that inlining cuts in half the overhead. No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
@@ -651,20 +651,6 @@ bool Position::move_is_check(Move m, Bitboard dcCandidates) const {
|
||||
}
|
||||
|
||||
|
||||
/// Position::move_is_capture() tests whether a move from the current
|
||||
/// position is a capture. Move must not be MOVE_NONE.
|
||||
|
||||
bool Position::move_is_capture(Move m) const {
|
||||
|
||||
assert(m != MOVE_NONE);
|
||||
|
||||
return ( !square_is_empty(move_to(m))
|
||||
&& (color_of_piece_on(move_to(m)) != color_of_piece_on(move_from(m)))
|
||||
)
|
||||
|| move_is_ep(m);
|
||||
}
|
||||
|
||||
|
||||
/// Position::update_checkers() udpates chekers info given the move. It is called
|
||||
/// in do_move() and is faster then find_checkers().
|
||||
|
||||
|
||||
@@ -718,5 +718,14 @@ inline bool Position::has_pawn_on_7th(Color c) const {
|
||||
return pawns(c) & relative_rank_bb(c, RANK_7);
|
||||
}
|
||||
|
||||
inline bool Position::move_is_capture(Move m) const {
|
||||
|
||||
// Move must not be MOVE_NONE !
|
||||
|
||||
return ( !square_is_empty(move_to(m))
|
||||
&& (color_of_piece_on(move_to(m)) != color_of_piece_on(move_from(m)))
|
||||
)
|
||||
|| move_is_ep(m);
|
||||
}
|
||||
|
||||
#endif // !defined(POSITION_H_INCLUDED)
|
||||
|
||||
Reference in New Issue
Block a user