提交 d37310ac 编写于 作者: A Arkady Shapkin 提交者: Behdad Esfahbod

Remove checking macros __OPTIMIZE__ for MSVC

Visual C++ compiler doesn't define macros __OPTIMIZE__  when optimizations enabled
上级 4eff0fc5
...@@ -355,9 +355,9 @@ _hb_bit_storage (unsigned int number) ...@@ -355,9 +355,9 @@ _hb_bit_storage (unsigned int number)
{ {
#if defined(__GNUC__) && (__GNUC__ >= 4) && defined(__OPTIMIZE__) #if defined(__GNUC__) && (__GNUC__ >= 4) && defined(__OPTIMIZE__)
return likely (number) ? (sizeof (unsigned int) * 8 - __builtin_clz (number)) : 0; return likely (number) ? (sizeof (unsigned int) * 8 - __builtin_clz (number)) : 0;
#elif defined(_MSC_VER) && defined(__OPTIMIZE__) #elif defined(_MSC_VER)
unsigned long where; unsigned long where;
if (_BitScanReverse(&where, number)) return 1 + where; if (_BitScanReverse (&where, number)) return 1 + where;
return 0; return 0;
#else #else
unsigned int n_bits = 0; unsigned int n_bits = 0;
...@@ -375,11 +375,10 @@ _hb_ctz (unsigned int number) ...@@ -375,11 +375,10 @@ _hb_ctz (unsigned int number)
{ {
#if defined(__GNUC__) && (__GNUC__ >= 4) && defined(__OPTIMIZE__) #if defined(__GNUC__) && (__GNUC__ >= 4) && defined(__OPTIMIZE__)
return likely (number) ? __builtin_ctz (number) : 0; return likely (number) ? __builtin_ctz (number) : 0;
#elif defined(_MSC_VER) && defined(__OPTIMIZE__) #elif defined(_MSC_VER)
unsigned long where; unsigned long where;
if (_BitScanForward(&where, n)) return where; if (_BitScanForward (&where, number)) return where;
return 0; return 0;
}
#else #else
unsigned int n_bits = 0; unsigned int n_bits = 0;
if (unlikely (!number)) return 0; if (unlikely (!number)) return 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册