Add additional comments
parent
f6c9a8e183
commit
bdd5f470ce
46
config.h
46
config.h
|
|
@ -68,6 +68,30 @@
|
||||||
# define CRYPTOPP_DISABLE_ASM 1
|
# define CRYPTOPP_DISABLE_ASM 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Some Clang and SunCC cannot handle mixed asm with positional arguments,
|
||||||
|
// where the body is Intel style with no prefix and the templates are
|
||||||
|
// AT&T style. Define this is the Makefile misdetects the configuration.
|
||||||
|
// Also see https://bugs.llvm.org/show_bug.cgi?id=39895 .
|
||||||
|
// #define CRYPTOPP_DISABLE_MIXED_ASM 1
|
||||||
|
|
||||||
|
// Several compilers discard SIMD code that loads unaligned data. The symptom
|
||||||
|
// is often self test failures and UBsan findings for unaligned loads. For
|
||||||
|
// example, Power7 can load unaligned data using vec_vsx_ld but some versions
|
||||||
|
// of GCC and Clang require 16-byte aligned data when using the builtin.
|
||||||
|
// It is not limited to SSE and PowerPC code. Define this to disable
|
||||||
|
// Crypto++ code that uses potentially problematic builtins or intrinsics.
|
||||||
|
// Also see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88234 and
|
||||||
|
// https://bugs.llvm.org/show_bug.cgi?id=39704
|
||||||
|
// #define CRYPTOPP_BUGGY_SIMD_LOAD_AND_STORE 1
|
||||||
|
|
||||||
|
// This list will probably grow over time as more compilers are identified.
|
||||||
|
#if defined(CRYPTOPP_BUGGY_SIMD_LOAD_AND_STORE)
|
||||||
|
# define CRYPTOPP_DISABLE_LEA_SIMD 1
|
||||||
|
# define CRYPTOPP_DISABLE_SIMON_SIMD 1
|
||||||
|
# define CRYPTOPP_DISABLE_SPECK_SIMD 1
|
||||||
|
# define CRYPTOPP_DISABLE_SM4_SIMD 1
|
||||||
|
#endif
|
||||||
|
|
||||||
// Define CRYPTOPP_NO_CXX11 to avoid C++11 related features shown at the
|
// Define CRYPTOPP_NO_CXX11 to avoid C++11 related features shown at the
|
||||||
// end of this file. Some compilers and standard C++ headers advertise C++11
|
// end of this file. Some compilers and standard C++ headers advertise C++11
|
||||||
// but they are really just C++03 with some additional C++11 headers and
|
// but they are really just C++03 with some additional C++11 headers and
|
||||||
|
|
@ -291,28 +315,6 @@ const lword LWORD_MAX = W64LIT(0xffffffffffffffff);
|
||||||
#define CRYPTOPP_GCC_DIAGNOSTIC_AVAILABLE 1
|
#define CRYPTOPP_GCC_DIAGNOSTIC_AVAILABLE 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Some Clang and SunCC cannot handle mixed asm with positional arguments,
|
|
||||||
// where the body is Intel style with no prefix and the templates are
|
|
||||||
// AT&T style. Define this is the Makefile misdetects the configuration.
|
|
||||||
// Also see https://bugs.llvm.org/show_bug.cgi?id=39895 .
|
|
||||||
// #define CRYPTOPP_DISABLE_MIXED_ASM 1
|
|
||||||
|
|
||||||
// Several compilers discard SIMD code that loads unaligned data. The symptom
|
|
||||||
// is often self test failures and UBsan findings of unaligned loads. For
|
|
||||||
// example, Power7 can load unaligned data using vec_vsx_ld but some versions
|
|
||||||
// of GCC and Clang require 16-byte aligned arrays when using the builtin
|
|
||||||
// function. It is not limited to SSE and PowerPC code. Define this to disable
|
|
||||||
// Crypto++ code that uses potentially problematic builtins or intrinsics.
|
|
||||||
// #define CRYPTOPP_BUGGY_SIMD_LOAD_AND_STORE 1
|
|
||||||
|
|
||||||
// This list will probably grow over time as more compilers are identified.
|
|
||||||
#if defined(CRYPTOPP_BUGGY_SIMD_LOAD_AND_STORE)
|
|
||||||
# define CRYPTOPP_DISABLE_LEA_SIMD 1
|
|
||||||
# define CRYPTOPP_DISABLE_SIMON_SIMD 1
|
|
||||||
# define CRYPTOPP_DISABLE_SPECK_SIMD 1
|
|
||||||
# define CRYPTOPP_DISABLE_SM4_SIMD 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// define hword, word, and dword. these are used for multiprecision integer arithmetic
|
// define hword, word, and dword. these are used for multiprecision integer arithmetic
|
||||||
// Intel compiler won't have _umul128 until version 10.0. See http://softwarecommunity.intel.com/isn/Community/en-US/forums/thread/30231625.aspx
|
// Intel compiler won't have _umul128 until version 10.0. See http://softwarecommunity.intel.com/isn/Community/en-US/forums/thread/30231625.aspx
|
||||||
#if (defined(_MSC_VER) && (!defined(__INTEL_COMPILER) || __INTEL_COMPILER >= 1000) && (defined(_M_X64) || defined(_M_IA64))) || (defined(__DECCXX) && defined(__alpha__)) || (defined(__INTEL_COMPILER) && defined(__x86_64__)) || (defined(__SUNPRO_CC) && defined(__x86_64__))
|
#if (defined(_MSC_VER) && (!defined(__INTEL_COMPILER) || __INTEL_COMPILER >= 1000) && (defined(_M_X64) || defined(_M_IA64))) || (defined(__DECCXX) && defined(__alpha__)) || (defined(__INTEL_COMPILER) && defined(__x86_64__)) || (defined(__SUNPRO_CC) && defined(__x86_64__))
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue