X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Ftypes.h;h=3cfaa072ae5f2bf71f0693c7e9d998d0135226e4;hp=cbef89b7f4ca3659f673b15689171caf8ffca2ab;hb=25b492ab586bcb3795a4bbb7521a8e5ee20d6708;hpb=8ab9c2511a36a929a17a689125c919c927aee786 diff --git a/src/types.h b/src/types.h index cbef89b7..3cfaa072 100644 --- a/src/types.h +++ b/src/types.h @@ -65,11 +65,6 @@ # endif #define CACHE_LINE_SIZE 64 -#if defined(_MSC_VER) || defined(__INTEL_COMPILER) -# define CACHE_LINE_ALIGNMENT __declspec(align(CACHE_LINE_SIZE)) -#else -# define CACHE_LINE_ALIGNMENT __attribute__ ((aligned(CACHE_LINE_SIZE))) -#endif #ifdef _MSC_VER # define FORCE_INLINE __forceinline @@ -180,8 +175,8 @@ enum Value { VALUE_INFINITE = 32001, VALUE_NONE = 32002, - VALUE_MATE_IN_MAX_PLY = VALUE_MATE - MAX_PLY, - VALUE_MATED_IN_MAX_PLY = -VALUE_MATE + MAX_PLY, + VALUE_MATE_IN_MAX_PLY = VALUE_MATE - 2 * MAX_PLY, + VALUE_MATED_IN_MAX_PLY = -VALUE_MATE + 2 * MAX_PLY, VALUE_ENSURE_INTEGER_SIZE_P = INT_MAX, VALUE_ENSURE_INTEGER_SIZE_N = INT_MIN, @@ -217,7 +212,8 @@ enum Depth { DEPTH_QS_NO_CHECKS = -1, DEPTH_QS_RECAPTURES = -5, - DEPTH_NONE = -6 + DEPTH_NONE = -6, + DEPTH_MAX = MAX_PLY }; enum Square { @@ -279,23 +275,24 @@ inline Value eg_value(Score s) { return Value((int)(unsigned(s) & 0x7FFFU) - (int)(unsigned(s) & 0x8000U)); } -#define ENABLE_BASE_OPERATORS_ON(T) \ -inline T operator+(const T d1, const T d2) { return T(int(d1) + int(d2)); } \ -inline T operator-(const T d1, const T d2) { return T(int(d1) - int(d2)); } \ -inline T operator*(int i, const T d) { return T(i * int(d)); } \ -inline T operator*(const T d, int i) { return T(int(d) * i); } \ -inline T operator-(const T d) { return T(-int(d)); } \ -inline T& operator+=(T& d1, const T d2) { return d1 = d1 + d2; } \ -inline T& operator-=(T& d1, const T d2) { return d1 = d1 - d2; } \ +#define ENABLE_BASE_OPERATORS_ON(T) \ +inline T operator+(T d1, T d2) { return T(int(d1) + int(d2)); } \ +inline T operator-(T d1, T d2) { return T(int(d1) - int(d2)); } \ +inline T operator*(int i, T d) { return T(i * int(d)); } \ +inline T operator*(T d, int i) { return T(int(d) * i); } \ +inline T operator-(T d) { return T(-int(d)); } \ +inline T& operator+=(T& d1, T d2) { return d1 = d1 + d2; } \ +inline T& operator-=(T& d1, T d2) { return d1 = d1 - d2; } \ inline T& operator*=(T& d, int i) { return d = T(int(d) * i); } ENABLE_BASE_OPERATORS_ON(Score) -#define ENABLE_FULL_OPERATORS_ON(T) \ -ENABLE_BASE_OPERATORS_ON(T) \ -inline T& operator++(T& d) { return d = T(int(d) + 1); } \ -inline T& operator--(T& d) { return d = T(int(d) - 1); } \ -inline T operator/(const T d, int i) { return T(int(d) / i); } \ +#define ENABLE_FULL_OPERATORS_ON(T) \ +ENABLE_BASE_OPERATORS_ON(T) \ +inline T& operator++(T& d) { return d = T(int(d) + 1); } \ +inline T& operator--(T& d) { return d = T(int(d) - 1); } \ +inline T operator/(T d, int i) { return T(int(d) / i); } \ +inline int operator/(T d1, T d2) { return int(d1) / int(d2); } \ inline T& operator/=(T& d, int i) { return d = T(int(d) / i); } ENABLE_FULL_OPERATORS_ON(Value) @@ -325,8 +322,6 @@ inline Score operator/(Score s, int i) { return make_score(mg_value(s) / i, eg_value(s) / i); } -CACHE_LINE_ALIGNMENT - extern Value PieceValue[PHASE_NB][PIECE_NB]; struct ExtMove { @@ -434,7 +429,7 @@ inline Move make(Square from, Square to, PieceType pt = KNIGHT) { } inline bool is_ok(Move m) { - return from_sq(m) != to_sq(m); // Catches also MOVE_NULL and MOVE_NONE + return from_sq(m) != to_sq(m); // Catch also MOVE_NULL and MOVE_NONE } #endif // #ifndef TYPES_H_INCLUDED