diff options
author | Jonathan Swinney <jswinney@amazon.com> | 2021-10-27 16:50:30 +0000 |
---|---|---|
committer | Tomas Mraz <tomas@openssl.org> | 2022-11-21 10:49:51 +0100 |
commit | b9b91dad9f1cae0b218fcb57a4545027c4951678 (patch) | |
tree | 93c47f422319a7ec6f12aab27ea7af9bed74afea /crypto/md5/build.info | |
parent | 708bf3dde8f53446cccded5dadafb853e7e9d38b (diff) |
md5: add assembly implementation for aarch64
This change improves md5 performance significantly by using a hand-optimized
assembly implementation of the inner loop of md5 calculation. The instructions
are carefully ordered to separate data dependencies as much as possible.
Test with:
$ openssl speed md5
AWS Graviton 2
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
md5 46990.60k 132778.65k 270376.96k 364718.08k 405962.75k 409201.32k
md5-modified 51725.23k 152236.22k 323469.14k 453869.57k 514102.61k 519056.04k
+10% +15% +20% +24% +27% +27%
Apple M1
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
md5 74634.39k 195561.25k 375434.45k 491004.23k 532361.40k 536636.48k
md5-modified 84637.11k 229017.09k 444609.62k 588069.50k 655114.24k 660850.56k
+13% +17% +18% +20% +23% +23%
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/16928)
(cherry picked from commit 04904a0fff639c058d38b355d75485ca5dde0a89)
Diffstat (limited to 'crypto/md5/build.info')
-rw-r--r-- | crypto/md5/build.info | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/crypto/md5/build.info b/crypto/md5/build.info index a1e28c8153..e8c547842a 100644 --- a/crypto/md5/build.info +++ b/crypto/md5/build.info @@ -4,6 +4,7 @@ $MD5ASM= IF[{- !$disabled{asm} -}] $MD5ASM_x86=md5-586.S $MD5ASM_x86_64=md5-x86_64.s + $MD5ASM_aarch64=md5-aarch64.s $MD5ASM_sparcv9=md5-sparcv9.S # Now that we have defined all the arch specific variables, use the @@ -35,6 +36,7 @@ DEFINE[../../providers/liblegacy.a]=$MD5DEF GENERATE[md5-586.S]=asm/md5-586.pl GENERATE[md5-x86_64.s]=asm/md5-x86_64.pl +GENERATE[md5-aarch64.s]=asm/md5-aarch64.pl GENERATE[md5-sparcv9.S]=asm/md5-sparcv9.pl INCLUDE[md5-sparcv9.o]=.. |