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:
parent
2f99de0c6c
commit
37fa8adc2b
1 changed files with 8 additions and 5 deletions
|
@ -123,6 +123,7 @@ Square pop_1st_bit(Bitboard* b) {
|
||||||
|
|
||||||
Square last_1(Bitboard b) {
|
Square last_1(Bitboard b) {
|
||||||
|
|
||||||
|
unsigned b32;
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
if (b > 0xFFFFFFFF)
|
if (b > 0xFFFFFFFF)
|
||||||
|
@ -131,19 +132,21 @@ Square last_1(Bitboard b) {
|
||||||
result = 32;
|
result = 32;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (b > 0xFFFF)
|
b32 = unsigned(b);
|
||||||
|
|
||||||
|
if (b32 > 0xFFFF)
|
||||||
{
|
{
|
||||||
b >>= 16;
|
b32 >>= 16;
|
||||||
result += 16;
|
result += 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (b > 0xFF)
|
if (b32 > 0xFF)
|
||||||
{
|
{
|
||||||
b >>= 8;
|
b32 >>= 8;
|
||||||
result += 8;
|
result += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Square(result + MS1BTable[b]);
|
return Square(result + MS1BTable[b32]);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // !defined(USE_BSFQ)
|
#endif // !defined(USE_BSFQ)
|
||||||
|
|
Loading…
Add table
Reference in a new issue