freebsd-dev/lib/libmd
Andrew Turner 69d8dc20be Use arm64 sha256 intrinsics in libmd
Summary:
When running on a CPU that supports the arm64 sha256 intrinsics use them
to improve perfromance of sha256 calculations.

With this changethe following improvement has been seen on an Apple M1
with FreeBS running under Parallels, with similar results on a
Neoverse-N1 r3p1.

x sha256.orig
+ sha256.arm64
+--------------------------------------------------------------------+
|++                                                               x x|
|+++                                                              xxx|
||A                                                               |A||
+--------------------------------------------------------------------+
    N           Min           Max        Median           Avg        Stddev
x   5          3.41           3.5          3.46         3.458   0.042661458
+   5          0.47          0.54           0.5         0.504   0.027018512
Difference at 95.0% confidence
        -2.954 +/- 0.0520768
        -85.4251% +/- 0.826831%
        (Student's t, pooled s = 0.0357071)

Reviewed by:	cem
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D31284
2021-08-11 10:20:48 +00:00
..
i386
Makefile Use arm64 sha256 intrinsics in libmd 2021-08-11 10:20:48 +00:00
Makefile.depend Update Makefile.depend files 2019-12-11 17:37:53 +00:00
md4.copyright
md4.h SPDX: some uses of the RSA-MD license. 2017-12-13 16:30:39 +00:00
md4c.c ANSIfy and KNF function arg definitions in libmd/md4.c 2020-04-03 20:56:43 +00:00
md5.copyright
md5.h Fix C++ includability of crypto headers with static array sizes 2016-10-18 23:20:49 +00:00
md5c.c libmd: Always erase context in _Final method, and when doing 2018-07-20 07:01:28 +00:00
mddriver.c
mdX.3 Fix a few mandoc issues 2020-10-09 19:12:44 +00:00
mdXhl.c Revert r334090. 2018-05-23 17:01:28 +00:00
ripemd.3 Fix a few mandoc issues 2020-10-09 19:12:44 +00:00
ripemd.h
rmd160c.c libmd: Always erase context in _Final method, and when doing 2018-07-20 07:01:28 +00:00
rmd_locl.h
rmdconst.h
rmddriver.c
sha0c.c libmd: Always erase context in _Final method, and when doing 2018-07-20 07:01:28 +00:00
sha1c.c libmd: Always erase context in _Final method, and when doing 2018-07-20 07:01:28 +00:00
sha256.3 Fix a few mandoc issues 2020-10-09 19:12:44 +00:00
sha512.3 Fix a few mandoc issues 2020-10-09 19:12:44 +00:00
sha_locl.h
sha.3 Fix a few mandoc issues 2020-10-09 19:12:44 +00:00
sha.h
shadriver.c Integrate SHA2-224 with userspace components 2018-07-09 08:19:04 +00:00
skein.3 Fix a few mandoc issues 2020-10-09 19:12:44 +00:00
skeindriver.c SPDX: some uses of the RSA-MD license. 2017-12-13 16:30:39 +00:00