#include "impl/blake2.h"
#include "impl/blake2-impl.h" /* for secure_zero_memory() and store48() */
-#ifdef BLAKE2_USE_SSE
+/* pure SSE2 implementation is very slow, so only use the more optimized SSSE3+
+ * https://bugs.python.org/issue31834 */
+#if defined(__SSSE3__) || defined(__SSE4_1__) || defined(__AVX__) || defined(__XOP__)
#include "impl/blake2b.c"
#else
#include "impl/blake2b-ref.c"
#include "impl/blake2.h"
#include "impl/blake2-impl.h" /* for secure_zero_memory() and store48() */
-#ifdef BLAKE2_USE_SSE
+/* pure SSE2 implementation is very slow, so only use the more optimized SSSE3+
+ * https://bugs.python.org/issue31834 */
+#if defined(__SSSE3__) || defined(__SSE4_1__) || defined(__AVX__) || defined(__XOP__)
#include "impl/blake2s.c"
#else
#include "impl/blake2s-ref.c"
'Modules/_blake2/impl/*'))
blake2_deps.append('hashlib.h')
- blake2_macros = []
- if (not cross_compiling and
- os.uname().machine == "x86_64" and
- sys.maxsize > 2**32):
- # Every x86_64 machine has at least SSE2. Check for sys.maxsize
- # in case that kernel is 64-bit but userspace is 32-bit.
- blake2_macros.append(('BLAKE2_USE_SSE', '1'))
-
exts.append( Extension('_blake2',
['_blake2/blake2module.c',
'_blake2/blake2b_impl.c',
'_blake2/blake2s_impl.c'],
- define_macros=blake2_macros,
depends=blake2_deps) )
sha3_deps = glob(os.path.join(os.getcwd(), srcdir,