mirror of
https://github.com/sockspls/badfish
synced 2025-05-01 17:19:36 +00:00
Fixed a sliding attack bitboard bug in 32-bit mode
This is what prevented USE_32BIT_ATTACKS from working on some architectures (like PowerPC). Merged from Glaurung current development snapshot. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
43276cbec5
commit
0e835bd334
1 changed files with 8 additions and 1 deletions
|
@ -393,7 +393,7 @@ namespace {
|
||||||
|
|
||||||
void init_ray_bitboards() {
|
void init_ray_bitboards() {
|
||||||
int d[8] = {1, -1, 16, -16, 17, -17, 15, -15};
|
int d[8] = {1, -1, 16, -16, 17, -17, 15, -15};
|
||||||
for(int i = 0; i < 128; i = i + 9 & ~8) {
|
for(int i = 0; i < 128; i = (i + 9) & ~8) {
|
||||||
for(int j = 0; j < 8; j++) {
|
for(int j = 0; j < 8; j++) {
|
||||||
RayBB[(i&7)|((i>>4)<<3)][j] = EmptyBoardBB;
|
RayBB[(i&7)|((i>>4)<<3)][j] = EmptyBoardBB;
|
||||||
for(int k = i + d[j]; (k & 0x88) == 0; k += d[j])
|
for(int k = i + d[j]; (k & 0x88) == 0; k += d[j])
|
||||||
|
@ -479,8 +479,15 @@ namespace {
|
||||||
for(i = 0; i < 64; i++) {
|
for(i = 0; i < 64; i++) {
|
||||||
attackIndex[i] = index;
|
attackIndex[i] = index;
|
||||||
mask[i] = sliding_attacks(i, 0ULL, 4, deltas, 1, 6, 1, 6);
|
mask[i] = sliding_attacks(i, 0ULL, 4, deltas, 1, 6, 1, 6);
|
||||||
|
|
||||||
|
#if defined(USE_32BIT_ATTACKS)
|
||||||
|
j = (1 << (32 - shift[i]));
|
||||||
|
#else
|
||||||
j = (1 << (64 - shift[i]));
|
j = (1 << (64 - shift[i]));
|
||||||
|
#endif
|
||||||
|
|
||||||
for(k = 0; k < j; k++) {
|
for(k = 0; k < j; k++) {
|
||||||
|
|
||||||
#if defined(USE_32BIT_ATTACKS)
|
#if defined(USE_32BIT_ATTACKS)
|
||||||
b = index_to_bitboard(k, mask[i]);
|
b = index_to_bitboard(k, mask[i]);
|
||||||
attacks[index +
|
attacks[index +
|
||||||
|
|
Loading…
Add table
Reference in a new issue