OLD | NEW |
1 #include "arm_arch.h" | 1 #include "arm_arch.h" |
2 | 2 |
3 .text | 3 .text |
4 .code 32 | 4 .code 32 |
5 | 5 |
6 .global»sha1_block_data_order | 6 .globl» sha1_block_data_order |
7 .type sha1_block_data_order,%function | 7 .type sha1_block_data_order,%function |
8 | 8 |
9 .align 5 | 9 .align 5 |
10 sha1_block_data_order: | 10 sha1_block_data_order: |
11 #if __ARM_MAX_ARCH__>=7 | 11 #if __ARM_MAX_ARCH__>=7 |
12 sub r3,pc,#8 @ sha1_block_data_order | 12 sub r3,pc,#8 @ sha1_block_data_order |
13 ldr r12,.LOPENSSL_armcap | 13 ldr r12,.LOPENSSL_armcap |
14 ldr r12,[r3,r12] @ OPENSSL_armcap_P | 14 ldr r12,[r3,r12] @ OPENSSL_armcap_P |
| 15 #ifdef __APPLE__ |
| 16 ldr r12,[r12] |
| 17 #endif |
15 tst r12,#ARMV8_SHA1 | 18 tst r12,#ARMV8_SHA1 |
16 bne .LARMv8 | 19 bne .LARMv8 |
17 tst r12,#ARMV7_NEON | 20 tst r12,#ARMV7_NEON |
18 bne .LNEON | 21 bne .LNEON |
19 #endif | 22 #endif |
20 » stmdb» sp!,{r4-r12,lr} | 23 » stmdb» sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} |
21 add r2,r1,r2,lsl#6 @ r2 to point at the end of r1 | 24 add r2,r1,r2,lsl#6 @ r2 to point at the end of r1 |
22 ldmia r0,{r3,r4,r5,r6,r7} | 25 ldmia r0,{r3,r4,r5,r6,r7} |
23 .Lloop: | 26 .Lloop: |
24 ldr r8,.LK_00_19 | 27 ldr r8,.LK_00_19 |
25 mov r14,sp | 28 mov r14,sp |
26 sub sp,sp,#15*4 | 29 sub sp,sp,#15*4 |
27 mov r5,r5,ror#30 | 30 mov r5,r5,ror#30 |
28 mov r6,r6,ror#30 | 31 mov r6,r6,ror#30 |
29 mov r7,r7,ror#30 @ [6] | 32 mov r7,r7,ror#30 @ [6] |
30 .L_00_15: | 33 .L_00_15: |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
186 ldr r11,[r14,#7*4] | 189 ldr r11,[r14,#7*4] |
187 add r6,r8,r6,ror#2 @ E+=K_xx_xx | 190 add r6,r8,r6,ror#2 @ E+=K_xx_xx |
188 ldr r12,[r14,#2*4] | 191 ldr r12,[r14,#2*4] |
189 eor r9,r9,r10 | 192 eor r9,r9,r10 |
190 eor r11,r11,r12 @ 1 cycle stall | 193 eor r11,r11,r12 @ 1 cycle stall |
191 eor r10,r4,r5 @ F_xx_xx | 194 eor r10,r4,r5 @ F_xx_xx |
192 mov r9,r9,ror#31 | 195 mov r9,r9,ror#31 |
193 add r6,r6,r7,ror#27 @ E+=ROR(A,27) | 196 add r6,r6,r7,ror#27 @ E+=ROR(A,27) |
194 eor r9,r9,r11,ror#31 | 197 eor r9,r9,r11,ror#31 |
195 str r9,[r14,#-4]! | 198 str r9,[r14,#-4]! |
196 » and r10,r3,r10,ror#2» » » » » @ F_xx_xx | 199 » and» r10,r3,r10,ror#2» » » » » @ F_xx_x
x |
197 @ F_xx_xx | 200 @ F_xx_xx |
198 add r6,r6,r9 @ E+=X[i] | 201 add r6,r6,r9 @ E+=X[i] |
199 eor r10,r10,r5,ror#2 @ F_00_19(B,C,D) | 202 eor r10,r10,r5,ror#2 @ F_00_19(B,C,D) |
200 add r6,r6,r10 @ E+=F_00_19(B,C,D) | 203 add r6,r6,r10 @ E+=F_00_19(B,C,D) |
201 ldr r9,[r14,#15*4] | 204 ldr r9,[r14,#15*4] |
202 ldr r10,[r14,#13*4] | 205 ldr r10,[r14,#13*4] |
203 ldr r11,[r14,#7*4] | 206 ldr r11,[r14,#7*4] |
204 add r5,r8,r5,ror#2 @ E+=K_xx_xx | 207 add r5,r8,r5,ror#2 @ E+=K_xx_xx |
205 ldr r12,[r14,#2*4] | 208 ldr r12,[r14,#2*4] |
206 eor r9,r9,r10 | 209 eor r9,r9,r10 |
207 eor r11,r11,r12 @ 1 cycle stall | 210 eor r11,r11,r12 @ 1 cycle stall |
208 eor r10,r3,r4 @ F_xx_xx | 211 eor r10,r3,r4 @ F_xx_xx |
209 mov r9,r9,ror#31 | 212 mov r9,r9,ror#31 |
210 add r5,r5,r6,ror#27 @ E+=ROR(A,27) | 213 add r5,r5,r6,ror#27 @ E+=ROR(A,27) |
211 eor r9,r9,r11,ror#31 | 214 eor r9,r9,r11,ror#31 |
212 str r9,[r14,#-4]! | 215 str r9,[r14,#-4]! |
213 » and r10,r7,r10,ror#2» » » » » @ F_xx_xx | 216 » and» r10,r7,r10,ror#2» » » » » @ F_xx_x
x |
214 @ F_xx_xx | 217 @ F_xx_xx |
215 add r5,r5,r9 @ E+=X[i] | 218 add r5,r5,r9 @ E+=X[i] |
216 eor r10,r10,r4,ror#2 @ F_00_19(B,C,D) | 219 eor r10,r10,r4,ror#2 @ F_00_19(B,C,D) |
217 add r5,r5,r10 @ E+=F_00_19(B,C,D) | 220 add r5,r5,r10 @ E+=F_00_19(B,C,D) |
218 ldr r9,[r14,#15*4] | 221 ldr r9,[r14,#15*4] |
219 ldr r10,[r14,#13*4] | 222 ldr r10,[r14,#13*4] |
220 ldr r11,[r14,#7*4] | 223 ldr r11,[r14,#7*4] |
221 add r4,r8,r4,ror#2 @ E+=K_xx_xx | 224 add r4,r8,r4,ror#2 @ E+=K_xx_xx |
222 ldr r12,[r14,#2*4] | 225 ldr r12,[r14,#2*4] |
223 eor r9,r9,r10 | 226 eor r9,r9,r10 |
224 eor r11,r11,r12 @ 1 cycle stall | 227 eor r11,r11,r12 @ 1 cycle stall |
225 eor r10,r7,r3 @ F_xx_xx | 228 eor r10,r7,r3 @ F_xx_xx |
226 mov r9,r9,ror#31 | 229 mov r9,r9,ror#31 |
227 add r4,r4,r5,ror#27 @ E+=ROR(A,27) | 230 add r4,r4,r5,ror#27 @ E+=ROR(A,27) |
228 eor r9,r9,r11,ror#31 | 231 eor r9,r9,r11,ror#31 |
229 str r9,[r14,#-4]! | 232 str r9,[r14,#-4]! |
230 » and r10,r6,r10,ror#2» » » » » @ F_xx_xx | 233 » and» r10,r6,r10,ror#2» » » » » @ F_xx_x
x |
231 @ F_xx_xx | 234 @ F_xx_xx |
232 add r4,r4,r9 @ E+=X[i] | 235 add r4,r4,r9 @ E+=X[i] |
233 eor r10,r10,r3,ror#2 @ F_00_19(B,C,D) | 236 eor r10,r10,r3,ror#2 @ F_00_19(B,C,D) |
234 add r4,r4,r10 @ E+=F_00_19(B,C,D) | 237 add r4,r4,r10 @ E+=F_00_19(B,C,D) |
235 ldr r9,[r14,#15*4] | 238 ldr r9,[r14,#15*4] |
236 ldr r10,[r14,#13*4] | 239 ldr r10,[r14,#13*4] |
237 ldr r11,[r14,#7*4] | 240 ldr r11,[r14,#7*4] |
238 add r3,r8,r3,ror#2 @ E+=K_xx_xx | 241 add r3,r8,r3,ror#2 @ E+=K_xx_xx |
239 ldr r12,[r14,#2*4] | 242 ldr r12,[r14,#2*4] |
240 eor r9,r9,r10 | 243 eor r9,r9,r10 |
241 eor r11,r11,r12 @ 1 cycle stall | 244 eor r11,r11,r12 @ 1 cycle stall |
242 eor r10,r6,r7 @ F_xx_xx | 245 eor r10,r6,r7 @ F_xx_xx |
243 mov r9,r9,ror#31 | 246 mov r9,r9,ror#31 |
244 add r3,r3,r4,ror#27 @ E+=ROR(A,27) | 247 add r3,r3,r4,ror#27 @ E+=ROR(A,27) |
245 eor r9,r9,r11,ror#31 | 248 eor r9,r9,r11,ror#31 |
246 str r9,[r14,#-4]! | 249 str r9,[r14,#-4]! |
247 » and r10,r5,r10,ror#2» » » » » @ F_xx_xx | 250 » and» r10,r5,r10,ror#2» » » » » @ F_xx_x
x |
248 @ F_xx_xx | 251 @ F_xx_xx |
249 add r3,r3,r9 @ E+=X[i] | 252 add r3,r3,r9 @ E+=X[i] |
250 eor r10,r10,r7,ror#2 @ F_00_19(B,C,D) | 253 eor r10,r10,r7,ror#2 @ F_00_19(B,C,D) |
251 add r3,r3,r10 @ E+=F_00_19(B,C,D) | 254 add r3,r3,r10 @ E+=F_00_19(B,C,D) |
252 | 255 |
253 ldr r8,.LK_20_39 @ [+15+16*4] | 256 ldr r8,.LK_20_39 @ [+15+16*4] |
254 cmn sp,#0 @ [+3], clear carry to denote 20_39 | 257 cmn sp,#0 @ [+3], clear carry to denote 20_39 |
255 .L_20_39_or_60_79: | 258 .L_20_39_or_60_79: |
256 ldr r9,[r14,#15*4] | 259 ldr r9,[r14,#15*4] |
257 ldr r10,[r14,#13*4] | 260 ldr r10,[r14,#13*4] |
258 ldr r11,[r14,#7*4] | 261 ldr r11,[r14,#7*4] |
259 add r7,r8,r7,ror#2 @ E+=K_xx_xx | 262 add r7,r8,r7,ror#2 @ E+=K_xx_xx |
260 ldr r12,[r14,#2*4] | 263 ldr r12,[r14,#2*4] |
261 eor r9,r9,r10 | 264 eor r9,r9,r10 |
262 eor r11,r11,r12 @ 1 cycle stall | 265 eor r11,r11,r12 @ 1 cycle stall |
263 eor r10,r5,r6 @ F_xx_xx | 266 eor r10,r5,r6 @ F_xx_xx |
264 mov r9,r9,ror#31 | 267 mov r9,r9,ror#31 |
265 add r7,r7,r3,ror#27 @ E+=ROR(A,27) | 268 add r7,r7,r3,ror#27 @ E+=ROR(A,27) |
266 eor r9,r9,r11,ror#31 | 269 eor r9,r9,r11,ror#31 |
267 str r9,[r14,#-4]! | 270 str r9,[r14,#-4]! |
268 » eor r10,r4,r10,ror#2» » » » » @ F_xx_xx | 271 » eor» r10,r4,r10,ror#2» » » » » @ F_xx_x
x |
269 @ F_xx_xx | 272 @ F_xx_xx |
270 add r7,r7,r9 @ E+=X[i] | 273 add r7,r7,r9 @ E+=X[i] |
271 add r7,r7,r10 @ E+=F_20_39(B,C,D) | 274 add r7,r7,r10 @ E+=F_20_39(B,C,D) |
272 ldr r9,[r14,#15*4] | 275 ldr r9,[r14,#15*4] |
273 ldr r10,[r14,#13*4] | 276 ldr r10,[r14,#13*4] |
274 ldr r11,[r14,#7*4] | 277 ldr r11,[r14,#7*4] |
275 add r6,r8,r6,ror#2 @ E+=K_xx_xx | 278 add r6,r8,r6,ror#2 @ E+=K_xx_xx |
276 ldr r12,[r14,#2*4] | 279 ldr r12,[r14,#2*4] |
277 eor r9,r9,r10 | 280 eor r9,r9,r10 |
278 eor r11,r11,r12 @ 1 cycle stall | 281 eor r11,r11,r12 @ 1 cycle stall |
279 eor r10,r4,r5 @ F_xx_xx | 282 eor r10,r4,r5 @ F_xx_xx |
280 mov r9,r9,ror#31 | 283 mov r9,r9,ror#31 |
281 add r6,r6,r7,ror#27 @ E+=ROR(A,27) | 284 add r6,r6,r7,ror#27 @ E+=ROR(A,27) |
282 eor r9,r9,r11,ror#31 | 285 eor r9,r9,r11,ror#31 |
283 str r9,[r14,#-4]! | 286 str r9,[r14,#-4]! |
284 » eor r10,r3,r10,ror#2» » » » » @ F_xx_xx | 287 » eor» r10,r3,r10,ror#2» » » » » @ F_xx_x
x |
285 @ F_xx_xx | 288 @ F_xx_xx |
286 add r6,r6,r9 @ E+=X[i] | 289 add r6,r6,r9 @ E+=X[i] |
287 add r6,r6,r10 @ E+=F_20_39(B,C,D) | 290 add r6,r6,r10 @ E+=F_20_39(B,C,D) |
288 ldr r9,[r14,#15*4] | 291 ldr r9,[r14,#15*4] |
289 ldr r10,[r14,#13*4] | 292 ldr r10,[r14,#13*4] |
290 ldr r11,[r14,#7*4] | 293 ldr r11,[r14,#7*4] |
291 add r5,r8,r5,ror#2 @ E+=K_xx_xx | 294 add r5,r8,r5,ror#2 @ E+=K_xx_xx |
292 ldr r12,[r14,#2*4] | 295 ldr r12,[r14,#2*4] |
293 eor r9,r9,r10 | 296 eor r9,r9,r10 |
294 eor r11,r11,r12 @ 1 cycle stall | 297 eor r11,r11,r12 @ 1 cycle stall |
295 eor r10,r3,r4 @ F_xx_xx | 298 eor r10,r3,r4 @ F_xx_xx |
296 mov r9,r9,ror#31 | 299 mov r9,r9,ror#31 |
297 add r5,r5,r6,ror#27 @ E+=ROR(A,27) | 300 add r5,r5,r6,ror#27 @ E+=ROR(A,27) |
298 eor r9,r9,r11,ror#31 | 301 eor r9,r9,r11,ror#31 |
299 str r9,[r14,#-4]! | 302 str r9,[r14,#-4]! |
300 » eor r10,r7,r10,ror#2» » » » » @ F_xx_xx | 303 » eor» r10,r7,r10,ror#2» » » » » @ F_xx_x
x |
301 @ F_xx_xx | 304 @ F_xx_xx |
302 add r5,r5,r9 @ E+=X[i] | 305 add r5,r5,r9 @ E+=X[i] |
303 add r5,r5,r10 @ E+=F_20_39(B,C,D) | 306 add r5,r5,r10 @ E+=F_20_39(B,C,D) |
304 ldr r9,[r14,#15*4] | 307 ldr r9,[r14,#15*4] |
305 ldr r10,[r14,#13*4] | 308 ldr r10,[r14,#13*4] |
306 ldr r11,[r14,#7*4] | 309 ldr r11,[r14,#7*4] |
307 add r4,r8,r4,ror#2 @ E+=K_xx_xx | 310 add r4,r8,r4,ror#2 @ E+=K_xx_xx |
308 ldr r12,[r14,#2*4] | 311 ldr r12,[r14,#2*4] |
309 eor r9,r9,r10 | 312 eor r9,r9,r10 |
310 eor r11,r11,r12 @ 1 cycle stall | 313 eor r11,r11,r12 @ 1 cycle stall |
311 eor r10,r7,r3 @ F_xx_xx | 314 eor r10,r7,r3 @ F_xx_xx |
312 mov r9,r9,ror#31 | 315 mov r9,r9,ror#31 |
313 add r4,r4,r5,ror#27 @ E+=ROR(A,27) | 316 add r4,r4,r5,ror#27 @ E+=ROR(A,27) |
314 eor r9,r9,r11,ror#31 | 317 eor r9,r9,r11,ror#31 |
315 str r9,[r14,#-4]! | 318 str r9,[r14,#-4]! |
316 » eor r10,r6,r10,ror#2» » » » » @ F_xx_xx | 319 » eor» r10,r6,r10,ror#2» » » » » @ F_xx_x
x |
317 @ F_xx_xx | 320 @ F_xx_xx |
318 add r4,r4,r9 @ E+=X[i] | 321 add r4,r4,r9 @ E+=X[i] |
319 add r4,r4,r10 @ E+=F_20_39(B,C,D) | 322 add r4,r4,r10 @ E+=F_20_39(B,C,D) |
320 ldr r9,[r14,#15*4] | 323 ldr r9,[r14,#15*4] |
321 ldr r10,[r14,#13*4] | 324 ldr r10,[r14,#13*4] |
322 ldr r11,[r14,#7*4] | 325 ldr r11,[r14,#7*4] |
323 add r3,r8,r3,ror#2 @ E+=K_xx_xx | 326 add r3,r8,r3,ror#2 @ E+=K_xx_xx |
324 ldr r12,[r14,#2*4] | 327 ldr r12,[r14,#2*4] |
325 eor r9,r9,r10 | 328 eor r9,r9,r10 |
326 eor r11,r11,r12 @ 1 cycle stall | 329 eor r11,r11,r12 @ 1 cycle stall |
327 eor r10,r6,r7 @ F_xx_xx | 330 eor r10,r6,r7 @ F_xx_xx |
328 mov r9,r9,ror#31 | 331 mov r9,r9,ror#31 |
329 add r3,r3,r4,ror#27 @ E+=ROR(A,27) | 332 add r3,r3,r4,ror#27 @ E+=ROR(A,27) |
330 eor r9,r9,r11,ror#31 | 333 eor r9,r9,r11,ror#31 |
331 str r9,[r14,#-4]! | 334 str r9,[r14,#-4]! |
332 » eor r10,r5,r10,ror#2» » » » » @ F_xx_xx | 335 » eor» r10,r5,r10,ror#2» » » » » @ F_xx_x
x |
333 @ F_xx_xx | 336 @ F_xx_xx |
334 add r3,r3,r9 @ E+=X[i] | 337 add r3,r3,r9 @ E+=X[i] |
335 add r3,r3,r10 @ E+=F_20_39(B,C,D) | 338 add r3,r3,r10 @ E+=F_20_39(B,C,D) |
336 teq r14,sp @ preserve carry | 339 teq r14,sp @ preserve carry |
337 bne .L_20_39_or_60_79 @ [+((12+3)*5+2)*4] | 340 bne .L_20_39_or_60_79 @ [+((12+3)*5+2)*4] |
338 bcs .L_done @ [+((12+3)*5+2)*4], spare 300 bytes | 341 bcs .L_done @ [+((12+3)*5+2)*4], spare 300 bytes |
339 | 342 |
340 ldr r8,.LK_40_59 | 343 ldr r8,.LK_40_59 |
341 sub sp,sp,#20*4 @ [+2] | 344 sub sp,sp,#20*4 @ [+2] |
342 .L_40_59: | 345 .L_40_59: |
343 ldr r9,[r14,#15*4] | 346 ldr r9,[r14,#15*4] |
344 ldr r10,[r14,#13*4] | 347 ldr r10,[r14,#13*4] |
345 ldr r11,[r14,#7*4] | 348 ldr r11,[r14,#7*4] |
346 add r7,r8,r7,ror#2 @ E+=K_xx_xx | 349 add r7,r8,r7,ror#2 @ E+=K_xx_xx |
347 ldr r12,[r14,#2*4] | 350 ldr r12,[r14,#2*4] |
348 eor r9,r9,r10 | 351 eor r9,r9,r10 |
349 eor r11,r11,r12 @ 1 cycle stall | 352 eor r11,r11,r12 @ 1 cycle stall |
350 eor r10,r5,r6 @ F_xx_xx | 353 eor r10,r5,r6 @ F_xx_xx |
351 mov r9,r9,ror#31 | 354 mov r9,r9,ror#31 |
352 add r7,r7,r3,ror#27 @ E+=ROR(A,27) | 355 add r7,r7,r3,ror#27 @ E+=ROR(A,27) |
353 eor r9,r9,r11,ror#31 | 356 eor r9,r9,r11,ror#31 |
354 str r9,[r14,#-4]! | 357 str r9,[r14,#-4]! |
355 » and r10,r4,r10,ror#2» » » » » @ F_xx_xx | 358 » and» r10,r4,r10,ror#2» » » » » @ F_xx_x
x |
356 » and r11,r5,r6» » » » » @ F_xx_xx | 359 » and» r11,r5,r6» » » » » @ F_xx_xx |
357 add r7,r7,r9 @ E+=X[i] | 360 add r7,r7,r9 @ E+=X[i] |
358 add r7,r7,r10 @ E+=F_40_59(B,C,D) | 361 add r7,r7,r10 @ E+=F_40_59(B,C,D) |
359 add r7,r7,r11,ror#2 | 362 add r7,r7,r11,ror#2 |
360 ldr r9,[r14,#15*4] | 363 ldr r9,[r14,#15*4] |
361 ldr r10,[r14,#13*4] | 364 ldr r10,[r14,#13*4] |
362 ldr r11,[r14,#7*4] | 365 ldr r11,[r14,#7*4] |
363 add r6,r8,r6,ror#2 @ E+=K_xx_xx | 366 add r6,r8,r6,ror#2 @ E+=K_xx_xx |
364 ldr r12,[r14,#2*4] | 367 ldr r12,[r14,#2*4] |
365 eor r9,r9,r10 | 368 eor r9,r9,r10 |
366 eor r11,r11,r12 @ 1 cycle stall | 369 eor r11,r11,r12 @ 1 cycle stall |
367 eor r10,r4,r5 @ F_xx_xx | 370 eor r10,r4,r5 @ F_xx_xx |
368 mov r9,r9,ror#31 | 371 mov r9,r9,ror#31 |
369 add r6,r6,r7,ror#27 @ E+=ROR(A,27) | 372 add r6,r6,r7,ror#27 @ E+=ROR(A,27) |
370 eor r9,r9,r11,ror#31 | 373 eor r9,r9,r11,ror#31 |
371 str r9,[r14,#-4]! | 374 str r9,[r14,#-4]! |
372 » and r10,r3,r10,ror#2» » » » » @ F_xx_xx | 375 » and» r10,r3,r10,ror#2» » » » » @ F_xx_x
x |
373 » and r11,r4,r5» » » » » @ F_xx_xx | 376 » and» r11,r4,r5» » » » » @ F_xx_xx |
374 add r6,r6,r9 @ E+=X[i] | 377 add r6,r6,r9 @ E+=X[i] |
375 add r6,r6,r10 @ E+=F_40_59(B,C,D) | 378 add r6,r6,r10 @ E+=F_40_59(B,C,D) |
376 add r6,r6,r11,ror#2 | 379 add r6,r6,r11,ror#2 |
377 ldr r9,[r14,#15*4] | 380 ldr r9,[r14,#15*4] |
378 ldr r10,[r14,#13*4] | 381 ldr r10,[r14,#13*4] |
379 ldr r11,[r14,#7*4] | 382 ldr r11,[r14,#7*4] |
380 add r5,r8,r5,ror#2 @ E+=K_xx_xx | 383 add r5,r8,r5,ror#2 @ E+=K_xx_xx |
381 ldr r12,[r14,#2*4] | 384 ldr r12,[r14,#2*4] |
382 eor r9,r9,r10 | 385 eor r9,r9,r10 |
383 eor r11,r11,r12 @ 1 cycle stall | 386 eor r11,r11,r12 @ 1 cycle stall |
384 eor r10,r3,r4 @ F_xx_xx | 387 eor r10,r3,r4 @ F_xx_xx |
385 mov r9,r9,ror#31 | 388 mov r9,r9,ror#31 |
386 add r5,r5,r6,ror#27 @ E+=ROR(A,27) | 389 add r5,r5,r6,ror#27 @ E+=ROR(A,27) |
387 eor r9,r9,r11,ror#31 | 390 eor r9,r9,r11,ror#31 |
388 str r9,[r14,#-4]! | 391 str r9,[r14,#-4]! |
389 » and r10,r7,r10,ror#2» » » » » @ F_xx_xx | 392 » and» r10,r7,r10,ror#2» » » » » @ F_xx_x
x |
390 » and r11,r3,r4» » » » » @ F_xx_xx | 393 » and» r11,r3,r4» » » » » @ F_xx_xx |
391 add r5,r5,r9 @ E+=X[i] | 394 add r5,r5,r9 @ E+=X[i] |
392 add r5,r5,r10 @ E+=F_40_59(B,C,D) | 395 add r5,r5,r10 @ E+=F_40_59(B,C,D) |
393 add r5,r5,r11,ror#2 | 396 add r5,r5,r11,ror#2 |
394 ldr r9,[r14,#15*4] | 397 ldr r9,[r14,#15*4] |
395 ldr r10,[r14,#13*4] | 398 ldr r10,[r14,#13*4] |
396 ldr r11,[r14,#7*4] | 399 ldr r11,[r14,#7*4] |
397 add r4,r8,r4,ror#2 @ E+=K_xx_xx | 400 add r4,r8,r4,ror#2 @ E+=K_xx_xx |
398 ldr r12,[r14,#2*4] | 401 ldr r12,[r14,#2*4] |
399 eor r9,r9,r10 | 402 eor r9,r9,r10 |
400 eor r11,r11,r12 @ 1 cycle stall | 403 eor r11,r11,r12 @ 1 cycle stall |
401 eor r10,r7,r3 @ F_xx_xx | 404 eor r10,r7,r3 @ F_xx_xx |
402 mov r9,r9,ror#31 | 405 mov r9,r9,ror#31 |
403 add r4,r4,r5,ror#27 @ E+=ROR(A,27) | 406 add r4,r4,r5,ror#27 @ E+=ROR(A,27) |
404 eor r9,r9,r11,ror#31 | 407 eor r9,r9,r11,ror#31 |
405 str r9,[r14,#-4]! | 408 str r9,[r14,#-4]! |
406 » and r10,r6,r10,ror#2» » » » » @ F_xx_xx | 409 » and» r10,r6,r10,ror#2» » » » » @ F_xx_x
x |
407 » and r11,r7,r3» » » » » @ F_xx_xx | 410 » and» r11,r7,r3» » » » » @ F_xx_xx |
408 add r4,r4,r9 @ E+=X[i] | 411 add r4,r4,r9 @ E+=X[i] |
409 add r4,r4,r10 @ E+=F_40_59(B,C,D) | 412 add r4,r4,r10 @ E+=F_40_59(B,C,D) |
410 add r4,r4,r11,ror#2 | 413 add r4,r4,r11,ror#2 |
411 ldr r9,[r14,#15*4] | 414 ldr r9,[r14,#15*4] |
412 ldr r10,[r14,#13*4] | 415 ldr r10,[r14,#13*4] |
413 ldr r11,[r14,#7*4] | 416 ldr r11,[r14,#7*4] |
414 add r3,r8,r3,ror#2 @ E+=K_xx_xx | 417 add r3,r8,r3,ror#2 @ E+=K_xx_xx |
415 ldr r12,[r14,#2*4] | 418 ldr r12,[r14,#2*4] |
416 eor r9,r9,r10 | 419 eor r9,r9,r10 |
417 eor r11,r11,r12 @ 1 cycle stall | 420 eor r11,r11,r12 @ 1 cycle stall |
418 eor r10,r6,r7 @ F_xx_xx | 421 eor r10,r6,r7 @ F_xx_xx |
419 mov r9,r9,ror#31 | 422 mov r9,r9,ror#31 |
420 add r3,r3,r4,ror#27 @ E+=ROR(A,27) | 423 add r3,r3,r4,ror#27 @ E+=ROR(A,27) |
421 eor r9,r9,r11,ror#31 | 424 eor r9,r9,r11,ror#31 |
422 str r9,[r14,#-4]! | 425 str r9,[r14,#-4]! |
423 » and r10,r5,r10,ror#2» » » » » @ F_xx_xx | 426 » and» r10,r5,r10,ror#2» » » » » @ F_xx_x
x |
424 » and r11,r6,r7» » » » » @ F_xx_xx | 427 » and» r11,r6,r7» » » » » @ F_xx_xx |
425 add r3,r3,r9 @ E+=X[i] | 428 add r3,r3,r9 @ E+=X[i] |
426 add r3,r3,r10 @ E+=F_40_59(B,C,D) | 429 add r3,r3,r10 @ E+=F_40_59(B,C,D) |
427 add r3,r3,r11,ror#2 | 430 add r3,r3,r11,ror#2 |
428 teq r14,sp | 431 teq r14,sp |
429 bne .L_40_59 @ [+((12+5)*5+2)*4] | 432 bne .L_40_59 @ [+((12+5)*5+2)*4] |
430 | 433 |
431 ldr r8,.LK_60_79 | 434 ldr r8,.LK_60_79 |
432 sub sp,sp,#20*4 | 435 sub sp,sp,#20*4 |
433 cmp sp,#0 @ set carry to denote 60_79 | 436 cmp sp,#0 @ set carry to denote 60_79 |
434 b .L_20_39_or_60_79 @ [+4], spare 300 bytes | 437 b .L_20_39_or_60_79 @ [+4], spare 300 bytes |
435 .L_done: | 438 .L_done: |
436 add sp,sp,#80*4 @ "deallocate" stack frame | 439 add sp,sp,#80*4 @ "deallocate" stack frame |
437 ldmia r0,{r8,r9,r10,r11,r12} | 440 ldmia r0,{r8,r9,r10,r11,r12} |
438 add r3,r8,r3 | 441 add r3,r8,r3 |
439 add r4,r9,r4 | 442 add r4,r9,r4 |
440 add r5,r10,r5,ror#2 | 443 add r5,r10,r5,ror#2 |
441 add r6,r11,r6,ror#2 | 444 add r6,r11,r6,ror#2 |
442 add r7,r12,r7,ror#2 | 445 add r7,r12,r7,ror#2 |
443 stmia r0,{r3,r4,r5,r6,r7} | 446 stmia r0,{r3,r4,r5,r6,r7} |
444 teq r1,r2 | 447 teq r1,r2 |
445 bne .Lloop @ [+18], total 1307 | 448 bne .Lloop @ [+18], total 1307 |
446 | 449 |
447 #if __ARM_ARCH__>=5 | 450 #if __ARM_ARCH__>=5 |
448 » ldmia» sp!,{r4-r12,pc} | 451 » ldmia» sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc} |
449 #else | 452 #else |
450 » ldmia» sp!,{r4-r12,lr} | 453 » ldmia» sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} |
451 tst lr,#1 | 454 tst lr,#1 |
452 moveq pc,lr @ be binary compatible with V4, yet | 455 moveq pc,lr @ be binary compatible with V4, yet |
453 » .word» 0xe12fff1e» » » @ interoperable with Thumb ISA:-
) | 456 .word» 0xe12fff1e» » » @ interoperable with Thumb ISA:-) |
454 #endif | 457 #endif |
455 .size sha1_block_data_order,.-sha1_block_data_order | 458 .size sha1_block_data_order,.-sha1_block_data_order |
456 | 459 |
457 .align 5 | 460 .align 5 |
458 .LK_00_19:» .word» 0x5a827999 | 461 .LK_00_19:.word»0x5a827999 |
459 .LK_20_39:» .word» 0x6ed9eba1 | 462 .LK_20_39:.word»0x6ed9eba1 |
460 .LK_40_59:» .word» 0x8f1bbcdc | 463 .LK_40_59:.word»0x8f1bbcdc |
461 .LK_60_79:» .word» 0xca62c1d6 | 464 .LK_60_79:.word»0xca62c1d6 |
462 #if __ARM_MAX_ARCH__>=7 | 465 #if __ARM_MAX_ARCH__>=7 |
463 .LOPENSSL_armcap: | 466 .LOPENSSL_armcap: |
464 .word OPENSSL_armcap_P-sha1_block_data_order | 467 .word OPENSSL_armcap_P-sha1_block_data_order |
465 #endif | 468 #endif |
466 .asciz» "SHA1 block transform for ARMv4/NEON/ARMv8, CRYPTOGAMS by <appro@openssl
.org>" | 469 .byte» 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,3
2,102,111,114,32,65,82,77,118,52,47,78,69,79,78,47,65,82,77,118,56,44,32,67,82,8
9,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
,115,108,46,111,114,103,62,0 |
| 470 .align» 2 |
467 .align 5 | 471 .align 5 |
468 #if __ARM_MAX_ARCH__>=7 | 472 #if __ARM_MAX_ARCH__>=7 |
469 .arch armv7-a | 473 .arch armv7-a |
470 .fpu neon | 474 .fpu neon |
471 | 475 |
472 .type sha1_block_data_order_neon,%function | 476 .type sha1_block_data_order_neon,%function |
473 .align 4 | 477 .align 4 |
474 sha1_block_data_order_neon: | 478 sha1_block_data_order_neon: |
475 .LNEON: | 479 .LNEON: |
476 » stmdb» sp!,{r4-r12,lr} | 480 » stmdb» sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} |
477 add r2,r1,r2,lsl#6 @ r2 to point at the end of r1 | 481 add r2,r1,r2,lsl#6 @ r2 to point at the end of r1 |
478 @ dmb @ errata #451034 on early Cortex A8 | 482 @ dmb @ errata #451034 on early Cortex A8 |
479 @ vstmdb sp!,{d8-d15} @ ABI specification says so | 483 @ vstmdb sp!,{d8-d15} @ ABI specification says so |
480 mov r14,sp | 484 mov r14,sp |
481 sub sp,sp,#64 @ alloca | 485 sub sp,sp,#64 @ alloca |
482 adr r8,.LK_00_19 | 486 adr r8,.LK_00_19 |
483 bic sp,sp,#15 @ align for 128-bit stores | 487 bic sp,sp,#15 @ align for 128-bit stores |
484 | 488 |
485 ldmia r0,{r3,r4,r5,r6,r7} @ load context | 489 ldmia r0,{r3,r4,r5,r6,r7} @ load context |
486 mov r12,sp | 490 mov r12,sp |
487 | 491 |
488 » vld1.8» » {q0-q1},[r1]!» @ handles unaligned | 492 » vld1.8» {q0,q1},[r1]!» @ handles unaligned |
489 » veor» » q15,q15,q15 | 493 » veor» q15,q15,q15 |
490 » vld1.8» » {q2-q3},[r1]! | 494 » vld1.8» {q2,q3},[r1]! |
491 » vld1.32»» {d28[],d29[]},[r8,:32]!»@ load K_00_19 | 495 » vld1.32»{d28[],d29[]},[r8,:32]!»@ load K_00_19 |
492 vrev32.8 q0,q0 @ yes, even on | 496 vrev32.8 q0,q0 @ yes, even on |
493 vrev32.8 q1,q1 @ big-endian... | 497 vrev32.8 q1,q1 @ big-endian... |
494 vrev32.8 q2,q2 | 498 vrev32.8 q2,q2 |
495 vadd.i32 q8,q0,q14 | 499 vadd.i32 q8,q0,q14 |
496 vrev32.8 q3,q3 | 500 vrev32.8 q3,q3 |
497 vadd.i32 q9,q1,q14 | 501 vadd.i32 q9,q1,q14 |
498 » vst1.32»» {q8},[r12,:128]! | 502 » vst1.32»{q8},[r12,:128]! |
499 vadd.i32 q10,q2,q14 | 503 vadd.i32 q10,q2,q14 |
500 » vst1.32»» {q9},[r12,:128]! | 504 » vst1.32»{q9},[r12,:128]! |
501 » vst1.32»» {q10},[r12,:128]! | 505 » vst1.32»{q10},[r12,:128]! |
502 » ldr» » r9,[sp]»» » @ big RAW stall | 506 » ldr» r9,[sp]»» » @ big RAW stall |
503 | 507 |
504 .Loop_neon: | 508 .Loop_neon: |
505 vext.8 q8,q0,q1,#8 | 509 vext.8 q8,q0,q1,#8 |
506 bic r10,r6,r4 | 510 bic r10,r6,r4 |
507 add r7,r7,r9 | 511 add r7,r7,r9 |
508 and r11,r5,r4 | 512 and r11,r5,r4 |
509 vadd.i32 q13,q3,q14 | 513 vadd.i32 q13,q3,q14 |
510 ldr r9,[sp,#4] | 514 ldr r9,[sp,#4] |
511 add r7,r7,r3,ror#27 | 515 add r7,r7,r3,ror#27 |
512 vext.8 q12,q3,q15,#4 | 516 vext.8 q12,q3,q15,#4 |
(...skipping 657 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1170 mov r6,r6,ror#2 | 1174 mov r6,r6,ror#2 |
1171 add r4,r4,r11 | 1175 add r4,r4,r11 |
1172 vadd.i32 q13,q3,q14 | 1176 vadd.i32 q13,q3,q14 |
1173 eor r10,r5,r7 | 1177 eor r10,r5,r7 |
1174 add r3,r3,r9 | 1178 add r3,r3,r9 |
1175 vst1.32 {q13},[r12,:128]! | 1179 vst1.32 {q13},[r12,:128]! |
1176 sub r12,r12,#64 | 1180 sub r12,r12,#64 |
1177 teq r1,r2 | 1181 teq r1,r2 |
1178 sub r8,r8,#16 | 1182 sub r8,r8,#16 |
1179 subeq r1,r1,#64 | 1183 subeq r1,r1,#64 |
1180 » vld1.8» {q0-q1},[r1]! | 1184 » vld1.8» {q0,q1},[r1]! |
1181 ldr r9,[sp,#4] | 1185 ldr r9,[sp,#4] |
1182 eor r11,r10,r6 | 1186 eor r11,r10,r6 |
1183 » vld1.8» {q2-q3},[r1]! | 1187 » vld1.8» {q2,q3},[r1]! |
1184 add r3,r3,r4,ror#27 | 1188 add r3,r3,r4,ror#27 |
1185 mov r5,r5,ror#2 | 1189 mov r5,r5,ror#2 |
1186 vld1.32 {d28[],d29[]},[r8,:32]! | 1190 vld1.32 {d28[],d29[]},[r8,:32]! |
1187 add r3,r3,r11 | 1191 add r3,r3,r11 |
1188 eor r10,r4,r6 | 1192 eor r10,r4,r6 |
1189 vrev32.8 q0,q0 | 1193 vrev32.8 q0,q0 |
1190 add r7,r7,r9 | 1194 add r7,r7,r9 |
1191 ldr r9,[sp,#8] | 1195 ldr r9,[sp,#8] |
1192 eor r11,r10,r5 | 1196 eor r11,r10,r5 |
1193 add r7,r7,r3,ror#27 | 1197 add r7,r7,r3,ror#27 |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1306 add r5,r5,r11 | 1310 add r5,r5,r11 |
1307 add r6,r6,r12 | 1311 add r6,r6,r12 |
1308 moveq sp,r14 | 1312 moveq sp,r14 |
1309 add r7,r7,r9 | 1313 add r7,r7,r9 |
1310 ldrne r9,[sp] | 1314 ldrne r9,[sp] |
1311 stmia r0,{r3,r4,r5,r6,r7} | 1315 stmia r0,{r3,r4,r5,r6,r7} |
1312 addne r12,sp,#3*16 | 1316 addne r12,sp,#3*16 |
1313 bne .Loop_neon | 1317 bne .Loop_neon |
1314 | 1318 |
1315 @ vldmia sp!,{d8-d15} | 1319 @ vldmia sp!,{d8-d15} |
1316 » ldmia» sp!,{r4-r12,pc} | 1320 » ldmia» sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc} |
1317 .size sha1_block_data_order_neon,.-sha1_block_data_order_neon | 1321 .size sha1_block_data_order_neon,.-sha1_block_data_order_neon |
1318 #endif | 1322 #endif |
1319 #if __ARM_MAX_ARCH__>=7 | 1323 #if __ARM_MAX_ARCH__>=7 |
1320 .type sha1_block_data_order_armv8,%function | 1324 .type sha1_block_data_order_armv8,%function |
1321 .align 5 | 1325 .align 5 |
1322 sha1_block_data_order_armv8: | 1326 sha1_block_data_order_armv8: |
1323 .LARMv8: | 1327 .LARMv8: |
1324 » vstmdb» sp!,{d8-d15}» » @ ABI specification says so | 1328 » vstmdb» sp!,{d8,d9,d10,d11,d12,d13,d14,d15}» » @ ABI specificat
ion says so |
1325 | 1329 |
1326 veor q1,q1,q1 | 1330 veor q1,q1,q1 |
1327 adr r3,.LK_00_19 | 1331 adr r3,.LK_00_19 |
1328 vld1.32 {q0},[r0]! | 1332 vld1.32 {q0},[r0]! |
1329 vld1.32 {d2[0]},[r0] | 1333 vld1.32 {d2[0]},[r0] |
1330 sub r0,r0,#16 | 1334 sub r0,r0,#16 |
1331 vld1.32 {d16[],d17[]},[r3,:32]! | 1335 vld1.32 {d16[],d17[]},[r3,:32]! |
1332 vld1.32 {d18[],d19[]},[r3,:32]! | 1336 vld1.32 {d18[],d19[]},[r3,:32]! |
1333 vld1.32 {d20[],d21[]},[r3,:32]! | 1337 vld1.32 {d20[],d21[]},[r3,:32]! |
1334 vld1.32 {d22[],d23[]},[r3,:32] | 1338 vld1.32 {d22[],d23[]},[r3,:32] |
1335 | 1339 |
1336 .Loop_v8: | 1340 .Loop_v8: |
1337 » vld1.8» » {q4-q5},[r1]! | 1341 » vld1.8» {q4,q5},[r1]! |
1338 » vld1.8» » {q6-q7},[r1]! | 1342 » vld1.8» {q6,q7},[r1]! |
1339 vrev32.8 q4,q4 | 1343 vrev32.8 q4,q4 |
1340 vrev32.8 q5,q5 | 1344 vrev32.8 q5,q5 |
1341 | 1345 |
1342 vadd.i32 q12,q8,q4 | 1346 vadd.i32 q12,q8,q4 |
1343 vrev32.8 q6,q6 | 1347 vrev32.8 q6,q6 |
1344 » vmov» » q14,q0» @ offload | 1348 » vmov» q14,q0» @ offload |
1345 » subs» » r2,r2,#1 | 1349 » subs» r2,r2,#1 |
1346 | 1350 |
1347 vadd.i32 q13,q8,q5 | 1351 vadd.i32 q13,q8,q5 |
1348 vrev32.8 q7,q7 | 1352 vrev32.8 q7,q7 |
1349 » .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 0 | 1353 .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 0 |
1350 » .byte» 0x68,0x0c,0x02,0xf2» @ sha1c q0,q1,q12 | 1354 .byte» 0x68,0x0c,0x02,0xf2» @ sha1c q0,q1,q12 |
1351 vadd.i32 q12,q8,q6 | 1355 vadd.i32 q12,q8,q6 |
1352 » .byte» 0x4c,0x8c,0x3a,0xf2» @ sha1su0 q4,q5,q6 | 1356 .byte» 0x4c,0x8c,0x3a,0xf2» @ sha1su0 q4,q5,q6 |
1353 » .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 1 | 1357 .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 1 |
1354 » .byte» 0x6a,0x0c,0x06,0xf2» @ sha1c q0,q3,q13 | 1358 .byte» 0x6a,0x0c,0x06,0xf2» @ sha1c q0,q3,q13 |
1355 vadd.i32 q13,q8,q7 | 1359 vadd.i32 q13,q8,q7 |
1356 » .byte» 0x8e,0x83,0xba,0xf3» @ sha1su1 q4,q7 | 1360 .byte» 0x8e,0x83,0xba,0xf3» @ sha1su1 q4,q7 |
1357 » .byte» 0x4e,0xac,0x3c,0xf2» @ sha1su0 q5,q6,q7 | 1361 .byte» 0x4e,0xac,0x3c,0xf2» @ sha1su0 q5,q6,q7 |
1358 » .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 2 | 1362 .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 2 |
1359 » .byte» 0x68,0x0c,0x04,0xf2» @ sha1c q0,q2,q12 | 1363 .byte» 0x68,0x0c,0x04,0xf2» @ sha1c q0,q2,q12 |
1360 vadd.i32 q12,q8,q4 | 1364 vadd.i32 q12,q8,q4 |
1361 » .byte» 0x88,0xa3,0xba,0xf3» @ sha1su1 q5,q4 | 1365 .byte» 0x88,0xa3,0xba,0xf3» @ sha1su1 q5,q4 |
1362 » .byte» 0x48,0xcc,0x3e,0xf2» @ sha1su0 q6,q7,q4 | 1366 .byte» 0x48,0xcc,0x3e,0xf2» @ sha1su0 q6,q7,q4 |
1363 » .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 3 | 1367 .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 3 |
1364 » .byte» 0x6a,0x0c,0x06,0xf2» @ sha1c q0,q3,q13 | 1368 .byte» 0x6a,0x0c,0x06,0xf2» @ sha1c q0,q3,q13 |
1365 vadd.i32 q13,q9,q5 | 1369 vadd.i32 q13,q9,q5 |
1366 » .byte» 0x8a,0xc3,0xba,0xf3» @ sha1su1 q6,q5 | 1370 .byte» 0x8a,0xc3,0xba,0xf3» @ sha1su1 q6,q5 |
1367 » .byte» 0x4a,0xec,0x38,0xf2» @ sha1su0 q7,q4,q5 | 1371 .byte» 0x4a,0xec,0x38,0xf2» @ sha1su0 q7,q4,q5 |
1368 » .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 4 | 1372 .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 4 |
1369 » .byte» 0x68,0x0c,0x04,0xf2» @ sha1c q0,q2,q12 | 1373 .byte» 0x68,0x0c,0x04,0xf2» @ sha1c q0,q2,q12 |
1370 vadd.i32 q12,q9,q6 | 1374 vadd.i32 q12,q9,q6 |
1371 » .byte» 0x8c,0xe3,0xba,0xf3» @ sha1su1 q7,q6 | 1375 .byte» 0x8c,0xe3,0xba,0xf3» @ sha1su1 q7,q6 |
1372 » .byte» 0x4c,0x8c,0x3a,0xf2» @ sha1su0 q4,q5,q6 | 1376 .byte» 0x4c,0x8c,0x3a,0xf2» @ sha1su0 q4,q5,q6 |
1373 » .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 5 | 1377 .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 5 |
1374 » .byte» 0x6a,0x0c,0x16,0xf2» @ sha1p q0,q3,q13 | 1378 .byte» 0x6a,0x0c,0x16,0xf2» @ sha1p q0,q3,q13 |
1375 vadd.i32 q13,q9,q7 | 1379 vadd.i32 q13,q9,q7 |
1376 » .byte» 0x8e,0x83,0xba,0xf3» @ sha1su1 q4,q7 | 1380 .byte» 0x8e,0x83,0xba,0xf3» @ sha1su1 q4,q7 |
1377 » .byte» 0x4e,0xac,0x3c,0xf2» @ sha1su0 q5,q6,q7 | 1381 .byte» 0x4e,0xac,0x3c,0xf2» @ sha1su0 q5,q6,q7 |
1378 » .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 6 | 1382 .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 6 |
1379 » .byte» 0x68,0x0c,0x14,0xf2» @ sha1p q0,q2,q12 | 1383 .byte» 0x68,0x0c,0x14,0xf2» @ sha1p q0,q2,q12 |
1380 vadd.i32 q12,q9,q4 | 1384 vadd.i32 q12,q9,q4 |
1381 » .byte» 0x88,0xa3,0xba,0xf3» @ sha1su1 q5,q4 | 1385 .byte» 0x88,0xa3,0xba,0xf3» @ sha1su1 q5,q4 |
1382 » .byte» 0x48,0xcc,0x3e,0xf2» @ sha1su0 q6,q7,q4 | 1386 .byte» 0x48,0xcc,0x3e,0xf2» @ sha1su0 q6,q7,q4 |
1383 » .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 7 | 1387 .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 7 |
1384 » .byte» 0x6a,0x0c,0x16,0xf2» @ sha1p q0,q3,q13 | 1388 .byte» 0x6a,0x0c,0x16,0xf2» @ sha1p q0,q3,q13 |
1385 vadd.i32 q13,q9,q5 | 1389 vadd.i32 q13,q9,q5 |
1386 » .byte» 0x8a,0xc3,0xba,0xf3» @ sha1su1 q6,q5 | 1390 .byte» 0x8a,0xc3,0xba,0xf3» @ sha1su1 q6,q5 |
1387 » .byte» 0x4a,0xec,0x38,0xf2» @ sha1su0 q7,q4,q5 | 1391 .byte» 0x4a,0xec,0x38,0xf2» @ sha1su0 q7,q4,q5 |
1388 » .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 8 | 1392 .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 8 |
1389 » .byte» 0x68,0x0c,0x14,0xf2» @ sha1p q0,q2,q12 | 1393 .byte» 0x68,0x0c,0x14,0xf2» @ sha1p q0,q2,q12 |
1390 vadd.i32 q12,q10,q6 | 1394 vadd.i32 q12,q10,q6 |
1391 » .byte» 0x8c,0xe3,0xba,0xf3» @ sha1su1 q7,q6 | 1395 .byte» 0x8c,0xe3,0xba,0xf3» @ sha1su1 q7,q6 |
1392 » .byte» 0x4c,0x8c,0x3a,0xf2» @ sha1su0 q4,q5,q6 | 1396 .byte» 0x4c,0x8c,0x3a,0xf2» @ sha1su0 q4,q5,q6 |
1393 » .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 9 | 1397 .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 9 |
1394 » .byte» 0x6a,0x0c,0x16,0xf2» @ sha1p q0,q3,q13 | 1398 .byte» 0x6a,0x0c,0x16,0xf2» @ sha1p q0,q3,q13 |
1395 vadd.i32 q13,q10,q7 | 1399 vadd.i32 q13,q10,q7 |
1396 » .byte» 0x8e,0x83,0xba,0xf3» @ sha1su1 q4,q7 | 1400 .byte» 0x8e,0x83,0xba,0xf3» @ sha1su1 q4,q7 |
1397 » .byte» 0x4e,0xac,0x3c,0xf2» @ sha1su0 q5,q6,q7 | 1401 .byte» 0x4e,0xac,0x3c,0xf2» @ sha1su0 q5,q6,q7 |
1398 » .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 10 | 1402 .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 10 |
1399 » .byte» 0x68,0x0c,0x24,0xf2» @ sha1m q0,q2,q12 | 1403 .byte» 0x68,0x0c,0x24,0xf2» @ sha1m q0,q2,q12 |
1400 vadd.i32 q12,q10,q4 | 1404 vadd.i32 q12,q10,q4 |
1401 » .byte» 0x88,0xa3,0xba,0xf3» @ sha1su1 q5,q4 | 1405 .byte» 0x88,0xa3,0xba,0xf3» @ sha1su1 q5,q4 |
1402 » .byte» 0x48,0xcc,0x3e,0xf2» @ sha1su0 q6,q7,q4 | 1406 .byte» 0x48,0xcc,0x3e,0xf2» @ sha1su0 q6,q7,q4 |
1403 » .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 11 | 1407 .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 11 |
1404 » .byte» 0x6a,0x0c,0x26,0xf2» @ sha1m q0,q3,q13 | 1408 .byte» 0x6a,0x0c,0x26,0xf2» @ sha1m q0,q3,q13 |
1405 vadd.i32 q13,q10,q5 | 1409 vadd.i32 q13,q10,q5 |
1406 » .byte» 0x8a,0xc3,0xba,0xf3» @ sha1su1 q6,q5 | 1410 .byte» 0x8a,0xc3,0xba,0xf3» @ sha1su1 q6,q5 |
1407 » .byte» 0x4a,0xec,0x38,0xf2» @ sha1su0 q7,q4,q5 | 1411 .byte» 0x4a,0xec,0x38,0xf2» @ sha1su0 q7,q4,q5 |
1408 » .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 12 | 1412 .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 12 |
1409 » .byte» 0x68,0x0c,0x24,0xf2» @ sha1m q0,q2,q12 | 1413 .byte» 0x68,0x0c,0x24,0xf2» @ sha1m q0,q2,q12 |
1410 vadd.i32 q12,q10,q6 | 1414 vadd.i32 q12,q10,q6 |
1411 » .byte» 0x8c,0xe3,0xba,0xf3» @ sha1su1 q7,q6 | 1415 .byte» 0x8c,0xe3,0xba,0xf3» @ sha1su1 q7,q6 |
1412 » .byte» 0x4c,0x8c,0x3a,0xf2» @ sha1su0 q4,q5,q6 | 1416 .byte» 0x4c,0x8c,0x3a,0xf2» @ sha1su0 q4,q5,q6 |
1413 » .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 13 | 1417 .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 13 |
1414 » .byte» 0x6a,0x0c,0x26,0xf2» @ sha1m q0,q3,q13 | 1418 .byte» 0x6a,0x0c,0x26,0xf2» @ sha1m q0,q3,q13 |
1415 vadd.i32 q13,q11,q7 | 1419 vadd.i32 q13,q11,q7 |
1416 » .byte» 0x8e,0x83,0xba,0xf3» @ sha1su1 q4,q7 | 1420 .byte» 0x8e,0x83,0xba,0xf3» @ sha1su1 q4,q7 |
1417 » .byte» 0x4e,0xac,0x3c,0xf2» @ sha1su0 q5,q6,q7 | 1421 .byte» 0x4e,0xac,0x3c,0xf2» @ sha1su0 q5,q6,q7 |
1418 » .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 14 | 1422 .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 14 |
1419 » .byte» 0x68,0x0c,0x24,0xf2» @ sha1m q0,q2,q12 | 1423 .byte» 0x68,0x0c,0x24,0xf2» @ sha1m q0,q2,q12 |
1420 vadd.i32 q12,q11,q4 | 1424 vadd.i32 q12,q11,q4 |
1421 » .byte» 0x88,0xa3,0xba,0xf3» @ sha1su1 q5,q4 | 1425 .byte» 0x88,0xa3,0xba,0xf3» @ sha1su1 q5,q4 |
1422 » .byte» 0x48,0xcc,0x3e,0xf2» @ sha1su0 q6,q7,q4 | 1426 .byte» 0x48,0xcc,0x3e,0xf2» @ sha1su0 q6,q7,q4 |
1423 » .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 15 | 1427 .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 15 |
1424 » .byte» 0x6a,0x0c,0x16,0xf2» @ sha1p q0,q3,q13 | 1428 .byte» 0x6a,0x0c,0x16,0xf2» @ sha1p q0,q3,q13 |
1425 vadd.i32 q13,q11,q5 | 1429 vadd.i32 q13,q11,q5 |
1426 » .byte» 0x8a,0xc3,0xba,0xf3» @ sha1su1 q6,q5 | 1430 .byte» 0x8a,0xc3,0xba,0xf3» @ sha1su1 q6,q5 |
1427 » .byte» 0x4a,0xec,0x38,0xf2» @ sha1su0 q7,q4,q5 | 1431 .byte» 0x4a,0xec,0x38,0xf2» @ sha1su0 q7,q4,q5 |
1428 » .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 16 | 1432 .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 16 |
1429 » .byte» 0x68,0x0c,0x14,0xf2» @ sha1p q0,q2,q12 | 1433 .byte» 0x68,0x0c,0x14,0xf2» @ sha1p q0,q2,q12 |
1430 vadd.i32 q12,q11,q6 | 1434 vadd.i32 q12,q11,q6 |
1431 » .byte» 0x8c,0xe3,0xba,0xf3» @ sha1su1 q7,q6 | 1435 .byte» 0x8c,0xe3,0xba,0xf3» @ sha1su1 q7,q6 |
1432 » .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 17 | 1436 .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 17 |
1433 » .byte» 0x6a,0x0c,0x16,0xf2» @ sha1p q0,q3,q13 | 1437 .byte» 0x6a,0x0c,0x16,0xf2» @ sha1p q0,q3,q13 |
1434 vadd.i32 q13,q11,q7 | 1438 vadd.i32 q13,q11,q7 |
1435 | 1439 |
1436 » .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 18 | 1440 .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 18 |
1437 » .byte» 0x68,0x0c,0x14,0xf2» @ sha1p q0,q2,q12 | 1441 .byte» 0x68,0x0c,0x14,0xf2» @ sha1p q0,q2,q12 |
1438 | 1442 |
1439 » .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 19 | 1443 .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 19 |
1440 » .byte» 0x6a,0x0c,0x16,0xf2» @ sha1p q0,q3,q13 | 1444 .byte» 0x6a,0x0c,0x16,0xf2» @ sha1p q0,q3,q13 |
1441 | 1445 |
1442 vadd.i32 q1,q1,q2 | 1446 vadd.i32 q1,q1,q2 |
1443 vadd.i32 q0,q0,q14 | 1447 vadd.i32 q0,q0,q14 |
1444 » bne» » .Loop_v8 | 1448 » bne» .Loop_v8 |
1445 | 1449 |
1446 » vst1.32»» {q0},[r0]! | 1450 » vst1.32»{q0},[r0]! |
1447 » vst1.32»» {d2[0]},[r0] | 1451 » vst1.32»{d2[0]},[r0] |
1448 | 1452 |
1449 » vldmia» sp!,{d8-d15} | 1453 » vldmia» sp!,{d8,d9,d10,d11,d12,d13,d14,d15} |
1450 bx lr @ bx lr | 1454 bx lr @ bx lr |
1451 .size sha1_block_data_order_armv8,.-sha1_block_data_order_armv8 | 1455 .size sha1_block_data_order_armv8,.-sha1_block_data_order_armv8 |
1452 #endif | 1456 #endif |
1453 #if __ARM_MAX_ARCH__>=7 | 1457 #if __ARM_MAX_ARCH__>=7 |
1454 .comm OPENSSL_armcap_P,4,4 | 1458 .comm OPENSSL_armcap_P,4,4 |
1455 .hidden OPENSSL_armcap_P | 1459 .hidden OPENSSL_armcap_P |
1456 #endif | 1460 #endif |
OLD | NEW |