Commit Graph

98 Commits (04306f86ac3687b96f6325e862b6d1ee9233dec0)

Author SHA1 Message Date
Jeffrey Walton 953252e44d
Move from 'static' to 'enum' for class constants
Enums don't take up space in class objects. Its should result in smaller objects and faster code
2017-08-11 17:13:15 -04:00
Jeffrey Walton 2f58912fdd
Enable RDSEED and SHA for AMD processors
AMD donated a AMD Ryzen 7 1700X to the GCC Compile Farm. We were able to verify compatibility and correctness. Many thanks to AMD for the donation
2017-05-21 11:38:56 -04:00
Jeffrey Walton f502ee9218
Simplify C++ dynamic object initialization
Wrap DetectArmFeatures and DetectX86Features in InitializeCpu class
Use init_priority for InitializeCpu
Remove HAVE_GCC_CONSTRUCTOR1 and HAVE_GCC_CONSTRUCTOR0
Use init_seg(<name>) on Windows and explicitly insert at XCU segment
Simplify logic for HAVE_GAS
Remove special recipies for MACPORTS_GCC_COMPILER
Move C++ static initializers into anonymous namespace when possible
Add default NullNameValuePairs ctor for Clang
2017-03-20 08:51:10 -04:00
Jeffrey Walton bc6d48df59
Cleared C4456 "declaration hides previous local declaration" for MSVC 2017-03-18 07:06:59 -04:00
Jeffrey Walton 80bbc834fe
Clear Coverity UNINIT (CID 171239)
It was a false positive, but dark and silent cockpits trump the uneeded initialization. The optimizer can remove it.
2017-03-17 21:29:15 -04:00
Jeffrey Walton 301437e693
Updated static initializers
When MSVC init_seg or GCC init_priority is available, we don't need to use the Singleton. We only need to create a file scope class variable and place it in the segment for MSVC or provide the attribute for GCC.
An additional upside is we cleared all the memory leaks that used to be reported by MSVC for debug builds.
2017-03-17 20:47:32 -04:00
Jeffrey Walton 5efb019d8b
Add C++ nullptr support (Issue 383) 2017-03-01 06:10:06 -05:00
Jeffrey Walton 7c7e8aa804
Fix headers and data types for cpu.cpp (Issue 362)
This is trickier than expected due to sporadic support for PMULL and PMULL2 among compilers
2017-01-29 03:08:19 -05:00
Jeffrey Walton 81b1a18063
Change file preamble to include "originally written by Wei Dai"
We have made a fair number of changes, and we don't want WD to receive credit for issues he was not part of
2017-01-27 07:05:45 -05:00
Jeffrey Walton b129818c35
Add GCC inline ASM for PMULL and PMULL2
The macros that invoke GCC inline ASM have better code generation and speedup GCM ops by about 70 MiB/s on an Opteron 1100. The intrinsics are still available for Windows platforms and Visual Studio 2017 and above
2017-01-19 02:38:00 -05:00
Jeffrey Walton c80502102a
Breakout __ARM_FEATURE_CRYPTO into PMULL, AES and SHA for Apple Clang (Issue 362)
It appears Apple Clang disgorges carryless multiply (PMULL) from Crypto (AES and SHA). The breakout added CRYPTOPP_BOOL_ARM_PMULL_INTRINSICS_AVAILABLE for PMULL, and retained CRYPTOPP_BOOL_ARM_CRYPTO_INTRINSICS_AVAILABLE for AES and SHA only
2017-01-15 00:22:14 -05:00
Jeffrey Walton 5be05bce07
Add CC clobber to cpuid call
This should not be needed, but it does not hurt. According to Ian Lance Taylor (http://gcc.gnu.org/ml/gcc-help/2014-02/msg00023.html), the CC clobber causes GCC to forget its internal representation of flag state. It should not be needed for cpuid. However, Clang has some odd behave in a couple of versions of its compiler when using cpuid. Both JW and UB experienced it on separate occassions.
2016-11-13 11:14:03 -05:00
Jeffrey Walton ac01277d93
Add X86 SHA cpu feature detection 2016-10-26 22:35:24 -04:00
Jeffrey Walton 83d0332766
Removed extraneous '#include <emmintrin.h>' 2016-10-26 21:08:06 -04:00
Jeffrey Walton 923efa865b Fix Solaris GCC and "constructor priorities are not supported" 2016-09-19 21:18:58 -04:00
anonimal bf9809ef57
cpu: fix MinGW-w64 build. Closes #237
* Fixed by Jeffrey Walton (noloader)
2016-08-01 19:56:43 +00:00
Jeffrey Walton 0db3a4e5d7 Fix GCC 4.9 internal compiler error when using poly128_t (Issue 233) 2016-07-28 23:52:55 -04:00
Jeffrey Walton f0f0408c89 Add polynomial multiply instruction detection 2016-07-24 09:48:28 -04:00
Jeffrey Walton 5080a065ce Clear Valgrind findings under -Ofast 2016-07-12 23:05:00 -04:00
Jeffrey Walton 6c0b120072 Go back to Commit 66ada4cc61 2016-07-06 14:39:18 -04:00
Mouse 87be783cd1 Revert "Merge remote-tracking branch 'upstream/master'" - not intended to be merged by me
This reverts commit 762c315566, reversing
changes made to b48866631a.
2016-07-06 12:01:28 -04:00
Jeffrey Walton fb72dbc8cb Add MacPorts GCC compiler and Clang integrated assembler support. This is a merge of the development branch 'clang-ia' 2016-07-05 02:48:27 -04:00
Jeffrey Walton eaafd4206e Change "result=false" to "return fals". There's no sense in trying the instruction if we can't catch the SIGILL or we can't restore SIGMASK state 2016-06-01 01:27:53 -04:00
Jeffrey Walton 87e2da8388 Fix missing oldMask for x86 2016-05-31 23:25:44 -04:00
Jeffrey Walton f41adb8589 Fix "Too many initializers" under Visual Studio 2012 2016-05-30 07:49:14 -04:00
Jeffrey Walton fd6ccce8ed Added non-zero terms to CRC detection code. Exercise all SHA1 instructions during feature test. Apply GCC optimization workaround to MSVC code paths to avoid potential problems 2016-05-30 06:37:08 -04:00
Jeffrey Walton 89ec42b1f2 Fix GCC optimizing away feature tests 2016-05-30 03:08:53 -04:00
Jeffrey Walton c3d61ef78a Fix AMD RDRAND detection. Add VIA Padlock extension detection 2016-05-19 08:32:51 -04:00
Jeffrey Walton 2a163e0b14 Add test for AES, SHA1 and SHA2 from ARM Crypto extension from arm-neon branch 2016-05-19 04:45:35 -04:00
Jeffrey Walton 392c55d573 Add runtime detection code for ARM NEON, CRC32 and Crypto extensions 2016-05-16 18:47:43 -04:00
Jeffrey Walton 480532931b Improve Apple iOS support for ARM and NEON. Add ARM Crypto detection 2016-05-15 08:24:51 -04:00
Jeffrey Walton 01f77765d4 Add basic ARM and Windows Store support 2016-05-15 02:30:08 -04:00
Jeffrey Walton dfac7ec28b Fix Debian 8/GCC 4.9 compile on Core2 Duo 2016-04-25 01:43:45 -04:00
Jeffrey Walton a11c9e7574 Add SSE4.1 and SSE4.2 feature detection 2016-04-15 16:23:04 -04:00
Jeffrey Walton 6ac1e46a1f Cleared issues 11,12,13 (Clang integrated assembler), 58 (RC rollup), 66 (Coverity rollup) 2015-11-18 15:32:28 -05:00
Jeffrey Walton 48809d4e85 CRYPTOPP 5.6.3 RC6 checkin 2015-11-05 01:59:46 -05:00
Jeffrey Walton 07e8319478 Cleared "unused function" warning when using GCC with -Wall 2015-07-23 14:21:06 -04:00
Jeffrey Walton a56f07709e g_hasISSE -> h_hasSSE. That's how old this function is... 2015-07-19 13:39:57 -04:00
Jeffrey Walton f03ab5cbd1 Removed execute bit from C++ header and source files 2015-06-24 14:15:29 -04:00
weidai 0403d122e1 fix compile on Sun CC
fix compile for non-x86 CPUs
2010-07-28 23:45:28 +00:00
weidai 0e44445b68 fix compile on Mac OS X 2010-07-25 21:39:59 +00:00
weidai 7adbf89681 add support for AES-NI and CLMUL instruction sets in AES and GMAC/GCM 2010-07-24 05:55:22 +00:00
weidai 46832de97a add AESNI and CLMUL detection 2010-07-07 22:46:18 +00:00
weidai ae88c18bf7 fixed Whirlpool crash on Pentium 2 machines 2007-08-13 23:53:09 +00:00
weidai dbf12b654a fix g_cacheLineSize for Pentium 3 2007-05-04 19:19:01 +00:00
weidai d2510f30c7 fix compile for x64, DLL and VC 6 2007-05-04 15:24:09 +00:00
weidai 3a3fef7436 fix compile on Sun CC 2007-04-16 05:40:37 +00:00
weidai ab6b054cf4 CPU feature detection and assembly helpers 2007-04-16 00:45:50 +00:00