summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/bn/arch/aarch64 (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Mark read/write registers as non-overlapping for bn_qwmulw_{addqw_,}addw()jsing2023-07-241-3/+3
| | | | | | This does not cause an issue currently, however if called differently to their current usage, it can lead to an input being overwritten and incorrect results being generated.
* Provide optimised bn_clzw() for aarch64.jsing2023-06-211-1/+15
|
* Optimise bn_mul2_mulw_addtw() for aarch64.jsing2023-06-171-1/+28
| | | | | This provides significant performance gains for bn_sqr_comba4() and bn_sqr_comba8().
* Optimise quad word primitives on aarch64.jsing2023-06-121-1/+136
| | | | This provides a performance gain across most BN operations.
* Provide optimised bn_mulw_{addw,addw_addw,addtw}() for aarch64.jsing2023-05-281-1/+68
| | | | | This results in bn_mul_comba4() and bn_mul_comba8() requiring ~30% less instructions than they did previously.
* Provide optimised bn_addw_addw()/bn_subw_subw() for aarch64.jsing2023-05-281-1/+43
|
* Tweak indent and use named registers.jsing2023-04-171-13/+13
| | | | No functional change.
* Use separate lines instead of semicolons.bcook2023-02-251-4/+10
| | | | | | macOS aarch64 assembly dialect treats ; as comment instead of a newline ok tb@, jsing@
* Provide optimised versions of bn_addw() and bn_subw() for aarch64.jsing2023-02-171-1/+35
|
* Rename bn_umul_hilo() to bn_mulw().jsing2023-02-161-7/+7
| | | | | | | | | This keeps the naming consistent with the other bignum primitives that have been recently introduced. Also, use 1/0 intead of h/l (e.g. a1 instead of ah), as this keeps consistency with other primitives and allows for naming that works with double word, triple word and quadruple word inputs/outputs. Discussed with tb@
* Fix output constraints for bn_umul_hilo().jsing2023-02-041-2/+2
| | | | | | | | When bn_umul_hilo() is implemented using an instruction pair, mark the first output with a constraint that prevents the output from overlapping with the inputs ("&"). Otherwise the first instruction can overwrite the inputs, which then results in the second instruction producing incorrect value.
* Provide inline assembly versions of bn_umul_hilo() for aarch64/amd64/i386.jsing2023-01-311-1/+21
| | | | ok tb@
* Provide a per machine bn_arch.h.jsing2023-01-201-0/+24
This will provide a location for machine specific defines, prototypes and inline functions. ok tb@