Use BMI2 when available for MultiplyWordsLoHi, MulAcc and friends Using BMI2 saves about 0.03 ms on a Core i5 6400 @ 2.7 GHz. It is small but measurable. It also gives GCC more freedom in selecting memory or register operands
Jeffrey Walton
2019-05-31 09:42:39 -0400
Use BMI2 when available for MultiplyWordsLoHi, MulAcc and friends Using BMI2 saves about 0.03 ms on a Core i5 6400 @ 2.7 GHz. It is small but measurable. It also gives GCC more freedom in selecting memory or register operands
Jeffrey Walton
2019-05-31 05:37:35 -0400
Use ARM rev and rbit when appropriate We tried to add a ByteReverse(word64) and BitReverse(word64) overloads but GCC was producing bad code for it.
Jeffrey Walton
2019-05-27 14:27:12 -0400
Clear Valgrind finding in IncrementCounterByOne The single buffer IncrementCounterByOne generated a Valgrind finding on ARM. This commit uses the same pattern for both overloads in case Valgrind wants to fire on the two-buffer version.
Jeffrey Walton
2019-05-25 19:49:49 -0400
Fix IncrementCounterByOne This was introduced earlier in the day when clearing a Valgrind finding. It tested good with the self tests. However, we double process byte[0] if there's a carry.
Jeffrey Walton
2019-05-25 07:02:32 -0400
Fix SHA512 on ARM benchmarks This was a mistake when porting from Cryptogams to Crypto++. The macros VFP_ABI_PUSH and VFP_ABI_POP needed to be defined because they save and restore SIMD register state. They were originally missing during the port. The benchmarks would hang because the doubles we used for benchmarking were blown away in sha512_block_data_order_neon.
Jeffrey Walton
2019-05-25 06:23:19 -0400
Clear Valgrind warnings on ARM I don't believe these should have been findings. They were clear on x86, Aarch64 and PowerPC.
Jeffrey Walton
2019-05-25 03:41:05 -0400
Use CRYPTOGAMS_armcap_P for ARM (GH #846) Andy advised against removing the global caps variable. This commit reintroduces CRYPTOGAMS_armcap_P. However, due to the shared object symbol loading problem, we needed to use CRYPTOGAMS_armcap_P as a global, and not CRYPTOGAMS_armcap as a local. Using CRYPTOGAMS_armcap_P directly caused the symbol to be marked as R_ARM_ABS32 which avoids the problem with R_ARM_REL32.
Jeffrey Walton
2019-05-24 16:33:47 -0400
Remove unused CLANG_INTEGRATED_ASSEMBLER from Makefile This is an artifact that should have been removed at CRYPTOPP_DISABLE_MIXED_ASM.
Jeffrey Walton
2019-05-21 20:05:44 -0400
Fix Aarch64 compile in CPU_ProbeARMv7 Previous to the Cryptogams cut-in we could be sloppy and return anything for ARMv8. Now e have real code backing ARMv7 we need to return an accurate value.
Jeffrey Walton
2019-05-21 08:13:52 -0400
Enable Cryptogams AES on ARM using Clang It looks like AES needed -mthumb for Clang. SHA must not use -mthumb under Clang due to a crash.
Jeffrey Walton
2019-05-21 04:23:40 -0400
Add CRYPTOPP_CLANG_VERSION for ARM asm defines We should be using both CRYPTOPP_APPLE_CLANG_VERSION and CRYPTOPP_LLVM_CLANG_VERSION. We'll loop back to it when we have some time.
Jeffrey Walton
2019-05-21 03:02:35 -0400
Guard CPU_ProbeARMv7 with CRYPTOPP_BOOL_ARM32 (GH #844) We make these queries available on all platforms so folks don't need to guard code.
Jeffrey Walton
2019-05-20 23:33:06 -0400
Guard CPU_ProbeARMv7 with CRYPTOPP_BOOL_ARM32 (GH #844) We make these queries available on all platforms so folks don't need to guard code.
Jeffrey Walton
2019-05-20 23:30:12 -0400
Remove Aarch32 and Aarch64 from CPU_QueryARMv7 I believe some of the code may be generated differently. When testing CPU_ProbeARMv7 I had trouble compiling it on ARMv8.
Jeffrey Walton
2019-05-20 23:09:57 -0400
Fix CPU_QueryARMv7 for Clang (GH #844) This fixes the query under Clang. This appears to be a trickier problem because there is no explicit define for HWCAP_ARMv7. We rely on HWCAP_NEON as a proxy, or fallback to a CPU_ProbeARMv7.
Jeffrey Walton
2019-05-20 23:02:36 -0400
Fix CPU_ProbeARMv7 for Clang (GH #844) This fixes the probe undr Clang. However, we need to fix the CPU_QueryARMv7
Jeffrey Walton
2019-05-20 21:41:57 -0400
Fold declarations for CRYPTOGAMS_armcaps Also declare storage for CRYPTOGAMS_armcaps. This moves the symbol from BSS to initialized data. The Cryptogams module declares the symbol as common, so they are weak and use our declaration.
Jeffrey Walton
2019-05-20 17:03:57 -0400
Fix Scrypt crash when blockSize is 0 (GH #842) This may change in the future. I prefer to recover, and use default block size when block size is 0. But this stops the immediate problem of a crash.
Jeffrey Walton
2019-05-19 21:24:32 -0400
Add additional asserts in Scrypt::ValidateParameters (GH #842) We still need to figure out what to do, but we can start warning users immediately.
Jeffrey Walton
2019-05-19 18:52:37 -0400