Explorar o código

Get rid of __align stuff in Salsa20 -- not portable, does not seem to help much on newer chips.

Adam Ierymenko %!s(int64=11) %!d(string=hai) anos
pai
achega
8d2e20ede6
Modificáronse 3 ficheiros con 7 adicións e 16 borrados
  1. 4 4
      node/Salsa20.cpp
  2. 3 10
      node/Salsa20.hpp
  3. 0 2
      selftest.cpp

+ 4 - 4
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;

+ 3 - 10
node/Salsa20.hpp

@@ -13,14 +13,7 @@
 
 #ifdef ZT_SALSA20_SSE
 #include <emmintrin.h>
-#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;

+ 0 - 2
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));