From 8d2e20ede621a3fa5295725f33459a95251c9644 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 16 Sep 2014 08:53:18 -0700 Subject: [PATCH] Get rid of __align stuff in Salsa20 -- not portable, does not seem to help much on newer chips. --- node/Salsa20.cpp | 8 ++++---- node/Salsa20.hpp | 13 +++---------- selftest.cpp | 2 -- 3 files changed, 7 insertions(+), 16 deletions(-) diff --git a/node/Salsa20.cpp b/node/Salsa20.cpp index 1ec6a2721..030c1cf47 100644 --- a/node/Salsa20.cpp +++ b/node/Salsa20.cpp @@ -144,10 +144,10 @@ void Salsa20::encrypt(const void *in,void *out,unsigned int bytes) } #ifdef ZT_SALSA20_SSE - __m128i X0 = _mm_load_si128((const __m128i *)&(_state.v[0])); - __m128i X1 = _mm_load_si128((const __m128i *)&(_state.v[1])); - __m128i X2 = _mm_load_si128((const __m128i *)&(_state.v[2])); - __m128i X3 = _mm_load_si128((const __m128i *)&(_state.v[3])); + __m128i X0 = _mm_loadu_si128((const __m128i *)&(_state.v[0])); + __m128i X1 = _mm_loadu_si128((const __m128i *)&(_state.v[1])); + __m128i X2 = _mm_loadu_si128((const __m128i *)&(_state.v[2])); + __m128i X3 = _mm_loadu_si128((const __m128i *)&(_state.v[3])); __m128i X0s = X0; __m128i X1s = X1; __m128i X2s = X2; diff --git a/node/Salsa20.hpp b/node/Salsa20.hpp index 6e485bacd..0c1f3be46 100644 --- a/node/Salsa20.hpp +++ b/node/Salsa20.hpp @@ -13,14 +13,7 @@ #ifdef ZT_SALSA20_SSE #include -#ifdef __GCC__ -#define ZT_SALSA20_SSE_ALIGN __attribute__((aligned (16))) -#else -#define ZT_SALSA20_SSE_ALIGN __declspec(align(16)) -#endif -#else -#define ZT_SALSA20_SSE_ALIGN -#endif +#endif // ZT_SALSA20_SSE namespace ZeroTier { @@ -79,10 +72,10 @@ public: } private: - volatile ZT_SALSA20_SSE_ALIGN union { + volatile union { #ifdef ZT_SALSA20_SSE __m128i v[4]; -#endif +#endif // ZT_SALSA20_SSE uint32_t i[16]; } _state; unsigned int _roundsDiv2; diff --git a/selftest.cpp b/selftest.cpp index 25231ba00..42f3a79e5 100644 --- a/selftest.cpp +++ b/selftest.cpp @@ -611,8 +611,6 @@ int main(int argc,char **argv) std::cout << "[info] sizeof(void *) == " << sizeof(void *) << std::endl; std::cout << "[info] default home: " << ZT_DEFAULTS.defaultHomePath << std::endl; - std::cout << "[info] system authtoken.secret: " << Node::NodeControlClient::authTokenDefaultSystemPath() << std::endl; - std::cout << "[info] user authtoken.secret: " << Node::NodeControlClient::authTokenDefaultUserPath() << std::endl; srand((unsigned int)time(0));