diff --git a/extlib/rapidjson/include/rapidjson/internal/biginteger.h b/extlib/rapidjson/include/rapidjson/internal/biginteger.h index 9d3e88c99..a114198c5 100644 --- a/extlib/rapidjson/include/rapidjson/internal/biginteger.h +++ b/extlib/rapidjson/include/rapidjson/internal/biginteger.h @@ -17,9 +17,14 @@ #include "../rapidjson.h" -#if defined(_MSC_VER) && defined(_M_AMD64) +// rom-properties: Use softintrin.lib on ARM64EC. (ported from upstream) +#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && defined(_M_AMD64) #include // for _umul128 +#if !defined(_M_ARM64EC) #pragma intrinsic(_umul128) +#else +#pragma comment(lib,"softintrin") +#endif #endif RAPIDJSON_NAMESPACE_BEGIN diff --git a/extlib/rapidjson/include/rapidjson/internal/diyfp.h b/extlib/rapidjson/include/rapidjson/internal/diyfp.h index c9fefdc61..30647ffdb 100644 --- a/extlib/rapidjson/include/rapidjson/internal/diyfp.h +++ b/extlib/rapidjson/include/rapidjson/internal/diyfp.h @@ -21,10 +21,15 @@ #include "../rapidjson.h" -#if defined(_MSC_VER) && defined(_M_AMD64) +// rom-properties: Use softintrin.lib on ARM64EC. (ported from upstream) +#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && defined(_M_AMD64) #include #pragma intrinsic(_BitScanReverse64) +#if !defined(_M_ARM64EC) #pragma intrinsic(_umul128) +#else +#pragma comment(lib,"softintrin") +#endif #endif RAPIDJSON_NAMESPACE_BEGIN