bn_asm for s390x.
[openssl.git] / crypto / x86_64cpuid.pl
index bc06e99cfb732280f0fbab87a9fa3d49d90d0872..2f657ca9d8d7de7b1e8303673b5013b9572820f5 100644 (file)
@@ -155,4 +155,36 @@ OPENSSL_ia32_cpuid:
        or      %rcx,%rax
        ret
 .size  OPENSSL_ia32_cpuid,.-OPENSSL_ia32_cpuid
+
+.globl  OPENSSL_cleanse
+.type   OPENSSL_cleanse,\@function,2
+.align  16
+OPENSSL_cleanse:
+       xor     %rax,%rax
+       cmp     \$15,%rsi
+       jae     .Lot
+.Little:
+       mov     %al,(%rdi)
+       sub     \$1,%rsi
+       lea     1(%rdi),%rdi
+       jnz     .Little
+       ret
+.align 16
+.Lot:
+       test    \$7,%rdi
+       jz      .Laligned
+       mov     %al,(%rdi)
+       lea     -1(%rsi),%rsi
+       lea     1(%rdi),%rdi
+       jmp     .Lot
+.Laligned:
+       mov     %rax,(%rdi)
+       lea     -8(%rsi),%rsi
+       test    \$-8,%rsi
+       lea     8(%rdi),%rdi
+       jnz     .Laligned
+       cmp     \$0,%rsi
+       jne     .Little
+       ret
+.size  OPENSSL_cleanse,.-OPENSSL_cleanse
 ___