From a77b7e7bbf55d15e4bbe48dcf7245e5ae63348fb Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Thu, 9 Apr 2026 00:42:11 +0200 Subject: [PATCH] Add Visual Studio quirks back --- .../aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c b/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c index ffddb7e7..61d0fa4b 100644 --- a/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c +++ b/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c @@ -83,6 +83,17 @@ REV128_(uint64x2_t x) vreinterpretq_u64_u32(vextq_u32(vreinterpretq_u32_u64(x), \ vreinterpretq_u32_u64(x), 2)) +#ifdef _MSC_VER +#define CLMULLO128(a, b) \ + vreinterpretq_u64_p128(vmull_p64(vget_low_p64(vreinterpretq_p64_u64(a)), \ + vget_low_p64(vreinterpretq_p64_u64(b)))) +#define CLMULLOHI128(a, b) \ + vreinterpretq_u64_p128(vmull_p64(vget_low_p64(vreinterpretq_p64_u64(a)), \ + vget_high_p64(vreinterpretq_p64_u64(b)))) +#define CLMULHILO128(a, b) \ + vreinterpretq_u64_p128(vmull_p64(vget_high_p64(vreinterpretq_p64_u64(a)), \ + vget_low_p64(vreinterpretq_p64_u64(b)))) +#else #define CLMULLO128(a, b) \ vreinterpretq_u64_p128(vmull_p64(vgetq_lane_p64(vreinterpretq_p64_u64(a), 0), \ vgetq_lane_p64(vreinterpretq_p64_u64(b), 0))) @@ -92,6 +103,7 @@ REV128_(uint64x2_t x) #define CLMULHILO128(a, b) \ vreinterpretq_u64_p128(vmull_p64(vgetq_lane_p64(vreinterpretq_p64_u64(a), 1), \ vgetq_lane_p64(vreinterpretq_p64_u64(b), 0))) +#endif #if defined(__GNUC__) || defined(__clang__) #define PREFETCH_READ(x) __builtin_prefetch((x), 0, 2)