2 # Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
4 # Licensed under the OpenSSL license (the "License"). You may not use
5 # this file except in compliance with the License. You can obtain a copy
6 # in the file LICENSE in the source distribution or at
7 # https://www.openssl.org/source/license.html
13 $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
14 ( $xlate="${dir}arm-xlate.pl" and -f $xlate ) or
15 ( $xlate="${dir}perlasm/arm-xlate.pl" and -f $xlate) or
16 die "can't locate arm-xlate.pl";
18 open OUT,"| \"$^X\" $xlate $flavour $output";
28 .globl _armv7_neon_probe
29 .type _armv7_neon_probe,%function
31 orr v15.16b, v15.16b, v15.16b
33 .size _armv7_neon_probe,.-_armv7_neon_probe
36 .type _armv7_tick,%function
44 .size _armv7_tick,.-_armv7_tick
46 .globl _armv8_aes_probe
47 .type _armv8_aes_probe,%function
51 .size _armv8_aes_probe,.-_armv8_aes_probe
53 .globl _armv8_sha1_probe
54 .type _armv8_sha1_probe,%function
58 .size _armv8_sha1_probe,.-_armv8_sha1_probe
60 .globl _armv8_sha256_probe
61 .type _armv8_sha256_probe,%function
63 sha256su0 v0.4s, v0.4s
65 .size _armv8_sha256_probe,.-_armv8_sha256_probe
67 .globl _armv8_pmull_probe
68 .type _armv8_pmull_probe,%function
70 pmull v0.1q, v0.1d, v0.1d
72 .size _armv8_pmull_probe,.-_armv8_pmull_probe
74 .globl _armv8_sha512_probe
75 .type _armv8_sha512_probe,%function
77 .long 0xcec08000 // sha512su0 v0.2d,v0.2d
79 .size _armv8_sha512_probe,.-_armv8_sha512_probe
81 .globl OPENSSL_cleanse
82 .type OPENSSL_cleanse,%function
85 cbz x1,.Lret // len==0?
90 strb wzr,[x0],#1 // store byte-by-byte
97 b.eq .Laligned // inp is aligned
98 strb wzr,[x0],#1 // store byte-by-byte
104 str xzr,[x0],#8 // store word-by-word
107 b.ne .Laligned // len>=8
108 cbnz x1,.Little // len!=0?
110 .size OPENSSL_cleanse,.-OPENSSL_cleanse
113 .type CRYPTO_memcmp,%function
117 cbz x2,.Lno_data // len==0?
143 .size CRYPTO_memcmp,.-CRYPTO_memcmp