29 Commits

Author SHA1 Message Date
Jeffrey Walton
1dd0e321a6
Rework Makefile and ppc-simd.h for XLC and LLVM front-end changes 2018-08-05 05:39:42 -04:00
Jeffrey Walton
9ce1648f83
Update comments 2018-08-03 16:16:08 -04:00
Jeffrey Walton
4540ab4f10
Rework PPC probes for XLC and LLVM 2018-08-03 07:02:27 -04:00
Jeffrey Walton
7e14cab8a3
Rework PPC probes for XLC and LLVM 2018-08-03 02:54:50 -04:00
Jeffrey Walton
c4eb38b856
Improve CPU_ProbePower8() test 2018-08-03 01:27:39 -04:00
Jeffrey Walton
0cee6f01f0
Squash MS LNK4221 and libtool warnings 2018-07-06 01:22:38 -04:00
Ilja
f035ad7187 Remove extra ; from ppc-simd.cpp (PR #620) 2018-03-31 13:06:44 -04:00
Jeffrey Walton
626c86987b
Fix SHA feature detection on AIX
This one should have been fixed before the Crypto++ 6.1 release. Its no big deal, however. Power8 accelerated SHA-256 is 1.5x to 2x slower than straight C++. SHA-512 may be better, but the implementation is not ready to performance test.
2018-03-05 07:05:12 -05:00
Jeffrey Walton
788cd1794d
Use x86 highest basic before calling a leaf function
This was a latent bug that just surfaced on a Sun Core2 workstation. RDSEED caused an illegal instruction exception on the Core2. It seems we managed to miss it because old processors had family and stepping values so low they never set CPUID.EBX.RDSEED[bit 18] = 1. Newer processors had the feature so CPUID.EBX.RDSEED[bit 18] = 1 was accurate.
2018-01-11 17:59:24 -05:00
Jeffrey Walton
8cc24aa9c0
Update head notes in ppc-simd.cpp 2018-01-11 13:20:29 -05:00
Jeffrey Walton
a49ff560e7 Update head notes 2018-01-11 13:16:13 -05:00
Jeffrey Walton
691e7af29a
Fix defines for PPC feature probes
Thanks to Bob Wilkinson for reporting at https://groups.google.com/d/msg/cryptopp-users/gPJOMOUMLhU/xHTxD8P-AgAJ
2018-01-11 13:04:59 -05:00
Jeffrey Walton
1699562581 Remove commented code 2017-12-28 19:25:45 -05:00
Jeffrey Walton
d7a2e0e10c
Removed unneeded defines from ppc-simd.cpp
Whitespace check-in
2017-12-16 20:26:59 -05:00
Jeffrey Walton
ca54d0c7da
Add CRYPTOPP_POWER5_AVAILABLE
Power4 lacks 'vector long long'
Rename datatypes such as 'uint8x16_p8' to 'uint8x16_p'. Originally the p8 suffix indicated use with Power8 in-core crypto. We are now using Altivec/Power4 for general vector operations.
2017-12-12 08:14:53 -05:00
Jeffrey Walton
b7e636ac51
Rename ppc-crypto.h to ppc-simd.h 2017-12-12 07:15:59 -05:00
Jeffrey Walton
bd41c3d5dd
Remove SSE2 from cpu.cpp, add sse-simd.cpp
We need to ensure SSE2 does not cross pollinate into other CPU functions since SSE2 is greater than the minimum arch. The minimum arch is i586/i686, and both lack SSE2 instructions
2017-11-16 15:11:51 -05:00
Jeffrey Walton
7ba8c6bc81
Cleanup Altivec and Power7 code paths
This changes the dependency from Altivec to Power7. Internally we needed Power7 but it was cut-in as a pseudo Altivec dependency. Also see http://groups.google.com/forum/#!topic/cryptopp-users/fmEKOG41SG8
2017-10-17 22:50:45 -04:00
Jeffrey Walton
437eda09e0
Tweak "ppc-crypto.h" include on Power7 2017-10-13 02:23:39 -04:00
Jeffrey Walton
d5c12191b3
Update documentation 2017-09-22 18:31:59 -04:00
Jeffrey Walton
ced7cff64f
Add Power8 SHA256 and SHA512 support (GH #513) 2017-09-22 09:39:36 -04:00
Jeffrey Walton
3bd01f73ba
Add Power8 SHA256 and SHA512 support (GH #513) 2017-09-22 08:58:50 -04:00
Jeffrey Walton
6102333fc3
Add CRYPTOPP_NO_CPU_FEATURE_PROBES (GH #511)
We determine machine capabilities by performing an os/platform *query* first, like getauxv(). If the *query* fails, we move onto a cpu *probe*. The cpu *probe* tries to exeute an instruction and then catches a SIGILL on Linux or the exception EXCEPTION_ILLEGAL_INSTRUCTION on Windows. Some OSes fail to hangle a SIGILL gracefully, like Apple OSes. Apple machines corrupt memory and variables around the probe.
2017-09-19 21:08:37 -04:00
Jeffrey Walton
5289915d72
Fix compiler crash in ppc-simd.cpp
I think this is https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82112
2017-09-14 01:01:00 -04:00
Jeffrey Walton
cfb63decec
Guard probe functions
This broke Aarch64
2017-09-12 05:49:38 -04:00
Jeffrey Walton
7fb34e9b08
Add Power8 AES encryption
This is the forward direction on encryption only.  Crypto++ uses the "Equivalent Inverse Cipher" (FIPS-197, Section 5.3.5, p.23), and it is not compatible with IBM hardware. The library library will need to re-work the decryption key scheduling routines. (We may be able to work around it another way, but I have not investigated it).
2017-09-11 22:52:22 -04:00
Jeffrey Walton
9c9d5ebe87
Undef vector, bool and pixel 2017-09-11 22:39:59 -04:00
Jeffrey Walton
120b415e27
Clear compile error on AIX
Truncation due to -1
2017-09-11 04:10:02 -04:00
Jeffrey Walton
fb78afba29
Add PowerPC support to cpu.h and validate.cpp 2017-09-11 03:05:04 -04:00