X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Ftt.cpp;h=328b13e66303ea2dc24361f0a247143ae9fc028b;hp=66166ce9c348f27a410ec8b7fb8eb59e9b885453;hb=d786822b92c26d758ea2f2f21368a4cfcce43ca8;hpb=392360e73bb50fd322c544d4210cc08e7cf27eea diff --git a/src/tt.cpp b/src/tt.cpp index 66166ce9..328b13e6 100644 --- a/src/tt.cpp +++ b/src/tt.cpp @@ -114,7 +114,7 @@ void TranspositionTable::store(const Position &pos, Value v, Depth d, writes++; return; } - if ((tte+i)->key() == pos.get_key()) + if ((tte+i)->key() == pos.get_key()) // overwrite old { if (m == MOVE_NONE) m = (tte+i)->move(); @@ -122,12 +122,12 @@ void TranspositionTable::store(const Position &pos, Value v, Depth d, *(tte+i) = TTEntry(pos.get_key(), v, type, d, m, generation); return; } - if (replace->generation() == generation) - { - if ((tte+i)->generation() != generation || (tte+i)->depth() < replace->depth()) - replace = tte+i; - } - else if ((tte+i)->generation() != generation && (tte+i)->depth() < replace->depth()) + if ( i == 0 // already is (replace == tte+i), common case + || replace->generation() < (tte+i)->generation()) + continue; + + if ( replace->generation() > (tte+i)->generation() + || (tte+i)->depth() < replace->depth()) replace = tte+i; } *replace = TTEntry(pos.get_key(), v, type, d, m, generation);