/*
Stockfish, a UCI chess playing engine derived from Glaurung 2.1
Copyright (C) 2004-2008 Tord Romstad (Glaurung author)
- Copyright (C) 2008 Marco Costalba
+ Copyright (C) 2008-2009 Marco Costalba
Stockfish is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include <iostream>
#include "bitboard.h"
+#include "bitcount.h"
#include "direction.h"
struct {
uint32_t l;
uint32_t h;
- };
+ } dw;
};
// WARNING: Needs -fno-strict-aliasing compiler option
u.b = *bb;
- if (u.l)
+ if (u.dw.l)
{
- b = u.l;
+ b = u.dw.l;
*((uint32_t*)bb) = b & (b - 1);
b ^= (b - 1);
}
else
{
- b = u.h;
+ b = u.dw.h;
*((uint32_t*)bb+1) = b & (b - 1); // Little endian only?
b = ~(b ^ (b - 1));
}
#endif
-#else
+#else // defined(USE_FOLDED_BITSCAN)
static const int BitTable[64] = {
0, 1, 2, 7, 3, 13, 8, 19, 4, 25, 14, 28, 9, 34, 20, 40, 5, 17, 26, 38, 15,