diff options
author | Yawning Angel <yawning@schwanenlied.me> | 2015-08-17 19:21:51 +0000 |
---|---|---|
committer | Yawning Angel <yawning@schwanenlied.me> | 2015-08-17 19:21:51 +0000 |
commit | 971eba0fcd48a9a2dbe980b05a31797faf273076 (patch) | |
tree | 41df650afdfbe6b3bf76247b03e16424700a7347 | |
parent | a77616f6056a9dbb5722600ff2465d8ec5b3d063 (diff) | |
download | tor-971eba0fcd48a9a2dbe980b05a31797faf273076.tar.gz tor-971eba0fcd48a9a2dbe980b05a31797faf273076.zip |
Fixup: Force enable SSE2 before undefining ALIGN if SSE2 is disabled.
This should fix the x86 build, since variables that require 16 byte
alignment will now actually be 16 byte aligned.
-rw-r--r-- | src/ext/ed25519/donna/ed25519-donna-portable.h | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/ext/ed25519/donna/ed25519-donna-portable.h b/src/ext/ed25519/donna/ed25519-donna-portable.h index 1cd644c003..9c9c55577c 100644 --- a/src/ext/ed25519/donna/ed25519-donna-portable.h +++ b/src/ext/ed25519/donna/ed25519-donna-portable.h @@ -144,6 +144,16 @@ static inline void U64TO8_LE(unsigned char *p, const uint64_t v) { #endif #endif +/* Tor: Force enable SSE2 on 32 bit x86 systems if the compile target + * architecture supports it. This is not done on x86-64 as the non-SSE2 + * code benchmarks better, at least on Haswell. + */ +#if defined(__SSE2__) /* && !defined(CPU_X86_64) */ + /* undef in case it's manually specified... */ + #undef ED25519_SSE2 + #define ED25519_SSE2 +#endif + /* Tor: GCC's Stack Protector freaks out and produces variable length * buffer warnings when alignment is requested that is greater than * STACK_BOUNDARY (x86 has special code to deal with this for SSE2). @@ -158,16 +168,6 @@ static inline void U64TO8_LE(unsigned char *p, const uint64_t v) { #define ALIGN(x) #endif -/* Tor: Force enable SSE2 on 32 bit x86 systems if the compile target - * architecture supports it. This is not done on x86-64 as the non-SSE2 - * code benchmarks better, at least on Haswell. - */ -#if defined(__SSE2__) && !defined(CPU_X86_64) - /* undef in case it's manually specified... */ - #undef ED25519_SSE2 - #define ED25519_SSE2 -#endif - #include <stdlib.h> #include <string.h> |