19 #ifndef RAPIDJSON_CLZLL_H_ 20 #define RAPIDJSON_CLZLL_H_ 22 #include "../rapidjson.h" 27 #pragma intrinsic(_BitScanReverse64) 29 #pragma intrinsic(_BitScanReverse) 36 #if (defined(__GNUC__) && __GNUC__ >= 4) || \ 37 RAPIDJSON_HAS_BUILTIN(__builtin_clzll) 38 #define RAPIDJSON_CLZLL __builtin_clzll 49 _BitScanReverse64(&r, x);
52 if (_BitScanReverse(&r, static_cast<uint32_t>(x >> 32)))
return 63 - (r + 32);
55 _BitScanReverse(&r, static_cast<uint32_t>(x & 0xFFFFFFFF));
61 while (!(x & (static_cast<uint64_t>(1) << 63))) {
70 #define RAPIDJSON_CLZLL RAPIDJSON_NAMESPACE::internal::clzll 71 #endif // (defined(__GNUC__) && __GNUC__ >= 4) || 77 #endif // RAPIDJSON_CLZLL_H_ uint32_t clzll(uint64_t x)
#define RAPIDJSON_ASSERT(x)
Assertion.
#define RAPIDJSON_NAMESPACE_END
provide custom rapidjson namespace (closing expression)
#define RAPIDJSON_NAMESPACE_BEGIN
provide custom rapidjson namespace (opening expression)
unsigned __int64 uint64_t