aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYawning Angel <yawning@schwanenlied.me>2015-08-17 19:21:51 +0000
committerYawning Angel <yawning@schwanenlied.me>2015-08-17 19:21:51 +0000
commit971eba0fcd48a9a2dbe980b05a31797faf273076 (patch)
tree41df650afdfbe6b3bf76247b03e16424700a7347
parenta77616f6056a9dbb5722600ff2465d8ec5b3d063 (diff)
downloadtor-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.h20
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>