mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 00:33:09 +00:00
Remove defined(IS_64BIT) in init_sliding_attacks()
No functional change bith in 32 and 64 bits. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
f3e0b32def
commit
69726f4df3
3 changed files with 33 additions and 42 deletions
|
@ -451,27 +451,19 @@ namespace {
|
|||
|
||||
void init_sliding_attacks(Bitboard attacks[], int attackIndex[], Bitboard mask[],
|
||||
const int shift[], const Bitboard mult[], int deltas[][2]) {
|
||||
Bitboard b, v;
|
||||
int i, j, index;
|
||||
|
||||
for (int i = 0, index = 0; i < 64; i++)
|
||||
for (i = index = 0; i < 64; i++)
|
||||
{
|
||||
attackIndex[i] = index;
|
||||
mask[i] = sliding_attacks(i, 0, deltas, 1, 6, 1, 6);
|
||||
|
||||
#if defined(IS_64BIT)
|
||||
int j = (1 << (64 - shift[i]));
|
||||
#else
|
||||
int j = (1 << (32 - shift[i]));
|
||||
#endif
|
||||
j = 1 << ((CpuIs64Bit ? 64 : 32) - shift[i]);
|
||||
|
||||
for (int k = 0; k < j; k++)
|
||||
{
|
||||
Bitboard b = index_to_bitboard(k, mask[i]);
|
||||
|
||||
#if defined(IS_64BIT)
|
||||
Bitboard v = b * mult[i];
|
||||
#else
|
||||
unsigned v = int(b) * int(mult[i]) ^ int(b >> 32) * int(mult[i] >> 32);
|
||||
#endif
|
||||
b = index_to_bitboard(k, mask[i]);
|
||||
v = CpuIs64Bit ? b * mult[i] : unsigned(b * mult[i] ^ (b >> 32) * (mult[i] >> 32));
|
||||
attacks[index + (v >> shift[i])] = sliding_attacks(i, b, deltas, 0, 7, 0, 7);
|
||||
}
|
||||
index += j;
|
||||
|
|
|
@ -96,32 +96,4 @@ inline int count_1s<CNT_POPCNT>(Bitboard b) {
|
|||
#endif
|
||||
}
|
||||
|
||||
|
||||
/// cpu_has_popcnt() detects support for popcnt instruction at runtime
|
||||
inline bool cpu_has_popcnt() {
|
||||
|
||||
int CPUInfo[4] = {-1};
|
||||
__cpuid(CPUInfo, 0x00000001);
|
||||
return (CPUInfo[2] >> 23) & 1;
|
||||
}
|
||||
|
||||
|
||||
/// CpuHasPOPCNT is a global constant initialized at startup that
|
||||
/// is set to true if CPU on which application runs supports popcnt
|
||||
/// hardware instruction. Unless USE_POPCNT is not defined.
|
||||
#if defined(USE_POPCNT)
|
||||
const bool CpuHasPOPCNT = cpu_has_popcnt();
|
||||
#else
|
||||
const bool CpuHasPOPCNT = false;
|
||||
#endif
|
||||
|
||||
|
||||
/// CpuIs64Bit is a global constant initialized at compile time that
|
||||
/// is set to true if CPU on which application runs is a 64 bits.
|
||||
#if defined(IS_64BIT)
|
||||
const bool CpuIs64Bit = true;
|
||||
#else
|
||||
const bool CpuIs64Bit = false;
|
||||
#endif
|
||||
|
||||
#endif // !defined(BITCOUNT_H_INCLUDED)
|
||||
|
|
27
src/types.h
27
src/types.h
|
@ -146,4 +146,31 @@ inline void operator-= (T& d1, const T d2) { d1 = d1 - d2; } \
|
|||
inline void operator*= (T& d, int i) { d = T(int(d) * i); } \
|
||||
inline void operator/= (T& d, int i) { d = T(int(d) / i); }
|
||||
|
||||
|
||||
/// cpu_has_popcnt() detects support for popcnt instruction at runtime
|
||||
inline bool cpu_has_popcnt() {
|
||||
|
||||
int CPUInfo[4] = {-1};
|
||||
__cpuid(CPUInfo, 0x00000001);
|
||||
return (CPUInfo[2] >> 23) & 1;
|
||||
}
|
||||
|
||||
/// CpuHasPOPCNT is a global constant initialized at startup that
|
||||
/// is set to true if CPU on which application runs supports popcnt
|
||||
/// hardware instruction. Unless USE_POPCNT is not defined.
|
||||
#if defined(USE_POPCNT)
|
||||
const bool CpuHasPOPCNT = cpu_has_popcnt();
|
||||
#else
|
||||
const bool CpuHasPOPCNT = false;
|
||||
#endif
|
||||
|
||||
|
||||
/// CpuIs64Bit is a global constant initialized at compile time that
|
||||
/// is set to true if CPU on which application runs is a 64 bits.
|
||||
#if defined(IS_64BIT)
|
||||
const bool CpuIs64Bit = true;
|
||||
#else
|
||||
const bool CpuIs64Bit = false;
|
||||
#endif
|
||||
|
||||
#endif // !defined(TYPES_H_INCLUDED)
|
||||
|
|
Loading…
Add table
Reference in a new issue