diff options
author | Alex Strelnikov <strel@google.com> | 2019-01-09T17·55-0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-09T17·55-0500 |
commit | 9449ae94397f2fd683851348e25ed8c93f75b3b9 (patch) | |
tree | 739406067548a65b45a85f9dc23dfac4acc762a3 | |
parent | b16aeb6756bdab08cdf12d40baab5b51f7d15b16 (diff) | |
parent | aca0473d962693c42885aeb09f382fe5f37138de (diff) |
Merge pull request #243 from ThomsonTan/FixIntrinsic
_umul128 intrinsic is x64 only and not available on Windows ARM64
-rw-r--r-- | absl/numeric/int128.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/absl/numeric/int128.h b/absl/numeric/int128.h index 9c36c57116c6..3e7d2d9f78da 100644 --- a/absl/numeric/int128.h +++ b/absl/numeric/int128.h @@ -43,10 +43,10 @@ // builtin type. We need to make sure not to define operator wchar_t() // alongside operator unsigned short() in these instances. #define ABSL_INTERNAL_WCHAR_T __wchar_t -#if defined(_WIN64) +#if defined(_M_X64) #include <intrin.h> #pragma intrinsic(_umul128) -#endif // defined(_WIN64) +#endif // defined(_M_X64) #else // defined(_MSC_VER) #define ABSL_INTERNAL_WCHAR_T wchar_t #endif // defined(_MSC_VER) @@ -675,7 +675,7 @@ inline uint128 operator*(uint128 lhs, uint128 rhs) { // can be used for uint128 storage. return static_cast<unsigned __int128>(lhs) * static_cast<unsigned __int128>(rhs); -#elif defined(_MSC_VER) && defined(_WIN64) +#elif defined(_MSC_VER) && defined(_M_X64) uint64_t carry; uint64_t low = _umul128(Uint128Low64(lhs), Uint128Low64(rhs), &carry); return MakeUint128(Uint128Low64(lhs) * Uint128High64(rhs) + |