summaryrefslogtreecommitdiff
path: root/rijndael.cpp
diff options
context:
space:
mode:
authorJeffrey Walton <noloader@gmail.com>2016-07-17 21:25:55 -0400
committerJeffrey Walton <noloader@gmail.com>2016-07-17 21:25:55 -0400
commit4fd51eb06c903045db80253b95e2b6348ae2aaad (patch)
tree2596961ec3942edda5a6a9f6cb01514fe2957fd8 /rijndael.cpp
parent5ad7bbd0c78d06b66b43503c6f173299a8d5fd47 (diff)
downloadcryptopp-git-4fd51eb06c903045db80253b95e2b6348ae2aaad.tar.gz
Add vec_swap for compilers which do not support std::swap'ing SSE and NEON types
Diffstat (limited to 'rijndael.cpp')
-rw-r--r--rijndael.cpp6
1 files changed, 2 insertions, 4 deletions
diff --git a/rijndael.cpp b/rijndael.cpp
index 9139c227..05ba5d57 100644
--- a/rijndael.cpp
+++ b/rijndael.cpp
@@ -275,11 +275,9 @@ void Rijndael::Base::UncheckedSetKey(const byte *userKey, unsigned int keylen, c
unsigned int i, j;
#if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x5120)
- // __m128i is an unsigned long long[2], and support for swapping it was not formally added until C++11.
+ // __m128i is an unsigned long long[2], and support for swapping it was not added until C++11.
// SunCC 12.1 - 12.3 fail to consume the swap; while SunCC 12.4 consumes it without -std=c++11.
- __m128i t = *(__m128i *)(rk);
- *(__m128i *)(rk) = *(__m128i *)(rk+4*m_rounds);
- *(__m128i *)(rk+4*m_rounds) = t;
+ vec_swap(*(__m128i *)(rk), *(__m128i *)(rk+4*m_rounds));
#else
std::swap(*(__m128i *)(void *)(rk), *(__m128i *)(void *)(rk+4*m_rounds));
#endif