summaryrefslogtreecommitdiff
path: root/cipher/sha1-ssse3-amd64.S
AgeCommit message (Collapse)AuthorFilesLines
2015-05-02Enable AMD64 SHA1 implementations for WIN64Jussi Kivilinna1-2/+10
* cipher/sha1-avx-amd64.S: Enable when HAVE_COMPATIBLE_GCC_WIN64_PLATFORM_AS defined. (ELF): New macro to mask lines with ELF specific commands. * cipher/sha1-avx-bmi2-amd64.S: Ditto. * cipher/sha1-ssse3-amd64.S: Ditto. * cipher/sha1.c (USE_SSSE3, USE_AVX, USE_BMI2): Enable when HAVE_COMPATIBLE_GCC_WIN64_PLATFORM_AS defined. [USE_SSSE3 || USE_AVX || USE_BMI2] (ASM_FUNC_ABI) (ASM_EXTRA_STACK): New. (_gcry_sha1_transform_amd64_ssse3, _gcry_sha1_transform_amd64_avx) (_gcry_sha1_transform_amd64_avx_bmi2): Add ASM_FUNC_ABI to prototypes. (transform): Add ASM_EXTRA_STACK to stack burn value. -- Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
2013-12-18Change utf-8 copyright characters to '(C)'Jussi Kivilinna1-1/+1
cipher/blowfish-amd64.S: Change utf-8 encoded copyright character to '(C)'. cipher/blowfish-arm.S: Ditto. cipher/bufhelp.h: Ditto. cipher/camellia-aesni-avx-amd64.S: Ditto. cipher/camellia-aesni-avx2-amd64.S: Ditto. cipher/camellia-arm.S: Ditto. cipher/cast5-amd64.S: Ditto. cipher/cast5-arm.S: Ditto. cipher/cipher-ccm.c: Ditto. cipher/cipher-cmac.c: Ditto. cipher/cipher-gcm.c: Ditto. cipher/cipher-selftest.c: Ditto. cipher/cipher-selftest.h: Ditto. cipher/mac-cmac.c: Ditto. cipher/mac-gmac.c: Ditto. cipher/mac-hmac.c: Ditto. cipher/mac-internal.h: Ditto. cipher/mac.c: Ditto. cipher/rijndael-amd64.S: Ditto. cipher/rijndael-arm.S: Ditto. cipher/salsa20-amd64.S: Ditto. cipher/salsa20-armv7-neon.S: Ditto. cipher/serpent-armv7-neon.S: Ditto. cipher/serpent-avx2-amd64.S: Ditto. cipher/serpent-sse2-amd64.S: Ditto. -- Avoid use of '©' for easier parsing of source for copyright information. Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
2013-12-17SHA-1/SSSE3: Improve performance on large buffersJussi Kivilinna1-10/+60
* cipher/sha1-ssse3-amd64.S (RNBLKS): New. (_gcry_sha1_transform_amd64_ssse3): Handle multiple input blocks, with software pipelining of next data block processing. * cipher/sha1.c [USE_SSSE3] (_gcry_sha1_transform_amd64_ssse3): Add 'nblks'. (transform) [USE_SSSE3]: Pass nblks to assembly function. -- Patch gives small improvement for large buffer processing, on Intel i5-4570 speed goes from 4.80 c/B to 4.61 c/B. Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
2013-12-14Minor fixes to SHA assembly implementationsJussi Kivilinna1-1/+1
* cipher/Makefile.am: Correct 'sha256-avx*.S' to 'sha512-avx*.S'. * cipher/sha1-ssse3-amd64.S: First line, correct filename. * cipher/sha256-ssse3-amd64.S: Return correct stack burn depth. * cipher/sha512-avx-amd64.S: Use 'vzeroall' to clear registers. * cipher/sha512-avx2-bmi2-amd64.S: Ditto and return correct stack burn depth. -- Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
2013-12-14SHA-1/SSSE3: Do not check for Intel syntax assembly supportJussi Kivilinna1-1/+0
* cipher/sha1-ssse3-amd64.S: Remove check for HAVE_INTEL_SYNTAX_PLATFORM_AS. * cipher/sha1.c [USE_SSSE3]: Ditto. -- SHA-1 SSSE3 implementation uses AT&T syntax so check for HAVE_INTEL_SYNTAX_PLATFORM_AS is unnecessary. Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
2013-12-13Convert SHA-1 SSSE3 implementation from mixed asm&C to pure asmJussi Kivilinna1-0/+378
* cipher/Makefile.am: Change 'sha1-ssse3-amd64.c' to 'sha1-ssse3-amd64.S'. * cipher/sha1-ssse3-amd64.c: Remove. * cipher/sha1-ssse3-amd64.S: New. -- Mixed C&asm implementation appears to trigger GCC bugs easily. Therefore convert SSSE3 implementation to pure assembly for safety. Benchmark also show smallish speed improvement. cpu C&asm asm Intel i5-4570 5.22 c/B 5.09 c/B Intel i5-2450M 7.24 c/B 7.00 c/B Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>