21 lines
812 B
Diff
21 lines
812 B
Diff
diff -bur podofo-0.10.4-o/3rdparty/fast_float.h podofo-0.10.4/3rdparty/fast_float.h
|
|
--- podofo-0.10.4-o/3rdparty/fast_float.h 2025-05-01 04:14:35.400725900 -0600
|
|
+++ podofo-0.10.4/3rdparty/fast_float.h 2025-05-01 04:16:16.975195800 -0600
|
|
@@ -305,9 +305,16 @@
|
|
uint64_t b) {
|
|
value128 answer;
|
|
#ifdef _M_ARM64
|
|
+#ifdef __GNUC__
|
|
+ __uint128_t mul = ((__uint128_t)a) * b;
|
|
+ answer.high = mul >> 64;
|
|
+ answer.low = mul;
|
|
+#else
|
|
// ARM64 has native support for 64-bit multiplications, no need to emulate
|
|
answer.high = __umulh(a, b);
|
|
answer.low = a * b;
|
|
+#endif
|
|
+
|
|
#elif defined(FASTFLOAT_32BIT) || (defined(_WIN64) && !defined(__clang__))
|
|
answer.low = _umul128(a, b, &answer.high); // _umul128 not available on ARM64
|
|
#elif defined(FASTFLOAT_64BIT)
|