diff options
author | Mounir IDRASSI <mounir.idrassi@idrix.fr> | 2016-08-17 08:01:50 +0200 |
---|---|---|
committer | Mounir IDRASSI <mounir.idrassi@idrix.fr> | 2016-08-17 08:36:31 +0200 |
commit | a72c7bcd6a1f2f9043e169bf4262dfe3ca006c38 (patch) | |
tree | 0dc742117b050f9b0710744342b1cd07df3b596e /src/Crypto | |
parent | 2780ac962ec75f548acb616dd810515e528ac0b1 (diff) | |
download | VeraCrypt-a72c7bcd6a1f2f9043e169bf4262dfe3ca006c38.tar.gz VeraCrypt-a72c7bcd6a1f2f9043e169bf4262dfe3ca006c38.zip |
Linux: fix compilation error on Streebog.c if SSE4.1 not enabled in compiler
Diffstat (limited to 'src/Crypto')
-rw-r--r-- | src/Crypto/Streebog.c | 6 | ||||
-rw-r--r-- | src/Crypto/config.h | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/Crypto/Streebog.c b/src/Crypto/Streebog.c index a5fbdbf6..60adea52 100644 --- a/src/Crypto/Streebog.c +++ b/src/Crypto/Streebog.c @@ -2229,6 +2229,7 @@ static void g(unsigned long long *h, const unsigned long long *N, const unsigned char *m) { #if CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE +#if CRYPTOPP_BOOL_SSE41_INTRINSICS_AVAILABLE if (HasSSE41()) { __m128i xmm0, xmm2, xmm4, xmm6; /* XMMR0-quadruple */ __m128i xmm1, xmm3, xmm5, xmm7; /* XMMR1-quadruple */ @@ -2255,8 +2256,9 @@ g(unsigned long long *h, const unsigned long long *N, const unsigned char *m) #if CRYPTOPP_BOOL_X86 _mm_empty(); #endif - } - else if (HasSSE2()) { + } else +#endif + if (HasSSE2()) { __m128i xmm0, xmm2, xmm4, xmm6; /* XMMR0-quadruple */ __m128i xmm1, xmm3, xmm5, xmm7; /* XMMR1-quadruple */ unsigned int i; diff --git a/src/Crypto/config.h b/src/Crypto/config.h index d3638121..792ac678 100644 --- a/src/Crypto/config.h +++ b/src/Crypto/config.h @@ -123,6 +123,12 @@ #define CRYPTOPP_BOOL_ALIGN16 0 #endif +#if CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE && (defined(__SSE4_1__) || defined(__INTEL_COMPILER) || defined(_MSC_VER)) + #define CRYPTOPP_BOOL_SSE41_INTRINSICS_AVAILABLE 1 +#else + #define CRYPTOPP_BOOL_SSE41_INTRINSICS_AVAILABLE 0 +#endif + // how to allocate 16-byte aligned memory (for SSE2) #if defined(_MSC_VER) #define CRYPTOPP_MM_MALLOC_AVAILABLE |