From e33826f01bd78af76e0135c8dfab3387927a82bb Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Sun, 15 May 2016 17:01:15 +0200 Subject: Add assembly CRYPTO_memcmp. GH: #102 Reviewed-by: Richard Levitte --- crypto/x86_64cpuid.pl | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'crypto/x86_64cpuid.pl') diff --git a/crypto/x86_64cpuid.pl b/crypto/x86_64cpuid.pl index 450550bfb5..4946688d92 100644 --- a/crypto/x86_64cpuid.pl +++ b/crypto/x86_64cpuid.pl @@ -224,6 +224,28 @@ OPENSSL_cleanse: jne .Little ret .size OPENSSL_cleanse,.-OPENSSL_cleanse + +.globl CRYPTO_memcmp +.type CRYPTO_memcmp,\@abi-omnipotent +.align 16 +CRYPTO_memcmp: + xor %rax,%rax + xor %r10,%r10 + cmp \$0,$arg3 + je .Lno_data +.Loop_cmp: + mov ($arg1),%r10b + lea 1($arg1),$arg1 + xor ($arg2),%r10b + lea 1($arg2),$arg2 + or %r10b,%al + dec $arg3 + jnz .Loop_cmp + neg %rax + shr \$63,%rax +.Lno_data: + ret +.size CRYPTO_memcmp,.-CRYPTO_memcmp ___ print<<___ if (!$win64); -- cgit v1.2.3