]> git.sesse.net Git - stockfish/blobdiff - src/tt.h
Use 16 bits to store a move instead of 17
[stockfish] / src / tt.h
index f2928fb9e84b4b754ae9c1ecfb9a1c01b7778a56..bc981c9450991ebf20f2a7c484af00478fed4c0d 100644 (file)
--- a/src/tt.h
+++ b/src/tt.h
@@ -60,7 +60,7 @@ public:
 
   ~SimpleHash() { delete [] entries; }
 
-  Entry* find(Key key) const { return entries + unsigned(key & (HashSize - 1)); }
+  Entry* find(Key key) const { return entries + ((uint32_t)key & (HashSize - 1)); }
 
 protected:
   Entry* entries;
@@ -80,8 +80,8 @@ protected:
 ///
 /// the 32 bits of the data field are so defined
 ///
-/// bit  0-16: move
-/// bit 17-20: not used
+/// bit  0-15: move
+/// bit 16-20: not used
 /// bit 21-22: value type
 /// bit 23-31: generation
 
@@ -91,7 +91,7 @@ public:
   void save(uint32_t k, Value v, ValueType t, Depth d, Move m, int g, Value statV, Value kd) {
 
       key32 = k;
-      data = (m & 0x1FFFF) | (t << 21) | (g << 23);
+      data = (m & 0xFFFF) | (t << 21) | (g << 23);
       value16     = (int16_t)v;
       depth16     = (int16_t)d;
       staticValue = (int16_t)statV;
@@ -101,7 +101,7 @@ public:
 
   uint32_t key() const { return key32; }
   Depth depth() const { return Depth(depth16); }
-  Move move() const { return Move(data & 0x1FFFF); }
+  Move move() const { return Move(data & 0xFFFF); }
   Value value() const { return Value(value16); }
   ValueType type() const { return ValueType((data >> 21) & 3); }
   int generation() const { return data >> 23; }