diff options
author | weidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0> | 2007-09-25 06:22:24 +0000 |
---|---|---|
committer | weidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0> | 2007-09-25 06:22:24 +0000 |
commit | 71a14f0fc23712e5f742f4022959dcd43d95d9a6 (patch) | |
tree | 0013b2e64693946aff49ef7963d0e71126ef41d6 | |
parent | 2457d75233d09ad58d97203739fdb994b0457b06 (diff) | |
download | cryptopp-71a14f0fc23712e5f742f4022959dcd43d95d9a6.tar.gz |
don't use _rotl64 with ICC
git-svn-id: svn://svn.code.sf.net/p/cryptopp/code/trunk/c5@408 57ff6487-cd31-0410-9ec3-f628ee90f5f0
-rw-r--r-- | misc.h | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -485,7 +485,10 @@ template<> inline word32 rotrMod<word32>(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>(word64 x, unsigned int y) { @@ -524,6 +527,7 @@ template<> inline word64 rotrMod<word64>(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>(word16 x, unsigned int y) { @@ -595,8 +599,6 @@ template<> inline byte rotrMod<byte>(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>(word32 x, unsigned int y) |