1
0
Fork 0

Use optimized pop_1st_bit() under Windows 64 with icc

Intel compiler can handle this code even under Windows.

So lift the costrain.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
sf_2.3.1_base
Marco Costalba 2009-08-14 12:47:49 +01:00
parent bfd4421f49
commit f3d0b76feb
2 changed files with 3 additions and 3 deletions

View File

@ -323,13 +323,13 @@ inline Bitboard isolated_pawn_mask(Square s) {
#if defined(USE_BSFQ) // Assembly code by Heinz van Saanen
inline Square __attribute__((always_inline)) first_1(Bitboard b) {
inline Square first_1(Bitboard b) {
Bitboard dummy;
__asm__("bsfq %1, %0": "=r"(dummy): "rm"(b) );
return (Square)(dummy);
}
inline Square __attribute__((always_inline)) pop_1st_bit(Bitboard* b) {
inline Square pop_1st_bit(Bitboard* b) {
const Square s = first_1(*b);
*b &= ~(1ULL<<s);
return s;

View File

@ -62,7 +62,7 @@ typedef uint64_t Bitboard;
#define IS_64BIT
#endif
#if defined(IS_64BIT) && !defined(_WIN64) && (defined(__GNUC__) || defined(__INTEL_COMPILER))
#if defined(IS_64BIT) && (defined(__GNUC__) || defined(__INTEL_COMPILER))
#define USE_BSFQ
#endif