X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Ftypes.h;h=0d2cdd3bc8cd20d4479b2cf2d5c6ba5ab0217d2e;hp=90793806e7dba324ac51f34b682d16074be57dbf;hb=4a4513d126233ce639b413877d155e870cc4cf5c;hpb=f4dadee5e2fd27a32e64179f737c1c3825098ea5 diff --git a/src/types.h b/src/types.h index 90793806..0d2cdd3b 100644 --- a/src/types.h +++ b/src/types.h @@ -34,11 +34,6 @@ /// -DUSE_POPCNT | Add runtime support for use of popcnt asm-instruction. Works /// | only in 64-bit mode. For compiling requires hardware with /// | popcnt support. -/// -/// -DOLD_LOCKS | Under Windows are used the fast Slim Reader/Writer (SRW) -/// | Locks and Condition Variables: these are not supported by -/// | Windows XP and older, to compile for those platforms you -/// | should enable OLD_LOCKS. #include #include @@ -65,6 +60,7 @@ typedef unsigned __int64 uint64_t; #endif #if defined(_WIN64) +# include // MSVC popcnt and bsfq instrinsics # define IS_64BIT # define USE_BSFQ #endif @@ -338,6 +334,14 @@ extern const Value PieceValueMidgame[17]; extern const Value PieceValueEndgame[17]; extern int SquareDistance[64][64]; +inline Color operator~(Color c) { + return Color(c ^ 1); +} + +inline Square operator~(Square s) { + return Square(s ^ 56); +} + inline Value mate_in(int ply) { return VALUE_MATE - ply; } @@ -358,10 +362,6 @@ inline Color color_of(Piece p) { return Color(p >> 3); } -inline Color flip(Color c) { - return Color(c ^ 1); -} - inline Square make_square(File f, Rank r) { return Square((r << 3) | f); } @@ -378,10 +378,6 @@ inline Rank rank_of(Square s) { return Rank(s >> 3); } -inline Square flip(Square s) { - return Square(s ^ 56); -} - inline Square mirror(Square s) { return Square(s ^ 7); } @@ -431,11 +427,11 @@ inline Square pawn_push(Color c) { return c == WHITE ? DELTA_N : DELTA_S; } -inline Square move_from(Move m) { +inline Square from_sq(Move m) { return Square((m >> 6) & 0x3F); } -inline Square move_to(Move m) { +inline Square to_sq(Move m) { return Square(m & 0x3F); } @@ -463,20 +459,20 @@ inline Move make_move(Square from, Square to) { return Move(to | (from << 6)); } -inline Move make_promotion_move(Square from, Square to, PieceType promotion) { - return Move(to | (from << 6) | (1 << 14) | ((promotion - 2) << 12)) ; +inline Move make_promotion(Square from, Square to, PieceType pt) { + return Move(to | (from << 6) | (1 << 14) | ((pt - 2) << 12)) ; } -inline Move make_enpassant_move(Square from, Square to) { +inline Move make_enpassant(Square from, Square to) { return Move(to | (from << 6) | (2 << 14)); } -inline Move make_castle_move(Square from, Square to) { +inline Move make_castle(Square from, Square to) { return Move(to | (from << 6) | (3 << 14)); } inline bool is_ok(Move m) { - return move_from(m) != move_to(m); // Catches also MOVE_NULL and MOVE_NONE + return from_sq(m) != to_sq(m); // Catches also MOVE_NULL and MOVE_NONE } #include