2 # Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
4 # Licensed under the Apache License 2.0 (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";
24 #if defined(__thumb2__) && !defined(__APPLE__)
35 .global OPENSSL_atomic_add
36 .type OPENSSL_atomic_add
,%function
52 add r6
,r3
,r2 @
&spinlock
54 .Lspin
: bl sched_yield
63 str r0
,[r6
] @ release spinlock
67 .word
0xe12fff1e @ bx lr
69 .size OPENSSL_atomic_add
,.-OPENSSL_atomic_add
71 .global OPENSSL_cleanse
72 .type OPENSSL_cleanse
,%function
106 .word
0xe12fff1e @ bx lr
108 .size OPENSSL_cleanse
,.-OPENSSL_cleanse
110 .global CRYPTO_memcmp
111 .type CRYPTO_memcmp
,%function
136 .word
0xe12fff1e @ bx lr
138 .size CRYPTO_memcmp
,.-CRYPTO_memcmp
140 #if __ARM_MAX_ARCH__>=7
145 .global _armv7_neon_probe
146 .type _armv7_neon_probe
,%function
150 .size _armv7_neon_probe
,.-_armv7_neon_probe
153 .type _armv7_tick
,%function
156 mrrc p15
,0,r0
,r1
,c14 @ CNTPCT
158 mrrc p15
,1,r0
,r1
,c14 @ CNTVCT
161 .size _armv7_tick
,.-_armv7_tick
163 .global _armv8_aes_probe
164 .type _armv8_aes_probe
,%function
166 #if defined(__thumb2__) && !defined(__APPLE__)
167 .byte
0xb0,0xff,0x00,0x03 @ aese
.8 q0
,q0
169 .byte
0x00,0x03,0xb0,0xf3 @ aese
.8 q0
,q0
172 .size _armv8_aes_probe
,.-_armv8_aes_probe
174 .global _armv8_sha1_probe
175 .type _armv8_sha1_probe
,%function
177 #if defined(__thumb2__) && !defined(__APPLE__)
178 .byte
0x00,0xef,0x40,0x0c @ sha1c
.32 q0
,q0
,q0
180 .byte
0x40,0x0c,0x00,0xf2 @ sha1c
.32 q0
,q0
,q0
183 .size _armv8_sha1_probe
,.-_armv8_sha1_probe
185 .global _armv8_sha256_probe
186 .type _armv8_sha256_probe
,%function
188 #if defined(__thumb2__) && !defined(__APPLE__)
189 .byte
0x00,0xff,0x40,0x0c @ sha256h
.32 q0
,q0
,q0
191 .byte
0x40,0x0c,0x00,0xf3 @ sha256h
.32 q0
,q0
,q0
194 .size _armv8_sha256_probe
,.-_armv8_sha256_probe
195 .global _armv8_pmull_probe
196 .type _armv8_pmull_probe
,%function
198 #if defined(__thumb2__) && !defined(__APPLE__)
199 .byte
0xa0,0xef,0x00,0x0e @ vmull
.p64 q0
,d0
,d0
201 .byte
0x00,0x0e,0xa0,0xf2 @ vmull
.p64 q0
,d0
,d0
204 .size _armv8_pmull_probe
,.-_armv8_pmull_probe
207 .global OPENSSL_wipe_cpu
208 .type OPENSSL_wipe_cpu
,%function
210 #if __ARM_MAX_ARCH__>=7
211 ldr r0
,.LOPENSSL_armcap
212 adr r1
,.LOPENSSL_armcap
221 #if __ARM_MAX_ARCH__>=7
244 .word
0xe12fff1e @ bx lr
246 .size OPENSSL_wipe_cpu
,.-OPENSSL_wipe_cpu
248 .global OPENSSL_instrument_bus
249 .type OPENSSL_instrument_bus
,%function
250 OPENSSL_instrument_bus
:
257 .word
0xe12fff1e @ bx lr
259 .size OPENSSL_instrument_bus
,.-OPENSSL_instrument_bus
261 .global OPENSSL_instrument_bus2
262 .type OPENSSL_instrument_bus2
,%function
263 OPENSSL_instrument_bus2
:
270 .word
0xe12fff1e @ bx lr
272 .size OPENSSL_instrument_bus2
,.-OPENSSL_instrument_bus2
275 #if __ARM_MAX_ARCH__>=7
277 .word OPENSSL_armcap_P
-.
283 .word atomic_add_spinlock
-.Lspinlock
292 .comm OPENSSL_armcap_P
,4,4
293 .hidden OPENSSL_armcap_P