Square last_1(Bitboard b) {
+ unsigned b32;
int result = 0;
if (b > 0xFFFFFFFF)
result = 32;
}
- if (b > 0xFFFF)
+ b32 = unsigned(b);
+
+ if (b32 > 0xFFFF)
{
- b >>= 16;
+ b32 >>= 16;
result += 16;
}
- if (b > 0xFF)
+ if (b32 > 0xFF)
{
- b >>= 8;
+ b32 >>= 8;
result += 8;
}
- return Square(result + MS1BTable[b]);
+ return Square(result + MS1BTable[b32]);
}
#endif // !defined(USE_BSFQ)
{
Square to = s + Square(c == WHITE ? steps[pt][k] : -steps[pt][k]);
- if (square_is_ok(to) && square_distance(s, to) < 3)
+ if (is_ok(to) && square_distance(s, to) < 3)
StepAttacksBB[make_piece(c, pt)][s] |= to;
}
for (int i = 0; i < 4; i++)
for (Square s = sq + deltas[i];
- square_is_ok(s) && square_distance(s, s - deltas[i]) == 1;
+ is_ok(s) && square_distance(s, s - deltas[i]) == 1;
s += deltas[i])
{
attack |= s;