X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Ftt.cpp;h=41fc33ff9ebba868927ce1de876ab42f512b2618;hp=04673901545381a0f00956ed571a10d7023eee66;hb=ffdf63ff7c1fce40774aa8cff82b17c54155c6cb;hpb=f12449d492f75a83f9cd3a24cdb461bc3595536f diff --git a/src/tt.cpp b/src/tt.cpp index 04673901..41fc33ff 100644 --- a/src/tt.cpp +++ b/src/tt.cpp @@ -70,12 +70,15 @@ void TranspositionTable::clear() { const TTEntry* TranspositionTable::probe(const Key key) const { - const TTEntry* tte = first_entry(key); + TTEntry* tte = first_entry(key); uint32_t key32 = key >> 32; for (unsigned i = 0; i < ClusterSize; ++i, ++tte) - if (tte->key() == key32) + if (tte->key32 == key32) + { + tte->generation8 = generation; // Refresh return tte; + } return NULL; } @@ -99,7 +102,7 @@ void TranspositionTable::store(const Key key, Value v, Bound b, Depth d, Move m, for (unsigned i = 0; i < ClusterSize; ++i, ++tte) { - if (!tte->key() || tte->key() == key32) // Empty or overwrite old + if (!tte->key32 || tte->key32 == key32) // Empty or overwrite old { if (!m) m = tte->move(); // Preserve any existing ttMove @@ -109,9 +112,9 @@ void TranspositionTable::store(const Key key, Value v, Bound b, Depth d, Move m, } // Implement replace strategy - c1 = (replace->generation() == generation ? 2 : 0); - c2 = (tte->generation() == generation || tte->bound() == BOUND_EXACT ? -2 : 0); - c3 = (tte->depth() < replace->depth() ? 1 : 0); + c1 = (replace->generation8 == generation ? 2 : 0); + c2 = (tte->generation8 == generation || tte->bound() == BOUND_EXACT ? -2 : 0); + c3 = (tte->depth16 < replace->depth16 ? 1 : 0); if (c1 + c2 + c3 > 0) replace = tte;