opnsense-src/lib/libmd
Robert Clausecker f6210541f9 lib/libmd: add optimised SHA1 implementations for aarch64
This provides a scalar implementation and one using the SHA1
instruction set extensions.

For the scalar implementation, the w array is kept in registers,
speeding up the whole operations. For a 10 GiB file on my Windows
2023 Dev Kit (ARM Cortex A78C / ARM Cortex X1C):

Performance core:
    pre     43.1s   (238 MB/s)
    generic 41.3s   (247 MB/s)
    scalar  35.0s   (293 MB/s)
    sha1    12.8s   (800 MB/s)

Efficiency core:
    pre     54.2s   (189 MB/s)
    generic 55.9s   (183 MB/s)
    scalar  43.0s   (238 MB/s)
    sha1    16.2s   (632 MB/s)

Reviewed by:	getz
Differential Revision:	https://reviews.freebsd.org/D45444
2025-05-15 01:39:58 +02:00
..
aarch64 lib/libmd: add optimised SHA1 implementations for aarch64 2025-05-15 01:39:58 +02:00
amd64 lib/libmd: add optimised SHA1 implementations for amd64 2025-05-15 01:39:58 +02:00
i386 lib/libmd: replace SHA-1 implementation with Go's implementation 2025-05-15 01:39:58 +02:00
tests libmd: tests: raise WARNS to the default 2024-09-29 22:34:20 -05:00
Makefile lib/libmd: add optimised SHA1 implementations for amd64 2025-05-15 01:39:58 +02:00
Makefile.depend Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
md4.copyright Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
md4.h Consolidate md4 implementations written in C 2024-09-29 22:34:21 -05:00
md5.copyright Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
md5.h libmd, kern, stand: consolidate md5 implementations (NFC) 2024-09-29 22:34:18 -05:00
mdX.3 libmd: export and document *Fd/*FdChunk interfaces 2024-09-29 22:34:20 -05:00
mdXhl.c libmd: export and document *Fd/*FdChunk interfaces 2024-09-29 22:34:20 -05:00
ripemd.3 libmd: export and document *Fd/*FdChunk interfaces 2024-09-29 22:34:20 -05:00
ripemd.h libmd: re-apply masking of _Transform names 2024-09-30 14:59:31 -05:00
rmd160c.c libmd: stop exporting _version symbols 2024-09-29 22:35:23 -05:00
rmd_locl.h libmd: Fix a common typo in the license header 2022-03-27 19:46:32 +02:00
rmdconst.h libmd: Fix a common typo in the license header 2022-03-27 19:46:32 +02:00
sha.3 libmd: export and document *Fd/*FdChunk interfaces 2024-09-29 22:34:20 -05:00
sha.h libmd: re-apply masking of _Transform names 2024-09-30 14:59:31 -05:00
sha0c.c libmd: stop exporting Transform() symbols 2024-09-29 22:34:20 -05:00
sha1c.c lib/libmd: replace SHA-1 implementation with Go's implementation 2025-05-15 01:39:58 +02:00
sha256.3 libmd: export and document *Fd/*FdChunk interfaces 2024-09-29 22:34:20 -05:00
sha512.3 libmd: export and document *Fd/*FdChunk interfaces 2024-09-29 22:34:20 -05:00
sha_locl.h libmd: Fix a common typo in the license header 2022-03-27 19:46:32 +02:00
skein.3 libmd: export and document *Fd/*FdChunk interfaces 2024-09-29 22:34:20 -05:00
Symbol.map libmd: quickly switch exported symbols to FBSD_1.8 before anyone notices 2024-09-29 23:42:53 -05:00