IA-64 is intolerant to misaligned access. It was a problem on Win64 as
authorAndy Polyakov <appro@openssl.org>
Sat, 17 Jul 2004 12:55:55 +0000 (12:55 +0000)
committerAndy Polyakov <appro@openssl.org>
Sat, 17 Jul 2004 12:55:55 +0000 (12:55 +0000)
we were mislead by _MSC_VER macro, which is defined by *all* Windows
Microsoft compilers.

crypto/aes/aes_locl.h

index f290946..4184729 100644 (file)
@@ -62,7 +62,7 @@
 #include <stdlib.h>
 #include <string.h>
 
-#if defined(_MSC_VER) && !defined(OPENSSL_SYS_WINCE)
+#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)); }