|  | @@ -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>
 | 
	
		
			
				|  |  |  
 |