From 3a3fef7436c4093908dee7a03bfcae6366f5ba95 Mon Sep 17 00:00:00 2001 From: weidai Date: Mon, 16 Apr 2007 05:40:37 +0000 Subject: fix compile on Sun CC --- cpu.h | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) (limited to 'cpu.h') diff --git a/cpu.h b/cpu.h index d8a5a1f7..6a212345 100755 --- a/cpu.h +++ b/cpu.h @@ -5,7 +5,7 @@ NAMESPACE_BEGIN(CryptoPP) -#if defined(CRYPTOPP_X86_ASM_AVAILABLE) || _MSC_VER >= 1400 +#if defined(CRYPTOPP_X86_ASM_AVAILABLE) || (_MSC_VER >= 1400 && CRYPTOPP_BOOL_X64) #define CRYPTOPP_CPUID_AVAILABLE @@ -17,7 +17,10 @@ void DetectX86Features(); bool CpuId(word32 input, word32 *output); -#if !CRYPTOPP_BOOL_X64 +#if CRYPTOPP_BOOL_X64 +inline bool HasSSE2() {return true;} +inline bool HasMMX() {return true;} +#else inline bool HasSSE2() { @@ -63,22 +66,20 @@ inline int GetCacheLineSize() return CRYPTOPP_L1_CACHE_LINE_SIZE; } -#endif // #ifdef CRYPTOPP_X86_ASM_AVAILABLE || _MSC_VER >= 1400 - -#if CRYPTOPP_BOOL_X64 - -inline bool HasSSE2() -{ - return true; -} - -inline bool HasMMX() -{ - return true; -} +inline bool HasSSSE3() {return false;} +inline bool IsP4() {return false;} +// assume MMX and SSE2 if intrinsics are enabled +#if CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE || CRYPTOPP_BOOL_X64 +inline bool HasSSE2() {return true;} +inline bool HasMMX() {return true;} +#else +inline bool HasSSE2() {return false;} +inline bool HasMMX() {return false;} #endif +#endif // #ifdef CRYPTOPP_X86_ASM_AVAILABLE || _MSC_VER >= 1400 + #if defined(__GNUC__) // define these in two steps to allow arguments to be expanded #define GNU_AS1(x) #x ";" -- cgit v1.2.1