Commit Graph

3014 Commits (5296e087adda0414cb45f62d5e28bb9da257925d)

Author SHA1 Message Date
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
Jeffrey Walton 66c84a9af4
Fix failed feature detections under IBM XL C/C++ compiler 2017-09-09 18:44:08 -04:00
Jeffrey Walton ba569b55ca
Reduce IBM XL C/C++ compiler to -O2
Early versions of IBM XL C/C++ for AIX, V13.1 fail some self tests, like TEA and XTEA
2017-09-09 17:22:42 -04:00
Jeffrey Walton e6f19111e0
Fix IBM XL C/C++ compiler version output in test script 2017-09-09 16:26:16 -04:00
Jeffrey Walton 263c38d681
Avoid pthread gear for IBM XL C/C++ compiler on AIX 2017-09-09 16:25:15 -04:00
Jeffrey Walton 38de6b0436
Fix RTTI and PIC under IBM XL C/C++ on AIX 2017-09-09 16:24:01 -04:00
Jeffrey Walton b974c7f98e
Avoid -pipe for IBM XL C/C++ compiler 2017-09-09 15:10:32 -04:00