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