Use SSE2 intrinsics header in sse_simd.cpp only if needed (#759)

Embarcadero C++Builder v10.3 [has a bug](https://quality.embarcadero.com/browse/RSP-22883) where its old Intel intrinsics headers try to use retired Clang builtins and fail to compile. In devising a workaround with `-DCRYPTOPP_DISABLE_ASM`, I found that `sse_simd.cpp` includes `<emmintrin.h>` even when its code doesn't need the intrinsics.

With this patch, `-DCRYPTOPP_DISABLE_ASM` will be a sufficient workaround because `CRYPTOPP_SSE2_INTRIN_AVAILABLE` is derived from it in `config.h`.
This commit is contained in:
Tanzinul Islam 2018-12-23 13:49:39 +00:00 committed by Jeffrey Walton
parent fc87f8666a
commit b5142e044f

View File

@ -24,8 +24,10 @@
// Needed by SunCC and MSVC
#if (CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X64)
# if !defined(CRYPTOPP_NO_CPU_FEATURE_PROBES) && !CRYPTOPP_SSE2_ASM_AVAILABLE && CRYPTOPP_SSE2_INTRIN_AVAILABLE
# include <emmintrin.h>
# endif
#endif
// Squash MS LNK4221 and libtool warnings
extern const char SSE_SIMD_FNAME[] = __FILE__;