key32 = k;
data = (m & 0x1FFFF) | (t << 21) | (g << 23);
- value16 = int16_t(v);
- depth16 = int16_t(d);
- staticValue = int16_t(statV);
- staticValueMargin = int16_t(kd);
+ value16 = (int16_t)v;
+ depth16 = (int16_t)d;
+ staticValue = (int16_t)statV;
+ staticValueMargin = (int16_t)kd;
}
void set_generation(int g) { data = move() | (type() << 21) | (g << 23); }
private:
size_t size;
TTCluster* entries;
- int generation;
+ uint8_t generation; // To properly compare, size must be smaller then TT stored value
};
extern TranspositionTable TT;
inline TTEntry* TranspositionTable::first_entry(const Key posKey) const {
- return entries[uint32_t(posKey) & (size - 1)].data;
+ return entries[((uint32_t)posKey) & (size - 1)].data;
}