| Index: runtime/platform/utils_win.h
|
| diff --git a/runtime/platform/utils_win.h b/runtime/platform/utils_win.h
|
| index adb98ba6b4ca07bbb32a2e84aadae507f671bd76..a7e3d6723b4fb50cc4c5161afb1d6878e770e006 100644
|
| --- a/runtime/platform/utils_win.h
|
| +++ b/runtime/platform/utils_win.h
|
| @@ -9,16 +9,17 @@
|
|
|
| namespace dart {
|
|
|
| -inline int Utils::CountTrailingZeros(uint32_t x) {
|
| - unsigned long result; // NOLINT
|
| +inline int Utils::CountTrailingZeros(uword x) {
|
| + uword result;
|
| +#if defined(ARCH_IS_32_BIT)
|
| _BitScanReverse(&result, x);
|
| - return reinterpret_cast<int>(result);
|
| -};
|
| -
|
| -inline int Utils::CountTrailingZeros(uint64_t x) {
|
| - unsigned long result; // NOLINT
|
| + return __builtin_ctzl(x);
|
| +#elif defined(ARCH_IS_64_BIT)
|
| _BitScanReverse64(&result, x);
|
| - return reinterpret_cast<int>(result);
|
| +#else
|
| +#error Architecture is not 32-bit or 64-bit.
|
| +#endif
|
| + return static_cast<int>(result);
|
| };
|
|
|
| } // namespace dart
|
|
|