From c23fdee2ae6306b1dc2ad4a4fda76ad7cb4ef851 Mon Sep 17 00:00:00 2001 From: Arkady Shapkin Date: Thu, 15 Feb 2018 22:55:39 +0300 Subject: [PATCH] Use _BitScanReverse on MSVC --- src/port.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/port.h b/src/port.h index 8b60fee..2db1435 100644 --- a/src/port.h +++ b/src/port.h @@ -11,6 +11,10 @@ #include +#if defined(_MSC_VER) +#include +#endif + namespace woff2 { typedef unsigned int uint32; @@ -18,6 +22,13 @@ typedef unsigned int uint32; inline int Log2Floor(uint32 n) { #if defined(__GNUC__) return n == 0 ? -1 : 31 ^ __builtin_clz(n); +#elif defined(_MSC_VER) + unsigned long where; + if (_BitScanReverse(&where, n)) { + return where; + } else { + return -1; + } #else if (n == 0) return -1;