Commit Graph

3120 Commits

Author SHA1 Message Date
Jeffrey Walton
30d519c0bc
Use -O3 for IBM XL C/C++ (GH #502)
We held back XL C/C++ due to warnings and self test failures. Since clearing Issue 502, we are OK for -O3 so we can live with the warnings.
2017-09-16 08:22:25 -04:00
Jeffrey Walton
fc0867827e
Fix TEA and XTE hand with IBM XL C/C++ compiler (GH #503)
It looks like Sun compilers had problems with the loop in the past, too. The Sun workarounds did not help with XL C/C++, however.
2017-09-16 08:20:35 -04:00
Jeffrey Walton
4670e3d5bc Revert "Use -O3 for IBM XL C/C++ (GH #502)"
This reverts commit aa348abd15. It caused a hang in the TEA algorithm. Also see GH #503.
2017-09-16 05:55:37 -04:00
Jeffrey Walton
aa348abd15
Use -O3 for IBM XL C/C++ (GH #502)
We held back XL C/C++ due to warnings and self test failures. Since clearing Issue 502, we are OK for -O3 so we can live with the warnings.
2017-09-16 02:19:06 -04:00
Jeffrey Walton
205ebe0871
Add missing newline to IA-32 config output
Avoid flushing stream for config line items
Use memcpy in std:: namespace
2017-09-16 01:36:45 -04:00
Jeffrey Walton
2814842b97
Switch to CRYPTOPP_CONSTANT for cpu flags 2017-09-16 01:21:14 -04:00
Jeffrey Walton
5296e087ad
Fix func/subfunc parameter names (GH #502) 2017-09-16 00:19:14 -04:00
Jeffrey Walton
7bdb62b336
Fix bad SHA152 hash under IBM XL C/C++ compiler (GH #502) 2017-09-15 18:33:05 -04:00
Jeffrey Walton
b079803856
Fix compile under Embarcadero (GH #498)
[bcc32c Error] blake2.cpp(49): 'alignas' must be specified on definition if it is specified on any declaration
2017-09-15 12:43:18 -04:00
Jeffrey Walton
173a7a8025
Fix compile under Embarcadero (GH #498)
[bcc32 Error] cpu.cpp (131): E2211 Inline assembly not allowed in inline and template functions
2017-09-15 12:42:50 -04:00
Jeffrey Walton
adea69ab68
Avoid increment during stores of 6x blocks
This provides another 0.1 cpb with GCC
2017-09-14 21:06:44 -04:00
Jeffrey Walton
25efb7a140
Use 6x blocks for ARMv8 AES rather than 4x
We gain 0.1 to 0.3 cpb, depending on the mode
2017-09-14 20:32:06 -04:00
Jeffrey Walton
51752cb91a
Fix "X causes a section type conflict with Y" for GCC on AIX (GH #499)
We have no idea what caused the issue or why it fixed it
2017-09-14 17:45:55 -04:00
Jeffrey Walton
58890ff053
Use 6x blocks for Power8 AES rather than 4x
Perforamnce increased for all modes when performing 6x vs 4x. 8x and 12x performed worse.

Here are the numbers:
4x Blocks:

<TR><TH>AES/CTR (128-bit key)<TD>1563<TD>2.1<TD>0.409<TD>1392
<TR><TH>AES/CTR (192-bit key)<TD>1403<TD>2.3<TD>0.450<TD>1529
<TR><TH>AES/CTR (256-bit key)<TD>1280<TD>2.5<TD>0.482<TD>1639
<TR><TH>AES/CBC (128-bit key)<TD>582<TD>5.6<TD>0.359<TD>1222
<TR><TH>AES/CBC (192-bit key)<TD>517<TD>6.3<TD>0.394<TD>1339
<TR><TH>AES/CBC (256-bit key)<TD>474<TD>6.8<TD>0.432<TD>1469
<TR><TH>AES/OFB (128-bit key)<TD>533<TD>6.1<TD>0.402<TD>1368
<TR><TH>AES/CFB (128-bit key)<TD>563<TD>5.8<TD>0.461<TD>1568
<TR><TH>AES/ECB (128-bit key)<TD>1829<TD>1.8<TD>0.240<TD>817

6x Blocks:

<TR><TH>AES/CTR (128-bit key)<TD>1750<TD>1.7<TD>0.406<TD>1300
<TR><TH>AES/CTR (192-bit key)<TD>1638<TD>1.9<TD>0.447<TD>1432
<TR><TH>AES/CTR (256-bit key)<TD>1528<TD>2.0<TD>0.482<TD>1541
<TR><TH>AES/CBC (128-bit key)<TD>582<TD>5.2<TD>0.358<TD>1145
<TR><TH>AES/CBC (192-bit key)<TD>517<TD>5.9<TD>0.394<TD>1260
<TR><TH>AES/CBC (256-bit key)<TD>474<TD>6.4<TD>0.431<TD>1379
<TR><TH>AES/OFB (128-bit key)<TD>533<TD>5.7<TD>0.400<TD>1281
<TR><TH>AES/CFB (128-bit key)<TD>563<TD>5.4<TD>0.461<TD>1476
<TR><TH>AES/ECB (128-bit key)<TD>1950<TD>1.6<TD>0.238<TD>763
2017-09-14 16:07:21 -04:00
Jeffrey Walton
08e4ee422e
Avoid increment during stores of 4x blocks
This provides another 0.1 cpb with GCC
2017-09-14 15:12:07 -04:00
Jeffrey Walton
ddeae859d0
Use vec_xl_be and vec_xst_be for IBM XL C/C++ compiler 2017-09-14 13:27:49 -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
63a0af4efa
Fix endianess for s_one on ARM big-endian 2017-09-13 22:52:29 -04:00
Jeffrey Walton
8e52ce6dd2
Load correct value fo 1 under ARM big endian 2017-09-13 21:42:15 -04:00
Jeffrey Walton
c22507e38b
Clear unused variable warnings under Clang 2017-09-13 21:37:55 -04:00
Jeffrey Walton
e891347212
Clear TODO items for setenv-android.sh for 6.0 (GH #491) 2017-09-13 19:37:48 -04:00
Jeffrey Walton
1c41da35bc
Use AOSP_CPU_OBJ instead of cpu-features.o 2017-09-13 18:58:07 -04:00
Jeffrey Walton
4c6a866a8d
Remove debug info statement from makefile 2017-09-13 18:51:45 -04:00
Jeffrey Walton
8d98417306
Add Aarch64 specific defines to Android cross-compile
Move <arm_acle.h> logic into "sonfig.h". Detecting when we can/should include <arm_acle.h> is proving to be troublesome
2017-09-13 17:16:57 -04:00
Jeffrey Walton
40859a80da
Improve detection of ANDROID_NDK_ROOT
We were searching for R10 NDK's, but Android is at R15 in 2017
2017-09-13 17:00:52 -04:00
Jeffrey Walton
fca8adc549
Fix CMAC 256-bit polynomial
Also see GH #423
2017-09-13 08:41:39 -04:00
Jeffrey Walton
172ab40874
Fix missing closing paren for Android Aarch64 (GH #491) 2017-09-13 07:32:08 -04:00
Jeffrey Walton
6e1a07025c
Build Android cpu-features from sources (GH #491)
Thanks to Deadpikle for suggesting the strategy
2017-09-13 07:16:41 -04:00
Jeffrey Walton
fcee76594c
Make armv7a-neon the default in 2017 with NDK R15 2017-09-13 05:22:19 -04:00
Jeffrey Walton
b255bf26ec
Fix missing cpu-features.h for Android 2017-09-13 04:18:04 -04:00
Jeffrey Walton
2375e87a5c
Fix unterminated close paren 2017-09-13 04:09:44 -04:00
Jeffrey Walton
397ccd7e49
remove commented code for Power8 2017-09-13 03:59:25 -04:00
Jeffrey Walton
6d459afa15 Revert "Bump Visual Studio version number for checked iterators (GH #496)"
This reverts commit 3b6e17b1. The version in Master was correct. The version the OP was using was incorrect.
2017-09-13 02:03:35 -04:00
Jeffrey Walton
3b6e17b1b4
Bump Visual Studio version number for checked iterators (GH #496) 2017-09-13 00:30:57 -04:00
Jeffrey Walton
502fdc61c9
Add -msse2 to i586 build (Issue 494) 2017-09-12 21:23:23 -04:00
Jeffrey Walton
2b24f5b9fe
VectorLoadAligned → VectorLoadKey
Add comments for the Load and Store functions
2017-09-12 20:38:58 -04:00
Jeffrey Walton
5659acb704
Cleanup vector casts 2017-09-12 19:44:34 -04:00
Jeffrey Walton
6899d3f8bb
Add AdvancedProcessBlocks for Power8
This increases performance to about 1.6 cpb. We are about 0.5 cpb behind Botan, and about 1.0 cpb behind OpenSSL. However, it beats the snot out of C/C++, which runs at 20 to 30 cpb
2017-09-12 18:15:55 -04:00
Jeffrey Walton
2ebd30d43c
Remove -mvsx option from Linux Power8 builds
This option is not needed
2017-09-12 18:10:07 -04:00
Jeffrey Walton
b090e5f69f
Add Power8 AES decryption 2017-09-12 05:53:17 -04:00
Jeffrey Walton
cfb63decec
Guard probe functions
This broke Aarch64
2017-09-12 05:49:38 -04:00
Jeffrey Walton
d748d4cfbe
Update header guards for x86 2017-09-12 05:39:33 -04:00
Jeffrey Walton
17bf824790
Guard <arm_acle.h> include for GCC 4.8
Use system includes for <arm_neon.h> and <arm_acle.h>
2017-09-12 05:29:51 -04:00
Jeffrey Walton
81a272b046
Update comments 2017-09-12 00:30:48 -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
e2072ae635
Update documentation 2017-09-11 03:43:37 -04:00
Jeffrey Walton
fb78afba29
Add PowerPC support to cpu.h and validate.cpp 2017-09-11 03:05:04 -04:00
Jeffrey Walton
9276b95221
Add Power8 support to Makefile 2017-09-09 20:33:06 -04:00