Commit Graph

2975 Commits (8a66353b2c98e2a9134121e1d9cccc8a550a58d0)

Author SHA1 Message Date
Jeffrey Walton 8a66353b2c
Test <arm_acle.h> include under Apple
This is a compile test
2017-08-11 12:31:04 -04:00
Jeffrey Walton 22b7d74e1f
Test Apple ARM64 runtime detection
This is a compile test
2017-08-11 11:57:30 -04:00
Jeffrey Walton a46377caf7
Clear "C4189: 'keys': local variable is initialized but not referenced" 2017-08-11 08:32:09 -04:00
Jeffrey Walton f7978a6529
Sync with Upstream master 2017-08-11 07:53:37 -04:00
Jeffrey Walton 28a1fc2c60 Sync with Upstream master 2017-08-11 07:36:27 -04:00
Jeffrey Walton 173dd0b530
Add AES for ARMv8 (Issue 458) 2017-08-11 07:31:09 -04:00
Jeffrey Walton 6c28b521bd
Fix Illegal Instruction under SSE2+SSSE3
It appears SSE4.1 crept into our SSE2+SSSE3 implementation. We'll revisit it in the future
2017-08-11 06:43:14 -04:00
Jeffrey Walton 0c194bbc46
Fix "SSE4.2 instruction set not enabled"
Also see https://gcc.gnu.org/ml/gcc-help/2017-08/msg00015.html
2017-08-11 05:28:36 -04:00
Jeffrey Walton ce96a7974d Sync with Upstream master 2017-08-10 23:04:12 -04:00
Jeffrey Walton e5b1be035e
Add iOS testing to Travis 2017-08-10 22:59:00 -04:00
Jeffrey Walton 70a0ca0826
Try to enable Travis iOS testing
Take 18
2017-08-10 22:37:20 -04:00
Jeffrey Walton 7907742c1a
Try to enable Travis iOS testing
Take 17
2017-08-10 22:10:47 -04:00
Jeffrey Walton 0b31e7ff5e
Fix broken compiler under Apple Clang for ARMv8
Undefined symbols for architecture arm64:

  "CryptoPP::CRC32_Update_ARMV8(unsigned char const*, unsigned long, unsigned int&)", referenced from:

      CryptoPP::CRC32::Update(unsigned char const*, unsigned long) in libcryptopp.a(crc.o)

  "CryptoPP::CRC32C_Update_ARMV8(unsigned char const*, unsigned long, unsigned int&)", referenced from:

      CryptoPP::CRC32C::Update(unsigned char const*, unsigned long) in libcryptopp.a(crc.o)

ld: symbol(s) not found for architecture arm64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

make: *** [cryptest.exe] Error 1
2017-08-10 22:08:40 -04:00
Jeffrey Walton 4a6cdc34a5
Try to enable Travis iOS testing
Take 16
2017-08-10 21:19:29 -04:00
Jeffrey Walton c99beec2cd
Fix "error: use of undeclared identifier 'NULL'" on iOS 2017-08-10 21:18:29 -04:00
Jeffrey Walton 7cbadb43f9
Try to enable Travis iOS testing
Take 15
2017-08-10 21:11:33 -04:00
Jeffrey Walton 9df1c3b09b
Try to enable Travis iOS testing
Take 14
2017-08-10 21:07:20 -04:00
Jeffrey Walton cea2249608
Try to enable Travis iOS testing
Take 13
2017-08-10 21:01:24 -04:00
Jeffrey Walton 2d97cf8bf8
Try to enable Travis iOS testing
Take 12
2017-08-10 20:51:07 -04:00
Jeffrey Walton eae89e2af0
Try to enable Travis iOS testing
Take 11
2017-08-10 20:33:39 -04:00
Jeffrey Walton 6392bcc69d
Try to enable Travis iOS testing
Take 10
2017-08-10 20:24:15 -04:00
Jeffrey Walton b5e2980664
Try to enable Travis iOS testing
Take 8
2017-08-10 20:18:56 -04:00
Jeffrey Walton 60ec7dff59
Try to enable Travis iOS testing
Take 7
2017-08-10 20:14:18 -04:00
Jeffrey Walton c9ad2dbb51
Try to enable Travis iOS testing
Take 6
2017-08-10 20:08:10 -04:00
Jeffrey Walton d9b15e8ab7
Try to enable Travis iOS testing
Take 6
2017-08-10 20:06:19 -04:00
Jeffrey Walton 89b937bbd7
Try to enable Travis iOS testing
Take 5
2017-08-10 19:58:43 -04:00
Jeffrey Walton d79d14b3ef
Try to enable Travis iOS testing
Take 4
2017-08-10 19:55:09 -04:00
Jeffrey Walton 12064f03ee
Try to enable Travis iOS testing
Take 3
2017-08-10 19:53:09 -04:00
Jeffrey Walton bf47e175e3
Try to enable Travis iOS testing
Take 2
2017-08-10 19:50:41 -04:00
Jeffrey Walton e5d99322fd
Try to enable Travis iOS testing
Take 1
2017-08-10 14:35:41 -04:00
Jeffrey Walton 69b3a7a664
Fix compile on Solaris 11.3 under GCC and SunCC 2017-08-09 00:14:54 -04:00
Jeffrey Walton b7c7874d15
Defer on cast from wor32* to __m128i*
It appears this is optimized better, and it saves 0.1 cpb
2017-08-08 20:49:44 -04:00
Jeffrey Walton 0b8d6465bd
Use consistent naming of <class>_<inner class>_<func>_<arch> 2017-08-08 19:10:56 -04:00
Jeffrey Walton e797418fbf
Fix Visual Studio 2017 MSC version number 2017-08-08 06:54:57 -04:00
Jeffrey Walton 6590a928ce
Add Android ARMv8 guards 2017-08-07 21:04:23 -04:00
Jeffrey Walton b4172f3dd0 Sync with Upstream master 2017-08-07 19:05:01 -04:00
Jeffrey Walton 24bc2b8567
Add HMAC(SHA256) benchmark 2017-08-07 19:04:14 -04:00
Jeffrey Walton c45c262d2c
Update Android defines 2017-08-07 13:43:40 -04:00
Jeffrey Walton a8cbfc52fc
__android__ → __ANDROID__
Also see https://stackoverflow.com/q/6374523/608639
2017-08-07 12:18:39 -04:00
Jeffrey Walton 42d91b76fc
Fix compile under Clang 3.5 due to use of SSE4.1
Both Apple and LLVM Clang want -msse4.2 even when only SSE4.1 is used. Sidestep it because we don't know how it will affect some of the lower end Atoms.

84877:/usr/include/clang/3.5.0/include/nmmintrin.h:28:2: error: "SSE4.2 instruction set not enabled"
84878:#error "SSE4.2 instruction set not enabled"
84880:rijndael-simd.cpp:466:26: error: use of undeclared identifier '_mm_extract_epi32'; did you mean '_mm_extract_epi16'?
84887:rijndael-simd.cpp:480:11: error: use of undeclared identifier '_mm_insert_epi32'; did you mean '_mm_insert_epi16'?
84894:rijndael-simd.cpp:485:11: error: use of undeclared identifier '_mm_insert_epi32'; did you mean '_mm_insert_epi16'?
...
2017-08-07 12:03:17 -04:00
Jeffrey Walton a8b3327265
Add Android CPU feature detection for NEON
Also see https://developer.android.com/ndk/guides/cpu-features.html
2017-08-07 11:33:12 -04:00
Jeffrey Walton d95a38a9fc
Add Android CPU feature detection code
Also see https://developer.android.com/ndk/guides/cpu-features.html
2017-08-07 11:20:14 -04:00
Jeffrey Walton a04dda56fa
Separate Aarch32 and Aarch64 guards
Also see https://sourceware.org/ml/libc-help/2017-08/msg00012.html
2017-08-07 10:37:02 -04:00
Jeffrey Walton 9161443f6d Sync with Upstream master 2017-08-07 09:47:58 -04:00
Jeffrey Walton 58b731c645
Fix "Integer constant is too large for 'long' type"
kalyna.cpp:432: error: integer constant is too large for 'long' type
kalyna.cpp:509: error: integer constant is too large for 'long' type
kalyna.cpp:608: error: integer constant is too large for 'long' type
kalyna.cpp:713: error: integer constant is too large for 'long' type
kalyna.cpp:833: error: integer constant is too large for 'long' type
...
2017-08-07 09:46:33 -04:00
Jeffrey Walton 4ebf9b915e
Add ARM specific guard for Linux
Update AppVeyor config to checkout 3 deep to avoid "fatal: reference is not a tree: 89ccfad2d08..."
2017-08-07 08:22:13 -04:00
Jeffrey Walton 2ac6c6dd20
Add Aarch32 and Aarch64 specific guards for Linux 2017-08-07 07:58:16 -04:00
Jeffrey Walton 89ccfad2d0
Use getauxval on Linux for features
getauxval() is the recommended way to determine features on Linux. Its likely less expensive than CPU probing for SIGILLs. We gave up portability, but some gained stability
2017-08-07 07:37:08 -04:00
Jeffrey Walton 08cb017836
Update comments
Provide CriticalBlue with recognition of their helpful work with mbedTLS. Thanks to Johannes Schneiders, Skip Hovsmith and Barry O'Rourke
2017-08-07 05:30:15 -04:00
Jeffrey Walton 6478d6db87
Unroll ARMv8 AES encryption and decyption loops
Unrolling gains about 0.3 to 0.5 cpb
2017-08-07 01:32:25 -04:00