summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2004-07-17 13:21:22 +0000
committerAndy Polyakov <appro@openssl.org>2004-07-17 13:21:22 +0000
commitf1db966ad4113ecba54ad26242cdbfd8aeccc62f (patch)
tree3ad50f559247357b1b95be36af17083929c81e4b
parentc4798d102050c10950eb69a93eacff03f8202dfe (diff)
downloadopenssl-new-BRANCH_WIN64.tar.gz
Sync with HEAD. For reference. _WIN64 is defined on AMD64 as well. UnlikeBRANCH_WIN64
IA-64 AMD64 tolerates unaligned access, which is why condition explicitly checks for _M_IA64 only.
-rw-r--r--crypto/aes/aes_locl.h15
1 files changed, 5 insertions, 10 deletions
diff --git a/crypto/aes/aes_locl.h b/crypto/aes/aes_locl.h
index 4c2e8dd92b..4184729e34 100644
--- a/crypto/aes/aes_locl.h
+++ b/crypto/aes/aes_locl.h
@@ -62,16 +62,11 @@
#include <stdlib.h>
#include <string.h>
-#if defined(_MSC_VER) && !defined(OPENSSL_SYS_WINCE)
-# ifdef _WIN64 /* little-endian, strict alignment */
-# define GETU32(pt) (((u32)(pt)[3] << 24) ^ ((u32)(pt)[2] << 16) ^ ((u32)(pt)[1] << 8) ^ ((u32)(pt)[0]))
-# define PUTU32(ct, st) { (ct)[3] = (u8)((st) >> 24); (ct)[2] = (u8)((st) >> 16); (ct)[1] = (u8)((st) >> 8); (ct)[0] = (u8)(st); }
-# else /* little-endian, no strict-alignment */
-# define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00)
-# define GETU32(p) SWAP(*((u32 *)(p)))
-# define PUTU32(ct, st) { *((u32 *)(ct)) = SWAP((st)); }
-# endif
-#else /* big-endian, strict alignment */
+#if defined(_MSC_VER) && !defined(_M_IA64) && !defined(OPENSSL_SYS_WINCE)
+# define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00)
+# define GETU32(p) SWAP(*((u32 *)(p)))
+# define PUTU32(ct, st) { *((u32 *)(ct)) = SWAP((st)); }
+#else
# define GETU32(pt) (((u32)(pt)[0] << 24) ^ ((u32)(pt)[1] << 16) ^ ((u32)(pt)[2] << 8) ^ ((u32)(pt)[3]))
# define PUTU32(ct, st) { (ct)[0] = (u8)((st) >> 24); (ct)[1] = (u8)((st) >> 16); (ct)[2] = (u8)((st) >> 8); (ct)[3] = (u8)(st); }
#endif