qemu/host_utils: Handle MSVC within clrsb32/64

This commit is contained in:
Lioncash 2019-01-30 13:21:19 -05:00
parent 205035a267
commit 5745f2f75d
No known key found for this signature in database
GPG Key ID: 4E3C3CC1031BA9C7

View File

@ -263,7 +263,7 @@ static inline int cto64(uint64_t val)
*/ */
static inline int clrsb32(uint32_t val) static inline int clrsb32(uint32_t val)
{ {
#if __has_builtin(__builtin_clrsb) || !defined(__clang__) #if __has_builtin(__builtin_clrsb) || (!defined(__clang__) && !defined(_MSC_VER))
return __builtin_clrsb(val); return __builtin_clrsb(val);
#else #else
return clz32(val ^ ((int32_t)val >> 1)) - 1; return clz32(val ^ ((int32_t)val >> 1)) - 1;
@ -279,7 +279,7 @@ static inline int clrsb32(uint32_t val)
*/ */
static inline int clrsb64(uint64_t val) static inline int clrsb64(uint64_t val)
{ {
#if __has_builtin(__builtin_clrsbll) || !defined(__clang__) #if __has_builtin(__builtin_clrsbll) || (!defined(__clang__) && !defined(_MSC_VER))
return __builtin_clrsbll(val); return __builtin_clrsbll(val);
#else #else
return clz64(val ^ ((int64_t)val >> 1)) - 1; return clz64(val ^ ((int64_t)val >> 1)) - 1;