Skip to content

Commit b6c916f

Browse files
committed
Use correct 64bit full multiplication for MinGW on ARM64
1 parent 5bdbb23 commit b6c916f

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

include/boost/json/detail/charconv/detail/fast_float/float_common.hpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,8 @@ value128 full_multiplication(uint64_t a, uint64_t b) {
207207
// But MinGW on ARM64 doesn't have native support for 64-bit multiplications
208208
answer.high = __umulh(a, b);
209209
answer.low = a * b;
210-
#elif defined(BOOST_JSON_FASTFLOAT_32BIT) || (defined(_WIN64) && !defined(__clang__))
210+
#elif defined(BOOST_JSON_FASTFLOAT_32BIT) || \
211+
(defined(_WIN64) && !defined(__clang__) && !defined(_M_ARM64))
211212
unsigned long long high;
212213
answer.low = _umul128(a, b, &high); // _umul128 not available on ARM64
213214
answer.high = static_cast<uint64_t>(high);

0 commit comments

Comments
 (0)