summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorappro <appro>2004-07-17 13:21:22 +0000
committerappro <appro>2004-07-17 13:21:22 +0000
commit424770c2d6a0516c7e51ae23e870ae8172609147 (patch)
treed827985b0c8cbb5acef78915b0566a3222f4eb27
parent56569a7e38e016b4e9072f923c3cc4918531a6b6 (diff)
downloadopenssl-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 4c2e8dd92..4184729e3 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