diff --git a/crypto/bn/rsa_sup_mul.c b/crypto/bn/rsa_sup_mul.c --- a/crypto/bn/rsa_sup_mul.c +++ b/crypto/bn/rsa_sup_mul.c @@ -109,7 +109,7 @@ static ossl_inline void _mul_limb(limb_t *hi, limb_t *lo, limb_t a, limb_t b) *hi = t >> LIMB_BIT_SIZE; *lo = (limb_t)t; } -#elif (BN_BYTES == 8) && (defined _MSC_VER) +#elif (BN_BYTES == 8) && (defined _MSC_VER) && (defined(_M_AMD64) || defined(_M_X64)) /* https://learn.microsoft.com/en-us/cpp/intrinsics/umul128?view=msvc-170 */ #pragma intrinsic(_umul128) static ossl_inline void _mul_limb(limb_t *hi, limb_t *lo, limb_t a, limb_t b)