summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/md5/asm
diff options
context:
space:
mode:
authorjsing <>2025-01-24 13:35:04 +0000
committerjsing <>2025-01-24 13:35:04 +0000
commite645f65a85d604ca35a8889b91950b72ea837f74 (patch)
tree4a38be3aa387374f26fe17d96d1f3348009bd64c /src/lib/libcrypto/md5/asm
parentb6ef5ce8e459627efe3f07bc95bcfa8c48704fba (diff)
downloadopenbsd-e645f65a85d604ca35a8889b91950b72ea837f74.tar.gz
openbsd-e645f65a85d604ca35a8889b91950b72ea837f74.tar.bz2
openbsd-e645f65a85d604ca35a8889b91950b72ea837f74.zip
Provide a readable assembly implementation for MD5 on amd64.
This appears to be about 5% faster than the current perlasm version on a modern Intel CPU. While here rename md5_block_asm_data_order to md5_block_data_order, for consistency with other hashes. ok tb@
Diffstat (limited to 'src/lib/libcrypto/md5/asm')
-rw-r--r--src/lib/libcrypto/md5/asm/md5-586.pl2
-rwxr-xr-xsrc/lib/libcrypto/md5/asm/md5-x86_64.pl8
2 files changed, 5 insertions, 5 deletions
diff --git a/src/lib/libcrypto/md5/asm/md5-586.pl b/src/lib/libcrypto/md5/asm/md5-586.pl
index 6cb66bb499..a039efd899 100644
--- a/src/lib/libcrypto/md5/asm/md5-586.pl
+++ b/src/lib/libcrypto/md5/asm/md5-586.pl
@@ -30,7 +30,7 @@ $X="esi";
30 0, 7, 14, 5, 12, 3, 10, 1, 8, 15, 6, 13, 4, 11, 2, 9, # R3 30 0, 7, 14, 5, 12, 3, 10, 1, 8, 15, 6, 13, 4, 11, 2, 9, # R3
31 ); 31 );
32 32
33&md5_block("md5_block_asm_data_order"); 33&md5_block("md5_block_data_order");
34&asm_finish(); 34&asm_finish();
35 35
36sub Np 36sub Np
diff --git a/src/lib/libcrypto/md5/asm/md5-x86_64.pl b/src/lib/libcrypto/md5/asm/md5-x86_64.pl
index 5001c34724..a2d97b28e3 100755
--- a/src/lib/libcrypto/md5/asm/md5-x86_64.pl
+++ b/src/lib/libcrypto/md5/asm/md5-x86_64.pl
@@ -125,9 +125,9 @@ $code .= <<EOF;
125.text 125.text
126.align 16 126.align 16
127 127
128.globl md5_block_asm_data_order 128.globl md5_block_data_order
129.type md5_block_asm_data_order,\@function,3 129.type md5_block_data_order,\@function,3
130md5_block_asm_data_order: 130md5_block_data_order:
131 _CET_ENDBR 131 _CET_ENDBR
132 push %rbp 132 push %rbp
133 push %rbx 133 push %rbx
@@ -257,7 +257,7 @@ $code .= <<EOF;
257 add \$40,%rsp 257 add \$40,%rsp
258.Lepilogue: 258.Lepilogue:
259 ret 259 ret
260.size md5_block_asm_data_order,.-md5_block_asm_data_order 260.size md5_block_data_order,.-md5_block_data_order
261EOF 261EOF
262 262
263print $code; 263print $code;