From f6499edf3a56e74372bb83923c9c2c1d5667fb95 Mon Sep 17 00:00:00 2001 From: Marco Deckel Date: Mon, 14 Dec 2015 15:49:49 +0100 Subject: [PATCH] Microsoft ARM support * Adjusted config to compile for Microsoft ARM (e.g. Windows Universal apps) --- config.h | 2 +- integer.cpp | 4 ++-- vmac.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/config.h b/config.h index a05ba4e2..dad4e619 100644 --- a/config.h +++ b/config.h @@ -414,7 +414,7 @@ NAMESPACE_END #define CRYPTOPP_X64_ASM_AVAILABLE #endif -#if !defined(CRYPTOPP_DISABLE_SSE2) && (defined(CRYPTOPP_MSVC6PP_OR_LATER) || defined(__SSE2__)) +#if !defined(CRYPTOPP_DISABLE_SSE2) && (defined(CRYPTOPP_MSVC6PP_OR_LATER) || defined(__SSE2__)) && !defined(_M_ARM) #define CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE 1 #else #define CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE 0 diff --git a/integer.cpp b/integer.cpp index e50f3714..229a1d37 100644 --- a/integer.cpp +++ b/integer.cpp @@ -32,7 +32,7 @@ #include -#if _MSC_VER >= 1400 +#if (_MSC_VER >= 1400) && !defined(_M_ARM) #include #endif @@ -186,7 +186,7 @@ static word AtomicInverseModPower2(word A) #define GetBorrow(u) u##1 #else #define Declare2Words(x) dword x; - #if _MSC_VER >= 1400 && !defined(__INTEL_COMPILER) + #if _MSC_VER >= 1400 && !defined(__INTEL_COMPILER) && !defined(_M_ARM) #define MultiplyWords(p, a, b) p = __emulu(a, b); #else #define MultiplyWords(p, a, b) p = (dword)a*b; diff --git a/vmac.cpp b/vmac.cpp index 45c3d851..936fe8d1 100644 --- a/vmac.cpp +++ b/vmac.cpp @@ -467,7 +467,7 @@ VMAC_Base::VHASH_Update_SSE2(const word64 *data, size_t blocksRemainingInWord64, #define AccumulateNH(a, b, c) a += word128(b)*(c) #define Multiply128(r, i1, i2) r = word128(word64(i1)) * word64(i2) #else - #if _MSC_VER >= 1400 && !defined(__INTEL_COMPILER) + #if _MSC_VER >= 1400 && !defined(__INTEL_COMPILER) && !defined(_M_ARM) #define MUL32(a, b) __emulu(word32(a), word32(b)) #else #define MUL32(a, b) ((word64)((word32)(a)) * (word32)(b))