From a6801dbcaf4a00b565f26b23563f844560506a6e Mon Sep 17 00:00:00 2001 From: weidai Date: Tue, 25 Sep 2007 06:22:24 +0000 Subject: [PATCH] don't use _rotl64 with ICC --- misc.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/misc.h b/misc.h index 089308c3..132db7cf 100644 --- a/misc.h +++ b/misc.h @@ -485,7 +485,10 @@ template<> inline word32 rotrMod(word32 x, unsigned int y) return _lrotr(x, y); } -#if _MSC_VER >= 1300 +#endif // #ifdef _MSC_VER + +#if _MSC_VER >= 1300 && !defined(__INTEL_COMPILER) +// Intel C++ Compiler 10.0 calls a function instead of using the rotate instruction when using these instructions template<> inline word64 rotlFixed(word64 x, unsigned int y) { @@ -524,6 +527,7 @@ template<> inline word64 rotrMod(word64 x, unsigned int y) #endif // #if _MSC_VER >= 1310 #if _MSC_VER >= 1400 && !defined(__INTEL_COMPILER) +// Intel C++ Compiler 10.0 gives undefined externals with these template<> inline word16 rotlFixed(word16 x, unsigned int y) { @@ -595,8 +599,6 @@ template<> inline byte rotrMod(byte x, unsigned int y) #endif // #if _MSC_VER >= 1400 -#endif // #ifdef _MSC_VER - #if (defined(__MWERKS__) && TARGET_CPU_PPC) template<> inline word32 rotlFixed(word32 x, unsigned int y)