summaryrefslogtreecommitdiff
path: root/arm
Commit message (Collapse)AuthorAgeFilesLines
* arm: Implement sha256_compress_nNiels Möller2022-07-262-36/+80
|
* Delete the ARM Neon code doing a single block chacha.delete-1-way-neonNiels Möller2021-01-252-181/+0
|
* Delete the ARM Neon code doing a single block salsa20.Niels Möller2021-01-252-243/+0
|
* arm: Unify neon asm for big- and little-endian modesMichael Weiser2021-01-135-89/+95
| | | | | | | | | | | | | | | | | | | | | | | | | Switch arm neon assembler routines to endianness-agnostic loads and stores where possible to avoid modifications to the rest of the code. This involves switching to vld1.32 for loading consecutive 32-bit words in host endianness as well as vst1.8 for storing back to memory in little-endian order as required by the caller. Where necessary, r3 is used to store the precalculated offset into the source vector for the secondary load operations. vstm is kept for little-endian platforms because it is faster than vst1 on most ARM implementations. vst1.x (at least on the Allwinner A20 Cortex-A7 implementation) seems to interfer with itself on subsequent calls, slowing it down further. So we reschedule some instructions to do stores as soon as results become available to have some other calculations or loads before the next vst1.x. This reliably saves two additional cycles per block on salsa20 and chacha which would otherwise be incurred. vld1.x does not seem to suffer from this or at least not to a level where two consecutive vld1.x run slower than an equivalent vldm. Rescheduling them similarly did not improve performance beyond that of vldm. Signed-off-by: Michael Weiser <michael.weiser@gmx.de>
* arm: Fix comment typoNiels Möller2020-12-211-1/+1
| | | | Spotted by Michael Weiser
* Update ARM mod and redc functionsNiels Möller2020-10-315-88/+99
|
* Use default m4 quote character in asm files, part 2Niels Möller2020-09-1337-602/+602
| | | | Update arm files.
* Rearrange chacha_crypt and chacha_crypt32, enabling fat builds to use ↵chacha-3core-neonNiels Möller2020-07-141-0/+36
| | | | chacha_3core
* Fix (arm neon) _nettle_chacha_3core32Niels Möller2020-07-141-1/+0
|
* Keep counter words in registersNiels Möller2020-07-131-13/+17
|
* Reschedule first permutationNiels Möller2020-07-131-12/+10
|
* Reschedule second permutationNiels Möller2020-07-131-11/+9
|
* Reschedule second qroundNiels Möller2020-07-131-26/+29
|
* Reschedule first qroundNiels Möller2020-07-131-26/+29
|
* Three-way interleaving of chacha on NeonNiels Möller2020-07-131-0/+242
|
* Rearrange salsa20, enabling ARM fat builds to use sala20_2core.salsa20-2core-neonNiels Möller2020-07-081-0/+36
|
* Two-way interleaving of salsa20 on NeonNiels Möller2020-07-061-0/+206
|
* arm: Fix memxor for non-armv6+ big-endian systemsMichael Weiser2020-03-122-19/+25
| | | | | | | | | | | ARM assembly adjustments for big-endian systems contained armv6+-only instructions (rev) in generic arm memxor code. Replace those with an actual conversion of the leftover byte store routines for big-endian systems. This also provides a slight optimisation by removing the additional instruction as well as increased symmetry between little- and big-endian implementations. Signed-off-by: Michael Weiser <michael.weiser@gmx.de>
* ecc: rename functions to contain curve names instead of bitsDmitry Eremin-Solenikov2020-01-105-15/+15
| | | | | | | | Rename curve functions to use curve names instead of just bits. Otherwise function names can easily become confusing after adding other curves. Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
* ecc: prefix optimized ECC function names with underscoreDmitry Eremin-Solenikov2020-01-105-10/+10
| | | | | | | There is no need to keep optimized ECC functions in public namespace (nettle_*), move them to internal namespace (_nettle_*). Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
* ecc: rename source files with curves dataDmitry Eremin-Solenikov2020-01-105-10/+10
| | | | | | | In preparation to adding GOST curves support, rename source files and use curve name as eccdata parameter. Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
* Add --enable-fat support for arm neon chacha20Yuriy M. Kaminskiy2019-01-191-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | On BCM2837B0 (Cortex-A53) @1.4GHz (Raspberry Pi 3B+), Before: `gnutls-cli --benchmark-ciphers` CHACHA20-POLY1305 (16384) 51.54 MB/sec `gnutls-cli --benchmark-tls-ciphers`: ECDHE_RSA_CHACHA20_POLY1305 (payload 1400) 21.31 MB/sec ECDHE_RSA_CHACHA20_POLY1305 (payload 15360) 24.60 MB/sec `nettle-benchmark` chacha encrypt 71.90 chacha decrypt 71.89 chacha_poly1305 encrypt 48.17 chacha_poly1305 decrypt 48.17 chacha_poly1305 update 146.03 After: `gnutls-cli --benchmark-ciphers` CHACHA20-POLY1305 (16384) 68.44 MB/sec `gnutls-cli --benchmark-tls-ciphers`: ECDHE_RSA_CHACHA20_POLY1305 (payload 1400) 27.25 MB/sec ECDHE_RSA_CHACHA20_POLY1305 (payload 15360) 32.41 MB/sec `nettle-benchmark` chacha encrypt 106.00 chacha decrypt 105.94 chacha_poly1305 encrypt 65.94 chacha_poly1305 decrypt 65.96 chacha_poly1305 update 175.24
* Fix arm fat setup for nettle_sha1_compress.Niels Möller2018-07-121-1/+1
|
* abi: explicitly export intended symbols and hide othersNikos Mavrogiannopoulos2018-07-072-4/+4
| | | | | | | | | | | | | This adds all exported symbols in the map files explicitly under the following rules: - Symbols mentioned in internal headers go in a section which is valid only for testing, and linking with these symbols will break in library updates. - Symbols mentioned in installed headers go in the exported sections and are considered part of the ABI. - All internal symbols move to internal headers. - The _nettle_md5_compress and _nettle_sha1_compress become exported without the _nettle prefix, due to existing usage.
* Document arm endianness considerationsMichael Weiser2018-03-251-1/+68
| | | | | | Extend arm/README to provide some background on considerations to be taken into account when writing assembly routines supposed to work in big and little memory endianness.
* Support big-endian arm in assembly codeMichael Weiser2018-03-257-42/+138
| | | | | Adjust sha1-compress, sha256-compress, umac-nh, chacha-core-internal, salsa20-core-internal and memxor for arm to work in big-endian mode.
* Make nettle compile with pre-UAL arm assembler.Marcus Hoffmann2017-03-091-1/+1
| | | | | | | See: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204j/Cjagjjbc.html The pre-UAL instruction is also accepted by modern assemblers. Signed-off-by: Marcus Hoffmann <m.hoffmann@cartelsol.com>
* ARM Neon implementation of chacha.Niels Möller2015-06-031-0/+136
|
* Fix syntax error in ARM offset addressing. Spotted by Jukka Ukkonen.Niels Möller2015-04-291-2/+2
|
* Drop unneeded %-prefix on ARM register.Niels Möller2015-04-292-2/+2
|
* In arm fat build, hook in sha1 and sha256 armv6 assembly.Niels Möller2015-01-252-0/+74
|
* arm: Add .arch directives for armv6Martin Storsjö2015-01-254-0/+6
| | | | | This allows building these files as part of a fat build, even if the assembler by default targets a lower architecture version.
* Fat functions for arm neon.Niels Möller2015-01-215-0/+185
|
* Initial fat library support for arm.Niels Möller2015-01-194-0/+140
|
* arm: Moved memxor3 to new file, arm/memxor3.asm.Niels Möller2015-01-102-271/+315
|
* Comment updates.Niels Möller2014-09-225-8/+8
|
* Update copyright headers for dual licensing, arm directories.Niels Möller2014-04-1217-306/+527
|
* Merged aes-reorg branch.Niels Möller2013-09-284-114/+166
|\
| * arm: Adapted AES assembly to new interface.Niels Möller2013-05-224-114/+166
| |
* | arm: Moved sha1 and sha256 assembly into v6 subdirectory.Niels Möller2013-05-202-0/+0
|/
* arm: Added AES code for pre-v6 processors.Niels Möller2013-05-163-0/+361
|
* arm: Renamed AES_FINAL_ROUND.Niels Möller2013-05-163-10/+10
|
* arm/v6: AES microptimization.Niels Möller2013-05-163-9/+4
|
* arm: Moved AES round macros from aes.m4 to the files using them.Niels Möller2013-05-163-123/+124
|
* arm/v6: Alignment tweaks to aes code.Niels Möller2013-05-162-4/+8
|
* New asm directory arm/v6. Moved aes functions using the uxtb instruction there.Niels Möller2013-05-152-0/+0
|
* Comment updates in asm files.Niels Möller2013-04-263-3/+2
|
* Updated some memxor comments.Niels Möller2013-04-241-2/+2
|
* Added nettle_ prefix to memxor symbols.Niels Möller2013-04-241-4/+4
|
* Reorganization of ARM assembly.Niels Möller2013-04-1818-0/+3291
Renamed directory armv7 to arm. New subdirectory arm/neon, for files using neon instructions. configure.ac hacked to make use of neon configurable.