diff options
author | Jeffrey Walton <noloader@gmail.com> | 2021-04-20 08:31:52 -0400 |
---|---|---|
committer | Jeffrey Walton <noloader@gmail.com> | 2021-04-20 08:31:52 -0400 |
commit | d1cea852f06008541966de7af433b57c4e9e2504 (patch) | |
tree | 1247a402cfd5349fe702b1da7b8ceeea26c101a1 /lsh512.cpp | |
parent | 9bc2e92b2893e78c80e43fe050e6fca3c3529f68 (diff) | |
download | cryptopp-git-d1cea852f06008541966de7af433b57c4e9e2504.tar.gz |
Make XOP its own define in LSH
Diffstat (limited to 'lsh512.cpp')
-rw-r--r-- | lsh512.cpp | 26 |
1 files changed, 15 insertions, 11 deletions
@@ -36,6 +36,9 @@ # if (defined(__SSSE3__) && defined(__amd64__))
# define CRYPTOPP_LSH512_SSSE3_AVAILABLE 1
# endif
+# if (defined(__XOP__) && defined(__amd64__))
+# define CRYPTOPP_LSH512_XOP_AVAILABLE 1
+# endif
# if (defined(__AVX__) && defined(__amd64__))
# define CRYPTOPP_LSH512_AVX_AVAILABLE 1
# endif
@@ -44,20 +47,17 @@ # endif
#endif
-#if defined(CRYPTOPP_LSH512_SSE2_AVAILABLE)
-# include <emmintrin.h>
-# if defined(__XOP__)
-# include <ammintrin.h>
-# if defined(__GNUC__)
-# include <x86intrin.h>
-# endif
-# endif
-#endif
-
#if defined(CRYPTOPP_LSH512_SSSE3_AVAILABLE)
# include <tmmintrin.h>
#endif
+#if defined(CRYPTOPP_LSH512_XOP_AVAILABLE)
+# include <ammintrin.h>
+# if defined(__GNUC__)
+# include <x86intrin.h>
+# endif
+#endif
+
#if defined(CRYPTOPP_LSH512_AVX_AVAILABLE)
# include <immintrin.h>
#endif
@@ -70,6 +70,10 @@ # include <x86intrin.h>
#endif
+#if defined(__GNUC__)
+# include <x86intrin.h>
+#endif
+
ANONYMOUS_NAMESPACE_BEGIN
using CryptoPP::byte;
@@ -777,7 +781,7 @@ inline void rotate_blk(lsh_u64 cv[8]) _mm256_slli_epi64(_mm256_loadu_si256(CONST_M256_CAST(cv+4)), R),
_mm256_srli_epi64(_mm256_loadu_si256(CONST_M256_CAST(cv+4)), 64-R)));
-#elif defined(CRYPTOPP_LSH512_SSE2_AVAILABLE) && defined(__XOP__)
+#elif defined(CRYPTOPP_LSH512_XOP_AVAILABLE)
_mm_storeu_si128(M128_CAST(cv),
_mm_roti_epi64(_mm_loadu_si128(CONST_M128_CAST(cv)), R));
_mm_storeu_si128(M128_CAST(cv+2),
|