summaryrefslogtreecommitdiff
path: root/blake2.cpp
diff options
context:
space:
mode:
authorJeffrey Walton <noloader@gmail.com>2016-07-24 00:34:55 -0400
committerJeffrey Walton <noloader@gmail.com>2016-07-24 00:34:55 -0400
commit32e6276baffaa558314e91db0c4b4603caaae042 (patch)
tree340e03fc22ca31fbc1e2ac57cad8160b8aea6863 /blake2.cpp
parentef4f185d9beed6709e6bf843b98f579c5fb38e8c (diff)
downloadcryptopp-git-32e6276baffaa558314e91db0c4b4603caaae042.tar.gz
Prefer union access over pointer cast
Also see http://stackoverflow.com/a/38547909/608639
Diffstat (limited to 'blake2.cpp')
-rw-r--r--blake2.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/blake2.cpp b/blake2.cpp
index cb274c99..e8f3ca68 100644
--- a/blake2.cpp
+++ b/blake2.cpp
@@ -14,7 +14,7 @@
NAMESPACE_BEGIN(CryptoPP)
// Uncomment for benchmarking C++ against SSE2 or NEON
-// #undef CRYPTOPP_BOOL_SSE4_INTRINSICS_AVAILABLE
+#undef CRYPTOPP_BOOL_SSE4_INTRINSICS_AVAILABLE
// #undef CRYPTOPP_BOOL_NEON_INTRINSICS_AVAILABLE
// Visual Studio needs both VS2005 (1400) and _M_64 for SSE2 and _mm_set_epi64x()
@@ -40,14 +40,14 @@ NAMESPACE_BEGIN(CryptoPP)
#if defined(__SUNPRO_CC) && (__SUNPRO_CC < 0x5130)
inline __m128i _mm_set_epi64x(const uint64_t a, const uint64_t b)
{
- union INT_128_64 {
+ union INT_128_64x2 {
__m128i v128;
uint64_t v64[2];
};
- INT_128_64 v;
- v.v64[0] = b; v.v64[1] = a;
- return *(reinterpret_cast<__m128i*>(v.v64));
+ INT_128_64x2 val;
+ val.v64[0] = b; val.v64[1] = a;
+ return val.v128;
}
#endif