From: Fabian Fichter Date: Sat, 9 Feb 2019 23:22:15 +0000 (+0100) Subject: Merge official-stockfish/master X-Git-Url: http://winboard.nl/cgi-bin?a=commitdiff_plain;h=fbe8d61583eac86451fcd492c6eeedb2982eac71;p=fairystockfish.git Merge official-stockfish/master --- fbe8d61583eac86451fcd492c6eeedb2982eac71 diff --cc src/types.h index bae7c99,175bbbe..0618836 --- a/src/types.h +++ b/src/types.h @@@ -542,25 -433,23 +542,25 @@@ inline MoveType type_of(Move m) } constexpr Square to_sq(Move m) { - return Square(m & 0x3F); + return Square(m & SQUARE_BIT_MASK); } -constexpr int from_to(Move m) { - return m & 0xFFF; +inline Square from_sq(Move m) { + if (type_of(m) == DROP) + return SQ_NONE; + return Square((m >> SQUARE_BITS) & SQUARE_BIT_MASK); } -constexpr MoveType type_of(Move m) { - return MoveType(m & (3 << 14)); +inline int from_to(Move m) { + return to_sq(m) + (from_sq(m) << SQUARE_BITS); } -constexpr PieceType promotion_type(Move m) { - return PieceType(((m >> 12) & 3) + KNIGHT); +inline PieceType promotion_type(Move m) { + return type_of(m) == PROMOTION ? PieceType((m >> (2 * SQUARE_BITS + MOVE_TYPE_BITS)) & (PIECE_TYPE_NB - 1)) : NO_PIECE_TYPE; } - inline Move make_move(Square from, Square to) { + constexpr Move make_move(Square from, Square to) { - return Move((from << 6) + to); + return Move((from << SQUARE_BITS) + to); } template