X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fbitbase.cpp;h=5f0438a3846c4bbd58a0136c41ff9db24d888b82;hp=9322e537f2837cd2bf2ba6588bda42baa0e3b524;hb=55bd27b8f08a151128d7065fa2819aa3e9605299;hpb=5f5d056c8fb9996748b742c9d5102c9202b0bd2c diff --git a/src/bitbase.cpp b/src/bitbase.cpp index 9322e537..5f0438a3 100644 --- a/src/bitbase.cpp +++ b/src/bitbase.cpp @@ -62,16 +62,16 @@ namespace { } -uint32_t probe_kpk_bitbase(Square wksq, Square wpsq, Square bksq, Color stm) { +uint32_t Bitbases::probe_kpk(Square wksq, Square wpsq, Square bksq, Color stm) { int idx = index(wksq, bksq, wpsq, stm); return KPKBitbase[idx / 32] & (1 << (idx & 31)); } -void kpk_bitbase_init() { +void Bitbases::init_kpk() { - Result db[IndexMax]; + Result* db = new Result[IndexMax]; // Avoid to hit stack limit on some platforms KPKPosition pos; int idx, bit, repeat = 1; @@ -90,6 +90,8 @@ void kpk_bitbase_init() { for (bit = 0; bit < 32; bit++) if (db[32 * idx + bit] == WIN) KPKBitbase[idx] |= 1 << bit; + + delete [] db; } @@ -196,8 +198,8 @@ namespace { while (b) { - r |= Us == WHITE ? db[index(pop_1st_bit(&b), bksq, psq, BLACK)] - : db[index(wksq, pop_1st_bit(&b), psq, WHITE)]; + r |= Us == WHITE ? db[index(pop_lsb(&b), bksq, psq, BLACK)] + : db[index(wksq, pop_lsb(&b), psq, WHITE)]; if (Us == WHITE && (r & WIN)) return WIN;