Add SunCC 12.4 support for specialized implementations if CRC, RDRAND and BLAKE2

pull/239/head
Jeffrey Walton 2016-07-10 16:21:19 -04:00
parent 36da00cc92
commit f8200af3ae
3 changed files with 10 additions and 5 deletions

View File

@ -22,9 +22,14 @@ NAMESPACE_BEGIN(CryptoPP)
# undef CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE
#endif
// Testing shows Sun CC needs 12.4 for _mm_set_epi64x
#if (__SUNPRO_CC <= 0x5130)
// SunCC needs 12.4 for _mm_set_epi64x, _mm_blend_epi16, _mm_shuffle_epi16, etc
#if defined(__SUNPRO_CC) && (__SUNPRO_CC < 0x5130)
# undef CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE
# undef CRYPTOPP_BOOL_SSE4_INTRINSICS_AVAILABLE
#elif (__SUNPRO_CC >= 0x5130)
# include <emmintrin.h> // _mm_set_epi64x
# include <smmintrin.h> // _mm_blend_epi16
# include <tmmintrin.h> // _mm_shuffle_epi16
#endif
// Visual Studio needs VS2008 (1500); no dependency on _mm_set_epi64x()

View File

@ -15,7 +15,7 @@ NAMESPACE_BEGIN(CryptoPP)
// SunCC 12.4 and above
#if defined(CRYPTOPP_BOOL_SSE4_INTRINSICS_AVAILABLE) && (__SUNPRO_CC >= 0x5130)
# include <nmminitin.h>
# include <nmmintrin.h>
#endif
/* Table of CRC-32's of all single byte values (made by makecrc.c) */

View File

@ -100,12 +100,12 @@
# define GCC_RDSEED_ASM_AVAILABLE 1
# endif
#elif defined(CRYPTOPP_CPUID_AVAILABLE) && (__SUNPRO_CC >= 0x5100)
# if GCC_INTRIN_COMPILER && defined(__RDRND__)
# if GCC_INTRIN_COMPILER && defined(__RDRND__) && (__SUNPRO_CC >= 0x5130)
# define ALL_RDRAND_INTRIN_AVAILABLE 1
# elif CRYPTOPP_BOOL_RDRAND_ASM
# define GCC_RDRAND_ASM_AVAILABLE 1
# endif
# if GCC_INTRIN_COMPILER && defined(__RDSEED__)
# if GCC_INTRIN_COMPILER && defined(__RDSEED__) && (__SUNPRO_CC >= 0x5150)
# define ALL_RDSEED_INTRIN_AVAILABLE 1
# elif CRYPTOPP_BOOL_RDSEED_ASM
# define GCC_RDSEED_ASM_AVAILABLE 1