2 # Copyright 2015-2016 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";
25 #if defined(__thumb2__) && !defined(__APPLE__)
33 .global OPENSSL_atomic_add
34 .type OPENSSL_atomic_add,%function
50 add r6,r3,r2 @ &spinlock
52 .Lspin: bl sched_yield
61 str r0,[r6] @ release spinlock
65 .word 0xe12fff1e @ bx lr
67 .size OPENSSL_atomic_add,.-OPENSSL_atomic_add
69 .global OPENSSL_cleanse
70 .type OPENSSL_cleanse,%function
104 .word 0xe12fff1e @ bx lr
106 .size OPENSSL_cleanse,.-OPENSSL_cleanse
108 .global CRYPTO_memcmp
109 .type CRYPTO_memcmp,%function
134 .word 0xe12fff1e @ bx lr
136 .size CRYPTO_memcmp,.-CRYPTO_memcmp
138 #if __ARM_MAX_ARCH__>=7
143 .global _armv7_neon_probe
144 .type _armv7_neon_probe,%function
148 .size _armv7_neon_probe,.-_armv7_neon_probe
151 .type _armv7_tick,%function
154 mrrc p15,0,r0,r1,c14 @ CNTPCT
156 mrrc p15,1,r0,r1,c14 @ CNTVCT
159 .size _armv7_tick,.-_armv7_tick
161 .global _armv8_aes_probe
162 .type _armv8_aes_probe,%function
164 #if defined(__thumb2__) && !defined(__APPLE__)
165 .byte 0xb0,0xff,0x00,0x03 @ aese.8 q0,q0
167 .byte 0x00,0x03,0xb0,0xf3 @ aese.8 q0,q0
170 .size _armv8_aes_probe,.-_armv8_aes_probe
172 .global _armv8_sha1_probe
173 .type _armv8_sha1_probe,%function
175 #if defined(__thumb2__) && !defined(__APPLE__)
176 .byte 0x00,0xef,0x40,0x0c @ sha1c.32 q0,q0,q0
178 .byte 0x40,0x0c,0x00,0xf2 @ sha1c.32 q0,q0,q0
181 .size _armv8_sha1_probe,.-_armv8_sha1_probe
183 .global _armv8_sha256_probe
184 .type _armv8_sha256_probe,%function
186 #if defined(__thumb2__) && !defined(__APPLE__)
187 .byte 0x00,0xff,0x40,0x0c @ sha256h.32 q0,q0,q0
189 .byte 0x40,0x0c,0x00,0xf3 @ sha256h.32 q0,q0,q0
192 .size _armv8_sha256_probe,.-_armv8_sha256_probe
193 .global _armv8_pmull_probe
194 .type _armv8_pmull_probe,%function
196 #if defined(__thumb2__) && !defined(__APPLE__)
197 .byte 0xa0,0xef,0x00,0x0e @ vmull.p64 q0,d0,d0
199 .byte 0x00,0x0e,0xa0,0xf2 @ vmull.p64 q0,d0,d0
202 .size _armv8_pmull_probe,.-_armv8_pmull_probe
205 .global OPENSSL_wipe_cpu
206 .type OPENSSL_wipe_cpu,%function
208 #if __ARM_MAX_ARCH__>=7
209 ldr r0,.LOPENSSL_armcap
210 adr r1,.LOPENSSL_armcap
219 #if __ARM_MAX_ARCH__>=7
242 .word 0xe12fff1e @ bx lr
244 .size OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu
246 .global OPENSSL_instrument_bus
247 .type OPENSSL_instrument_bus,%function
248 OPENSSL_instrument_bus:
255 .word 0xe12fff1e @ bx lr
257 .size OPENSSL_instrument_bus,.-OPENSSL_instrument_bus
259 .global OPENSSL_instrument_bus2
260 .type OPENSSL_instrument_bus2,%function
261 OPENSSL_instrument_bus2:
268 .word 0xe12fff1e @ bx lr
270 .size OPENSSL_instrument_bus2,.-OPENSSL_instrument_bus2
273 #if __ARM_MAX_ARCH__>=7
275 .word OPENSSL_armcap_P-.
281 .word atomic_add_spinlock-.Lspinlock
290 .comm OPENSSL_armcap_P,4,4
291 .hidden OPENSSL_armcap_P