summaryrefslogtreecommitdiffstats
path: root/crypto/md5/build.info
diff options
context:
space:
mode:
authorJonathan Swinney <jswinney@amazon.com>2021-10-27 16:50:30 +0000
committerTomas Mraz <tomas@openssl.org>2022-11-21 10:49:51 +0100
commitb9b91dad9f1cae0b218fcb57a4545027c4951678 (patch)
tree93c47f422319a7ec6f12aab27ea7af9bed74afea /crypto/md5/build.info
parent708bf3dde8f53446cccded5dadafb853e7e9d38b (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.info2
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]=..