diff --git a/core/log/BitSet.h b/core/log/BitSet.h index 4bf909df8..7fc0246f8 100644 --- a/core/log/BitSet.h +++ b/core/log/BitSet.h @@ -45,7 +45,13 @@ inline int LeastSignificantSetBit(u32 val) inline int LeastSignificantSetBit(u64 val) { unsigned long index; +#ifdef _WIN64 _BitScanForward64(&index, val); +#else + if (!_BitScanForward(&index, (u32)val) && _BitScanForward(&index, (u32)(val >> 32))) { + index += 32; + } +#endif return (int)index; } #else