Skip to content
Browse files

A move needs 17 bits not 19

Fix a bug in the way a move is stored and read in a TT entry.
We use a mask of 19 bits insteaad of 17 so that the last
two bits in the TT entry end up to be random data.

This bug will bite us when we will use these two until now
unused bits.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
  • Loading branch information...
1 parent 941f4e1 commit 9e44a6dba9718b74a64656ae7801a62946c3b725 @mcostalba committed Mar 29, 2009
Showing with 2 additions and 2 deletions.
  1. +1 −1 src/tt.cpp
  2. +1 −1 src/tt.h
View
2 src/tt.cpp
@@ -206,5 +206,5 @@ TTEntry::TTEntry() {
TTEntry::TTEntry(Key k, Value v, ValueType t, Depth d, Move m,
int generation) :
- key_ (k), data((m & 0x7FFFF) | (t << 20) | (generation << 23)),
+ key_ (k), data((m & 0x1FFFF) | (t << 20) | (generation << 23)),
value_(int16_t(v)), depth_(int16_t(d)) {}
View
2 src/tt.h
@@ -43,7 +43,7 @@ class TTEntry {
TTEntry(Key k, Value v, ValueType t, Depth d, Move m, int generation);
Key key() const { return key_; }
Depth depth() const { return Depth(depth_); }
- Move move() const { return Move(data & 0x7FFFF); }
+ Move move() const { return Move(data & 0x1FFFF); }
Value value() const { return Value(value_); }
ValueType type() const { return ValueType((data >> 20) & 7); }
int generation() const { return (data >> 23); }

0 comments on commit 9e44a6d

Please sign in to comment.
Something went wrong with that request. Please try again.