diff options
author | Jeffrey Walton <noloader@gmail.com> | 2018-12-29 01:08:43 -0500 |
---|---|---|
committer | Jeffrey Walton <noloader@gmail.com> | 2018-12-29 01:08:43 -0500 |
commit | 8838f78ec4247b184d639410fb06704711c58d04 (patch) | |
tree | 4ba0892dba22f4306fd4accac923f57dbecb4007 /chacha.cpp | |
parent | 2d06777747f1fd0476534fd35817e2874947a31f (diff) | |
download | cryptopp-git-8838f78ec4247b184d639410fb06704711c58d04.tar.gz |
Fix ChaCha compiler crash for GCC 3.3
Diffstat (limited to 'chacha.cpp')
-rw-r--r-- | chacha.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
@@ -10,13 +10,18 @@ #include "misc.h"
#include "cpu.h"
+// Internal compiler error in GCC 3.3 and below
+#if defined(__GNUC__) && (__GNUC__ < 4)
+# undef CRYPTOPP_SSE2_INTRIN_AVAILABLE
+#endif
+
NAMESPACE_BEGIN(CryptoPP)
#if (CRYPTOPP_ARM_NEON_AVAILABLE)
extern void ChaCha_OperateKeystream_NEON(const word32 *state, const byte* input, byte *output, unsigned int rounds);
#endif
-#if (CRYPTOPP_SSE2_INTRIN_AVAILABLE || CRYPTOPP_SSE2_ASM_AVAILABLE)
+#if (CRYPTOPP_SSE2_INTRIN_AVAILABLE)
extern void ChaCha_OperateKeystream_SSE2(const word32 *state, const byte* input, byte *output, unsigned int rounds);
#endif
@@ -73,7 +78,7 @@ std::string ChaCha_Policy::AlgorithmProvider() const return "AVX2";
else
#endif
-#if (CRYPTOPP_SSE2_INTRIN_AVAILABLE || CRYPTOPP_SSE2_ASM_AVAILABLE)
+#if (CRYPTOPP_SSE2_INTRIN_AVAILABLE)
if (HasSSE2())
return "SSE2";
else
@@ -140,7 +145,7 @@ unsigned int ChaCha_Policy::GetAlignment() const return 16;
else
#endif
-#if (CRYPTOPP_SSE2_INTRIN_AVAILABLE || CRYPTOPP_SSE2_ASM_AVAILABLE)
+#if (CRYPTOPP_SSE2_INTRIN_AVAILABLE)
if (HasSSE2())
return 16;
else
@@ -160,7 +165,7 @@ unsigned int ChaCha_Policy::GetOptimalBlockSize() const return 8 * BYTES_PER_ITERATION;
else
#endif
-#if (CRYPTOPP_SSE2_INTRIN_AVAILABLE || CRYPTOPP_SSE2_ASM_AVAILABLE)
+#if (CRYPTOPP_SSE2_INTRIN_AVAILABLE)
if (HasSSE2())
return 4*BYTES_PER_ITERATION;
else
@@ -211,7 +216,7 @@ void ChaCha_Policy::OperateKeystream(KeystreamOperation operation, }
#endif
-#if (CRYPTOPP_SSE2_INTRIN_AVAILABLE || CRYPTOPP_SSE2_ASM_AVAILABLE)
+#if (CRYPTOPP_SSE2_INTRIN_AVAILABLE)
if (HasSSE2())
{
while (iterationCount >= 4 && MultiBlockSafe(4))
|