diff options
Diffstat (limited to 'src/lib/libcrypto/arch/arm/armv4cpuid.S')
-rw-r--r-- | src/lib/libcrypto/arch/arm/armv4cpuid.S | 96 |
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 | ||
15 | OPENSSL_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 | ||
107 | OPENSSL_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 | ||
160 | atomic_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 |