summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/arch/arm/armv4cpuid.S
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/arch/arm/armv4cpuid.S')
-rw-r--r--src/lib/libcrypto/arch/arm/armv4cpuid.S96
1 files changed, 0 insertions, 96 deletions
diff --git a/src/lib/libcrypto/arch/arm/armv4cpuid.S b/src/lib/libcrypto/arch/arm/armv4cpuid.S
index bb9abafebe..db0b54e496 100644
--- a/src/lib/libcrypto/arch/arm/armv4cpuid.S
+++ b/src/lib/libcrypto/arch/arm/armv4cpuid.S
@@ -9,43 +9,6 @@
9#undef __thumb2__ 9#undef __thumb2__
10#endif 10#endif
11 11
12.align 5
13.globl OPENSSL_atomic_add
14.type OPENSSL_atomic_add,%function
15OPENSSL_atomic_add:
16#if __ARM_ARCH__>=6
17.Ladd: ldrex r2,[r0]
18 add r3,r2,r1
19 strex r2,r3,[r0]
20 cmp r2,#0
21 bne .Ladd
22 mov r0,r3
23 bx lr
24#else
25 stmdb sp!,{r4,r5,r6,lr}
26 ldr r2,.Lspinlock
27 adr r3,.Lspinlock
28 mov r4,r0
29 mov r5,r1
30 add r6,r3,r2 @ &spinlock
31 b .+8
32.Lspin: bl sched_yield
33 mov r0,#-1
34 swp r0,r0,[r6]
35 cmp r0,#0
36 bne .Lspin
37
38 ldr r2,[r4]
39 add r2,r2,r5
40 str r2,[r4]
41 str r0,[r6] @ release spinlock
42 ldmia sp!,{r4,r5,r6,lr}
43 tst lr,#1
44 moveq pc,lr
45.word 0xe12fff1e @ bx lr
46#endif
47.size OPENSSL_atomic_add,.-OPENSSL_atomic_add
48
49#if __ARM_ARCH__>=7 12#if __ARM_ARCH__>=7
50.arch armv7-a 13.arch armv7-a
51.fpu neon 14.fpu neon
@@ -102,64 +65,5 @@ _armv8_pmull_probe:
102.size _armv8_pmull_probe,.-_armv8_pmull_probe 65.size _armv8_pmull_probe,.-_armv8_pmull_probe
103#endif 66#endif
104 67
105.globl OPENSSL_wipe_cpu
106.type OPENSSL_wipe_cpu,%function
107OPENSSL_wipe_cpu:
108#if __ARM_ARCH__>=7
109 ldr r0,.LOPENSSL_armcap
110 adr r1,.LOPENSSL_armcap
111 ldr r0,[r1,r0]
112#ifdef __APPLE__
113 ldr r0,[r0]
114#endif
115#endif
116 eor r2,r2,r2
117 eor r3,r3,r3
118 eor ip,ip,ip
119#if __ARM_ARCH__>=7
120 tst r0,#1
121 beq .Lwipe_done
122 veor q0, q0, q0
123 veor q1, q1, q1
124 veor q2, q2, q2
125 veor q3, q3, q3
126 veor q8, q8, q8
127 veor q9, q9, q9
128 veor q10, q10, q10
129 veor q11, q11, q11
130 veor q12, q12, q12
131 veor q13, q13, q13
132 veor q14, q14, q14
133 veor q15, q15, q15
134.Lwipe_done:
135#endif
136 mov r0,sp
137#if __ARM_ARCH__>=5
138 bx lr
139#else
140 tst lr,#1
141 moveq pc,lr
142.word 0xe12fff1e @ bx lr
143#endif
144.size OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu
145
146.align 5
147#if __ARM_ARCH__>=7
148.LOPENSSL_armcap:
149.word OPENSSL_armcap_P-.
150#endif
151#if __ARM_ARCH__>=6
152.align 5
153#else
154.Lspinlock:
155.word atomic_add_spinlock-.Lspinlock
156.align 5
157
158.data
159.align 2
160atomic_add_spinlock:
161.word 0
162#endif
163
164.comm OPENSSL_armcap_P,4,4 68.comm OPENSSL_armcap_P,4,4
165.hidden OPENSSL_armcap_P 69.hidden OPENSSL_armcap_P