1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-07-11 19:49:14 +00:00

Micro-optimize last_1() for 32bits

Verified assembly it is a bit simpler.

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba 2012-04-04 06:52:07 +01:00
parent 2f99de0c6c
commit 37fa8adc2b

View file

@ -123,6 +123,7 @@ Square pop_1st_bit(Bitboard* b) {
Square last_1(Bitboard b) {
unsigned b32;
int result = 0;
if (b > 0xFFFFFFFF)
@ -131,19 +132,21 @@ Square last_1(Bitboard b) {
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)