]> www.wagner.pp.ru Git - openssl-gost/engine.git/blobdiff - gosthash2012.h
gosthash2012: Improve SIMD implementation
[openssl-gost/engine.git] / gosthash2012.h
index 5b1cd9f1f5c61677d31156447543f0fd49cd0c75..8947ee6ab7e5404aff5da98b04d5637dfc770814 100644 (file)
 
 #ifdef __SSE2__
 # define __GOST3411_HAS_SSE2__
+# if !defined(__x86_64__)
+/*
+ * x86-64 bit Linux and Windows ABIs provide malloc function that returns
+ * 16-byte alignment memory buffers required by SSE load/store instructions.
+ * Other platforms require special trick for proper gost2012_hash_ctx structure
+ * allocation. It will be easier to switch to unaligned loadu/storeu memory
+ * access instructions in this case.
+ */
+#  define UNALIGNED_SIMD_ACCESS
+#  pragma message "Use unaligned SIMD memory access"
+# endif
 #endif
 
 #ifdef __GOST3411_HAS_SSE2__