X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fbitboard.cpp;h=c6ee517d4aa8e7b5f7f3dfc0464f814f59f54e39;hp=0d2888988c88c7caed8ddb03c5e16cbfaed731f8;hb=b1b0c640462aed199a3665e575f9cb208b8e4687;hpb=670cee44f0618a413c6cc62f0e5bf560cd21fc68 diff --git a/src/bitboard.cpp b/src/bitboard.cpp index 0d288898..c6ee517d 100644 --- a/src/bitboard.cpp +++ b/src/bitboard.cpp @@ -24,9 +24,6 @@ // Global bitboards definitions with static storage duration are // automatically set to zero before enter main(). -Bitboard RAttacks[0x19000]; -Bitboard BAttacks[0x1480]; - Magics RMagics[64]; Magics BMagics[64]; @@ -53,6 +50,15 @@ uint8_t BitCount8Bit[256]; namespace { + CACHE_LINE_ALIGNMENT + + int BSFTable[64]; + + Bitboard RAttacks[0x19000]; + Bitboard BAttacks[0x1480]; + + void init_sliding_attacks(Bitboard attacks[], Magics m[], const Bitboard mult[], Square deltas[]); + #if defined(IS_64BIT) const uint64_t DeBruijnMagic = 0x218A392CD3D5DBFULL; @@ -163,9 +169,6 @@ const uint64_t RMult[64] = { #endif // defined(IS_64BIT) - CACHE_LINE_ALIGNMENT int BSFTable[64]; - - void init_sliding_attacks(Bitboard attacks[], Magics m[], const Bitboard mult[], Square deltas[]); } @@ -397,10 +400,10 @@ namespace { { excluded = ((Rank1BB | Rank8BB) & ~rank_bb(s)) | ((FileABB | FileHBB) & ~file_bb(s)); - m[s].offset = offset; - m[s].mult = mult[s]; - m[s].mask = sliding_attacks(s, EmptyBoardBB, deltas, excluded); - m[s].shift = (CpuIs64Bit ? 64 : 32) - count_1s(m[s].mask); + m[s].attacks = &attacks[offset]; + m[s].mult = mult[s]; + m[s].mask = sliding_attacks(s, EmptyBoardBB, deltas, excluded); + m[s].shift = (CpuIs64Bit ? 64 : 32) - count_1s(m[s].mask); maxKey = 1 << count_1s(m[s].mask); @@ -411,7 +414,7 @@ namespace { index = CpuIs64Bit ? occupancy * mult[s] : unsigned(occupancy * mult[s] ^ (occupancy >> 32) * (mult[s] >> 32)); - attacks[offset + (index >> m[s].shift)] = sliding_attacks(s, occupancy, deltas, EmptyBoardBB); + m[s].attacks[index >> m[s].shift] = sliding_attacks(s, occupancy, deltas, EmptyBoardBB); } offset += maxKey; }