1 /* $FreeBSD$ */
2 /* Do not modify. This file is auto-generated from sha1-x86_64.pl. */
3 .text
4
5
6 .globl sha1_block_data_order
7 .type sha1_block_data_order,@function
8 .align 16
9 sha1_block_data_order:
10 .cfi_startproc
11 movl OPENSSL_ia32cap_P+0(%rip),%r9d
12 movl OPENSSL_ia32cap_P+4(%rip),%r8d
13 movl OPENSSL_ia32cap_P+8(%rip),%r10d
14 testl $512,%r8d
15 jz .Lialu
16 testl $536870912,%r10d
17 jnz _shaext_shortcut
18 andl $296,%r10d
19 cmpl $296,%r10d
20 je _avx2_shortcut
21 andl $268435456,%r8d
22 andl $1073741824,%r9d
23 orl %r9d,%r8d
24 cmpl $1342177280,%r8d
25 je _avx_shortcut
26 jmp _ssse3_shortcut
27
28 .align 16
29 .Lialu:
30 movq %rsp,%rax
31 .cfi_def_cfa_register %rax
32 pushq %rbx
33 .cfi_offset %rbx,-16
34 pushq %rbp
35 .cfi_offset %rbp,-24
36 pushq %r12
37 .cfi_offset %r12,-32
38 pushq %r13
39 .cfi_offset %r13,-40
40 pushq %r14
41 .cfi_offset %r14,-48
42 movq %rdi,%r8
43 subq $72,%rsp
44 movq %rsi,%r9
45 andq $-64,%rsp
46 movq %rdx,%r10
47 movq %rax,64(%rsp)
48 .cfi_escape 0x0f,0x06,0x77,0xc0,0x00,0x06,0x23,0x08
49 .Lprologue:
50
51 movl 0(%r8),%esi
52 movl 4(%r8),%edi
53 movl 8(%r8),%r11d
54 movl 12(%r8),%r12d
55 movl 16(%r8),%r13d
56 jmp .Lloop
57
58 .align 16
59 .Lloop:
60 movl 0(%r9),%edx
61 bswapl %edx
62 movl 4(%r9),%ebp
63 movl %r12d,%eax
64 movl %edx,0(%rsp)
65 movl %esi,%ecx
66 bswapl %ebp
67 xorl %r11d,%eax
68 roll $5,%ecx
69 andl %edi,%eax
70 leal 1518500249(%rdx,%r13,1),%r13d
71 addl %ecx,%r13d
72 xorl %r12d,%eax
73 roll $30,%edi
74 addl %eax,%r13d
75 movl 8(%r9),%r14d
76 movl %r11d,%eax
77 movl %ebp,4(%rsp)
78 movl %r13d,%ecx
79 bswapl %r14d
80 xorl %edi,%eax
81 roll $5,%ecx
82 andl %esi,%eax
83 leal 1518500249(%rbp,%r12,1),%r12d
84 addl %ecx,%r12d
85 xorl %r11d,%eax
86 roll $30,%esi
87 addl %eax,%r12d
88 movl 12(%r9),%edx
89 movl %edi,%eax
90 movl %r14d,8(%rsp)
91 movl %r12d,%ecx
92 bswapl %edx
93 xorl %esi,%eax
94 roll $5,%ecx
95 andl %r13d,%eax
96 leal 1518500249(%r14,%r11,1),%r11d
97 addl %ecx,%r11d
98 xorl %edi,%eax
99 roll $30,%r13d
100 addl %eax,%r11d
101 movl 16(%r9),%ebp
102 movl %esi,%eax
103 movl %edx,12(%rsp)
104 movl %r11d,%ecx
105 bswapl %ebp
106 xorl %r13d,%eax
107 roll $5,%ecx
108 andl %r12d,%eax
109 leal 1518500249(%rdx,%rdi,1),%edi
110 addl %ecx,%edi
111 xorl %esi,%eax
112 roll $30,%r12d
113 addl %eax,%edi
114 movl 20(%r9),%r14d
115 movl %r13d,%eax
116 movl %ebp,16(%rsp)
117 movl %edi,%ecx
118 bswapl %r14d
119 xorl %r12d,%eax
120 roll $5,%ecx
121 andl %r11d,%eax
122 leal 1518500249(%rbp,%rsi,1),%esi
123 addl %ecx,%esi
124 xorl %r13d,%eax
125 roll $30,%r11d
126 addl %eax,%esi
127 movl 24(%r9),%edx
128 movl %r12d,%eax
129 movl %r14d,20(%rsp)
130 movl %esi,%ecx
131 bswapl %edx
132 xorl %r11d,%eax
133 roll $5,%ecx
134 andl %edi,%eax
135 leal 1518500249(%r14,%r13,1),%r13d
136 addl %ecx,%r13d
137 xorl %r12d,%eax
138 roll $30,%edi
139 addl %eax,%r13d
140 movl 28(%r9),%ebp
141 movl %r11d,%eax
142 movl %edx,24(%rsp)
143 movl %r13d,%ecx
144 bswapl %ebp
145 xorl %edi,%eax
146 roll $5,%ecx
147 andl %esi,%eax
148 leal 1518500249(%rdx,%r12,1),%r12d
149 addl %ecx,%r12d
150 xorl %r11d,%eax
151 roll $30,%esi
152 addl %eax,%r12d
153 movl 32(%r9),%r14d
154 movl %edi,%eax
155 movl %ebp,28(%rsp)
156 movl %r12d,%ecx
157 bswapl %r14d
158 xorl %esi,%eax
159 roll $5,%ecx
160 andl %r13d,%eax
161 leal 1518500249(%rbp,%r11,1),%r11d
162 addl %ecx,%r11d
163 xorl %edi,%eax
164 roll $30,%r13d
165 addl %eax,%r11d
166 movl 36(%r9),%edx
167 movl %esi,%eax
168 movl %r14d,32(%rsp)
169 movl %r11d,%ecx
170 bswapl %edx
171 xorl %r13d,%eax
172 roll $5,%ecx
173 andl %r12d,%eax
174 leal 1518500249(%r14,%rdi,1),%edi
175 addl %ecx,%edi
176 xorl %esi,%eax
177 roll $30,%r12d
178 addl %eax,%edi
179 movl 40(%r9),%ebp
180 movl %r13d,%eax
181 movl %edx,36(%rsp)
182 movl %edi,%ecx
183 bswapl %ebp
184 xorl %r12d,%eax
185 roll $5,%ecx
186 andl %r11d,%eax
187 leal 1518500249(%rdx,%rsi,1),%esi
188 addl %ecx,%esi
189 xorl %r13d,%eax
190 roll $30,%r11d
191 addl %eax,%esi
192 movl 44(%r9),%r14d
193 movl %r12d,%eax
194 movl %ebp,40(%rsp)
195 movl %esi,%ecx
196 bswapl %r14d
197 xorl %r11d,%eax
198 roll $5,%ecx
199 andl %edi,%eax
200 leal 1518500249(%rbp,%r13,1),%r13d
201 addl %ecx,%r13d
202 xorl %r12d,%eax
203 roll $30,%edi
204 addl %eax,%r13d
205 movl 48(%r9),%edx
206 movl %r11d,%eax
207 movl %r14d,44(%rsp)
208 movl %r13d,%ecx
209 bswapl %edx
210 xorl %edi,%eax
211 roll $5,%ecx
212 andl %esi,%eax
213 leal 1518500249(%r14,%r12,1),%r12d
214 addl %ecx,%r12d
215 xorl %r11d,%eax
216 roll $30,%esi
217 addl %eax,%r12d
218 movl 52(%r9),%ebp
219 movl %edi,%eax
220 movl %edx,48(%rsp)
221 movl %r12d,%ecx
222 bswapl %ebp
223 xorl %esi,%eax
224 roll $5,%ecx
225 andl %r13d,%eax
226 leal 1518500249(%rdx,%r11,1),%r11d
227 addl %ecx,%r11d
228 xorl %edi,%eax
229 roll $30,%r13d
230 addl %eax,%r11d
231 movl 56(%r9),%r14d
232 movl %esi,%eax
233 movl %ebp,52(%rsp)
234 movl %r11d,%ecx
235 bswapl %r14d
236 xorl %r13d,%eax
237 roll $5,%ecx
238 andl %r12d,%eax
239 leal 1518500249(%rbp,%rdi,1),%edi
240 addl %ecx,%edi
241 xorl %esi,%eax
242 roll $30,%r12d
243 addl %eax,%edi
244 movl 60(%r9),%edx
245 movl %r13d,%eax
246 movl %r14d,56(%rsp)
247 movl %edi,%ecx
248 bswapl %edx
249 xorl %r12d,%eax
250 roll $5,%ecx
251 andl %r11d,%eax
252 leal 1518500249(%r14,%rsi,1),%esi
253 addl %ecx,%esi
254 xorl %r13d,%eax
255 roll $30,%r11d
256 addl %eax,%esi
257 xorl 0(%rsp),%ebp
258 movl %r12d,%eax
259 movl %edx,60(%rsp)
260 movl %esi,%ecx
261 xorl 8(%rsp),%ebp
262 xorl %r11d,%eax
263 roll $5,%ecx
264 xorl 32(%rsp),%ebp
265 andl %edi,%eax
266 leal 1518500249(%rdx,%r13,1),%r13d
267 roll $30,%edi
268 xorl %r12d,%eax
269 addl %ecx,%r13d
270 roll $1,%ebp
271 addl %eax,%r13d
272 xorl 4(%rsp),%r14d
273 movl %r11d,%eax
274 movl %ebp,0(%rsp)
275 movl %r13d,%ecx
276 xorl 12(%rsp),%r14d
277 xorl %edi,%eax
278 roll $5,%ecx
279 xorl 36(%rsp),%r14d
280 andl %esi,%eax
281 leal 1518500249(%rbp,%r12,1),%r12d
282 roll $30,%esi
283 xorl %r11d,%eax
284 addl %ecx,%r12d
285 roll $1,%r14d
286 addl %eax,%r12d
287 xorl 8(%rsp),%edx
288 movl %edi,%eax
289 movl %r14d,4(%rsp)
290 movl %r12d,%ecx
291 xorl 16(%rsp),%edx
292 xorl %esi,%eax
293 roll $5,%ecx
294 xorl 40(%rsp),%edx
295 andl %r13d,%eax
296 leal 1518500249(%r14,%r11,1),%r11d
297 roll $30,%r13d
298 xorl %edi,%eax
299 addl %ecx,%r11d
300 roll $1,%edx
301 addl %eax,%r11d
302 xorl 12(%rsp),%ebp
303 movl %esi,%eax
304 movl %edx,8(%rsp)
305 movl %r11d,%ecx
306 xorl 20(%rsp),%ebp
307 xorl %r13d,%eax
308 roll $5,%ecx
309 xorl 44(%rsp),%ebp
310 andl %r12d,%eax
311 leal 1518500249(%rdx,%rdi,1),%edi
312 roll $30,%r12d
313 xorl %esi,%eax
314 addl %ecx,%edi
315 roll $1,%ebp
316 addl %eax,%edi
317 xorl 16(%rsp),%r14d
318 movl %r13d,%eax
319 movl %ebp,12(%rsp)
320 movl %edi,%ecx
321 xorl 24(%rsp),%r14d
322 xorl %r12d,%eax
323 roll $5,%ecx
324 xorl 48(%rsp),%r14d
325 andl %r11d,%eax
326 leal 1518500249(%rbp,%rsi,1),%esi
327 roll $30,%r11d
328 xorl %r13d,%eax
329 addl %ecx,%esi
330 roll $1,%r14d
331 addl %eax,%esi
332 xorl 20(%rsp),%edx
333 movl %edi,%eax
334 movl %r14d,16(%rsp)
335 movl %esi,%ecx
336 xorl 28(%rsp),%edx
337 xorl %r12d,%eax
338 roll $5,%ecx
339 xorl 52(%rsp),%edx
340 leal 1859775393(%r14,%r13,1),%r13d
341 xorl %r11d,%eax
342 addl %ecx,%r13d
343 roll $30,%edi
344 addl %eax,%r13d
345 roll $1,%edx
346 xorl 24(%rsp),%ebp
347 movl %esi,%eax
348 movl %edx,20(%rsp)
349 movl %r13d,%ecx
350 xorl 32(%rsp),%ebp
351 xorl %r11d,%eax
352 roll $5,%ecx
353 xorl 56(%rsp),%ebp
354 leal 1859775393(%rdx,%r12,1),%r12d
355 xorl %edi,%eax
356 addl %ecx,%r12d
357 roll $30,%esi
358 addl %eax,%r12d
359 roll $1,%ebp
360 xorl 28(%rsp),%r14d
361 movl %r13d,%eax
362 movl %ebp,24(%rsp)
363 movl %r12d,%ecx
364 xorl 36(%rsp),%r14d
365 xorl %edi,%eax
366 roll $5,%ecx
367 xorl 60(%rsp),%r14d
368 leal 1859775393(%rbp,%r11,1),%r11d
369 xorl %esi,%eax
370 addl %ecx,%r11d
371 roll $30,%r13d
372 addl %eax,%r11d
373 roll $1,%r14d
374 xorl 32(%rsp),%edx
375 movl %r12d,%eax
376 movl %r14d,28(%rsp)
377 movl %r11d,%ecx
378 xorl 40(%rsp),%edx
379 xorl %esi,%eax
380 roll $5,%ecx
381 xorl 0(%rsp),%edx
382 leal 1859775393(%r14,%rdi,1),%edi
383 xorl %r13d,%eax
384 addl %ecx,%edi
385 roll $30,%r12d
386 addl %eax,%edi
387 roll $1,%edx
388 xorl 36(%rsp),%ebp
389 movl %r11d,%eax
390 movl %edx,32(%rsp)
391 movl %edi,%ecx
392 xorl 44(%rsp),%ebp
393 xorl %r13d,%eax
394 roll $5,%ecx
395 xorl 4(%rsp),%ebp
396 leal 1859775393(%rdx,%rsi,1),%esi
397 xorl %r12d,%eax
398 addl %ecx,%esi
399 roll $30,%r11d
400 addl %eax,%esi
401 roll $1,%ebp
402 xorl 40(%rsp),%r14d
403 movl %edi,%eax
404 movl %ebp,36(%rsp)
405 movl %esi,%ecx
406 xorl 48(%rsp),%r14d
407 xorl %r12d,%eax
408 roll $5,%ecx
409 xorl 8(%rsp),%r14d
410 leal 1859775393(%rbp,%r13,1),%r13d
411 xorl %r11d,%eax
412 addl %ecx,%r13d
413 roll $30,%edi
414 addl %eax,%r13d
415 roll $1,%r14d
416 xorl 44(%rsp),%edx
417 movl %esi,%eax
418 movl %r14d,40(%rsp)
419 movl %r13d,%ecx
420 xorl 52(%rsp),%edx
421 xorl %r11d,%eax
422 roll $5,%ecx
423 xorl 12(%rsp),%edx
424 leal 1859775393(%r14,%r12,1),%r12d
425 xorl %edi,%eax
426 addl %ecx,%r12d
427 roll $30,%esi
428 addl %eax,%r12d
429 roll $1,%edx
430 xorl 48(%rsp),%ebp
431 movl %r13d,%eax
432 movl %edx,44(%rsp)
433 movl %r12d,%ecx
434 xorl 56(%rsp),%ebp
435 xorl %edi,%eax
436 roll $5,%ecx
437 xorl 16(%rsp),%ebp
438 leal 1859775393(%rdx,%r11,1),%r11d
439 xorl %esi,%eax
440 addl %ecx,%r11d
441 roll $30,%r13d
442 addl %eax,%r11d
443 roll $1,%ebp
444 xorl 52(%rsp),%r14d
445 movl %r12d,%eax
446 movl %ebp,48(%rsp)
447 movl %r11d,%ecx
448 xorl 60(%rsp),%r14d
449 xorl %esi,%eax
450 roll $5,%ecx
451 xorl 20(%rsp),%r14d
452 leal 1859775393(%rbp,%rdi,1),%edi
453 xorl %r13d,%eax
454 addl %ecx,%edi
455 roll $30,%r12d
456 addl %eax,%edi
457 roll $1,%r14d
458 xorl 56(%rsp),%edx
459 movl %r11d,%eax
460 movl %r14d,52(%rsp)
461 movl %edi,%ecx
462 xorl 0(%rsp),%edx
463 xorl %r13d,%eax
464 roll $5,%ecx
465 xorl 24(%rsp),%edx
466 leal 1859775393(%r14,%rsi,1),%esi
467 xorl %r12d,%eax
468 addl %ecx,%esi
469 roll $30,%r11d
470 addl %eax,%esi
471 roll $1,%edx
472 xorl 60(%rsp),%ebp
473 movl %edi,%eax
474 movl %edx,56(%rsp)
475 movl %esi,%ecx
476 xorl 4(%rsp),%ebp
477 xorl %r12d,%eax
478 roll $5,%ecx
479 xorl 28(%rsp),%ebp
480 leal 1859775393(%rdx,%r13,1),%r13d
481 xorl %r11d,%eax
482 addl %ecx,%r13d
483 roll $30,%edi
484 addl %eax,%r13d
485 roll $1,%ebp
486 xorl 0(%rsp),%r14d
487 movl %esi,%eax
488 movl %ebp,60(%rsp)
489 movl %r13d,%ecx
490 xorl 8(%rsp),%r14d
491 xorl %r11d,%eax
492 roll $5,%ecx
493 xorl 32(%rsp),%r14d
494 leal 1859775393(%rbp,%r12,1),%r12d
495 xorl %edi,%eax
496 addl %ecx,%r12d
497 roll $30,%esi
498 addl %eax,%r12d
499 roll $1,%r14d
500 xorl 4(%rsp),%edx
501 movl %r13d,%eax
502 movl %r14d,0(%rsp)
503 movl %r12d,%ecx
504 xorl 12(%rsp),%edx
505 xorl %edi,%eax
506 roll $5,%ecx
507 xorl 36(%rsp),%edx
508 leal 1859775393(%r14,%r11,1),%r11d
509 xorl %esi,%eax
510 addl %ecx,%r11d
511 roll $30,%r13d
512 addl %eax,%r11d
513 roll $1,%edx
514 xorl 8(%rsp),%ebp
515 movl %r12d,%eax
516 movl %edx,4(%rsp)
517 movl %r11d,%ecx
518 xorl 16(%rsp),%ebp
519 xorl %esi,%eax
520 roll $5,%ecx
521 xorl 40(%rsp),%ebp
522 leal 1859775393(%rdx,%rdi,1),%edi
523 xorl %r13d,%eax
524 addl %ecx,%edi
525 roll $30,%r12d
526 addl %eax,%edi
527 roll $1,%ebp
528 xorl 12(%rsp),%r14d
529 movl %r11d,%eax
530 movl %ebp,8(%rsp)
531 movl %edi,%ecx
532 xorl 20(%rsp),%r14d
533 xorl %r13d,%eax
534 roll $5,%ecx
535 xorl 44(%rsp),%r14d
536 leal 1859775393(%rbp,%rsi,1),%esi
537 xorl %r12d,%eax
538 addl %ecx,%esi
539 roll $30,%r11d
540 addl %eax,%esi
541 roll $1,%r14d
542 xorl 16(%rsp),%edx
543 movl %edi,%eax
544 movl %r14d,12(%rsp)
545 movl %esi,%ecx
546 xorl 24(%rsp),%edx
547 xorl %r12d,%eax
548 roll $5,%ecx
549 xorl 48(%rsp),%edx
550 leal 1859775393(%r14,%r13,1),%r13d
551 xorl %r11d,%eax
552 addl %ecx,%r13d
553 roll $30,%edi
554 addl %eax,%r13d
555 roll $1,%edx
556 xorl 20(%rsp),%ebp
557 movl %esi,%eax
558 movl %edx,16(%rsp)
559 movl %r13d,%ecx
560 xorl 28(%rsp),%ebp
561 xorl %r11d,%eax
562 roll $5,%ecx
563 xorl 52(%rsp),%ebp
564 leal 1859775393(%rdx,%r12,1),%r12d
565 xorl %edi,%eax
566 addl %ecx,%r12d
567 roll $30,%esi
568 addl %eax,%r12d
569 roll $1,%ebp
570 xorl 24(%rsp),%r14d
571 movl %r13d,%eax
572 movl %ebp,20(%rsp)
573 movl %r12d,%ecx
574 xorl 32(%rsp),%r14d
575 xorl %edi,%eax
576 roll $5,%ecx
577 xorl 56(%rsp),%r14d
578 leal 1859775393(%rbp,%r11,1),%r11d
579 xorl %esi,%eax
580 addl %ecx,%r11d
581 roll $30,%r13d
582 addl %eax,%r11d
583 roll $1,%r14d
584 xorl 28(%rsp),%edx
585 movl %r12d,%eax
586 movl %r14d,24(%rsp)
587 movl %r11d,%ecx
588 xorl 36(%rsp),%edx
589 xorl %esi,%eax
590 roll $5,%ecx
591 xorl 60(%rsp),%edx
592 leal 1859775393(%r14,%rdi,1),%edi
593 xorl %r13d,%eax
594 addl %ecx,%edi
595 roll $30,%r12d
596 addl %eax,%edi
597 roll $1,%edx
598 xorl 32(%rsp),%ebp
599 movl %r11d,%eax
600 movl %edx,28(%rsp)
601 movl %edi,%ecx
602 xorl 40(%rsp),%ebp
603 xorl %r13d,%eax
604 roll $5,%ecx
605 xorl 0(%rsp),%ebp
606 leal 1859775393(%rdx,%rsi,1),%esi
607 xorl %r12d,%eax
608 addl %ecx,%esi
609 roll $30,%r11d
610 addl %eax,%esi
611 roll $1,%ebp
612 xorl 36(%rsp),%r14d
613 movl %r12d,%eax
614 movl %ebp,32(%rsp)
615 movl %r12d,%ebx
616 xorl 44(%rsp),%r14d
617 andl %r11d,%eax
618 movl %esi,%ecx
619 xorl 4(%rsp),%r14d
620 leal -1894007588(%rbp,%r13,1),%r13d
621 xorl %r11d,%ebx
622 roll $5,%ecx
623 addl %eax,%r13d
624 roll $1,%r14d
625 andl %edi,%ebx
626 addl %ecx,%r13d
627 roll $30,%edi
628 addl %ebx,%r13d
629 xorl 40(%rsp),%edx
630 movl %r11d,%eax
631 movl %r14d,36(%rsp)
632 movl %r11d,%ebx
633 xorl 48(%rsp),%edx
634 andl %edi,%eax
635 movl %r13d,%ecx
636 xorl 8(%rsp),%edx
637 leal -1894007588(%r14,%r12,1),%r12d
638 xorl %edi,%ebx
639 roll $5,%ecx
640 addl %eax,%r12d
641 roll $1,%edx
642 andl %esi,%ebx
643 addl %ecx,%r12d
644 roll $30,%esi
645 addl %ebx,%r12d
646 xorl 44(%rsp),%ebp
647 movl %edi,%eax
648 movl %edx,40(%rsp)
649 movl %edi,%ebx
650 xorl 52(%rsp),%ebp
651 andl %esi,%eax
652 movl %r12d,%ecx
653 xorl 12(%rsp),%ebp
654 leal -1894007588(%rdx,%r11,1),%r11d
655 xorl %esi,%ebx
656 roll $5,%ecx
657 addl %eax,%r11d
658 roll $1,%ebp
659 andl %r13d,%ebx
660 addl %ecx,%r11d
661 roll $30,%r13d
662 addl %ebx,%r11d
663 xorl 48(%rsp),%r14d
664 movl %esi,%eax
665 movl %ebp,44(%rsp)
666 movl %esi,%ebx
667 xorl 56(%rsp),%r14d
668 andl %r13d,%eax
669 movl %r11d,%ecx
670 xorl 16(%rsp),%r14d
671 leal -1894007588(%rbp,%rdi,1),%edi
672 xorl %r13d,%ebx
673 roll $5,%ecx
674 addl %eax,%edi
675 roll $1,%r14d
676 andl %r12d,%ebx
677 addl %ecx,%edi
678 roll $30,%r12d
679 addl %ebx,%edi
680 xorl 52(%rsp),%edx
681 movl %r13d,%eax
682 movl %r14d,48(%rsp)
683 movl %r13d,%ebx
684 xorl 60(%rsp),%edx
685 andl %r12d,%eax
686 movl %edi,%ecx
687 xorl 20(%rsp),%edx
688 leal -1894007588(%r14,%rsi,1),%esi
689 xorl %r12d,%ebx
690 roll $5,%ecx
691 addl %eax,%esi
692 roll $1,%edx
693 andl %r11d,%ebx
694 addl %ecx,%esi
695 roll $30,%r11d
696 addl %ebx,%esi
697 xorl 56(%rsp),%ebp
698 movl %r12d,%eax
699 movl %edx,52(%rsp)
700 movl %r12d,%ebx
701 xorl 0(%rsp),%ebp
702 andl %r11d,%eax
703 movl %esi,%ecx
704 xorl 24(%rsp),%ebp
705 leal -1894007588(%rdx,%r13,1),%r13d
706 xorl %r11d,%ebx
707 roll $5,%ecx
708 addl %eax,%r13d
709 roll $1,%ebp
710 andl %edi,%ebx
711 addl %ecx,%r13d
712 roll $30,%edi
713 addl %ebx,%r13d
714 xorl 60(%rsp),%r14d
715 movl %r11d,%eax
716 movl %ebp,56(%rsp)
717 movl %r11d,%ebx
718 xorl 4(%rsp),%r14d
719 andl %edi,%eax
720 movl %r13d,%ecx
721 xorl 28(%rsp),%r14d
722 leal -1894007588(%rbp,%r12,1),%r12d
723 xorl %edi,%ebx
724 roll $5,%ecx
725 addl %eax,%r12d
726 roll $1,%r14d
727 andl %esi,%ebx
728 addl %ecx,%r12d
729 roll $30,%esi
730 addl %ebx,%r12d
731 xorl 0(%rsp),%edx
732 movl %edi,%eax
733 movl %r14d,60(%rsp)
734 movl %edi,%ebx
735 xorl 8(%rsp),%edx
736 andl %esi,%eax
737 movl %r12d,%ecx
738 xorl 32(%rsp),%edx
739 leal -1894007588(%r14,%r11,1),%r11d
740 xorl %esi,%ebx
741 roll $5,%ecx
742 addl %eax,%r11d
743 roll $1,%edx
744 andl %r13d,%ebx
745 addl %ecx,%r11d
746 roll $30,%r13d
747 addl %ebx,%r11d
748 xorl 4(%rsp),%ebp
749 movl %esi,%eax
750 movl %edx,0(%rsp)
751 movl %esi,%ebx
752 xorl 12(%rsp),%ebp
753 andl %r13d,%eax
754 movl %r11d,%ecx
755 xorl 36(%rsp),%ebp
756 leal -1894007588(%rdx,%rdi,1),%edi
757 xorl %r13d,%ebx
758 roll $5,%ecx
759 addl %eax,%edi
760 roll $1,%ebp
761 andl %r12d,%ebx
762 addl %ecx,%edi
763 roll $30,%r12d
764 addl %ebx,%edi
765 xorl 8(%rsp),%r14d
766 movl %r13d,%eax
767 movl %ebp,4(%rsp)
768 movl %r13d,%ebx
769 xorl 16(%rsp),%r14d
770 andl %r12d,%eax
771 movl %edi,%ecx
772 xorl 40(%rsp),%r14d
773 leal -1894007588(%rbp,%rsi,1),%esi
774 xorl %r12d,%ebx
775 roll $5,%ecx
776 addl %eax,%esi
777 roll $1,%r14d
778 andl %r11d,%ebx
779 addl %ecx,%esi
780 roll $30,%r11d
781 addl %ebx,%esi
782 xorl 12(%rsp),%edx
783 movl %r12d,%eax
784 movl %r14d,8(%rsp)
785 movl %r12d,%ebx
786 xorl 20(%rsp),%edx
787 andl %r11d,%eax
788 movl %esi,%ecx
789 xorl 44(%rsp),%edx
790 leal -1894007588(%r14,%r13,1),%r13d
791 xorl %r11d,%ebx
792 roll $5,%ecx
793 addl %eax,%r13d
794 roll $1,%edx
795 andl %edi,%ebx
796 addl %ecx,%r13d
797 roll $30,%edi
798 addl %ebx,%r13d
799 xorl 16(%rsp),%ebp
800 movl %r11d,%eax
801 movl %edx,12(%rsp)
802 movl %r11d,%ebx
803 xorl 24(%rsp),%ebp
804 andl %edi,%eax
805 movl %r13d,%ecx
806 xorl 48(%rsp),%ebp
807 leal -1894007588(%rdx,%r12,1),%r12d
808 xorl %edi,%ebx
809 roll $5,%ecx
810 addl %eax,%r12d
811 roll $1,%ebp
812 andl %esi,%ebx
813 addl %ecx,%r12d
814 roll $30,%esi
815 addl %ebx,%r12d
816 xorl 20(%rsp),%r14d
817 movl %edi,%eax
818 movl %ebp,16(%rsp)
819 movl %edi,%ebx
820 xorl 28(%rsp),%r14d
821 andl %esi,%eax
822 movl %r12d,%ecx
823 xorl 52(%rsp),%r14d
824 leal -1894007588(%rbp,%r11,1),%r11d
825 xorl %esi,%ebx
826 roll $5,%ecx
827 addl %eax,%r11d
828 roll $1,%r14d
829 andl %r13d,%ebx
830 addl %ecx,%r11d
831 roll $30,%r13d
832 addl %ebx,%r11d
833 xorl 24(%rsp),%edx
834 movl %esi,%eax
835 movl %r14d,20(%rsp)
836 movl %esi,%ebx
837 xorl 32(%rsp),%edx
838 andl %r13d,%eax
839 movl %r11d,%ecx
840 xorl 56(%rsp),%edx
841 leal -1894007588(%r14,%rdi,1),%edi
842 xorl %r13d,%ebx
843 roll $5,%ecx
844 addl %eax,%edi
845 roll $1,%edx
846 andl %r12d,%ebx
847 addl %ecx,%edi
848 roll $30,%r12d
849 addl %ebx,%edi
850 xorl 28(%rsp),%ebp
851 movl %r13d,%eax
852 movl %edx,24(%rsp)
853 movl %r13d,%ebx
854 xorl 36(%rsp),%ebp
855 andl %r12d,%eax
856 movl %edi,%ecx
857 xorl 60(%rsp),%ebp
858 leal -1894007588(%rdx,%rsi,1),%esi
859 xorl %r12d,%ebx
860 roll $5,%ecx
861 addl %eax,%esi
862 roll $1,%ebp
863 andl %r11d,%ebx
864 addl %ecx,%esi
865 roll $30,%r11d
866 addl %ebx,%esi
867 xorl 32(%rsp),%r14d
868 movl %r12d,%eax
869 movl %ebp,28(%rsp)
870 movl %r12d,%ebx
871 xorl 40(%rsp),%r14d
872 andl %r11d,%eax
873 movl %esi,%ecx
874 xorl 0(%rsp),%r14d
875 leal -1894007588(%rbp,%r13,1),%r13d
876 xorl %r11d,%ebx
877 roll $5,%ecx
878 addl %eax,%r13d
879 roll $1,%r14d
880 andl %edi,%ebx
881 addl %ecx,%r13d
882 roll $30,%edi
883 addl %ebx,%r13d
884 xorl 36(%rsp),%edx
885 movl %r11d,%eax
886 movl %r14d,32(%rsp)
887 movl %r11d,%ebx
888 xorl 44(%rsp),%edx
889 andl %edi,%eax
890 movl %r13d,%ecx
891 xorl 4(%rsp),%edx
892 leal -1894007588(%r14,%r12,1),%r12d
893 xorl %edi,%ebx
894 roll $5,%ecx
895 addl %eax,%r12d
896 roll $1,%edx
897 andl %esi,%ebx
898 addl %ecx,%r12d
899 roll $30,%esi
900 addl %ebx,%r12d
901 xorl 40(%rsp),%ebp
902 movl %edi,%eax
903 movl %edx,36(%rsp)
904 movl %edi,%ebx
905 xorl 48(%rsp),%ebp
906 andl %esi,%eax
907 movl %r12d,%ecx
908 xorl 8(%rsp),%ebp
909 leal -1894007588(%rdx,%r11,1),%r11d
910 xorl %esi,%ebx
911 roll $5,%ecx
912 addl %eax,%r11d
913 roll $1,%ebp
914 andl %r13d,%ebx
915 addl %ecx,%r11d
916 roll $30,%r13d
917 addl %ebx,%r11d
918 xorl 44(%rsp),%r14d
919 movl %esi,%eax
920 movl %ebp,40(%rsp)
921 movl %esi,%ebx
922 xorl 52(%rsp),%r14d
923 andl %r13d,%eax
924 movl %r11d,%ecx
925 xorl 12(%rsp),%r14d
926 leal -1894007588(%rbp,%rdi,1),%edi
927 xorl %r13d,%ebx
928 roll $5,%ecx
929 addl %eax,%edi
930 roll $1,%r14d
931 andl %r12d,%ebx
932 addl %ecx,%edi
933 roll $30,%r12d
934 addl %ebx,%edi
935 xorl 48(%rsp),%edx
936 movl %r13d,%eax
937 movl %r14d,44(%rsp)
938 movl %r13d,%ebx
939 xorl 56(%rsp),%edx
940 andl %r12d,%eax
941 movl %edi,%ecx
942 xorl 16(%rsp),%edx
943 leal -1894007588(%r14,%rsi,1),%esi
944 xorl %r12d,%ebx
945 roll $5,%ecx
946 addl %eax,%esi
947 roll $1,%edx
948 andl %r11d,%ebx
949 addl %ecx,%esi
950 roll $30,%r11d
951 addl %ebx,%esi
952 xorl 52(%rsp),%ebp
953 movl %edi,%eax
954 movl %edx,48(%rsp)
955 movl %esi,%ecx
956 xorl 60(%rsp),%ebp
957 xorl %r12d,%eax
958 roll $5,%ecx
959 xorl 20(%rsp),%ebp
960 leal -899497514(%rdx,%r13,1),%r13d
961 xorl %r11d,%eax
962 addl %ecx,%r13d
963 roll $30,%edi
964 addl %eax,%r13d
965 roll $1,%ebp
966 xorl 56(%rsp),%r14d
967 movl %esi,%eax
968 movl %ebp,52(%rsp)
969 movl %r13d,%ecx
970 xorl 0(%rsp),%r14d
971 xorl %r11d,%eax
972 roll $5,%ecx
973 xorl 24(%rsp),%r14d
974 leal -899497514(%rbp,%r12,1),%r12d
975 xorl %edi,%eax
976 addl %ecx,%r12d
977 roll $30,%esi
978 addl %eax,%r12d
979 roll $1,%r14d
980 xorl 60(%rsp),%edx
981 movl %r13d,%eax
982 movl %r14d,56(%rsp)
983 movl %r12d,%ecx
984 xorl 4(%rsp),%edx
985 xorl %edi,%eax
986 roll $5,%ecx
987 xorl 28(%rsp),%edx
988 leal -899497514(%r14,%r11,1),%r11d
989 xorl %esi,%eax
990 addl %ecx,%r11d
991 roll $30,%r13d
992 addl %eax,%r11d
993 roll $1,%edx
994 xorl 0(%rsp),%ebp
995 movl %r12d,%eax
996 movl %edx,60(%rsp)
997 movl %r11d,%ecx
998 xorl 8(%rsp),%ebp
999 xorl %esi,%eax
1000 roll $5,%ecx
1001 xorl 32(%rsp),%ebp
1002 leal -899497514(%rdx,%rdi,1),%edi
1003 xorl %r13d,%eax
1004 addl %ecx,%edi
1005 roll $30,%r12d
1006 addl %eax,%edi
1007 roll $1,%ebp
1008 xorl 4(%rsp),%r14d
1009 movl %r11d,%eax
1010 movl %ebp,0(%rsp)
1011 movl %edi,%ecx
1012 xorl 12(%rsp),%r14d
1013 xorl %r13d,%eax
1014 roll $5,%ecx
1015 xorl 36(%rsp),%r14d
1016 leal -899497514(%rbp,%rsi,1),%esi
1017 xorl %r12d,%eax
1018 addl %ecx,%esi
1019 roll $30,%r11d
1020 addl %eax,%esi
1021 roll $1,%r14d
1022 xorl 8(%rsp),%edx
1023 movl %edi,%eax
1024 movl %r14d,4(%rsp)
1025 movl %esi,%ecx
1026 xorl 16(%rsp),%edx
1027 xorl %r12d,%eax
1028 roll $5,%ecx
1029 xorl 40(%rsp),%edx
1030 leal -899497514(%r14,%r13,1),%r13d
1031 xorl %r11d,%eax
1032 addl %ecx,%r13d
1033 roll $30,%edi
1034 addl %eax,%r13d
1035 roll $1,%edx
1036 xorl 12(%rsp),%ebp
1037 movl %esi,%eax
1038 movl %edx,8(%rsp)
1039 movl %r13d,%ecx
1040 xorl 20(%rsp),%ebp
1041 xorl %r11d,%eax
1042 roll $5,%ecx
1043 xorl 44(%rsp),%ebp
1044 leal -899497514(%rdx,%r12,1),%r12d
1045 xorl %edi,%eax
1046 addl %ecx,%r12d
1047 roll $30,%esi
1048 addl %eax,%r12d
1049 roll $1,%ebp
1050 xorl 16(%rsp),%r14d
1051 movl %r13d,%eax
1052 movl %ebp,12(%rsp)
1053 movl %r12d,%ecx
1054 xorl 24(%rsp),%r14d
1055 xorl %edi,%eax
1056 roll $5,%ecx
1057 xorl 48(%rsp),%r14d
1058 leal -899497514(%rbp,%r11,1),%r11d
1059 xorl %esi,%eax
1060 addl %ecx,%r11d
1061 roll $30,%r13d
1062 addl %eax,%r11d
1063 roll $1,%r14d
1064 xorl 20(%rsp),%edx
1065 movl %r12d,%eax
1066 movl %r14d,16(%rsp)
1067 movl %r11d,%ecx
1068 xorl 28(%rsp),%edx
1069 xorl %esi,%eax
1070 roll $5,%ecx
1071 xorl 52(%rsp),%edx
1072 leal -899497514(%r14,%rdi,1),%edi
1073 xorl %r13d,%eax
1074 addl %ecx,%edi
1075 roll $30,%r12d
1076 addl %eax,%edi
1077 roll $1,%edx
1078 xorl 24(%rsp),%ebp
1079 movl %r11d,%eax
1080 movl %edx,20(%rsp)
1081 movl %edi,%ecx
1082 xorl 32(%rsp),%ebp
1083 xorl %r13d,%eax
1084 roll $5,%ecx
1085 xorl 56(%rsp),%ebp
1086 leal -899497514(%rdx,%rsi,1),%esi
1087 xorl %r12d,%eax
1088 addl %ecx,%esi
1089 roll $30,%r11d
1090 addl %eax,%esi
1091 roll $1,%ebp
1092 xorl 28(%rsp),%r14d
1093 movl %edi,%eax
1094 movl %ebp,24(%rsp)
1095 movl %esi,%ecx
1096 xorl 36(%rsp),%r14d
1097 xorl %r12d,%eax
1098 roll $5,%ecx
1099 xorl 60(%rsp),%r14d
1100 leal -899497514(%rbp,%r13,1),%r13d
1101 xorl %r11d,%eax
1102 addl %ecx,%r13d
1103 roll $30,%edi
1104 addl %eax,%r13d
1105 roll $1,%r14d
1106 xorl 32(%rsp),%edx
1107 movl %esi,%eax
1108 movl %r14d,28(%rsp)
1109 movl %r13d,%ecx
1110 xorl 40(%rsp),%edx
1111 xorl %r11d,%eax
1112 roll $5,%ecx
1113 xorl 0(%rsp),%edx
1114 leal -899497514(%r14,%r12,1),%r12d
1115 xorl %edi,%eax
1116 addl %ecx,%r12d
1117 roll $30,%esi
1118 addl %eax,%r12d
1119 roll $1,%edx
1120 xorl 36(%rsp),%ebp
1121 movl %r13d,%eax
1122
1123 movl %r12d,%ecx
1124 xorl 44(%rsp),%ebp
1125 xorl %edi,%eax
1126 roll $5,%ecx
1127 xorl 4(%rsp),%ebp
1128 leal -899497514(%rdx,%r11,1),%r11d
1129 xorl %esi,%eax
1130 addl %ecx,%r11d
1131 roll $30,%r13d
1132 addl %eax,%r11d
1133 roll $1,%ebp
1134 xorl 40(%rsp),%r14d
1135 movl %r12d,%eax
1136
1137 movl %r11d,%ecx
1138 xorl 48(%rsp),%r14d
1139 xorl %esi,%eax
1140 roll $5,%ecx
1141 xorl 8(%rsp),%r14d
1142 leal -899497514(%rbp,%rdi,1),%edi
1143 xorl %r13d,%eax
1144 addl %ecx,%edi
1145 roll $30,%r12d
1146 addl %eax,%edi
1147 roll $1,%r14d
1148 xorl 44(%rsp),%edx
1149 movl %r11d,%eax
1150
1151 movl %edi,%ecx
1152 xorl 52(%rsp),%edx
1153 xorl %r13d,%eax
1154 roll $5,%ecx
1155 xorl 12(%rsp),%edx
1156 leal -899497514(%r14,%rsi,1),%esi
1157 xorl %r12d,%eax
1158 addl %ecx,%esi
1159 roll $30,%r11d
1160 addl %eax,%esi
1161 roll $1,%edx
1162 xorl 48(%rsp),%ebp
1163 movl %edi,%eax
1164
1165 movl %esi,%ecx
1166 xorl 56(%rsp),%ebp
1167 xorl %r12d,%eax
1168 roll $5,%ecx
1169 xorl 16(%rsp),%ebp
1170 leal -899497514(%rdx,%r13,1),%r13d
1171 xorl %r11d,%eax
1172 addl %ecx,%r13d
1173 roll $30,%edi
1174 addl %eax,%r13d
1175 roll $1,%ebp
1176 xorl 52(%rsp),%r14d
1177 movl %esi,%eax
1178
1179 movl %r13d,%ecx
1180 xorl 60(%rsp),%r14d
1181 xorl %r11d,%eax
1182 roll $5,%ecx
1183 xorl 20(%rsp),%r14d
1184 leal -899497514(%rbp,%r12,1),%r12d
1185 xorl %edi,%eax
1186 addl %ecx,%r12d
1187 roll $30,%esi
1188 addl %eax,%r12d
1189 roll $1,%r14d
1190 xorl 56(%rsp),%edx
1191 movl %r13d,%eax
1192
1193 movl %r12d,%ecx
1194 xorl 0(%rsp),%edx
1195 xorl %edi,%eax
1196 roll $5,%ecx
1197 xorl 24(%rsp),%edx
1198 leal -899497514(%r14,%r11,1),%r11d
1199 xorl %esi,%eax
1200 addl %ecx,%r11d
1201 roll $30,%r13d
1202 addl %eax,%r11d
1203 roll $1,%edx
1204 xorl 60(%rsp),%ebp
1205 movl %r12d,%eax
1206
1207 movl %r11d,%ecx
1208 xorl 4(%rsp),%ebp
1209 xorl %esi,%eax
1210 roll $5,%ecx
1211 xorl 28(%rsp),%ebp
1212 leal -899497514(%rdx,%rdi,1),%edi
1213 xorl %r13d,%eax
1214 addl %ecx,%edi
1215 roll $30,%r12d
1216 addl %eax,%edi
1217 roll $1,%ebp
1218 movl %r11d,%eax
1219 movl %edi,%ecx
1220 xorl %r13d,%eax
1221 leal -899497514(%rbp,%rsi,1),%esi
1222 roll $5,%ecx
1223 xorl %r12d,%eax
1224 addl %ecx,%esi
1225 roll $30,%r11d
1226 addl %eax,%esi
1227 addl 0(%r8),%esi
1228 addl 4(%r8),%edi
1229 addl 8(%r8),%r11d
1230 addl 12(%r8),%r12d
1231 addl 16(%r8),%r13d
1232 movl %esi,0(%r8)
1233 movl %edi,4(%r8)
1234 movl %r11d,8(%r8)
1235 movl %r12d,12(%r8)
1236 movl %r13d,16(%r8)
1237
1238 subq $1,%r10
1239 leaq 64(%r9),%r9
1240 jnz .Lloop
1241
1242 movq 64(%rsp),%rsi
1243 .cfi_def_cfa %rsi,8
1244 movq -40(%rsi),%r14
1245 .cfi_restore %r14
1246 movq -32(%rsi),%r13
1247 .cfi_restore %r13
1248 movq -24(%rsi),%r12
1249 .cfi_restore %r12
1250 movq -16(%rsi),%rbp
1251 .cfi_restore %rbp
1252 movq -8(%rsi),%rbx
1253 .cfi_restore %rbx
1254 leaq (%rsi),%rsp
1255 .cfi_def_cfa_register %rsp
1256 .Lepilogue:
1257 .byte 0xf3,0xc3
1258 .cfi_endproc
1259 .size sha1_block_data_order,.-sha1_block_data_order
1260 .type sha1_block_data_order_shaext,@function
1261 .align 32
1262 sha1_block_data_order_shaext:
1263 _shaext_shortcut:
1264 .cfi_startproc
1265 movdqu (%rdi),%xmm0
1266 movd 16(%rdi),%xmm1
1267 movdqa K_XX_XX+160(%rip),%xmm3
1268
1269 movdqu (%rsi),%xmm4
1270 pshufd $27,%xmm0,%xmm0
1271 movdqu 16(%rsi),%xmm5
1272 pshufd $27,%xmm1,%xmm1
1273 movdqu 32(%rsi),%xmm6
1274 .byte 102,15,56,0,227
1275 movdqu 48(%rsi),%xmm7
1276 .byte 102,15,56,0,235
1277 .byte 102,15,56,0,243
1278 movdqa %xmm1,%xmm9
1279 .byte 102,15,56,0,251
1280 jmp .Loop_shaext
1281
1282 .align 16
1283 .Loop_shaext:
1284 decq %rdx
1285 leaq 64(%rsi),%r8
1286 paddd %xmm4,%xmm1
1287 cmovneq %r8,%rsi
1288 movdqa %xmm0,%xmm8
1289 .byte 15,56,201,229
1290 movdqa %xmm0,%xmm2
1291 .byte 15,58,204,193,0
1292 .byte 15,56,200,213
1293 pxor %xmm6,%xmm4
1294 .byte 15,56,201,238
1295 .byte 15,56,202,231
1296
1297 movdqa %xmm0,%xmm1
1298 .byte 15,58,204,194,0
1299 .byte 15,56,200,206
1300 pxor %xmm7,%xmm5
1301 .byte 15,56,202,236
1302 .byte 15,56,201,247
1303 movdqa %xmm0,%xmm2
1304 .byte 15,58,204,193,0
1305 .byte 15,56,200,215
1306 pxor %xmm4,%xmm6
1307 .byte 15,56,201,252
1308 .byte 15,56,202,245
1309
1310 movdqa %xmm0,%xmm1
1311 .byte 15,58,204,194,0
1312 .byte 15,56,200,204
1313 pxor %xmm5,%xmm7
1314 .byte 15,56,202,254
1315 .byte 15,56,201,229
1316 movdqa %xmm0,%xmm2
1317 .byte 15,58,204,193,0
1318 .byte 15,56,200,213
1319 pxor %xmm6,%xmm4
1320 .byte 15,56,201,238
1321 .byte 15,56,202,231
1322
1323 movdqa %xmm0,%xmm1
1324 .byte 15,58,204,194,1
1325 .byte 15,56,200,206
1326 pxor %xmm7,%xmm5
1327 .byte 15,56,202,236
1328 .byte 15,56,201,247
1329 movdqa %xmm0,%xmm2
1330 .byte 15,58,204,193,1
1331 .byte 15,56,200,215
1332 pxor %xmm4,%xmm6
1333 .byte 15,56,201,252
1334 .byte 15,56,202,245
1335
1336 movdqa %xmm0,%xmm1
1337 .byte 15,58,204,194,1
1338 .byte 15,56,200,204
1339 pxor %xmm5,%xmm7
1340 .byte 15,56,202,254
1341 .byte 15,56,201,229
1342 movdqa %xmm0,%xmm2
1343 .byte 15,58,204,193,1
1344 .byte 15,56,200,213
1345 pxor %xmm6,%xmm4
1346 .byte 15,56,201,238
1347 .byte 15,56,202,231
1348
1349 movdqa %xmm0,%xmm1
1350 .byte 15,58,204,194,1
1351 .byte 15,56,200,206
1352 pxor %xmm7,%xmm5
1353 .byte 15,56,202,236
1354 .byte 15,56,201,247
1355 movdqa %xmm0,%xmm2
1356 .byte 15,58,204,193,2
1357 .byte 15,56,200,215
1358 pxor %xmm4,%xmm6
1359 .byte 15,56,201,252
1360 .byte 15,56,202,245
1361
1362 movdqa %xmm0,%xmm1
1363 .byte 15,58,204,194,2
1364 .byte 15,56,200,204
1365 pxor %xmm5,%xmm7
1366 .byte 15,56,202,254
1367 .byte 15,56,201,229
1368 movdqa %xmm0,%xmm2
1369 .byte 15,58,204,193,2
1370 .byte 15,56,200,213
1371 pxor %xmm6,%xmm4
1372 .byte 15,56,201,238
1373 .byte 15,56,202,231
1374
1375 movdqa %xmm0,%xmm1
1376 .byte 15,58,204,194,2
1377 .byte 15,56,200,206
1378 pxor %xmm7,%xmm5
1379 .byte 15,56,202,236
1380 .byte 15,56,201,247
1381 movdqa %xmm0,%xmm2
1382 .byte 15,58,204,193,2
1383 .byte 15,56,200,215
1384 pxor %xmm4,%xmm6
1385 .byte 15,56,201,252
1386 .byte 15,56,202,245
1387
1388 movdqa %xmm0,%xmm1
1389 .byte 15,58,204,194,3
1390 .byte 15,56,200,204
1391 pxor %xmm5,%xmm7
1392 .byte 15,56,202,254
1393 movdqu (%rsi),%xmm4
1394 movdqa %xmm0,%xmm2
1395 .byte 15,58,204,193,3
1396 .byte 15,56,200,213
1397 movdqu 16(%rsi),%xmm5
1398 .byte 102,15,56,0,227
1399
1400 movdqa %xmm0,%xmm1
1401 .byte 15,58,204,194,3
1402 .byte 15,56,200,206
1403 movdqu 32(%rsi),%xmm6
1404 .byte 102,15,56,0,235
1405
1406 movdqa %xmm0,%xmm2
1407 .byte 15,58,204,193,3
1408 .byte 15,56,200,215
1409 movdqu 48(%rsi),%xmm7
1410 .byte 102,15,56,0,243
1411
1412 movdqa %xmm0,%xmm1
1413 .byte 15,58,204,194,3
1414 .byte 65,15,56,200,201
1415 .byte 102,15,56,0,251
1416
1417 paddd %xmm8,%xmm0
1418 movdqa %xmm1,%xmm9
1419
1420 jnz .Loop_shaext
1421
1422 pshufd $27,%xmm0,%xmm0
1423 pshufd $27,%xmm1,%xmm1
1424 movdqu %xmm0,(%rdi)
1425 movd %xmm1,16(%rdi)
1426 .byte 0xf3,0xc3
1427 .cfi_endproc
1428 .size sha1_block_data_order_shaext,.-sha1_block_data_order_shaext
1429 .type sha1_block_data_order_ssse3,@function
1430 .align 16
1431 sha1_block_data_order_ssse3:
1432 _ssse3_shortcut:
1433 .cfi_startproc
1434 movq %rsp,%r11
1435 .cfi_def_cfa_register %r11
1436 pushq %rbx
1437 .cfi_offset %rbx,-16
1438 pushq %rbp
1439 .cfi_offset %rbp,-24
1440 pushq %r12
1441 .cfi_offset %r12,-32
1442 pushq %r13
1443 .cfi_offset %r13,-40
1444 pushq %r14
1445 .cfi_offset %r14,-48
1446 leaq -64(%rsp),%rsp
1447 andq $-64,%rsp
1448 movq %rdi,%r8
1449 movq %rsi,%r9
1450 movq %rdx,%r10
1451
1452 shlq $6,%r10
1453 addq %r9,%r10
1454 leaq K_XX_XX+64(%rip),%r14
1455
1456 movl 0(%r8),%eax
1457 movl 4(%r8),%ebx
1458 movl 8(%r8),%ecx
1459 movl 12(%r8),%edx
1460 movl %ebx,%esi
1461 movl 16(%r8),%ebp
1462 movl %ecx,%edi
1463 xorl %edx,%edi
1464 andl %edi,%esi
1465
1466 movdqa 64(%r14),%xmm6
1467 movdqa -64(%r14),%xmm9
1468 movdqu 0(%r9),%xmm0
1469 movdqu 16(%r9),%xmm1
1470 movdqu 32(%r9),%xmm2
1471 movdqu 48(%r9),%xmm3
1472 .byte 102,15,56,0,198
1473 .byte 102,15,56,0,206
1474 .byte 102,15,56,0,214
1475 addq $64,%r9
1476 paddd %xmm9,%xmm0
1477 .byte 102,15,56,0,222
1478 paddd %xmm9,%xmm1
1479 paddd %xmm9,%xmm2
1480 movdqa %xmm0,0(%rsp)
1481 psubd %xmm9,%xmm0
1482 movdqa %xmm1,16(%rsp)
1483 psubd %xmm9,%xmm1
1484 movdqa %xmm2,32(%rsp)
1485 psubd %xmm9,%xmm2
1486 jmp .Loop_ssse3
1487 .align 16
1488 .Loop_ssse3:
1489 rorl $2,%ebx
1490 pshufd $238,%xmm0,%xmm4
1491 xorl %edx,%esi
1492 movdqa %xmm3,%xmm8
1493 paddd %xmm3,%xmm9
1494 movl %eax,%edi
1495 addl 0(%rsp),%ebp
1496 punpcklqdq %xmm1,%xmm4
1497 xorl %ecx,%ebx
1498 roll $5,%eax
1499 addl %esi,%ebp
1500 psrldq $4,%xmm8
1501 andl %ebx,%edi
1502 xorl %ecx,%ebx
1503 pxor %xmm0,%xmm4
1504 addl %eax,%ebp
1505 rorl $7,%eax
1506 pxor %xmm2,%xmm8
1507 xorl %ecx,%edi
1508 movl %ebp,%esi
1509 addl 4(%rsp),%edx
1510 pxor %xmm8,%xmm4
1511 xorl %ebx,%eax
1512 roll $5,%ebp
1513 movdqa %xmm9,48(%rsp)
1514 addl %edi,%edx
1515 andl %eax,%esi
1516 movdqa %xmm4,%xmm10
1517 xorl %ebx,%eax
1518 addl %ebp,%edx
1519 rorl $7,%ebp
1520 movdqa %xmm4,%xmm8
1521 xorl %ebx,%esi
1522 pslldq $12,%xmm10
1523 paddd %xmm4,%xmm4
1524 movl %edx,%edi
1525 addl 8(%rsp),%ecx
1526 psrld $31,%xmm8
1527 xorl %eax,%ebp
1528 roll $5,%edx
1529 addl %esi,%ecx
1530 movdqa %xmm10,%xmm9
1531 andl %ebp,%edi
1532 xorl %eax,%ebp
1533 psrld $30,%xmm10
1534 addl %edx,%ecx
1535 rorl $7,%edx
1536 por %xmm8,%xmm4
1537 xorl %eax,%edi
1538 movl %ecx,%esi
1539 addl 12(%rsp),%ebx
1540 pslld $2,%xmm9
1541 pxor %xmm10,%xmm4
1542 xorl %ebp,%edx
1543 movdqa -64(%r14),%xmm10
1544 roll $5,%ecx
1545 addl %edi,%ebx
1546 andl %edx,%esi
1547 pxor %xmm9,%xmm4
1548 xorl %ebp,%edx
1549 addl %ecx,%ebx
1550 rorl $7,%ecx
1551 pshufd $238,%xmm1,%xmm5
1552 xorl %ebp,%esi
1553 movdqa %xmm4,%xmm9
1554 paddd %xmm4,%xmm10
1555 movl %ebx,%edi
1556 addl 16(%rsp),%eax
1557 punpcklqdq %xmm2,%xmm5
1558 xorl %edx,%ecx
1559 roll $5,%ebx
1560 addl %esi,%eax
1561 psrldq $4,%xmm9
1562 andl %ecx,%edi
1563 xorl %edx,%ecx
1564 pxor %xmm1,%xmm5
1565 addl %ebx,%eax
1566 rorl $7,%ebx
1567 pxor %xmm3,%xmm9
1568 xorl %edx,%edi
1569 movl %eax,%esi
1570 addl 20(%rsp),%ebp
1571 pxor %xmm9,%xmm5
1572 xorl %ecx,%ebx
1573 roll $5,%eax
1574 movdqa %xmm10,0(%rsp)
1575 addl %edi,%ebp
1576 andl %ebx,%esi
1577 movdqa %xmm5,%xmm8
1578 xorl %ecx,%ebx
1579 addl %eax,%ebp
1580 rorl $7,%eax
1581 movdqa %xmm5,%xmm9
1582 xorl %ecx,%esi
1583 pslldq $12,%xmm8
1584 paddd %xmm5,%xmm5
1585 movl %ebp,%edi
1586 addl 24(%rsp),%edx
1587 psrld $31,%xmm9
1588 xorl %ebx,%eax
1589 roll $5,%ebp
1590 addl %esi,%edx
1591 movdqa %xmm8,%xmm10
1592 andl %eax,%edi
1593 xorl %ebx,%eax
1594 psrld $30,%xmm8
1595 addl %ebp,%edx
1596 rorl $7,%ebp
1597 por %xmm9,%xmm5
1598 xorl %ebx,%edi
1599 movl %edx,%esi
1600 addl 28(%rsp),%ecx
1601 pslld $2,%xmm10
1602 pxor %xmm8,%xmm5
1603 xorl %eax,%ebp
1604 movdqa -32(%r14),%xmm8
1605 roll $5,%edx
1606 addl %edi,%ecx
1607 andl %ebp,%esi
1608 pxor %xmm10,%xmm5
1609 xorl %eax,%ebp
1610 addl %edx,%ecx
1611 rorl $7,%edx
1612 pshufd $238,%xmm2,%xmm6
1613 xorl %eax,%esi
1614 movdqa %xmm5,%xmm10
1615 paddd %xmm5,%xmm8
1616 movl %ecx,%edi
1617 addl 32(%rsp),%ebx
1618 punpcklqdq %xmm3,%xmm6
1619 xorl %ebp,%edx
1620 roll $5,%ecx
1621 addl %esi,%ebx
1622 psrldq $4,%xmm10
1623 andl %edx,%edi
1624 xorl %ebp,%edx
1625 pxor %xmm2,%xmm6
1626 addl %ecx,%ebx
1627 rorl $7,%ecx
1628 pxor %xmm4,%xmm10
1629 xorl %ebp,%edi
1630 movl %ebx,%esi
1631 addl 36(%rsp),%eax
1632 pxor %xmm10,%xmm6
1633 xorl %edx,%ecx
1634 roll $5,%ebx
1635 movdqa %xmm8,16(%rsp)
1636 addl %edi,%eax
1637 andl %ecx,%esi
1638 movdqa %xmm6,%xmm9
1639 xorl %edx,%ecx
1640 addl %ebx,%eax
1641 rorl $7,%ebx
1642 movdqa %xmm6,%xmm10
1643 xorl %edx,%esi
1644 pslldq $12,%xmm9
1645 paddd %xmm6,%xmm6
1646 movl %eax,%edi
1647 addl 40(%rsp),%ebp
1648 psrld $31,%xmm10
1649 xorl %ecx,%ebx
1650 roll $5,%eax
1651 addl %esi,%ebp
1652 movdqa %xmm9,%xmm8
1653 andl %ebx,%edi
1654 xorl %ecx,%ebx
1655 psrld $30,%xmm9
1656 addl %eax,%ebp
1657 rorl $7,%eax
1658 por %xmm10,%xmm6
1659 xorl %ecx,%edi
1660 movl %ebp,%esi
1661 addl 44(%rsp),%edx
1662 pslld $2,%xmm8
1663 pxor %xmm9,%xmm6
1664 xorl %ebx,%eax
1665 movdqa -32(%r14),%xmm9
1666 roll $5,%ebp
1667 addl %edi,%edx
1668 andl %eax,%esi
1669 pxor %xmm8,%xmm6
1670 xorl %ebx,%eax
1671 addl %ebp,%edx
1672 rorl $7,%ebp
1673 pshufd $238,%xmm3,%xmm7
1674 xorl %ebx,%esi
1675 movdqa %xmm6,%xmm8
1676 paddd %xmm6,%xmm9
1677 movl %edx,%edi
1678 addl 48(%rsp),%ecx
1679 punpcklqdq %xmm4,%xmm7
1680 xorl %eax,%ebp
1681 roll $5,%edx
1682 addl %esi,%ecx
1683 psrldq $4,%xmm8
1684 andl %ebp,%edi
1685 xorl %eax,%ebp
1686 pxor %xmm3,%xmm7
1687 addl %edx,%ecx
1688 rorl $7,%edx
1689 pxor %xmm5,%xmm8
1690 xorl %eax,%edi
1691 movl %ecx,%esi
1692 addl 52(%rsp),%ebx
1693 pxor %xmm8,%xmm7
1694 xorl %ebp,%edx
1695 roll $5,%ecx
1696 movdqa %xmm9,32(%rsp)
1697 addl %edi,%ebx
1698 andl %edx,%esi
1699 movdqa %xmm7,%xmm10
1700 xorl %ebp,%edx
1701 addl %ecx,%ebx
1702 rorl $7,%ecx
1703 movdqa %xmm7,%xmm8
1704 xorl %ebp,%esi
1705 pslldq $12,%xmm10
1706 paddd %xmm7,%xmm7
1707 movl %ebx,%edi
1708 addl 56(%rsp),%eax
1709 psrld $31,%xmm8
1710 xorl %edx,%ecx
1711 roll $5,%ebx
1712 addl %esi,%eax
1713 movdqa %xmm10,%xmm9
1714 andl %ecx,%edi
1715 xorl %edx,%ecx
1716 psrld $30,%xmm10
1717 addl %ebx,%eax
1718 rorl $7,%ebx
1719 por %xmm8,%xmm7
1720 xorl %edx,%edi
1721 movl %eax,%esi
1722 addl 60(%rsp),%ebp
1723 pslld $2,%xmm9
1724 pxor %xmm10,%xmm7
1725 xorl %ecx,%ebx
1726 movdqa -32(%r14),%xmm10
1727 roll $5,%eax
1728 addl %edi,%ebp
1729 andl %ebx,%esi
1730 pxor %xmm9,%xmm7
1731 pshufd $238,%xmm6,%xmm9
1732 xorl %ecx,%ebx
1733 addl %eax,%ebp
1734 rorl $7,%eax
1735 pxor %xmm4,%xmm0
1736 xorl %ecx,%esi
1737 movl %ebp,%edi
1738 addl 0(%rsp),%edx
1739 punpcklqdq %xmm7,%xmm9
1740 xorl %ebx,%eax
1741 roll $5,%ebp
1742 pxor %xmm1,%xmm0
1743 addl %esi,%edx
1744 andl %eax,%edi
1745 movdqa %xmm10,%xmm8
1746 xorl %ebx,%eax
1747 paddd %xmm7,%xmm10
1748 addl %ebp,%edx
1749 pxor %xmm9,%xmm0
1750 rorl $7,%ebp
1751 xorl %ebx,%edi
1752 movl %edx,%esi
1753 addl 4(%rsp),%ecx
1754 movdqa %xmm0,%xmm9
1755 xorl %eax,%ebp
1756 roll $5,%edx
1757 movdqa %xmm10,48(%rsp)
1758 addl %edi,%ecx
1759 andl %ebp,%esi
1760 xorl %eax,%ebp
1761 pslld $2,%xmm0
1762 addl %edx,%ecx
1763 rorl $7,%edx
1764 psrld $30,%xmm9
1765 xorl %eax,%esi
1766 movl %ecx,%edi
1767 addl 8(%rsp),%ebx
1768 por %xmm9,%xmm0
1769 xorl %ebp,%edx
1770 roll $5,%ecx
1771 pshufd $238,%xmm7,%xmm10
1772 addl %esi,%ebx
1773 andl %edx,%edi
1774 xorl %ebp,%edx
1775 addl %ecx,%ebx
1776 addl 12(%rsp),%eax
1777 xorl %ebp,%edi
1778 movl %ebx,%esi
1779 roll $5,%ebx
1780 addl %edi,%eax
1781 xorl %edx,%esi
1782 rorl $7,%ecx
1783 addl %ebx,%eax
1784 pxor %xmm5,%xmm1
1785 addl 16(%rsp),%ebp
1786 xorl %ecx,%esi
1787 punpcklqdq %xmm0,%xmm10
1788 movl %eax,%edi
1789 roll $5,%eax
1790 pxor %xmm2,%xmm1
1791 addl %esi,%ebp
1792 xorl %ecx,%edi
1793 movdqa %xmm8,%xmm9
1794 rorl $7,%ebx
1795 paddd %xmm0,%xmm8
1796 addl %eax,%ebp
1797 pxor %xmm10,%xmm1
1798 addl 20(%rsp),%edx
1799 xorl %ebx,%edi
1800 movl %ebp,%esi
1801 roll $5,%ebp
1802 movdqa %xmm1,%xmm10
1803 addl %edi,%edx
1804 xorl %ebx,%esi
1805 movdqa %xmm8,0(%rsp)
1806 rorl $7,%eax
1807 addl %ebp,%edx
1808 addl 24(%rsp),%ecx
1809 pslld $2,%xmm1
1810 xorl %eax,%esi
1811 movl %edx,%edi
1812 psrld $30,%xmm10
1813 roll $5,%edx
1814 addl %esi,%ecx
1815 xorl %eax,%edi
1816 rorl $7,%ebp
1817 por %xmm10,%xmm1
1818 addl %edx,%ecx
1819 addl 28(%rsp),%ebx
1820 pshufd $238,%xmm0,%xmm8
1821 xorl %ebp,%edi
1822 movl %ecx,%esi
1823 roll $5,%ecx
1824 addl %edi,%ebx
1825 xorl %ebp,%esi
1826 rorl $7,%edx
1827 addl %ecx,%ebx
1828 pxor %xmm6,%xmm2
1829 addl 32(%rsp),%eax
1830 xorl %edx,%esi
1831 punpcklqdq %xmm1,%xmm8
1832 movl %ebx,%edi
1833 roll $5,%ebx
1834 pxor %xmm3,%xmm2
1835 addl %esi,%eax
1836 xorl %edx,%edi
1837 movdqa 0(%r14),%xmm10
1838 rorl $7,%ecx
1839 paddd %xmm1,%xmm9
1840 addl %ebx,%eax
1841 pxor %xmm8,%xmm2
1842 addl 36(%rsp),%ebp
1843 xorl %ecx,%edi
1844 movl %eax,%esi
1845 roll $5,%eax
1846 movdqa %xmm2,%xmm8
1847 addl %edi,%ebp
1848 xorl %ecx,%esi
1849 movdqa %xmm9,16(%rsp)
1850 rorl $7,%ebx
1851 addl %eax,%ebp
1852 addl 40(%rsp),%edx
1853 pslld $2,%xmm2
1854 xorl %ebx,%esi
1855 movl %ebp,%edi
1856 psrld $30,%xmm8
1857 roll $5,%ebp
1858 addl %esi,%edx
1859 xorl %ebx,%edi
1860 rorl $7,%eax
1861 por %xmm8,%xmm2
1862 addl %ebp,%edx
1863 addl 44(%rsp),%ecx
1864 pshufd $238,%xmm1,%xmm9
1865 xorl %eax,%edi
1866 movl %edx,%esi
1867 roll $5,%edx
1868 addl %edi,%ecx
1869 xorl %eax,%esi
1870 rorl $7,%ebp
1871 addl %edx,%ecx
1872 pxor %xmm7,%xmm3
1873 addl 48(%rsp),%ebx
1874 xorl %ebp,%esi
1875 punpcklqdq %xmm2,%xmm9
1876 movl %ecx,%edi
1877 roll $5,%ecx
1878 pxor %xmm4,%xmm3
1879 addl %esi,%ebx
1880 xorl %ebp,%edi
1881 movdqa %xmm10,%xmm8
1882 rorl $7,%edx
1883 paddd %xmm2,%xmm10
1884 addl %ecx,%ebx
1885 pxor %xmm9,%xmm3
1886 addl 52(%rsp),%eax
1887 xorl %edx,%edi
1888 movl %ebx,%esi
1889 roll $5,%ebx
1890 movdqa %xmm3,%xmm9
1891 addl %edi,%eax
1892 xorl %edx,%esi
1893 movdqa %xmm10,32(%rsp)
1894 rorl $7,%ecx
1895 addl %ebx,%eax
1896 addl 56(%rsp),%ebp
1897 pslld $2,%xmm3
1898 xorl %ecx,%esi
1899 movl %eax,%edi
1900 psrld $30,%xmm9
1901 roll $5,%eax
1902 addl %esi,%ebp
1903 xorl %ecx,%edi
1904 rorl $7,%ebx
1905 por %xmm9,%xmm3
1906 addl %eax,%ebp
1907 addl 60(%rsp),%edx
1908 pshufd $238,%xmm2,%xmm10
1909 xorl %ebx,%edi
1910 movl %ebp,%esi
1911 roll $5,%ebp
1912 addl %edi,%edx
1913 xorl %ebx,%esi
1914 rorl $7,%eax
1915 addl %ebp,%edx
1916 pxor %xmm0,%xmm4
1917 addl 0(%rsp),%ecx
1918 xorl %eax,%esi
1919 punpcklqdq %xmm3,%xmm10
1920 movl %edx,%edi
1921 roll $5,%edx
1922 pxor %xmm5,%xmm4
1923 addl %esi,%ecx
1924 xorl %eax,%edi
1925 movdqa %xmm8,%xmm9
1926 rorl $7,%ebp
1927 paddd %xmm3,%xmm8
1928 addl %edx,%ecx
1929 pxor %xmm10,%xmm4
1930 addl 4(%rsp),%ebx
1931 xorl %ebp,%edi
1932 movl %ecx,%esi
1933 roll $5,%ecx
1934 movdqa %xmm4,%xmm10
1935 addl %edi,%ebx
1936 xorl %ebp,%esi
1937 movdqa %xmm8,48(%rsp)
1938 rorl $7,%edx
1939 addl %ecx,%ebx
1940 addl 8(%rsp),%eax
1941 pslld $2,%xmm4
1942 xorl %edx,%esi
1943 movl %ebx,%edi
1944 psrld $30,%xmm10
1945 roll $5,%ebx
1946 addl %esi,%eax
1947 xorl %edx,%edi
1948 rorl $7,%ecx
1949 por %xmm10,%xmm4
1950 addl %ebx,%eax
1951 addl 12(%rsp),%ebp
1952 pshufd $238,%xmm3,%xmm8
1953 xorl %ecx,%edi
1954 movl %eax,%esi
1955 roll $5,%eax
1956 addl %edi,%ebp
1957 xorl %ecx,%esi
1958 rorl $7,%ebx
1959 addl %eax,%ebp
1960 pxor %xmm1,%xmm5
1961 addl 16(%rsp),%edx
1962 xorl %ebx,%esi
1963 punpcklqdq %xmm4,%xmm8
1964 movl %ebp,%edi
1965 roll $5,%ebp
1966 pxor %xmm6,%xmm5
1967 addl %esi,%edx
1968 xorl %ebx,%edi
1969 movdqa %xmm9,%xmm10
1970 rorl $7,%eax
1971 paddd %xmm4,%xmm9
1972 addl %ebp,%edx
1973 pxor %xmm8,%xmm5
1974 addl 20(%rsp),%ecx
1975 xorl %eax,%edi
1976 movl %edx,%esi
1977 roll $5,%edx
1978 movdqa %xmm5,%xmm8
1979 addl %edi,%ecx
1980 xorl %eax,%esi
1981 movdqa %xmm9,0(%rsp)
1982 rorl $7,%ebp
1983 addl %edx,%ecx
1984 addl 24(%rsp),%ebx
1985 pslld $2,%xmm5
1986 xorl %ebp,%esi
1987 movl %ecx,%edi
1988 psrld $30,%xmm8
1989 roll $5,%ecx
1990 addl %esi,%ebx
1991 xorl %ebp,%edi
1992 rorl $7,%edx
1993 por %xmm8,%xmm5
1994 addl %ecx,%ebx
1995 addl 28(%rsp),%eax
1996 pshufd $238,%xmm4,%xmm9
1997 rorl $7,%ecx
1998 movl %ebx,%esi
1999 xorl %edx,%edi
2000 roll $5,%ebx
2001 addl %edi,%eax
2002 xorl %ecx,%esi
2003 xorl %edx,%ecx
2004 addl %ebx,%eax
2005 pxor %xmm2,%xmm6
2006 addl 32(%rsp),%ebp
2007 andl %ecx,%esi
2008 xorl %edx,%ecx
2009 rorl $7,%ebx
2010 punpcklqdq %xmm5,%xmm9
2011 movl %eax,%edi
2012 xorl %ecx,%esi
2013 pxor %xmm7,%xmm6
2014 roll $5,%eax
2015 addl %esi,%ebp
2016 movdqa %xmm10,%xmm8
2017 xorl %ebx,%edi
2018 paddd %xmm5,%xmm10
2019 xorl %ecx,%ebx
2020 pxor %xmm9,%xmm6
2021 addl %eax,%ebp
2022 addl 36(%rsp),%edx
2023 andl %ebx,%edi
2024 xorl %ecx,%ebx
2025 rorl $7,%eax
2026 movdqa %xmm6,%xmm9
2027 movl %ebp,%esi
2028 xorl %ebx,%edi
2029 movdqa %xmm10,16(%rsp)
2030 roll $5,%ebp
2031 addl %edi,%edx
2032 xorl %eax,%esi
2033 pslld $2,%xmm6
2034 xorl %ebx,%eax
2035 addl %ebp,%edx
2036 psrld $30,%xmm9
2037 addl 40(%rsp),%ecx
2038 andl %eax,%esi
2039 xorl %ebx,%eax
2040 por %xmm9,%xmm6
2041 rorl $7,%ebp
2042 movl %edx,%edi
2043 xorl %eax,%esi
2044 roll $5,%edx
2045 pshufd $238,%xmm5,%xmm10
2046 addl %esi,%ecx
2047 xorl %ebp,%edi
2048 xorl %eax,%ebp
2049 addl %edx,%ecx
2050 addl 44(%rsp),%ebx
2051 andl %ebp,%edi
2052 xorl %eax,%ebp
2053 rorl $7,%edx
2054 movl %ecx,%esi
2055 xorl %ebp,%edi
2056 roll $5,%ecx
2057 addl %edi,%ebx
2058 xorl %edx,%esi
2059 xorl %ebp,%edx
2060 addl %ecx,%ebx
2061 pxor %xmm3,%xmm7
2062 addl 48(%rsp),%eax
2063 andl %edx,%esi
2064 xorl %ebp,%edx
2065 rorl $7,%ecx
2066 punpcklqdq %xmm6,%xmm10
2067 movl %ebx,%edi
2068 xorl %edx,%esi
2069 pxor %xmm0,%xmm7
2070 roll $5,%ebx
2071 addl %esi,%eax
2072 movdqa 32(%r14),%xmm9
2073 xorl %ecx,%edi
2074 paddd %xmm6,%xmm8
2075 xorl %edx,%ecx
2076 pxor %xmm10,%xmm7
2077 addl %ebx,%eax
2078 addl 52(%rsp),%ebp
2079 andl %ecx,%edi
2080 xorl %edx,%ecx
2081 rorl $7,%ebx
2082 movdqa %xmm7,%xmm10
2083 movl %eax,%esi
2084 xorl %ecx,%edi
2085 movdqa %xmm8,32(%rsp)
2086 roll $5,%eax
2087 addl %edi,%ebp
2088 xorl %ebx,%esi
2089 pslld $2,%xmm7
2090 xorl %ecx,%ebx
2091 addl %eax,%ebp
2092 psrld $30,%xmm10
2093 addl 56(%rsp),%edx
2094 andl %ebx,%esi
2095 xorl %ecx,%ebx
2096 por %xmm10,%xmm7
2097 rorl $7,%eax
2098 movl %ebp,%edi
2099 xorl %ebx,%esi
2100 roll $5,%ebp
2101 pshufd $238,%xmm6,%xmm8
2102 addl %esi,%edx
2103 xorl %eax,%edi
2104 xorl %ebx,%eax
2105 addl %ebp,%edx
2106 addl 60(%rsp),%ecx
2107 andl %eax,%edi
2108 xorl %ebx,%eax
2109 rorl $7,%ebp
2110 movl %edx,%esi
2111 xorl %eax,%edi
2112 roll $5,%edx
2113 addl %edi,%ecx
2114 xorl %ebp,%esi
2115 xorl %eax,%ebp
2116 addl %edx,%ecx
2117 pxor %xmm4,%xmm0
2118 addl 0(%rsp),%ebx
2119 andl %ebp,%esi
2120 xorl %eax,%ebp
2121 rorl $7,%edx
2122 punpcklqdq %xmm7,%xmm8
2123 movl %ecx,%edi
2124 xorl %ebp,%esi
2125 pxor %xmm1,%xmm0
2126 roll $5,%ecx
2127 addl %esi,%ebx
2128 movdqa %xmm9,%xmm10
2129 xorl %edx,%edi
2130 paddd %xmm7,%xmm9
2131 xorl %ebp,%edx
2132 pxor %xmm8,%xmm0
2133 addl %ecx,%ebx
2134 addl 4(%rsp),%eax
2135 andl %edx,%edi
2136 xorl %ebp,%edx
2137 rorl $7,%ecx
2138 movdqa %xmm0,%xmm8
2139 movl %ebx,%esi
2140 xorl %edx,%edi
2141 movdqa %xmm9,48(%rsp)
2142 roll $5,%ebx
2143 addl %edi,%eax
2144 xorl %ecx,%esi
2145 pslld $2,%xmm0
2146 xorl %edx,%ecx
2147 addl %ebx,%eax
2148 psrld $30,%xmm8
2149 addl 8(%rsp),%ebp
2150 andl %ecx,%esi
2151 xorl %edx,%ecx
2152 por %xmm8,%xmm0
2153 rorl $7,%ebx
2154 movl %eax,%edi
2155 xorl %ecx,%esi
2156 roll $5,%eax
2157 pshufd $238,%xmm7,%xmm9
2158 addl %esi,%ebp
2159 xorl %ebx,%edi
2160 xorl %ecx,%ebx
2161 addl %eax,%ebp
2162 addl 12(%rsp),%edx
2163 andl %ebx,%edi
2164 xorl %ecx,%ebx
2165 rorl $7,%eax
2166 movl %ebp,%esi
2167 xorl %ebx,%edi
2168 roll $5,%ebp
2169 addl %edi,%edx
2170 xorl %eax,%esi
2171 xorl %ebx,%eax
2172 addl %ebp,%edx
2173 pxor %xmm5,%xmm1
2174 addl 16(%rsp),%ecx
2175 andl %eax,%esi
2176 xorl %ebx,%eax
2177 rorl $7,%ebp
2178 punpcklqdq %xmm0,%xmm9
2179 movl %edx,%edi
2180 xorl %eax,%esi
2181 pxor %xmm2,%xmm1
2182 roll $5,%edx
2183 addl %esi,%ecx
2184 movdqa %xmm10,%xmm8
2185 xorl %ebp,%edi
2186 paddd %xmm0,%xmm10
2187 xorl %eax,%ebp
2188 pxor %xmm9,%xmm1
2189 addl %edx,%ecx
2190 addl 20(%rsp),%ebx
2191 andl %ebp,%edi
2192 xorl %eax,%ebp
2193 rorl $7,%edx
2194 movdqa %xmm1,%xmm9
2195 movl %ecx,%esi
2196 xorl %ebp,%edi
2197 movdqa %xmm10,0(%rsp)
2198 roll $5,%ecx
2199 addl %edi,%ebx
2200 xorl %edx,%esi
2201 pslld $2,%xmm1
2202 xorl %ebp,%edx
2203 addl %ecx,%ebx
2204 psrld $30,%xmm9
2205 addl 24(%rsp),%eax
2206 andl %edx,%esi
2207 xorl %ebp,%edx
2208 por %xmm9,%xmm1
2209 rorl $7,%ecx
2210 movl %ebx,%edi
2211 xorl %edx,%esi
2212 roll $5,%ebx
2213 pshufd $238,%xmm0,%xmm10
2214 addl %esi,%eax
2215 xorl %ecx,%edi
2216 xorl %edx,%ecx
2217 addl %ebx,%eax
2218 addl 28(%rsp),%ebp
2219 andl %ecx,%edi
2220 xorl %edx,%ecx
2221 rorl $7,%ebx
2222 movl %eax,%esi
2223 xorl %ecx,%edi
2224 roll $5,%eax
2225 addl %edi,%ebp
2226 xorl %ebx,%esi
2227 xorl %ecx,%ebx
2228 addl %eax,%ebp
2229 pxor %xmm6,%xmm2
2230 addl 32(%rsp),%edx
2231 andl %ebx,%esi
2232 xorl %ecx,%ebx
2233 rorl $7,%eax
2234 punpcklqdq %xmm1,%xmm10
2235 movl %ebp,%edi
2236 xorl %ebx,%esi
2237 pxor %xmm3,%xmm2
2238 roll $5,%ebp
2239 addl %esi,%edx
2240 movdqa %xmm8,%xmm9
2241 xorl %eax,%edi
2242 paddd %xmm1,%xmm8
2243 xorl %ebx,%eax
2244 pxor %xmm10,%xmm2
2245 addl %ebp,%edx
2246 addl 36(%rsp),%ecx
2247 andl %eax,%edi
2248 xorl %ebx,%eax
2249 rorl $7,%ebp
2250 movdqa %xmm2,%xmm10
2251 movl %edx,%esi
2252 xorl %eax,%edi
2253 movdqa %xmm8,16(%rsp)
2254 roll $5,%edx
2255 addl %edi,%ecx
2256 xorl %ebp,%esi
2257 pslld $2,%xmm2
2258 xorl %eax,%ebp
2259 addl %edx,%ecx
2260 psrld $30,%xmm10
2261 addl 40(%rsp),%ebx
2262 andl %ebp,%esi
2263 xorl %eax,%ebp
2264 por %xmm10,%xmm2
2265 rorl $7,%edx
2266 movl %ecx,%edi
2267 xorl %ebp,%esi
2268 roll $5,%ecx
2269 pshufd $238,%xmm1,%xmm8
2270 addl %esi,%ebx
2271 xorl %edx,%edi
2272 xorl %ebp,%edx
2273 addl %ecx,%ebx
2274 addl 44(%rsp),%eax
2275 andl %edx,%edi
2276 xorl %ebp,%edx
2277 rorl $7,%ecx
2278 movl %ebx,%esi
2279 xorl %edx,%edi
2280 roll $5,%ebx
2281 addl %edi,%eax
2282 xorl %edx,%esi
2283 addl %ebx,%eax
2284 pxor %xmm7,%xmm3
2285 addl 48(%rsp),%ebp
2286 xorl %ecx,%esi
2287 punpcklqdq %xmm2,%xmm8
2288 movl %eax,%edi
2289 roll $5,%eax
2290 pxor %xmm4,%xmm3
2291 addl %esi,%ebp
2292 xorl %ecx,%edi
2293 movdqa %xmm9,%xmm10
2294 rorl $7,%ebx
2295 paddd %xmm2,%xmm9
2296 addl %eax,%ebp
2297 pxor %xmm8,%xmm3
2298 addl 52(%rsp),%edx
2299 xorl %ebx,%edi
2300 movl %ebp,%esi
2301 roll $5,%ebp
2302 movdqa %xmm3,%xmm8
2303 addl %edi,%edx
2304 xorl %ebx,%esi
2305 movdqa %xmm9,32(%rsp)
2306 rorl $7,%eax
2307 addl %ebp,%edx
2308 addl 56(%rsp),%ecx
2309 pslld $2,%xmm3
2310 xorl %eax,%esi
2311 movl %edx,%edi
2312 psrld $30,%xmm8
2313 roll $5,%edx
2314 addl %esi,%ecx
2315 xorl %eax,%edi
2316 rorl $7,%ebp
2317 por %xmm8,%xmm3
2318 addl %edx,%ecx
2319 addl 60(%rsp),%ebx
2320 xorl %ebp,%edi
2321 movl %ecx,%esi
2322 roll $5,%ecx
2323 addl %edi,%ebx
2324 xorl %ebp,%esi
2325 rorl $7,%edx
2326 addl %ecx,%ebx
2327 addl 0(%rsp),%eax
2328 xorl %edx,%esi
2329 movl %ebx,%edi
2330 roll $5,%ebx
2331 paddd %xmm3,%xmm10
2332 addl %esi,%eax
2333 xorl %edx,%edi
2334 movdqa %xmm10,48(%rsp)
2335 rorl $7,%ecx
2336 addl %ebx,%eax
2337 addl 4(%rsp),%ebp
2338 xorl %ecx,%edi
2339 movl %eax,%esi
2340 roll $5,%eax
2341 addl %edi,%ebp
2342 xorl %ecx,%esi
2343 rorl $7,%ebx
2344 addl %eax,%ebp
2345 addl 8(%rsp),%edx
2346 xorl %ebx,%esi
2347 movl %ebp,%edi
2348 roll $5,%ebp
2349 addl %esi,%edx
2350 xorl %ebx,%edi
2351 rorl $7,%eax
2352 addl %ebp,%edx
2353 addl 12(%rsp),%ecx
2354 xorl %eax,%edi
2355 movl %edx,%esi
2356 roll $5,%edx
2357 addl %edi,%ecx
2358 xorl %eax,%esi
2359 rorl $7,%ebp
2360 addl %edx,%ecx
2361 cmpq %r10,%r9
2362 je .Ldone_ssse3
2363 movdqa 64(%r14),%xmm6
2364 movdqa -64(%r14),%xmm9
2365 movdqu 0(%r9),%xmm0
2366 movdqu 16(%r9),%xmm1
2367 movdqu 32(%r9),%xmm2
2368 movdqu 48(%r9),%xmm3
2369 .byte 102,15,56,0,198
2370 addq $64,%r9
2371 addl 16(%rsp),%ebx
2372 xorl %ebp,%esi
2373 movl %ecx,%edi
2374 .byte 102,15,56,0,206
2375 roll $5,%ecx
2376 addl %esi,%ebx
2377 xorl %ebp,%edi
2378 rorl $7,%edx
2379 paddd %xmm9,%xmm0
2380 addl %ecx,%ebx
2381 addl 20(%rsp),%eax
2382 xorl %edx,%edi
2383 movl %ebx,%esi
2384 movdqa %xmm0,0(%rsp)
2385 roll $5,%ebx
2386 addl %edi,%eax
2387 xorl %edx,%esi
2388 rorl $7,%ecx
2389 psubd %xmm9,%xmm0
2390 addl %ebx,%eax
2391 addl 24(%rsp),%ebp
2392 xorl %ecx,%esi
2393 movl %eax,%edi
2394 roll $5,%eax
2395 addl %esi,%ebp
2396 xorl %ecx,%edi
2397 rorl $7,%ebx
2398 addl %eax,%ebp
2399 addl 28(%rsp),%edx
2400 xorl %ebx,%edi
2401 movl %ebp,%esi
2402 roll $5,%ebp
2403 addl %edi,%edx
2404 xorl %ebx,%esi
2405 rorl $7,%eax
2406 addl %ebp,%edx
2407 addl 32(%rsp),%ecx
2408 xorl %eax,%esi
2409 movl %edx,%edi
2410 .byte 102,15,56,0,214
2411 roll $5,%edx
2412 addl %esi,%ecx
2413 xorl %eax,%edi
2414 rorl $7,%ebp
2415 paddd %xmm9,%xmm1
2416 addl %edx,%ecx
2417 addl 36(%rsp),%ebx
2418 xorl %ebp,%edi
2419 movl %ecx,%esi
2420 movdqa %xmm1,16(%rsp)
2421 roll $5,%ecx
2422 addl %edi,%ebx
2423 xorl %ebp,%esi
2424 rorl $7,%edx
2425 psubd %xmm9,%xmm1
2426 addl %ecx,%ebx
2427 addl 40(%rsp),%eax
2428 xorl %edx,%esi
2429 movl %ebx,%edi
2430 roll $5,%ebx
2431 addl %esi,%eax
2432 xorl %edx,%edi
2433 rorl $7,%ecx
2434 addl %ebx,%eax
2435 addl 44(%rsp),%ebp
2436 xorl %ecx,%edi
2437 movl %eax,%esi
2438 roll $5,%eax
2439 addl %edi,%ebp
2440 xorl %ecx,%esi
2441 rorl $7,%ebx
2442 addl %eax,%ebp
2443 addl 48(%rsp),%edx
2444 xorl %ebx,%esi
2445 movl %ebp,%edi
2446 .byte 102,15,56,0,222
2447 roll $5,%ebp
2448 addl %esi,%edx
2449 xorl %ebx,%edi
2450 rorl $7,%eax
2451 paddd %xmm9,%xmm2
2452 addl %ebp,%edx
2453 addl 52(%rsp),%ecx
2454 xorl %eax,%edi
2455 movl %edx,%esi
2456 movdqa %xmm2,32(%rsp)
2457 roll $5,%edx
2458 addl %edi,%ecx
2459 xorl %eax,%esi
2460 rorl $7,%ebp
2461 psubd %xmm9,%xmm2
2462 addl %edx,%ecx
2463 addl 56(%rsp),%ebx
2464 xorl %ebp,%esi
2465 movl %ecx,%edi
2466 roll $5,%ecx
2467 addl %esi,%ebx
2468 xorl %ebp,%edi
2469 rorl $7,%edx
2470 addl %ecx,%ebx
2471 addl 60(%rsp),%eax
2472 xorl %edx,%edi
2473 movl %ebx,%esi
2474 roll $5,%ebx
2475 addl %edi,%eax
2476 rorl $7,%ecx
2477 addl %ebx,%eax
2478 addl 0(%r8),%eax
2479 addl 4(%r8),%esi
2480 addl 8(%r8),%ecx
2481 addl 12(%r8),%edx
2482 movl %eax,0(%r8)
2483 addl 16(%r8),%ebp
2484 movl %esi,4(%r8)
2485 movl %esi,%ebx
2486 movl %ecx,8(%r8)
2487 movl %ecx,%edi
2488 movl %edx,12(%r8)
2489 xorl %edx,%edi
2490 movl %ebp,16(%r8)
2491 andl %edi,%esi
2492 jmp .Loop_ssse3
2493
2494 .align 16
2495 .Ldone_ssse3:
2496 addl 16(%rsp),%ebx
2497 xorl %ebp,%esi
2498 movl %ecx,%edi
2499 roll $5,%ecx
2500 addl %esi,%ebx
2501 xorl %ebp,%edi
2502 rorl $7,%edx
2503 addl %ecx,%ebx
2504 addl 20(%rsp),%eax
2505 xorl %edx,%edi
2506 movl %ebx,%esi
2507 roll $5,%ebx
2508 addl %edi,%eax
2509 xorl %edx,%esi
2510 rorl $7,%ecx
2511 addl %ebx,%eax
2512 addl 24(%rsp),%ebp
2513 xorl %ecx,%esi
2514 movl %eax,%edi
2515 roll $5,%eax
2516 addl %esi,%ebp
2517 xorl %ecx,%edi
2518 rorl $7,%ebx
2519 addl %eax,%ebp
2520 addl 28(%rsp),%edx
2521 xorl %ebx,%edi
2522 movl %ebp,%esi
2523 roll $5,%ebp
2524 addl %edi,%edx
2525 xorl %ebx,%esi
2526 rorl $7,%eax
2527 addl %ebp,%edx
2528 addl 32(%rsp),%ecx
2529 xorl %eax,%esi
2530 movl %edx,%edi
2531 roll $5,%edx
2532 addl %esi,%ecx
2533 xorl %eax,%edi
2534 rorl $7,%ebp
2535 addl %edx,%ecx
2536 addl 36(%rsp),%ebx
2537 xorl %ebp,%edi
2538 movl %ecx,%esi
2539 roll $5,%ecx
2540 addl %edi,%ebx
2541 xorl %ebp,%esi
2542 rorl $7,%edx
2543 addl %ecx,%ebx
2544 addl 40(%rsp),%eax
2545 xorl %edx,%esi
2546 movl %ebx,%edi
2547 roll $5,%ebx
2548 addl %esi,%eax
2549 xorl %edx,%edi
2550 rorl $7,%ecx
2551 addl %ebx,%eax
2552 addl 44(%rsp),%ebp
2553 xorl %ecx,%edi
2554 movl %eax,%esi
2555 roll $5,%eax
2556 addl %edi,%ebp
2557 xorl %ecx,%esi
2558 rorl $7,%ebx
2559 addl %eax,%ebp
2560 addl 48(%rsp),%edx
2561 xorl %ebx,%esi
2562 movl %ebp,%edi
2563 roll $5,%ebp
2564 addl %esi,%edx
2565 xorl %ebx,%edi
2566 rorl $7,%eax
2567 addl %ebp,%edx
2568 addl 52(%rsp),%ecx
2569 xorl %eax,%edi
2570 movl %edx,%esi
2571 roll $5,%edx
2572 addl %edi,%ecx
2573 xorl %eax,%esi
2574 rorl $7,%ebp
2575 addl %edx,%ecx
2576 addl 56(%rsp),%ebx
2577 xorl %ebp,%esi
2578 movl %ecx,%edi
2579 roll $5,%ecx
2580 addl %esi,%ebx
2581 xorl %ebp,%edi
2582 rorl $7,%edx
2583 addl %ecx,%ebx
2584 addl 60(%rsp),%eax
2585 xorl %edx,%edi
2586 movl %ebx,%esi
2587 roll $5,%ebx
2588 addl %edi,%eax
2589 rorl $7,%ecx
2590 addl %ebx,%eax
2591 addl 0(%r8),%eax
2592 addl 4(%r8),%esi
2593 addl 8(%r8),%ecx
2594 movl %eax,0(%r8)
2595 addl 12(%r8),%edx
2596 movl %esi,4(%r8)
2597 addl 16(%r8),%ebp
2598 movl %ecx,8(%r8)
2599 movl %edx,12(%r8)
2600 movl %ebp,16(%r8)
2601 movq -40(%r11),%r14
2602 .cfi_restore %r14
2603 movq -32(%r11),%r13
2604 .cfi_restore %r13
2605 movq -24(%r11),%r12
2606 .cfi_restore %r12
2607 movq -16(%r11),%rbp
2608 .cfi_restore %rbp
2609 movq -8(%r11),%rbx
2610 .cfi_restore %rbx
2611 leaq (%r11),%rsp
2612 .cfi_def_cfa_register %rsp
2613 .Lepilogue_ssse3:
2614 .byte 0xf3,0xc3
2615 .cfi_endproc
2616 .size sha1_block_data_order_ssse3,.-sha1_block_data_order_ssse3
2617 .type sha1_block_data_order_avx,@function
2618 .align 16
2619 sha1_block_data_order_avx:
2620 _avx_shortcut:
2621 .cfi_startproc
2622 movq %rsp,%r11
2623 .cfi_def_cfa_register %r11
2624 pushq %rbx
2625 .cfi_offset %rbx,-16
2626 pushq %rbp
2627 .cfi_offset %rbp,-24
2628 pushq %r12
2629 .cfi_offset %r12,-32
2630 pushq %r13
2631 .cfi_offset %r13,-40
2632 pushq %r14
2633 .cfi_offset %r14,-48
2634 leaq -64(%rsp),%rsp
2635 vzeroupper
2636 andq $-64,%rsp
2637 movq %rdi,%r8
2638 movq %rsi,%r9
2639 movq %rdx,%r10
2640
2641 shlq $6,%r10
2642 addq %r9,%r10
2643 leaq K_XX_XX+64(%rip),%r14
2644
2645 movl 0(%r8),%eax
2646 movl 4(%r8),%ebx
2647 movl 8(%r8),%ecx
2648 movl 12(%r8),%edx
2649 movl %ebx,%esi
2650 movl 16(%r8),%ebp
2651 movl %ecx,%edi
2652 xorl %edx,%edi
2653 andl %edi,%esi
2654
2655 vmovdqa 64(%r14),%xmm6
2656 vmovdqa -64(%r14),%xmm11
2657 vmovdqu 0(%r9),%xmm0
2658 vmovdqu 16(%r9),%xmm1
2659 vmovdqu 32(%r9),%xmm2
2660 vmovdqu 48(%r9),%xmm3
2661 vpshufb %xmm6,%xmm0,%xmm0
2662 addq $64,%r9
2663 vpshufb %xmm6,%xmm1,%xmm1
2664 vpshufb %xmm6,%xmm2,%xmm2
2665 vpshufb %xmm6,%xmm3,%xmm3
2666 vpaddd %xmm11,%xmm0,%xmm4
2667 vpaddd %xmm11,%xmm1,%xmm5
2668 vpaddd %xmm11,%xmm2,%xmm6
2669 vmovdqa %xmm4,0(%rsp)
2670 vmovdqa %xmm5,16(%rsp)
2671 vmovdqa %xmm6,32(%rsp)
2672 jmp .Loop_avx
2673 .align 16
2674 .Loop_avx:
2675 shrdl $2,%ebx,%ebx
2676 xorl %edx,%esi
2677 vpalignr $8,%xmm0,%xmm1,%xmm4
2678 movl %eax,%edi
2679 addl 0(%rsp),%ebp
2680 vpaddd %xmm3,%xmm11,%xmm9
2681 xorl %ecx,%ebx
2682 shldl $5,%eax,%eax
2683 vpsrldq $4,%xmm3,%xmm8
2684 addl %esi,%ebp
2685 andl %ebx,%edi
2686 vpxor %xmm0,%xmm4,%xmm4
2687 xorl %ecx,%ebx
2688 addl %eax,%ebp
2689 vpxor %xmm2,%xmm8,%xmm8
2690 shrdl $7,%eax,%eax
2691 xorl %ecx,%edi
2692 movl %ebp,%esi
2693 addl 4(%rsp),%edx
2694 vpxor %xmm8,%xmm4,%xmm4
2695 xorl %ebx,%eax
2696 shldl $5,%ebp,%ebp
2697 vmovdqa %xmm9,48(%rsp)
2698 addl %edi,%edx
2699 andl %eax,%esi
2700 vpsrld $31,%xmm4,%xmm8
2701 xorl %ebx,%eax
2702 addl %ebp,%edx
2703 shrdl $7,%ebp,%ebp
2704 xorl %ebx,%esi
2705 vpslldq $12,%xmm4,%xmm10
2706 vpaddd %xmm4,%xmm4,%xmm4
2707 movl %edx,%edi
2708 addl 8(%rsp),%ecx
2709 xorl %eax,%ebp
2710 shldl $5,%edx,%edx
2711 vpsrld $30,%xmm10,%xmm9
2712 vpor %xmm8,%xmm4,%xmm4
2713 addl %esi,%ecx
2714 andl %ebp,%edi
2715 xorl %eax,%ebp
2716 addl %edx,%ecx
2717 vpslld $2,%xmm10,%xmm10
2718 vpxor %xmm9,%xmm4,%xmm4
2719 shrdl $7,%edx,%edx
2720 xorl %eax,%edi
2721 movl %ecx,%esi
2722 addl 12(%rsp),%ebx
2723 vpxor %xmm10,%xmm4,%xmm4
2724 xorl %ebp,%edx
2725 shldl $5,%ecx,%ecx
2726 addl %edi,%ebx
2727 andl %edx,%esi
2728 xorl %ebp,%edx
2729 addl %ecx,%ebx
2730 shrdl $7,%ecx,%ecx
2731 xorl %ebp,%esi
2732 vpalignr $8,%xmm1,%xmm2,%xmm5
2733 movl %ebx,%edi
2734 addl 16(%rsp),%eax
2735 vpaddd %xmm4,%xmm11,%xmm9
2736 xorl %edx,%ecx
2737 shldl $5,%ebx,%ebx
2738 vpsrldq $4,%xmm4,%xmm8
2739 addl %esi,%eax
2740 andl %ecx,%edi
2741 vpxor %xmm1,%xmm5,%xmm5
2742 xorl %edx,%ecx
2743 addl %ebx,%eax
2744 vpxor %xmm3,%xmm8,%xmm8
2745 shrdl $7,%ebx,%ebx
2746 xorl %edx,%edi
2747 movl %eax,%esi
2748 addl 20(%rsp),%ebp
2749 vpxor %xmm8,%xmm5,%xmm5
2750 xorl %ecx,%ebx
2751 shldl $5,%eax,%eax
2752 vmovdqa %xmm9,0(%rsp)
2753 addl %edi,%ebp
2754 andl %ebx,%esi
2755 vpsrld $31,%xmm5,%xmm8
2756 xorl %ecx,%ebx
2757 addl %eax,%ebp
2758 shrdl $7,%eax,%eax
2759 xorl %ecx,%esi
2760 vpslldq $12,%xmm5,%xmm10
2761 vpaddd %xmm5,%xmm5,%xmm5
2762 movl %ebp,%edi
2763 addl 24(%rsp),%edx
2764 xorl %ebx,%eax
2765 shldl $5,%ebp,%ebp
2766 vpsrld $30,%xmm10,%xmm9
2767 vpor %xmm8,%xmm5,%xmm5
2768 addl %esi,%edx
2769 andl %eax,%edi
2770 xorl %ebx,%eax
2771 addl %ebp,%edx
2772 vpslld $2,%xmm10,%xmm10
2773 vpxor %xmm9,%xmm5,%xmm5
2774 shrdl $7,%ebp,%ebp
2775 xorl %ebx,%edi
2776 movl %edx,%esi
2777 addl 28(%rsp),%ecx
2778 vpxor %xmm10,%xmm5,%xmm5
2779 xorl %eax,%ebp
2780 shldl $5,%edx,%edx
2781 vmovdqa -32(%r14),%xmm11
2782 addl %edi,%ecx
2783 andl %ebp,%esi
2784 xorl %eax,%ebp
2785 addl %edx,%ecx
2786 shrdl $7,%edx,%edx
2787 xorl %eax,%esi
2788 vpalignr $8,%xmm2,%xmm3,%xmm6
2789 movl %ecx,%edi
2790 addl 32(%rsp),%ebx
2791 vpaddd %xmm5,%xmm11,%xmm9
2792 xorl %ebp,%edx
2793 shldl $5,%ecx,%ecx
2794 vpsrldq $4,%xmm5,%xmm8
2795 addl %esi,%ebx
2796 andl %edx,%edi
2797 vpxor %xmm2,%xmm6,%xmm6
2798 xorl %ebp,%edx
2799 addl %ecx,%ebx
2800 vpxor %xmm4,%xmm8,%xmm8
2801 shrdl $7,%ecx,%ecx
2802 xorl %ebp,%edi
2803 movl %ebx,%esi
2804 addl 36(%rsp),%eax
2805 vpxor %xmm8,%xmm6,%xmm6
2806 xorl %edx,%ecx
2807 shldl $5,%ebx,%ebx
2808 vmovdqa %xmm9,16(%rsp)
2809 addl %edi,%eax
2810 andl %ecx,%esi
2811 vpsrld $31,%xmm6,%xmm8
2812 xorl %edx,%ecx
2813 addl %ebx,%eax
2814 shrdl $7,%ebx,%ebx
2815 xorl %edx,%esi
2816 vpslldq $12,%xmm6,%xmm10
2817 vpaddd %xmm6,%xmm6,%xmm6
2818 movl %eax,%edi
2819 addl 40(%rsp),%ebp
2820 xorl %ecx,%ebx
2821 shldl $5,%eax,%eax
2822 vpsrld $30,%xmm10,%xmm9
2823 vpor %xmm8,%xmm6,%xmm6
2824 addl %esi,%ebp
2825 andl %ebx,%edi
2826 xorl %ecx,%ebx
2827 addl %eax,%ebp
2828 vpslld $2,%xmm10,%xmm10
2829 vpxor %xmm9,%xmm6,%xmm6
2830 shrdl $7,%eax,%eax
2831 xorl %ecx,%edi
2832 movl %ebp,%esi
2833 addl 44(%rsp),%edx
2834 vpxor %xmm10,%xmm6,%xmm6
2835 xorl %ebx,%eax
2836 shldl $5,%ebp,%ebp
2837 addl %edi,%edx
2838 andl %eax,%esi
2839 xorl %ebx,%eax
2840 addl %ebp,%edx
2841 shrdl $7,%ebp,%ebp
2842 xorl %ebx,%esi
2843 vpalignr $8,%xmm3,%xmm4,%xmm7
2844 movl %edx,%edi
2845 addl 48(%rsp),%ecx
2846 vpaddd %xmm6,%xmm11,%xmm9
2847 xorl %eax,%ebp
2848 shldl $5,%edx,%edx
2849 vpsrldq $4,%xmm6,%xmm8
2850 addl %esi,%ecx
2851 andl %ebp,%edi
2852 vpxor %xmm3,%xmm7,%xmm7
2853 xorl %eax,%ebp
2854 addl %edx,%ecx
2855 vpxor %xmm5,%xmm8,%xmm8
2856 shrdl $7,%edx,%edx
2857 xorl %eax,%edi
2858 movl %ecx,%esi
2859 addl 52(%rsp),%ebx
2860 vpxor %xmm8,%xmm7,%xmm7
2861 xorl %ebp,%edx
2862 shldl $5,%ecx,%ecx
2863 vmovdqa %xmm9,32(%rsp)
2864 addl %edi,%ebx
2865 andl %edx,%esi
2866 vpsrld $31,%xmm7,%xmm8
2867 xorl %ebp,%edx
2868 addl %ecx,%ebx
2869 shrdl $7,%ecx,%ecx
2870 xorl %ebp,%esi
2871 vpslldq $12,%xmm7,%xmm10
2872 vpaddd %xmm7,%xmm7,%xmm7
2873 movl %ebx,%edi
2874 addl 56(%rsp),%eax
2875 xorl %edx,%ecx
2876 shldl $5,%ebx,%ebx
2877 vpsrld $30,%xmm10,%xmm9
2878 vpor %xmm8,%xmm7,%xmm7
2879 addl %esi,%eax
2880 andl %ecx,%edi
2881 xorl %edx,%ecx
2882 addl %ebx,%eax
2883 vpslld $2,%xmm10,%xmm10
2884 vpxor %xmm9,%xmm7,%xmm7
2885 shrdl $7,%ebx,%ebx
2886 xorl %edx,%edi
2887 movl %eax,%esi
2888 addl 60(%rsp),%ebp
2889 vpxor %xmm10,%xmm7,%xmm7
2890 xorl %ecx,%ebx
2891 shldl $5,%eax,%eax
2892 addl %edi,%ebp
2893 andl %ebx,%esi
2894 xorl %ecx,%ebx
2895 addl %eax,%ebp
2896 vpalignr $8,%xmm6,%xmm7,%xmm8
2897 vpxor %xmm4,%xmm0,%xmm0
2898 shrdl $7,%eax,%eax
2899 xorl %ecx,%esi
2900 movl %ebp,%edi
2901 addl 0(%rsp),%edx
2902 vpxor %xmm1,%xmm0,%xmm0
2903 xorl %ebx,%eax
2904 shldl $5,%ebp,%ebp
2905 vpaddd %xmm7,%xmm11,%xmm9
2906 addl %esi,%edx
2907 andl %eax,%edi
2908 vpxor %xmm8,%xmm0,%xmm0
2909 xorl %ebx,%eax
2910 addl %ebp,%edx
2911 shrdl $7,%ebp,%ebp
2912 xorl %ebx,%edi
2913 vpsrld $30,%xmm0,%xmm8
2914 vmovdqa %xmm9,48(%rsp)
2915 movl %edx,%esi
2916 addl 4(%rsp),%ecx
2917 xorl %eax,%ebp
2918 shldl $5,%edx,%edx
2919 vpslld $2,%xmm0,%xmm0
2920 addl %edi,%ecx
2921 andl %ebp,%esi
2922 xorl %eax,%ebp
2923 addl %edx,%ecx
2924 shrdl $7,%edx,%edx
2925 xorl %eax,%esi
2926 movl %ecx,%edi
2927 addl 8(%rsp),%ebx
2928 vpor %xmm8,%xmm0,%xmm0
2929 xorl %ebp,%edx
2930 shldl $5,%ecx,%ecx
2931 addl %esi,%ebx
2932 andl %edx,%edi
2933 xorl %ebp,%edx
2934 addl %ecx,%ebx
2935 addl 12(%rsp),%eax
2936 xorl %ebp,%edi
2937 movl %ebx,%esi
2938 shldl $5,%ebx,%ebx
2939 addl %edi,%eax
2940 xorl %edx,%esi
2941 shrdl $7,%ecx,%ecx
2942 addl %ebx,%eax
2943 vpalignr $8,%xmm7,%xmm0,%xmm8
2944 vpxor %xmm5,%xmm1,%xmm1
2945 addl 16(%rsp),%ebp
2946 xorl %ecx,%esi
2947 movl %eax,%edi
2948 shldl $5,%eax,%eax
2949 vpxor %xmm2,%xmm1,%xmm1
2950 addl %esi,%ebp
2951 xorl %ecx,%edi
2952 vpaddd %xmm0,%xmm11,%xmm9
2953 shrdl $7,%ebx,%ebx
2954 addl %eax,%ebp
2955 vpxor %xmm8,%xmm1,%xmm1
2956 addl 20(%rsp),%edx
2957 xorl %ebx,%edi
2958 movl %ebp,%esi
2959 shldl $5,%ebp,%ebp
2960 vpsrld $30,%xmm1,%xmm8
2961 vmovdqa %xmm9,0(%rsp)
2962 addl %edi,%edx
2963 xorl %ebx,%esi
2964 shrdl $7,%eax,%eax
2965 addl %ebp,%edx
2966 vpslld $2,%xmm1,%xmm1
2967 addl 24(%rsp),%ecx
2968 xorl %eax,%esi
2969 movl %edx,%edi
2970 shldl $5,%edx,%edx
2971 addl %esi,%ecx
2972 xorl %eax,%edi
2973 shrdl $7,%ebp,%ebp
2974 addl %edx,%ecx
2975 vpor %xmm8,%xmm1,%xmm1
2976 addl 28(%rsp),%ebx
2977 xorl %ebp,%edi
2978 movl %ecx,%esi
2979 shldl $5,%ecx,%ecx
2980 addl %edi,%ebx
2981 xorl %ebp,%esi
2982 shrdl $7,%edx,%edx
2983 addl %ecx,%ebx
2984 vpalignr $8,%xmm0,%xmm1,%xmm8
2985 vpxor %xmm6,%xmm2,%xmm2
2986 addl 32(%rsp),%eax
2987 xorl %edx,%esi
2988 movl %ebx,%edi
2989 shldl $5,%ebx,%ebx
2990 vpxor %xmm3,%xmm2,%xmm2
2991 addl %esi,%eax
2992 xorl %edx,%edi
2993 vpaddd %xmm1,%xmm11,%xmm9
2994 vmovdqa 0(%r14),%xmm11
2995 shrdl $7,%ecx,%ecx
2996 addl %ebx,%eax
2997 vpxor %xmm8,%xmm2,%xmm2
2998 addl 36(%rsp),%ebp
2999 xorl %ecx,%edi
3000 movl %eax,%esi
3001 shldl $5,%eax,%eax
3002 vpsrld $30,%xmm2,%xmm8
3003 vmovdqa %xmm9,16(%rsp)
3004 addl %edi,%ebp
3005 xorl %ecx,%esi
3006 shrdl $7,%ebx,%ebx
3007 addl %eax,%ebp
3008 vpslld $2,%xmm2,%xmm2
3009 addl 40(%rsp),%edx
3010 xorl %ebx,%esi
3011 movl %ebp,%edi
3012 shldl $5,%ebp,%ebp
3013 addl %esi,%edx
3014 xorl %ebx,%edi
3015 shrdl $7,%eax,%eax
3016 addl %ebp,%edx
3017 vpor %xmm8,%xmm2,%xmm2
3018 addl 44(%rsp),%ecx
3019 xorl %eax,%edi
3020 movl %edx,%esi
3021 shldl $5,%edx,%edx
3022 addl %edi,%ecx
3023 xorl %eax,%esi
3024 shrdl $7,%ebp,%ebp
3025 addl %edx,%ecx
3026 vpalignr $8,%xmm1,%xmm2,%xmm8
3027 vpxor %xmm7,%xmm3,%xmm3
3028 addl 48(%rsp),%ebx
3029 xorl %ebp,%esi
3030 movl %ecx,%edi
3031 shldl $5,%ecx,%ecx
3032 vpxor %xmm4,%xmm3,%xmm3
3033 addl %esi,%ebx
3034 xorl %ebp,%edi
3035 vpaddd %xmm2,%xmm11,%xmm9
3036 shrdl $7,%edx,%edx
3037 addl %ecx,%ebx
3038 vpxor %xmm8,%xmm3,%xmm3
3039 addl 52(%rsp),%eax
3040 xorl %edx,%edi
3041 movl %ebx,%esi
3042 shldl $5,%ebx,%ebx
3043 vpsrld $30,%xmm3,%xmm8
3044 vmovdqa %xmm9,32(%rsp)
3045 addl %edi,%eax
3046 xorl %edx,%esi
3047 shrdl $7,%ecx,%ecx
3048 addl %ebx,%eax
3049 vpslld $2,%xmm3,%xmm3
3050 addl 56(%rsp),%ebp
3051 xorl %ecx,%esi
3052 movl %eax,%edi
3053 shldl $5,%eax,%eax
3054 addl %esi,%ebp
3055 xorl %ecx,%edi
3056 shrdl $7,%ebx,%ebx
3057 addl %eax,%ebp
3058 vpor %xmm8,%xmm3,%xmm3
3059 addl 60(%rsp),%edx
3060 xorl %ebx,%edi
3061 movl %ebp,%esi
3062 shldl $5,%ebp,%ebp
3063 addl %edi,%edx
3064 xorl %ebx,%esi
3065 shrdl $7,%eax,%eax
3066 addl %ebp,%edx
3067 vpalignr $8,%xmm2,%xmm3,%xmm8
3068 vpxor %xmm0,%xmm4,%xmm4
3069 addl 0(%rsp),%ecx
3070 xorl %eax,%esi
3071 movl %edx,%edi
3072 shldl $5,%edx,%edx
3073 vpxor %xmm5,%xmm4,%xmm4
3074 addl %esi,%ecx
3075 xorl %eax,%edi
3076 vpaddd %xmm3,%xmm11,%xmm9
3077 shrdl $7,%ebp,%ebp
3078 addl %edx,%ecx
3079 vpxor %xmm8,%xmm4,%xmm4
3080 addl 4(%rsp),%ebx
3081 xorl %ebp,%edi
3082 movl %ecx,%esi
3083 shldl $5,%ecx,%ecx
3084 vpsrld $30,%xmm4,%xmm8
3085 vmovdqa %xmm9,48(%rsp)
3086 addl %edi,%ebx
3087 xorl %ebp,%esi
3088 shrdl $7,%edx,%edx
3089 addl %ecx,%ebx
3090 vpslld $2,%xmm4,%xmm4
3091 addl 8(%rsp),%eax
3092 xorl %edx,%esi
3093 movl %ebx,%edi
3094 shldl $5,%ebx,%ebx
3095 addl %esi,%eax
3096 xorl %edx,%edi
3097 shrdl $7,%ecx,%ecx
3098 addl %ebx,%eax
3099 vpor %xmm8,%xmm4,%xmm4
3100 addl 12(%rsp),%ebp
3101 xorl %ecx,%edi
3102 movl %eax,%esi
3103 shldl $5,%eax,%eax
3104 addl %edi,%ebp
3105 xorl %ecx,%esi
3106 shrdl $7,%ebx,%ebx
3107 addl %eax,%ebp
3108 vpalignr $8,%xmm3,%xmm4,%xmm8
3109 vpxor %xmm1,%xmm5,%xmm5
3110 addl 16(%rsp),%edx
3111 xorl %ebx,%esi
3112 movl %ebp,%edi
3113 shldl $5,%ebp,%ebp
3114 vpxor %xmm6,%xmm5,%xmm5
3115 addl %esi,%edx
3116 xorl %ebx,%edi
3117 vpaddd %xmm4,%xmm11,%xmm9
3118 shrdl $7,%eax,%eax
3119 addl %ebp,%edx
3120 vpxor %xmm8,%xmm5,%xmm5
3121 addl 20(%rsp),%ecx
3122 xorl %eax,%edi
3123 movl %edx,%esi
3124 shldl $5,%edx,%edx
3125 vpsrld $30,%xmm5,%xmm8
3126 vmovdqa %xmm9,0(%rsp)
3127 addl %edi,%ecx
3128 xorl %eax,%esi
3129 shrdl $7,%ebp,%ebp
3130 addl %edx,%ecx
3131 vpslld $2,%xmm5,%xmm5
3132 addl 24(%rsp),%ebx
3133 xorl %ebp,%esi
3134 movl %ecx,%edi
3135 shldl $5,%ecx,%ecx
3136 addl %esi,%ebx
3137 xorl %ebp,%edi
3138 shrdl $7,%edx,%edx
3139 addl %ecx,%ebx
3140 vpor %xmm8,%xmm5,%xmm5
3141 addl 28(%rsp),%eax
3142 shrdl $7,%ecx,%ecx
3143 movl %ebx,%esi
3144 xorl %edx,%edi
3145 shldl $5,%ebx,%ebx
3146 addl %edi,%eax
3147 xorl %ecx,%esi
3148 xorl %edx,%ecx
3149 addl %ebx,%eax
3150 vpalignr $8,%xmm4,%xmm5,%xmm8
3151 vpxor %xmm2,%xmm6,%xmm6
3152 addl 32(%rsp),%ebp
3153 andl %ecx,%esi
3154 xorl %edx,%ecx
3155 shrdl $7,%ebx,%ebx
3156 vpxor %xmm7,%xmm6,%xmm6
3157 movl %eax,%edi
3158 xorl %ecx,%esi
3159 vpaddd %xmm5,%xmm11,%xmm9
3160 shldl $5,%eax,%eax
3161 addl %esi,%ebp
3162 vpxor %xmm8,%xmm6,%xmm6
3163 xorl %ebx,%edi
3164 xorl %ecx,%ebx
3165 addl %eax,%ebp
3166 addl 36(%rsp),%edx
3167 vpsrld $30,%xmm6,%xmm8
3168 vmovdqa %xmm9,16(%rsp)
3169 andl %ebx,%edi
3170 xorl %ecx,%ebx
3171 shrdl $7,%eax,%eax
3172 movl %ebp,%esi
3173 vpslld $2,%xmm6,%xmm6
3174 xorl %ebx,%edi
3175 shldl $5,%ebp,%ebp
3176 addl %edi,%edx
3177 xorl %eax,%esi
3178 xorl %ebx,%eax
3179 addl %ebp,%edx
3180 addl 40(%rsp),%ecx
3181 andl %eax,%esi
3182 vpor %xmm8,%xmm6,%xmm6
3183 xorl %ebx,%eax
3184 shrdl $7,%ebp,%ebp
3185 movl %edx,%edi
3186 xorl %eax,%esi
3187 shldl $5,%edx,%edx
3188 addl %esi,%ecx
3189 xorl %ebp,%edi
3190 xorl %eax,%ebp
3191 addl %edx,%ecx
3192 addl 44(%rsp),%ebx
3193 andl %ebp,%edi
3194 xorl %eax,%ebp
3195 shrdl $7,%edx,%edx
3196 movl %ecx,%esi
3197 xorl %ebp,%edi
3198 shldl $5,%ecx,%ecx
3199 addl %edi,%ebx
3200 xorl %edx,%esi
3201 xorl %ebp,%edx
3202 addl %ecx,%ebx
3203 vpalignr $8,%xmm5,%xmm6,%xmm8
3204 vpxor %xmm3,%xmm7,%xmm7
3205 addl 48(%rsp),%eax
3206 andl %edx,%esi
3207 xorl %ebp,%edx
3208 shrdl $7,%ecx,%ecx
3209 vpxor %xmm0,%xmm7,%xmm7
3210 movl %ebx,%edi
3211 xorl %edx,%esi
3212 vpaddd %xmm6,%xmm11,%xmm9
3213 vmovdqa 32(%r14),%xmm11
3214 shldl $5,%ebx,%ebx
3215 addl %esi,%eax
3216 vpxor %xmm8,%xmm7,%xmm7
3217 xorl %ecx,%edi
3218 xorl %edx,%ecx
3219 addl %ebx,%eax
3220 addl 52(%rsp),%ebp
3221 vpsrld $30,%xmm7,%xmm8
3222 vmovdqa %xmm9,32(%rsp)
3223 andl %ecx,%edi
3224 xorl %edx,%ecx
3225 shrdl $7,%ebx,%ebx
3226 movl %eax,%esi
3227 vpslld $2,%xmm7,%xmm7
3228 xorl %ecx,%edi
3229 shldl $5,%eax,%eax
3230 addl %edi,%ebp
3231 xorl %ebx,%esi
3232 xorl %ecx,%ebx
3233 addl %eax,%ebp
3234 addl 56(%rsp),%edx
3235 andl %ebx,%esi
3236 vpor %xmm8,%xmm7,%xmm7
3237 xorl %ecx,%ebx
3238 shrdl $7,%eax,%eax
3239 movl %ebp,%edi
3240 xorl %ebx,%esi
3241 shldl $5,%ebp,%ebp
3242 addl %esi,%edx
3243 xorl %eax,%edi
3244 xorl %ebx,%eax
3245 addl %ebp,%edx
3246 addl 60(%rsp),%ecx
3247 andl %eax,%edi
3248 xorl %ebx,%eax
3249 shrdl $7,%ebp,%ebp
3250 movl %edx,%esi
3251 xorl %eax,%edi
3252 shldl $5,%edx,%edx
3253 addl %edi,%ecx
3254 xorl %ebp,%esi
3255 xorl %eax,%ebp
3256 addl %edx,%ecx
3257 vpalignr $8,%xmm6,%xmm7,%xmm8
3258 vpxor %xmm4,%xmm0,%xmm0
3259 addl 0(%rsp),%ebx
3260 andl %ebp,%esi
3261 xorl %eax,%ebp
3262 shrdl $7,%edx,%edx
3263 vpxor %xmm1,%xmm0,%xmm0
3264 movl %ecx,%edi
3265 xorl %ebp,%esi
3266 vpaddd %xmm7,%xmm11,%xmm9
3267 shldl $5,%ecx,%ecx
3268 addl %esi,%ebx
3269 vpxor %xmm8,%xmm0,%xmm0
3270 xorl %edx,%edi
3271 xorl %ebp,%edx
3272 addl %ecx,%ebx
3273 addl 4(%rsp),%eax
3274 vpsrld $30,%xmm0,%xmm8
3275 vmovdqa %xmm9,48(%rsp)
3276 andl %edx,%edi
3277 xorl %ebp,%edx
3278 shrdl $7,%ecx,%ecx
3279 movl %ebx,%esi
3280 vpslld $2,%xmm0,%xmm0
3281 xorl %edx,%edi
3282 shldl $5,%ebx,%ebx
3283 addl %edi,%eax
3284 xorl %ecx,%esi
3285 xorl %edx,%ecx
3286 addl %ebx,%eax
3287 addl 8(%rsp),%ebp
3288 andl %ecx,%esi
3289 vpor %xmm8,%xmm0,%xmm0
3290 xorl %edx,%ecx
3291 shrdl $7,%ebx,%ebx
3292 movl %eax,%edi
3293 xorl %ecx,%esi
3294 shldl $5,%eax,%eax
3295 addl %esi,%ebp
3296 xorl %ebx,%edi
3297 xorl %ecx,%ebx
3298 addl %eax,%ebp
3299 addl 12(%rsp),%edx
3300 andl %ebx,%edi
3301 xorl %ecx,%ebx
3302 shrdl $7,%eax,%eax
3303 movl %ebp,%esi
3304 xorl %ebx,%edi
3305 shldl $5,%ebp,%ebp
3306 addl %edi,%edx
3307 xorl %eax,%esi
3308 xorl %ebx,%eax
3309 addl %ebp,%edx
3310 vpalignr $8,%xmm7,%xmm0,%xmm8
3311 vpxor %xmm5,%xmm1,%xmm1
3312 addl 16(%rsp),%ecx
3313 andl %eax,%esi
3314 xorl %ebx,%eax
3315 shrdl $7,%ebp,%ebp
3316 vpxor %xmm2,%xmm1,%xmm1
3317 movl %edx,%edi
3318 xorl %eax,%esi
3319 vpaddd %xmm0,%xmm11,%xmm9
3320 shldl $5,%edx,%edx
3321 addl %esi,%ecx
3322 vpxor %xmm8,%xmm1,%xmm1
3323 xorl %ebp,%edi
3324 xorl %eax,%ebp
3325 addl %edx,%ecx
3326 addl 20(%rsp),%ebx
3327 vpsrld $30,%xmm1,%xmm8
3328 vmovdqa %xmm9,0(%rsp)
3329 andl %ebp,%edi
3330 xorl %eax,%ebp
3331 shrdl $7,%edx,%edx
3332 movl %ecx,%esi
3333 vpslld $2,%xmm1,%xmm1
3334 xorl %ebp,%edi
3335 shldl $5,%ecx,%ecx
3336 addl %edi,%ebx
3337 xorl %edx,%esi
3338 xorl %ebp,%edx
3339 addl %ecx,%ebx
3340 addl 24(%rsp),%eax
3341 andl %edx,%esi
3342 vpor %xmm8,%xmm1,%xmm1
3343 xorl %ebp,%edx
3344 shrdl $7,%ecx,%ecx
3345 movl %ebx,%edi
3346 xorl %edx,%esi
3347 shldl $5,%ebx,%ebx
3348 addl %esi,%eax
3349 xorl %ecx,%edi
3350 xorl %edx,%ecx
3351 addl %ebx,%eax
3352 addl 28(%rsp),%ebp
3353 andl %ecx,%edi
3354 xorl %edx,%ecx
3355 shrdl $7,%ebx,%ebx
3356 movl %eax,%esi
3357 xorl %ecx,%edi
3358 shldl $5,%eax,%eax
3359 addl %edi,%ebp
3360 xorl %ebx,%esi
3361 xorl %ecx,%ebx
3362 addl %eax,%ebp
3363 vpalignr $8,%xmm0,%xmm1,%xmm8
3364 vpxor %xmm6,%xmm2,%xmm2
3365 addl 32(%rsp),%edx
3366 andl %ebx,%esi
3367 xorl %ecx,%ebx
3368 shrdl $7,%eax,%eax
3369 vpxor %xmm3,%xmm2,%xmm2
3370 movl %ebp,%edi
3371 xorl %ebx,%esi
3372 vpaddd %xmm1,%xmm11,%xmm9
3373 shldl $5,%ebp,%ebp
3374 addl %esi,%edx
3375 vpxor %xmm8,%xmm2,%xmm2
3376 xorl %eax,%edi
3377 xorl %ebx,%eax
3378 addl %ebp,%edx
3379 addl 36(%rsp),%ecx
3380 vpsrld $30,%xmm2,%xmm8
3381 vmovdqa %xmm9,16(%rsp)
3382 andl %eax,%edi
3383 xorl %ebx,%eax
3384 shrdl $7,%ebp,%ebp
3385 movl %edx,%esi
3386 vpslld $2,%xmm2,%xmm2
3387 xorl %eax,%edi
3388 shldl $5,%edx,%edx
3389 addl %edi,%ecx
3390 xorl %ebp,%esi
3391 xorl %eax,%ebp
3392 addl %edx,%ecx
3393 addl 40(%rsp),%ebx
3394 andl %ebp,%esi
3395 vpor %xmm8,%xmm2,%xmm2
3396 xorl %eax,%ebp
3397 shrdl $7,%edx,%edx
3398 movl %ecx,%edi
3399 xorl %ebp,%esi
3400 shldl $5,%ecx,%ecx
3401 addl %esi,%ebx
3402 xorl %edx,%edi
3403 xorl %ebp,%edx
3404 addl %ecx,%ebx
3405 addl 44(%rsp),%eax
3406 andl %edx,%edi
3407 xorl %ebp,%edx
3408 shrdl $7,%ecx,%ecx
3409 movl %ebx,%esi
3410 xorl %edx,%edi
3411 shldl $5,%ebx,%ebx
3412 addl %edi,%eax
3413 xorl %edx,%esi
3414 addl %ebx,%eax
3415 vpalignr $8,%xmm1,%xmm2,%xmm8
3416 vpxor %xmm7,%xmm3,%xmm3
3417 addl 48(%rsp),%ebp
3418 xorl %ecx,%esi
3419 movl %eax,%edi
3420 shldl $5,%eax,%eax
3421 vpxor %xmm4,%xmm3,%xmm3
3422 addl %esi,%ebp
3423 xorl %ecx,%edi
3424 vpaddd %xmm2,%xmm11,%xmm9
3425 shrdl $7,%ebx,%ebx
3426 addl %eax,%ebp
3427 vpxor %xmm8,%xmm3,%xmm3
3428 addl 52(%rsp),%edx
3429 xorl %ebx,%edi
3430 movl %ebp,%esi
3431 shldl $5,%ebp,%ebp
3432 vpsrld $30,%xmm3,%xmm8
3433 vmovdqa %xmm9,32(%rsp)
3434 addl %edi,%edx
3435 xorl %ebx,%esi
3436 shrdl $7,%eax,%eax
3437 addl %ebp,%edx
3438 vpslld $2,%xmm3,%xmm3
3439 addl 56(%rsp),%ecx
3440 xorl %eax,%esi
3441 movl %edx,%edi
3442 shldl $5,%edx,%edx
3443 addl %esi,%ecx
3444 xorl %eax,%edi
3445 shrdl $7,%ebp,%ebp
3446 addl %edx,%ecx
3447 vpor %xmm8,%xmm3,%xmm3
3448 addl 60(%rsp),%ebx
3449 xorl %ebp,%edi
3450 movl %ecx,%esi
3451 shldl $5,%ecx,%ecx
3452 addl %edi,%ebx
3453 xorl %ebp,%esi
3454 shrdl $7,%edx,%edx
3455 addl %ecx,%ebx
3456 addl 0(%rsp),%eax
3457 vpaddd %xmm3,%xmm11,%xmm9
3458 xorl %edx,%esi
3459 movl %ebx,%edi
3460 shldl $5,%ebx,%ebx
3461 addl %esi,%eax
3462 vmovdqa %xmm9,48(%rsp)
3463 xorl %edx,%edi
3464 shrdl $7,%ecx,%ecx
3465 addl %ebx,%eax
3466 addl 4(%rsp),%ebp
3467 xorl %ecx,%edi
3468 movl %eax,%esi
3469 shldl $5,%eax,%eax
3470 addl %edi,%ebp
3471 xorl %ecx,%esi
3472 shrdl $7,%ebx,%ebx
3473 addl %eax,%ebp
3474 addl 8(%rsp),%edx
3475 xorl %ebx,%esi
3476 movl %ebp,%edi
3477 shldl $5,%ebp,%ebp
3478 addl %esi,%edx
3479 xorl %ebx,%edi
3480 shrdl $7,%eax,%eax
3481 addl %ebp,%edx
3482 addl 12(%rsp),%ecx
3483 xorl %eax,%edi
3484 movl %edx,%esi
3485 shldl $5,%edx,%edx
3486 addl %edi,%ecx
3487 xorl %eax,%esi
3488 shrdl $7,%ebp,%ebp
3489 addl %edx,%ecx
3490 cmpq %r10,%r9
3491 je .Ldone_avx
3492 vmovdqa 64(%r14),%xmm6
3493 vmovdqa -64(%r14),%xmm11
3494 vmovdqu 0(%r9),%xmm0
3495 vmovdqu 16(%r9),%xmm1
3496 vmovdqu 32(%r9),%xmm2
3497 vmovdqu 48(%r9),%xmm3
3498 vpshufb %xmm6,%xmm0,%xmm0
3499 addq $64,%r9
3500 addl 16(%rsp),%ebx
3501 xorl %ebp,%esi
3502 vpshufb %xmm6,%xmm1,%xmm1
3503 movl %ecx,%edi
3504 shldl $5,%ecx,%ecx
3505 vpaddd %xmm11,%xmm0,%xmm4
3506 addl %esi,%ebx
3507 xorl %ebp,%edi
3508 shrdl $7,%edx,%edx
3509 addl %ecx,%ebx
3510 vmovdqa %xmm4,0(%rsp)
3511 addl 20(%rsp),%eax
3512 xorl %edx,%edi
3513 movl %ebx,%esi
3514 shldl $5,%ebx,%ebx
3515 addl %edi,%eax
3516 xorl %edx,%esi
3517 shrdl $7,%ecx,%ecx
3518 addl %ebx,%eax
3519 addl 24(%rsp),%ebp
3520 xorl %ecx,%esi
3521 movl %eax,%edi
3522 shldl $5,%eax,%eax
3523 addl %esi,%ebp
3524 xorl %ecx,%edi
3525 shrdl $7,%ebx,%ebx
3526 addl %eax,%ebp
3527 addl 28(%rsp),%edx
3528 xorl %ebx,%edi
3529 movl %ebp,%esi
3530 shldl $5,%ebp,%ebp
3531 addl %edi,%edx
3532 xorl %ebx,%esi
3533 shrdl $7,%eax,%eax
3534 addl %ebp,%edx
3535 addl 32(%rsp),%ecx
3536 xorl %eax,%esi
3537 vpshufb %xmm6,%xmm2,%xmm2
3538 movl %edx,%edi
3539 shldl $5,%edx,%edx
3540 vpaddd %xmm11,%xmm1,%xmm5
3541 addl %esi,%ecx
3542 xorl %eax,%edi
3543 shrdl $7,%ebp,%ebp
3544 addl %edx,%ecx
3545 vmovdqa %xmm5,16(%rsp)
3546 addl 36(%rsp),%ebx
3547 xorl %ebp,%edi
3548 movl %ecx,%esi
3549 shldl $5,%ecx,%ecx
3550 addl %edi,%ebx
3551 xorl %ebp,%esi
3552 shrdl $7,%edx,%edx
3553 addl %ecx,%ebx
3554 addl 40(%rsp),%eax
3555 xorl %edx,%esi
3556 movl %ebx,%edi
3557 shldl $5,%ebx,%ebx
3558 addl %esi,%eax
3559 xorl %edx,%edi
3560 shrdl $7,%ecx,%ecx
3561 addl %ebx,%eax
3562 addl 44(%rsp),%ebp
3563 xorl %ecx,%edi
3564 movl %eax,%esi
3565 shldl $5,%eax,%eax
3566 addl %edi,%ebp
3567 xorl %ecx,%esi
3568 shrdl $7,%ebx,%ebx
3569 addl %eax,%ebp
3570 addl 48(%rsp),%edx
3571 xorl %ebx,%esi
3572 vpshufb %xmm6,%xmm3,%xmm3
3573 movl %ebp,%edi
3574 shldl $5,%ebp,%ebp
3575 vpaddd %xmm11,%xmm2,%xmm6
3576 addl %esi,%edx
3577 xorl %ebx,%edi
3578 shrdl $7,%eax,%eax
3579 addl %ebp,%edx
3580 vmovdqa %xmm6,32(%rsp)
3581 addl 52(%rsp),%ecx
3582 xorl %eax,%edi
3583 movl %edx,%esi
3584 shldl $5,%edx,%edx
3585 addl %edi,%ecx
3586 xorl %eax,%esi
3587 shrdl $7,%ebp,%ebp
3588 addl %edx,%ecx
3589 addl 56(%rsp),%ebx
3590 xorl %ebp,%esi
3591 movl %ecx,%edi
3592 shldl $5,%ecx,%ecx
3593 addl %esi,%ebx
3594 xorl %ebp,%edi
3595 shrdl $7,%edx,%edx
3596 addl %ecx,%ebx
3597 addl 60(%rsp),%eax
3598 xorl %edx,%edi
3599 movl %ebx,%esi
3600 shldl $5,%ebx,%ebx
3601 addl %edi,%eax
3602 shrdl $7,%ecx,%ecx
3603 addl %ebx,%eax
3604 addl 0(%r8),%eax
3605 addl 4(%r8),%esi
3606 addl 8(%r8),%ecx
3607 addl 12(%r8),%edx
3608 movl %eax,0(%r8)
3609 addl 16(%r8),%ebp
3610 movl %esi,4(%r8)
3611 movl %esi,%ebx
3612 movl %ecx,8(%r8)
3613 movl %ecx,%edi
3614 movl %edx,12(%r8)
3615 xorl %edx,%edi
3616 movl %ebp,16(%r8)
3617 andl %edi,%esi
3618 jmp .Loop_avx
3619
3620 .align 16
3621 .Ldone_avx:
3622 addl 16(%rsp),%ebx
3623 xorl %ebp,%esi
3624 movl %ecx,%edi
3625 shldl $5,%ecx,%ecx
3626 addl %esi,%ebx
3627 xorl %ebp,%edi
3628 shrdl $7,%edx,%edx
3629 addl %ecx,%ebx
3630 addl 20(%rsp),%eax
3631 xorl %edx,%edi
3632 movl %ebx,%esi
3633 shldl $5,%ebx,%ebx
3634 addl %edi,%eax
3635 xorl %edx,%esi
3636 shrdl $7,%ecx,%ecx
3637 addl %ebx,%eax
3638 addl 24(%rsp),%ebp
3639 xorl %ecx,%esi
3640 movl %eax,%edi
3641 shldl $5,%eax,%eax
3642 addl %esi,%ebp
3643 xorl %ecx,%edi
3644 shrdl $7,%ebx,%ebx
3645 addl %eax,%ebp
3646 addl 28(%rsp),%edx
3647 xorl %ebx,%edi
3648 movl %ebp,%esi
3649 shldl $5,%ebp,%ebp
3650 addl %edi,%edx
3651 xorl %ebx,%esi
3652 shrdl $7,%eax,%eax
3653 addl %ebp,%edx
3654 addl 32(%rsp),%ecx
3655 xorl %eax,%esi
3656 movl %edx,%edi
3657 shldl $5,%edx,%edx
3658 addl %esi,%ecx
3659 xorl %eax,%edi
3660 shrdl $7,%ebp,%ebp
3661 addl %edx,%ecx
3662 addl 36(%rsp),%ebx
3663 xorl %ebp,%edi
3664 movl %ecx,%esi
3665 shldl $5,%ecx,%ecx
3666 addl %edi,%ebx
3667 xorl %ebp,%esi
3668 shrdl $7,%edx,%edx
3669 addl %ecx,%ebx
3670 addl 40(%rsp),%eax
3671 xorl %edx,%esi
3672 movl %ebx,%edi
3673 shldl $5,%ebx,%ebx
3674 addl %esi,%eax
3675 xorl %edx,%edi
3676 shrdl $7,%ecx,%ecx
3677 addl %ebx,%eax
3678 addl 44(%rsp),%ebp
3679 xorl %ecx,%edi
3680 movl %eax,%esi
3681 shldl $5,%eax,%eax
3682 addl %edi,%ebp
3683 xorl %ecx,%esi
3684 shrdl $7,%ebx,%ebx
3685 addl %eax,%ebp
3686 addl 48(%rsp),%edx
3687 xorl %ebx,%esi
3688 movl %ebp,%edi
3689 shldl $5,%ebp,%ebp
3690 addl %esi,%edx
3691 xorl %ebx,%edi
3692 shrdl $7,%eax,%eax
3693 addl %ebp,%edx
3694 addl 52(%rsp),%ecx
3695 xorl %eax,%edi
3696 movl %edx,%esi
3697 shldl $5,%edx,%edx
3698 addl %edi,%ecx
3699 xorl %eax,%esi
3700 shrdl $7,%ebp,%ebp
3701 addl %edx,%ecx
3702 addl 56(%rsp),%ebx
3703 xorl %ebp,%esi
3704 movl %ecx,%edi
3705 shldl $5,%ecx,%ecx
3706 addl %esi,%ebx
3707 xorl %ebp,%edi
3708 shrdl $7,%edx,%edx
3709 addl %ecx,%ebx
3710 addl 60(%rsp),%eax
3711 xorl %edx,%edi
3712 movl %ebx,%esi
3713 shldl $5,%ebx,%ebx
3714 addl %edi,%eax
3715 shrdl $7,%ecx,%ecx
3716 addl %ebx,%eax
3717 vzeroupper
3718
3719 addl 0(%r8),%eax
3720 addl 4(%r8),%esi
3721 addl 8(%r8),%ecx
3722 movl %eax,0(%r8)
3723 addl 12(%r8),%edx
3724 movl %esi,4(%r8)
3725 addl 16(%r8),%ebp
3726 movl %ecx,8(%r8)
3727 movl %edx,12(%r8)
3728 movl %ebp,16(%r8)
3729 movq -40(%r11),%r14
3730 .cfi_restore %r14
3731 movq -32(%r11),%r13
3732 .cfi_restore %r13
3733 movq -24(%r11),%r12
3734 .cfi_restore %r12
3735 movq -16(%r11),%rbp
3736 .cfi_restore %rbp
3737 movq -8(%r11),%rbx
3738 .cfi_restore %rbx
3739 leaq (%r11),%rsp
3740 .cfi_def_cfa_register %rsp
3741 .Lepilogue_avx:
3742 .byte 0xf3,0xc3
3743 .cfi_endproc
3744 .size sha1_block_data_order_avx,.-sha1_block_data_order_avx
3745 .type sha1_block_data_order_avx2,@function
3746 .align 16
3747 sha1_block_data_order_avx2:
3748 _avx2_shortcut:
3749 .cfi_startproc
3750 movq %rsp,%r11
3751 .cfi_def_cfa_register %r11
3752 pushq %rbx
3753 .cfi_offset %rbx,-16
3754 pushq %rbp
3755 .cfi_offset %rbp,-24
3756 pushq %r12
3757 .cfi_offset %r12,-32
3758 pushq %r13
3759 .cfi_offset %r13,-40
3760 pushq %r14
3761 .cfi_offset %r14,-48
3762 vzeroupper
3763 movq %rdi,%r8
3764 movq %rsi,%r9
3765 movq %rdx,%r10
3766
3767 leaq -640(%rsp),%rsp
3768 shlq $6,%r10
3769 leaq 64(%r9),%r13
3770 andq $-128,%rsp
3771 addq %r9,%r10
3772 leaq K_XX_XX+64(%rip),%r14
3773
3774 movl 0(%r8),%eax
3775 cmpq %r10,%r13
3776 cmovaeq %r9,%r13
3777 movl 4(%r8),%ebp
3778 movl 8(%r8),%ecx
3779 movl 12(%r8),%edx
3780 movl 16(%r8),%esi
3781 vmovdqu 64(%r14),%ymm6
3782
3783 vmovdqu (%r9),%xmm0
3784 vmovdqu 16(%r9),%xmm1
3785 vmovdqu 32(%r9),%xmm2
3786 vmovdqu 48(%r9),%xmm3
3787 leaq 64(%r9),%r9
3788 vinserti128 $1,(%r13),%ymm0,%ymm0
3789 vinserti128 $1,16(%r13),%ymm1,%ymm1
3790 vpshufb %ymm6,%ymm0,%ymm0
3791 vinserti128 $1,32(%r13),%ymm2,%ymm2
3792 vpshufb %ymm6,%ymm1,%ymm1
3793 vinserti128 $1,48(%r13),%ymm3,%ymm3
3794 vpshufb %ymm6,%ymm2,%ymm2
3795 vmovdqu -64(%r14),%ymm11
3796 vpshufb %ymm6,%ymm3,%ymm3
3797
3798 vpaddd %ymm11,%ymm0,%ymm4
3799 vpaddd %ymm11,%ymm1,%ymm5
3800 vmovdqu %ymm4,0(%rsp)
3801 vpaddd %ymm11,%ymm2,%ymm6
3802 vmovdqu %ymm5,32(%rsp)
3803 vpaddd %ymm11,%ymm3,%ymm7
3804 vmovdqu %ymm6,64(%rsp)
3805 vmovdqu %ymm7,96(%rsp)
3806 vpalignr $8,%ymm0,%ymm1,%ymm4
3807 vpsrldq $4,%ymm3,%ymm8
3808 vpxor %ymm0,%ymm4,%ymm4
3809 vpxor %ymm2,%ymm8,%ymm8
3810 vpxor %ymm8,%ymm4,%ymm4
3811 vpsrld $31,%ymm4,%ymm8
3812 vpslldq $12,%ymm4,%ymm10
3813 vpaddd %ymm4,%ymm4,%ymm4
3814 vpsrld $30,%ymm10,%ymm9
3815 vpor %ymm8,%ymm4,%ymm4
3816 vpslld $2,%ymm10,%ymm10
3817 vpxor %ymm9,%ymm4,%ymm4
3818 vpxor %ymm10,%ymm4,%ymm4
3819 vpaddd %ymm11,%ymm4,%ymm9
3820 vmovdqu %ymm9,128(%rsp)
3821 vpalignr $8,%ymm1,%ymm2,%ymm5
3822 vpsrldq $4,%ymm4,%ymm8
3823 vpxor %ymm1,%ymm5,%ymm5
3824 vpxor %ymm3,%ymm8,%ymm8
3825 vpxor %ymm8,%ymm5,%ymm5
3826 vpsrld $31,%ymm5,%ymm8
3827 vmovdqu -32(%r14),%ymm11
3828 vpslldq $12,%ymm5,%ymm10
3829 vpaddd %ymm5,%ymm5,%ymm5
3830 vpsrld $30,%ymm10,%ymm9
3831 vpor %ymm8,%ymm5,%ymm5
3832 vpslld $2,%ymm10,%ymm10
3833 vpxor %ymm9,%ymm5,%ymm5
3834 vpxor %ymm10,%ymm5,%ymm5
3835 vpaddd %ymm11,%ymm5,%ymm9
3836 vmovdqu %ymm9,160(%rsp)
3837 vpalignr $8,%ymm2,%ymm3,%ymm6
3838 vpsrldq $4,%ymm5,%ymm8
3839 vpxor %ymm2,%ymm6,%ymm6
3840 vpxor %ymm4,%ymm8,%ymm8
3841 vpxor %ymm8,%ymm6,%ymm6
3842 vpsrld $31,%ymm6,%ymm8
3843 vpslldq $12,%ymm6,%ymm10
3844 vpaddd %ymm6,%ymm6,%ymm6
3845 vpsrld $30,%ymm10,%ymm9
3846 vpor %ymm8,%ymm6,%ymm6
3847 vpslld $2,%ymm10,%ymm10
3848 vpxor %ymm9,%ymm6,%ymm6
3849 vpxor %ymm10,%ymm6,%ymm6
3850 vpaddd %ymm11,%ymm6,%ymm9
3851 vmovdqu %ymm9,192(%rsp)
3852 vpalignr $8,%ymm3,%ymm4,%ymm7
3853 vpsrldq $4,%ymm6,%ymm8
3854 vpxor %ymm3,%ymm7,%ymm7
3855 vpxor %ymm5,%ymm8,%ymm8
3856 vpxor %ymm8,%ymm7,%ymm7
3857 vpsrld $31,%ymm7,%ymm8
3858 vpslldq $12,%ymm7,%ymm10
3859 vpaddd %ymm7,%ymm7,%ymm7
3860 vpsrld $30,%ymm10,%ymm9
3861 vpor %ymm8,%ymm7,%ymm7
3862 vpslld $2,%ymm10,%ymm10
3863 vpxor %ymm9,%ymm7,%ymm7
3864 vpxor %ymm10,%ymm7,%ymm7
3865 vpaddd %ymm11,%ymm7,%ymm9
3866 vmovdqu %ymm9,224(%rsp)
3867 leaq 128(%rsp),%r13
3868 jmp .Loop_avx2
3869 .align 32
3870 .Loop_avx2:
3871 rorxl $2,%ebp,%ebx
3872 andnl %edx,%ebp,%edi
3873 andl %ecx,%ebp
3874 xorl %edi,%ebp
3875 jmp .Lalign32_1
3876 .align 32
3877 .Lalign32_1:
3878 vpalignr $8,%ymm6,%ymm7,%ymm8
3879 vpxor %ymm4,%ymm0,%ymm0
3880 addl -128(%r13),%esi
3881 andnl %ecx,%eax,%edi
3882 vpxor %ymm1,%ymm0,%ymm0
3883 addl %ebp,%esi
3884 rorxl $27,%eax,%r12d
3885 rorxl $2,%eax,%ebp
3886 vpxor %ymm8,%ymm0,%ymm0
3887 andl %ebx,%eax
3888 addl %r12d,%esi
3889 xorl %edi,%eax
3890 vpsrld $30,%ymm0,%ymm8
3891 vpslld $2,%ymm0,%ymm0
3892 addl -124(%r13),%edx
3893 andnl %ebx,%esi,%edi
3894 addl %eax,%edx
3895 rorxl $27,%esi,%r12d
3896 rorxl $2,%esi,%eax
3897 andl %ebp,%esi
3898 vpor %ymm8,%ymm0,%ymm0
3899 addl %r12d,%edx
3900 xorl %edi,%esi
3901 addl -120(%r13),%ecx
3902 andnl %ebp,%edx,%edi
3903 vpaddd %ymm11,%ymm0,%ymm9
3904 addl %esi,%ecx
3905 rorxl $27,%edx,%r12d
3906 rorxl $2,%edx,%esi
3907 andl %eax,%edx
3908 vmovdqu %ymm9,256(%rsp)
3909 addl %r12d,%ecx
3910 xorl %edi,%edx
3911 addl -116(%r13),%ebx
3912 andnl %eax,%ecx,%edi
3913 addl %edx,%ebx
3914 rorxl $27,%ecx,%r12d
3915 rorxl $2,%ecx,%edx
3916 andl %esi,%ecx
3917 addl %r12d,%ebx
3918 xorl %edi,%ecx
3919 addl -96(%r13),%ebp
3920 andnl %esi,%ebx,%edi
3921 addl %ecx,%ebp
3922 rorxl $27,%ebx,%r12d
3923 rorxl $2,%ebx,%ecx
3924 andl %edx,%ebx
3925 addl %r12d,%ebp
3926 xorl %edi,%ebx
3927 vpalignr $8,%ymm7,%ymm0,%ymm8
3928 vpxor %ymm5,%ymm1,%ymm1
3929 addl -92(%r13),%eax
3930 andnl %edx,%ebp,%edi
3931 vpxor %ymm2,%ymm1,%ymm1
3932 addl %ebx,%eax
3933 rorxl $27,%ebp,%r12d
3934 rorxl $2,%ebp,%ebx
3935 vpxor %ymm8,%ymm1,%ymm1
3936 andl %ecx,%ebp
3937 addl %r12d,%eax
3938 xorl %edi,%ebp
3939 vpsrld $30,%ymm1,%ymm8
3940 vpslld $2,%ymm1,%ymm1
3941 addl -88(%r13),%esi
3942 andnl %ecx,%eax,%edi
3943 addl %ebp,%esi
3944 rorxl $27,%eax,%r12d
3945 rorxl $2,%eax,%ebp
3946 andl %ebx,%eax
3947 vpor %ymm8,%ymm1,%ymm1
3948 addl %r12d,%esi
3949 xorl %edi,%eax
3950 addl -84(%r13),%edx
3951 andnl %ebx,%esi,%edi
3952 vpaddd %ymm11,%ymm1,%ymm9
3953 addl %eax,%edx
3954 rorxl $27,%esi,%r12d
3955 rorxl $2,%esi,%eax
3956 andl %ebp,%esi
3957 vmovdqu %ymm9,288(%rsp)
3958 addl %r12d,%edx
3959 xorl %edi,%esi
3960 addl -64(%r13),%ecx
3961 andnl %ebp,%edx,%edi
3962 addl %esi,%ecx
3963 rorxl $27,%edx,%r12d
3964 rorxl $2,%edx,%esi
3965 andl %eax,%edx
3966 addl %r12d,%ecx
3967 xorl %edi,%edx
3968 addl -60(%r13),%ebx
3969 andnl %eax,%ecx,%edi
3970 addl %edx,%ebx
3971 rorxl $27,%ecx,%r12d
3972 rorxl $2,%ecx,%edx
3973 andl %esi,%ecx
3974 addl %r12d,%ebx
3975 xorl %edi,%ecx
3976 vpalignr $8,%ymm0,%ymm1,%ymm8
3977 vpxor %ymm6,%ymm2,%ymm2
3978 addl -56(%r13),%ebp
3979 andnl %esi,%ebx,%edi
3980 vpxor %ymm3,%ymm2,%ymm2
3981 vmovdqu 0(%r14),%ymm11
3982 addl %ecx,%ebp
3983 rorxl $27,%ebx,%r12d
3984 rorxl $2,%ebx,%ecx
3985 vpxor %ymm8,%ymm2,%ymm2
3986 andl %edx,%ebx
3987 addl %r12d,%ebp
3988 xorl %edi,%ebx
3989 vpsrld $30,%ymm2,%ymm8
3990 vpslld $2,%ymm2,%ymm2
3991 addl -52(%r13),%eax
3992 andnl %edx,%ebp,%edi
3993 addl %ebx,%eax
3994 rorxl $27,%ebp,%r12d
3995 rorxl $2,%ebp,%ebx
3996 andl %ecx,%ebp
3997 vpor %ymm8,%ymm2,%ymm2
3998 addl %r12d,%eax
3999 xorl %edi,%ebp
4000 addl -32(%r13),%esi
4001 andnl %ecx,%eax,%edi
4002 vpaddd %ymm11,%ymm2,%ymm9
4003 addl %ebp,%esi
4004 rorxl $27,%eax,%r12d
4005 rorxl $2,%eax,%ebp
4006 andl %ebx,%eax
4007 vmovdqu %ymm9,320(%rsp)
4008 addl %r12d,%esi
4009 xorl %edi,%eax
4010 addl -28(%r13),%edx
4011 andnl %ebx,%esi,%edi
4012 addl %eax,%edx
4013 rorxl $27,%esi,%r12d
4014 rorxl $2,%esi,%eax
4015 andl %ebp,%esi
4016 addl %r12d,%edx
4017 xorl %edi,%esi
4018 addl -24(%r13),%ecx
4019 andnl %ebp,%edx,%edi
4020 addl %esi,%ecx
4021 rorxl $27,%edx,%r12d
4022 rorxl $2,%edx,%esi
4023 andl %eax,%edx
4024 addl %r12d,%ecx
4025 xorl %edi,%edx
4026 vpalignr $8,%ymm1,%ymm2,%ymm8
4027 vpxor %ymm7,%ymm3,%ymm3
4028 addl -20(%r13),%ebx
4029 andnl %eax,%ecx,%edi
4030 vpxor %ymm4,%ymm3,%ymm3
4031 addl %edx,%ebx
4032 rorxl $27,%ecx,%r12d
4033 rorxl $2,%ecx,%edx
4034 vpxor %ymm8,%ymm3,%ymm3
4035 andl %esi,%ecx
4036 addl %r12d,%ebx
4037 xorl %edi,%ecx
4038 vpsrld $30,%ymm3,%ymm8
4039 vpslld $2,%ymm3,%ymm3
4040 addl 0(%r13),%ebp
4041 andnl %esi,%ebx,%edi
4042 addl %ecx,%ebp
4043 rorxl $27,%ebx,%r12d
4044 rorxl $2,%ebx,%ecx
4045 andl %edx,%ebx
4046 vpor %ymm8,%ymm3,%ymm3
4047 addl %r12d,%ebp
4048 xorl %edi,%ebx
4049 addl 4(%r13),%eax
4050 andnl %edx,%ebp,%edi
4051 vpaddd %ymm11,%ymm3,%ymm9
4052 addl %ebx,%eax
4053 rorxl $27,%ebp,%r12d
4054 rorxl $2,%ebp,%ebx
4055 andl %ecx,%ebp
4056 vmovdqu %ymm9,352(%rsp)
4057 addl %r12d,%eax
4058 xorl %edi,%ebp
4059 addl 8(%r13),%esi
4060 andnl %ecx,%eax,%edi
4061 addl %ebp,%esi
4062 rorxl $27,%eax,%r12d
4063 rorxl $2,%eax,%ebp
4064 andl %ebx,%eax
4065 addl %r12d,%esi
4066 xorl %edi,%eax
4067 addl 12(%r13),%edx
4068 leal (%rdx,%rax,1),%edx
4069 rorxl $27,%esi,%r12d
4070 rorxl $2,%esi,%eax
4071 xorl %ebp,%esi
4072 addl %r12d,%edx
4073 xorl %ebx,%esi
4074 vpalignr $8,%ymm2,%ymm3,%ymm8
4075 vpxor %ymm0,%ymm4,%ymm4
4076 addl 32(%r13),%ecx
4077 leal (%rcx,%rsi,1),%ecx
4078 vpxor %ymm5,%ymm4,%ymm4
4079 rorxl $27,%edx,%r12d
4080 rorxl $2,%edx,%esi
4081 xorl %eax,%edx
4082 vpxor %ymm8,%ymm4,%ymm4
4083 addl %r12d,%ecx
4084 xorl %ebp,%edx
4085 addl 36(%r13),%ebx
4086 vpsrld $30,%ymm4,%ymm8
4087 vpslld $2,%ymm4,%ymm4
4088 leal (%rbx,%rdx,1),%ebx
4089 rorxl $27,%ecx,%r12d
4090 rorxl $2,%ecx,%edx
4091 xorl %esi,%ecx
4092 addl %r12d,%ebx
4093 xorl %eax,%ecx
4094 vpor %ymm8,%ymm4,%ymm4
4095 addl 40(%r13),%ebp
4096 leal (%rcx,%rbp,1),%ebp
4097 rorxl $27,%ebx,%r12d
4098 rorxl $2,%ebx,%ecx
4099 vpaddd %ymm11,%ymm4,%ymm9
4100 xorl %edx,%ebx
4101 addl %r12d,%ebp
4102 xorl %esi,%ebx
4103 addl 44(%r13),%eax
4104 vmovdqu %ymm9,384(%rsp)
4105 leal (%rax,%rbx,1),%eax
4106 rorxl $27,%ebp,%r12d
4107 rorxl $2,%ebp,%ebx
4108 xorl %ecx,%ebp
4109 addl %r12d,%eax
4110 xorl %edx,%ebp
4111 addl 64(%r13),%esi
4112 leal (%rsi,%rbp,1),%esi
4113 rorxl $27,%eax,%r12d
4114 rorxl $2,%eax,%ebp
4115 xorl %ebx,%eax
4116 addl %r12d,%esi
4117 xorl %ecx,%eax
4118 vpalignr $8,%ymm3,%ymm4,%ymm8
4119 vpxor %ymm1,%ymm5,%ymm5
4120 addl 68(%r13),%edx
4121 leal (%rdx,%rax,1),%edx
4122 vpxor %ymm6,%ymm5,%ymm5
4123 rorxl $27,%esi,%r12d
4124 rorxl $2,%esi,%eax
4125 xorl %ebp,%esi
4126 vpxor %ymm8,%ymm5,%ymm5
4127 addl %r12d,%edx
4128 xorl %ebx,%esi
4129 addl 72(%r13),%ecx
4130 vpsrld $30,%ymm5,%ymm8
4131 vpslld $2,%ymm5,%ymm5
4132 leal (%rcx,%rsi,1),%ecx
4133 rorxl $27,%edx,%r12d
4134 rorxl $2,%edx,%esi
4135 xorl %eax,%edx
4136 addl %r12d,%ecx
4137 xorl %ebp,%edx
4138 vpor %ymm8,%ymm5,%ymm5
4139 addl 76(%r13),%ebx
4140 leal (%rbx,%rdx,1),%ebx
4141 rorxl $27,%ecx,%r12d
4142 rorxl $2,%ecx,%edx
4143 vpaddd %ymm11,%ymm5,%ymm9
4144 xorl %esi,%ecx
4145 addl %r12d,%ebx
4146 xorl %eax,%ecx
4147 addl 96(%r13),%ebp
4148 vmovdqu %ymm9,416(%rsp)
4149 leal (%rcx,%rbp,1),%ebp
4150 rorxl $27,%ebx,%r12d
4151 rorxl $2,%ebx,%ecx
4152 xorl %edx,%ebx
4153 addl %r12d,%ebp
4154 xorl %esi,%ebx
4155 addl 100(%r13),%eax
4156 leal (%rax,%rbx,1),%eax
4157 rorxl $27,%ebp,%r12d
4158 rorxl $2,%ebp,%ebx
4159 xorl %ecx,%ebp
4160 addl %r12d,%eax
4161 xorl %edx,%ebp
4162 vpalignr $8,%ymm4,%ymm5,%ymm8
4163 vpxor %ymm2,%ymm6,%ymm6
4164 addl 104(%r13),%esi
4165 leal (%rsi,%rbp,1),%esi
4166 vpxor %ymm7,%ymm6,%ymm6
4167 rorxl $27,%eax,%r12d
4168 rorxl $2,%eax,%ebp
4169 xorl %ebx,%eax
4170 vpxor %ymm8,%ymm6,%ymm6
4171 addl %r12d,%esi
4172 xorl %ecx,%eax
4173 addl 108(%r13),%edx
4174 leaq 256(%r13),%r13
4175 vpsrld $30,%ymm6,%ymm8
4176 vpslld $2,%ymm6,%ymm6
4177 leal (%rdx,%rax,1),%edx
4178 rorxl $27,%esi,%r12d
4179 rorxl $2,%esi,%eax
4180 xorl %ebp,%esi
4181 addl %r12d,%edx
4182 xorl %ebx,%esi
4183 vpor %ymm8,%ymm6,%ymm6
4184 addl -128(%r13),%ecx
4185 leal (%rcx,%rsi,1),%ecx
4186 rorxl $27,%edx,%r12d
4187 rorxl $2,%edx,%esi
4188 vpaddd %ymm11,%ymm6,%ymm9
4189 xorl %eax,%edx
4190 addl %r12d,%ecx
4191 xorl %ebp,%edx
4192 addl -124(%r13),%ebx
4193 vmovdqu %ymm9,448(%rsp)
4194 leal (%rbx,%rdx,1),%ebx
4195 rorxl $27,%ecx,%r12d
4196 rorxl $2,%ecx,%edx
4197 xorl %esi,%ecx
4198 addl %r12d,%ebx
4199 xorl %eax,%ecx
4200 addl -120(%r13),%ebp
4201 leal (%rcx,%rbp,1),%ebp
4202 rorxl $27,%ebx,%r12d
4203 rorxl $2,%ebx,%ecx
4204 xorl %edx,%ebx
4205 addl %r12d,%ebp
4206 xorl %esi,%ebx
4207 vpalignr $8,%ymm5,%ymm6,%ymm8
4208 vpxor %ymm3,%ymm7,%ymm7
4209 addl -116(%r13),%eax
4210 leal (%rax,%rbx,1),%eax
4211 vpxor %ymm0,%ymm7,%ymm7
4212 vmovdqu 32(%r14),%ymm11
4213 rorxl $27,%ebp,%r12d
4214 rorxl $2,%ebp,%ebx
4215 xorl %ecx,%ebp
4216 vpxor %ymm8,%ymm7,%ymm7
4217 addl %r12d,%eax
4218 xorl %edx,%ebp
4219 addl -96(%r13),%esi
4220 vpsrld $30,%ymm7,%ymm8
4221 vpslld $2,%ymm7,%ymm7
4222 leal (%rsi,%rbp,1),%esi
4223 rorxl $27,%eax,%r12d
4224 rorxl $2,%eax,%ebp
4225 xorl %ebx,%eax
4226 addl %r12d,%esi
4227 xorl %ecx,%eax
4228 vpor %ymm8,%ymm7,%ymm7
4229 addl -92(%r13),%edx
4230 leal (%rdx,%rax,1),%edx
4231 rorxl $27,%esi,%r12d
4232 rorxl $2,%esi,%eax
4233 vpaddd %ymm11,%ymm7,%ymm9
4234 xorl %ebp,%esi
4235 addl %r12d,%edx
4236 xorl %ebx,%esi
4237 addl -88(%r13),%ecx
4238 vmovdqu %ymm9,480(%rsp)
4239 leal (%rcx,%rsi,1),%ecx
4240 rorxl $27,%edx,%r12d
4241 rorxl $2,%edx,%esi
4242 xorl %eax,%edx
4243 addl %r12d,%ecx
4244 xorl %ebp,%edx
4245 addl -84(%r13),%ebx
4246 movl %esi,%edi
4247 xorl %eax,%edi
4248 leal (%rbx,%rdx,1),%ebx
4249 rorxl $27,%ecx,%r12d
4250 rorxl $2,%ecx,%edx
4251 xorl %esi,%ecx
4252 addl %r12d,%ebx
4253 andl %edi,%ecx
4254 jmp .Lalign32_2
4255 .align 32
4256 .Lalign32_2:
4257 vpalignr $8,%ymm6,%ymm7,%ymm8
4258 vpxor %ymm4,%ymm0,%ymm0
4259 addl -64(%r13),%ebp
4260 xorl %esi,%ecx
4261 vpxor %ymm1,%ymm0,%ymm0
4262 movl %edx,%edi
4263 xorl %esi,%edi
4264 leal (%rcx,%rbp,1),%ebp
4265 vpxor %ymm8,%ymm0,%ymm0
4266 rorxl $27,%ebx,%r12d
4267 rorxl $2,%ebx,%ecx
4268 xorl %edx,%ebx
4269 vpsrld $30,%ymm0,%ymm8
4270 vpslld $2,%ymm0,%ymm0
4271 addl %r12d,%ebp
4272 andl %edi,%ebx
4273 addl -60(%r13),%eax
4274 xorl %edx,%ebx
4275 movl %ecx,%edi
4276 xorl %edx,%edi
4277 vpor %ymm8,%ymm0,%ymm0
4278 leal (%rax,%rbx,1),%eax
4279 rorxl $27,%ebp,%r12d
4280 rorxl $2,%ebp,%ebx
4281 xorl %ecx,%ebp
4282 vpaddd %ymm11,%ymm0,%ymm9
4283 addl %r12d,%eax
4284 andl %edi,%ebp
4285 addl -56(%r13),%esi
4286 xorl %ecx,%ebp
4287 vmovdqu %ymm9,512(%rsp)
4288 movl %ebx,%edi
4289 xorl %ecx,%edi
4290 leal (%rsi,%rbp,1),%esi
4291 rorxl $27,%eax,%r12d
4292 rorxl $2,%eax,%ebp
4293 xorl %ebx,%eax
4294 addl %r12d,%esi
4295 andl %edi,%eax
4296 addl -52(%r13),%edx
4297 xorl %ebx,%eax
4298 movl %ebp,%edi
4299 xorl %ebx,%edi
4300 leal (%rdx,%rax,1),%edx
4301 rorxl $27,%esi,%r12d
4302 rorxl $2,%esi,%eax
4303 xorl %ebp,%esi
4304 addl %r12d,%edx
4305 andl %edi,%esi
4306 addl -32(%r13),%ecx
4307 xorl %ebp,%esi
4308 movl %eax,%edi
4309 xorl %ebp,%edi
4310 leal (%rcx,%rsi,1),%ecx
4311 rorxl $27,%edx,%r12d
4312 rorxl $2,%edx,%esi
4313 xorl %eax,%edx
4314 addl %r12d,%ecx
4315 andl %edi,%edx
4316 vpalignr $8,%ymm7,%ymm0,%ymm8
4317 vpxor %ymm5,%ymm1,%ymm1
4318 addl -28(%r13),%ebx
4319 xorl %eax,%edx
4320 vpxor %ymm2,%ymm1,%ymm1
4321 movl %esi,%edi
4322 xorl %eax,%edi
4323 leal (%rbx,%rdx,1),%ebx
4324 vpxor %ymm8,%ymm1,%ymm1
4325 rorxl $27,%ecx,%r12d
4326 rorxl $2,%ecx,%edx
4327 xorl %esi,%ecx
4328 vpsrld $30,%ymm1,%ymm8
4329 vpslld $2,%ymm1,%ymm1
4330 addl %r12d,%ebx
4331 andl %edi,%ecx
4332 addl -24(%r13),%ebp
4333 xorl %esi,%ecx
4334 movl %edx,%edi
4335 xorl %esi,%edi
4336 vpor %ymm8,%ymm1,%ymm1
4337 leal (%rcx,%rbp,1),%ebp
4338 rorxl $27,%ebx,%r12d
4339 rorxl $2,%ebx,%ecx
4340 xorl %edx,%ebx
4341 vpaddd %ymm11,%ymm1,%ymm9
4342 addl %r12d,%ebp
4343 andl %edi,%ebx
4344 addl -20(%r13),%eax
4345 xorl %edx,%ebx
4346 vmovdqu %ymm9,544(%rsp)
4347 movl %ecx,%edi
4348 xorl %edx,%edi
4349 leal (%rax,%rbx,1),%eax
4350 rorxl $27,%ebp,%r12d
4351 rorxl $2,%ebp,%ebx
4352 xorl %ecx,%ebp
4353 addl %r12d,%eax
4354 andl %edi,%ebp
4355 addl 0(%r13),%esi
4356 xorl %ecx,%ebp
4357 movl %ebx,%edi
4358 xorl %ecx,%edi
4359 leal (%rsi,%rbp,1),%esi
4360 rorxl $27,%eax,%r12d
4361 rorxl $2,%eax,%ebp
4362 xorl %ebx,%eax
4363 addl %r12d,%esi
4364 andl %edi,%eax
4365 addl 4(%r13),%edx
4366 xorl %ebx,%eax
4367 movl %ebp,%edi
4368 xorl %ebx,%edi
4369 leal (%rdx,%rax,1),%edx
4370 rorxl $27,%esi,%r12d
4371 rorxl $2,%esi,%eax
4372 xorl %ebp,%esi
4373 addl %r12d,%edx
4374 andl %edi,%esi
4375 vpalignr $8,%ymm0,%ymm1,%ymm8
4376 vpxor %ymm6,%ymm2,%ymm2
4377 addl 8(%r13),%ecx
4378 xorl %ebp,%esi
4379 vpxor %ymm3,%ymm2,%ymm2
4380 movl %eax,%edi
4381 xorl %ebp,%edi
4382 leal (%rcx,%rsi,1),%ecx
4383 vpxor %ymm8,%ymm2,%ymm2
4384 rorxl $27,%edx,%r12d
4385 rorxl $2,%edx,%esi
4386 xorl %eax,%edx
4387 vpsrld $30,%ymm2,%ymm8
4388 vpslld $2,%ymm2,%ymm2
4389 addl %r12d,%ecx
4390 andl %edi,%edx
4391 addl 12(%r13),%ebx
4392 xorl %eax,%edx
4393 movl %esi,%edi
4394 xorl %eax,%edi
4395 vpor %ymm8,%ymm2,%ymm2
4396 leal (%rbx,%rdx,1),%ebx
4397 rorxl $27,%ecx,%r12d
4398 rorxl $2,%ecx,%edx
4399 xorl %esi,%ecx
4400 vpaddd %ymm11,%ymm2,%ymm9
4401 addl %r12d,%ebx
4402 andl %edi,%ecx
4403 addl 32(%r13),%ebp
4404 xorl %esi,%ecx
4405 vmovdqu %ymm9,576(%rsp)
4406 movl %edx,%edi
4407 xorl %esi,%edi
4408 leal (%rcx,%rbp,1),%ebp
4409 rorxl $27,%ebx,%r12d
4410 rorxl $2,%ebx,%ecx
4411 xorl %edx,%ebx
4412 addl %r12d,%ebp
4413 andl %edi,%ebx
4414 addl 36(%r13),%eax
4415 xorl %edx,%ebx
4416 movl %ecx,%edi
4417 xorl %edx,%edi
4418 leal (%rax,%rbx,1),%eax
4419 rorxl $27,%ebp,%r12d
4420 rorxl $2,%ebp,%ebx
4421 xorl %ecx,%ebp
4422 addl %r12d,%eax
4423 andl %edi,%ebp
4424 addl 40(%r13),%esi
4425 xorl %ecx,%ebp
4426 movl %ebx,%edi
4427 xorl %ecx,%edi
4428 leal (%rsi,%rbp,1),%esi
4429 rorxl $27,%eax,%r12d
4430 rorxl $2,%eax,%ebp
4431 xorl %ebx,%eax
4432 addl %r12d,%esi
4433 andl %edi,%eax
4434 vpalignr $8,%ymm1,%ymm2,%ymm8
4435 vpxor %ymm7,%ymm3,%ymm3
4436 addl 44(%r13),%edx
4437 xorl %ebx,%eax
4438 vpxor %ymm4,%ymm3,%ymm3
4439 movl %ebp,%edi
4440 xorl %ebx,%edi
4441 leal (%rdx,%rax,1),%edx
4442 vpxor %ymm8,%ymm3,%ymm3
4443 rorxl $27,%esi,%r12d
4444 rorxl $2,%esi,%eax
4445 xorl %ebp,%esi
4446 vpsrld $30,%ymm3,%ymm8
4447 vpslld $2,%ymm3,%ymm3
4448 addl %r12d,%edx
4449 andl %edi,%esi
4450 addl 64(%r13),%ecx
4451 xorl %ebp,%esi
4452 movl %eax,%edi
4453 xorl %ebp,%edi
4454 vpor %ymm8,%ymm3,%ymm3
4455 leal (%rcx,%rsi,1),%ecx
4456 rorxl $27,%edx,%r12d
4457 rorxl $2,%edx,%esi
4458 xorl %eax,%edx
4459 vpaddd %ymm11,%ymm3,%ymm9
4460 addl %r12d,%ecx
4461 andl %edi,%edx
4462 addl 68(%r13),%ebx
4463 xorl %eax,%edx
4464 vmovdqu %ymm9,608(%rsp)
4465 movl %esi,%edi
4466 xorl %eax,%edi
4467 leal (%rbx,%rdx,1),%ebx
4468 rorxl $27,%ecx,%r12d
4469 rorxl $2,%ecx,%edx
4470 xorl %esi,%ecx
4471 addl %r12d,%ebx
4472 andl %edi,%ecx
4473 addl 72(%r13),%ebp
4474 xorl %esi,%ecx
4475 movl %edx,%edi
4476 xorl %esi,%edi
4477 leal (%rcx,%rbp,1),%ebp
4478 rorxl $27,%ebx,%r12d
4479 rorxl $2,%ebx,%ecx
4480 xorl %edx,%ebx
4481 addl %r12d,%ebp
4482 andl %edi,%ebx
4483 addl 76(%r13),%eax
4484 xorl %edx,%ebx
4485 leal (%rax,%rbx,1),%eax
4486 rorxl $27,%ebp,%r12d
4487 rorxl $2,%ebp,%ebx
4488 xorl %ecx,%ebp
4489 addl %r12d,%eax
4490 xorl %edx,%ebp
4491 addl 96(%r13),%esi
4492 leal (%rsi,%rbp,1),%esi
4493 rorxl $27,%eax,%r12d
4494 rorxl $2,%eax,%ebp
4495 xorl %ebx,%eax
4496 addl %r12d,%esi
4497 xorl %ecx,%eax
4498 addl 100(%r13),%edx
4499 leal (%rdx,%rax,1),%edx
4500 rorxl $27,%esi,%r12d
4501 rorxl $2,%esi,%eax
4502 xorl %ebp,%esi
4503 addl %r12d,%edx
4504 xorl %ebx,%esi
4505 addl 104(%r13),%ecx
4506 leal (%rcx,%rsi,1),%ecx
4507 rorxl $27,%edx,%r12d
4508 rorxl $2,%edx,%esi
4509 xorl %eax,%edx
4510 addl %r12d,%ecx
4511 xorl %ebp,%edx
4512 addl 108(%r13),%ebx
4513 leaq 256(%r13),%r13
4514 leal (%rbx,%rdx,1),%ebx
4515 rorxl $27,%ecx,%r12d
4516 rorxl $2,%ecx,%edx
4517 xorl %esi,%ecx
4518 addl %r12d,%ebx
4519 xorl %eax,%ecx
4520 addl -128(%r13),%ebp
4521 leal (%rcx,%rbp,1),%ebp
4522 rorxl $27,%ebx,%r12d
4523 rorxl $2,%ebx,%ecx
4524 xorl %edx,%ebx
4525 addl %r12d,%ebp
4526 xorl %esi,%ebx
4527 addl -124(%r13),%eax
4528 leal (%rax,%rbx,1),%eax
4529 rorxl $27,%ebp,%r12d
4530 rorxl $2,%ebp,%ebx
4531 xorl %ecx,%ebp
4532 addl %r12d,%eax
4533 xorl %edx,%ebp
4534 addl -120(%r13),%esi
4535 leal (%rsi,%rbp,1),%esi
4536 rorxl $27,%eax,%r12d
4537 rorxl $2,%eax,%ebp
4538 xorl %ebx,%eax
4539 addl %r12d,%esi
4540 xorl %ecx,%eax
4541 addl -116(%r13),%edx
4542 leal (%rdx,%rax,1),%edx
4543 rorxl $27,%esi,%r12d
4544 rorxl $2,%esi,%eax
4545 xorl %ebp,%esi
4546 addl %r12d,%edx
4547 xorl %ebx,%esi
4548 addl -96(%r13),%ecx
4549 leal (%rcx,%rsi,1),%ecx
4550 rorxl $27,%edx,%r12d
4551 rorxl $2,%edx,%esi
4552 xorl %eax,%edx
4553 addl %r12d,%ecx
4554 xorl %ebp,%edx
4555 addl -92(%r13),%ebx
4556 leal (%rbx,%rdx,1),%ebx
4557 rorxl $27,%ecx,%r12d
4558 rorxl $2,%ecx,%edx
4559 xorl %esi,%ecx
4560 addl %r12d,%ebx
4561 xorl %eax,%ecx
4562 addl -88(%r13),%ebp
4563 leal (%rcx,%rbp,1),%ebp
4564 rorxl $27,%ebx,%r12d
4565 rorxl $2,%ebx,%ecx
4566 xorl %edx,%ebx
4567 addl %r12d,%ebp
4568 xorl %esi,%ebx
4569 addl -84(%r13),%eax
4570 leal (%rax,%rbx,1),%eax
4571 rorxl $27,%ebp,%r12d
4572 rorxl $2,%ebp,%ebx
4573 xorl %ecx,%ebp
4574 addl %r12d,%eax
4575 xorl %edx,%ebp
4576 addl -64(%r13),%esi
4577 leal (%rsi,%rbp,1),%esi
4578 rorxl $27,%eax,%r12d
4579 rorxl $2,%eax,%ebp
4580 xorl %ebx,%eax
4581 addl %r12d,%esi
4582 xorl %ecx,%eax
4583 addl -60(%r13),%edx
4584 leal (%rdx,%rax,1),%edx
4585 rorxl $27,%esi,%r12d
4586 rorxl $2,%esi,%eax
4587 xorl %ebp,%esi
4588 addl %r12d,%edx
4589 xorl %ebx,%esi
4590 addl -56(%r13),%ecx
4591 leal (%rcx,%rsi,1),%ecx
4592 rorxl $27,%edx,%r12d
4593 rorxl $2,%edx,%esi
4594 xorl %eax,%edx
4595 addl %r12d,%ecx
4596 xorl %ebp,%edx
4597 addl -52(%r13),%ebx
4598 leal (%rbx,%rdx,1),%ebx
4599 rorxl $27,%ecx,%r12d
4600 rorxl $2,%ecx,%edx
4601 xorl %esi,%ecx
4602 addl %r12d,%ebx
4603 xorl %eax,%ecx
4604 addl -32(%r13),%ebp
4605 leal (%rcx,%rbp,1),%ebp
4606 rorxl $27,%ebx,%r12d
4607 rorxl $2,%ebx,%ecx
4608 xorl %edx,%ebx
4609 addl %r12d,%ebp
4610 xorl %esi,%ebx
4611 addl -28(%r13),%eax
4612 leal (%rax,%rbx,1),%eax
4613 rorxl $27,%ebp,%r12d
4614 rorxl $2,%ebp,%ebx
4615 xorl %ecx,%ebp
4616 addl %r12d,%eax
4617 xorl %edx,%ebp
4618 addl -24(%r13),%esi
4619 leal (%rsi,%rbp,1),%esi
4620 rorxl $27,%eax,%r12d
4621 rorxl $2,%eax,%ebp
4622 xorl %ebx,%eax
4623 addl %r12d,%esi
4624 xorl %ecx,%eax
4625 addl -20(%r13),%edx
4626 leal (%rdx,%rax,1),%edx
4627 rorxl $27,%esi,%r12d
4628 addl %r12d,%edx
4629 leaq 128(%r9),%r13
4630 leaq 128(%r9),%rdi
4631 cmpq %r10,%r13
4632 cmovaeq %r9,%r13
4633
4634
4635 addl 0(%r8),%edx
4636 addl 4(%r8),%esi
4637 addl 8(%r8),%ebp
4638 movl %edx,0(%r8)
4639 addl 12(%r8),%ebx
4640 movl %esi,4(%r8)
4641 movl %edx,%eax
4642 addl 16(%r8),%ecx
4643 movl %ebp,%r12d
4644 movl %ebp,8(%r8)
4645 movl %ebx,%edx
4646
4647 movl %ebx,12(%r8)
4648 movl %esi,%ebp
4649 movl %ecx,16(%r8)
4650
4651 movl %ecx,%esi
4652 movl %r12d,%ecx
4653
4654
4655 cmpq %r10,%r9
4656 je .Ldone_avx2
4657 vmovdqu 64(%r14),%ymm6
4658 cmpq %r10,%rdi
4659 ja .Last_avx2
4660
4661 vmovdqu -64(%rdi),%xmm0
4662 vmovdqu -48(%rdi),%xmm1
4663 vmovdqu -32(%rdi),%xmm2
4664 vmovdqu -16(%rdi),%xmm3
4665 vinserti128 $1,0(%r13),%ymm0,%ymm0
4666 vinserti128 $1,16(%r13),%ymm1,%ymm1
4667 vinserti128 $1,32(%r13),%ymm2,%ymm2
4668 vinserti128 $1,48(%r13),%ymm3,%ymm3
4669 jmp .Last_avx2
4670
4671 .align 32
4672 .Last_avx2:
4673 leaq 128+16(%rsp),%r13
4674 rorxl $2,%ebp,%ebx
4675 andnl %edx,%ebp,%edi
4676 andl %ecx,%ebp
4677 xorl %edi,%ebp
4678 subq $-128,%r9
4679 addl -128(%r13),%esi
4680 andnl %ecx,%eax,%edi
4681 addl %ebp,%esi
4682 rorxl $27,%eax,%r12d
4683 rorxl $2,%eax,%ebp
4684 andl %ebx,%eax
4685 addl %r12d,%esi
4686 xorl %edi,%eax
4687 addl -124(%r13),%edx
4688 andnl %ebx,%esi,%edi
4689 addl %eax,%edx
4690 rorxl $27,%esi,%r12d
4691 rorxl $2,%esi,%eax
4692 andl %ebp,%esi
4693 addl %r12d,%edx
4694 xorl %edi,%esi
4695 addl -120(%r13),%ecx
4696 andnl %ebp,%edx,%edi
4697 addl %esi,%ecx
4698 rorxl $27,%edx,%r12d
4699 rorxl $2,%edx,%esi
4700 andl %eax,%edx
4701 addl %r12d,%ecx
4702 xorl %edi,%edx
4703 addl -116(%r13),%ebx
4704 andnl %eax,%ecx,%edi
4705 addl %edx,%ebx
4706 rorxl $27,%ecx,%r12d
4707 rorxl $2,%ecx,%edx
4708 andl %esi,%ecx
4709 addl %r12d,%ebx
4710 xorl %edi,%ecx
4711 addl -96(%r13),%ebp
4712 andnl %esi,%ebx,%edi
4713 addl %ecx,%ebp
4714 rorxl $27,%ebx,%r12d
4715 rorxl $2,%ebx,%ecx
4716 andl %edx,%ebx
4717 addl %r12d,%ebp
4718 xorl %edi,%ebx
4719 addl -92(%r13),%eax
4720 andnl %edx,%ebp,%edi
4721 addl %ebx,%eax
4722 rorxl $27,%ebp,%r12d
4723 rorxl $2,%ebp,%ebx
4724 andl %ecx,%ebp
4725 addl %r12d,%eax
4726 xorl %edi,%ebp
4727 addl -88(%r13),%esi
4728 andnl %ecx,%eax,%edi
4729 addl %ebp,%esi
4730 rorxl $27,%eax,%r12d
4731 rorxl $2,%eax,%ebp
4732 andl %ebx,%eax
4733 addl %r12d,%esi
4734 xorl %edi,%eax
4735 addl -84(%r13),%edx
4736 andnl %ebx,%esi,%edi
4737 addl %eax,%edx
4738 rorxl $27,%esi,%r12d
4739 rorxl $2,%esi,%eax
4740 andl %ebp,%esi
4741 addl %r12d,%edx
4742 xorl %edi,%esi
4743 addl -64(%r13),%ecx
4744 andnl %ebp,%edx,%edi
4745 addl %esi,%ecx
4746 rorxl $27,%edx,%r12d
4747 rorxl $2,%edx,%esi
4748 andl %eax,%edx
4749 addl %r12d,%ecx
4750 xorl %edi,%edx
4751 addl -60(%r13),%ebx
4752 andnl %eax,%ecx,%edi
4753 addl %edx,%ebx
4754 rorxl $27,%ecx,%r12d
4755 rorxl $2,%ecx,%edx
4756 andl %esi,%ecx
4757 addl %r12d,%ebx
4758 xorl %edi,%ecx
4759 addl -56(%r13),%ebp
4760 andnl %esi,%ebx,%edi
4761 addl %ecx,%ebp
4762 rorxl $27,%ebx,%r12d
4763 rorxl $2,%ebx,%ecx
4764 andl %edx,%ebx
4765 addl %r12d,%ebp
4766 xorl %edi,%ebx
4767 addl -52(%r13),%eax
4768 andnl %edx,%ebp,%edi
4769 addl %ebx,%eax
4770 rorxl $27,%ebp,%r12d
4771 rorxl $2,%ebp,%ebx
4772 andl %ecx,%ebp
4773 addl %r12d,%eax
4774 xorl %edi,%ebp
4775 addl -32(%r13),%esi
4776 andnl %ecx,%eax,%edi
4777 addl %ebp,%esi
4778 rorxl $27,%eax,%r12d
4779 rorxl $2,%eax,%ebp
4780 andl %ebx,%eax
4781 addl %r12d,%esi
4782 xorl %edi,%eax
4783 addl -28(%r13),%edx
4784 andnl %ebx,%esi,%edi
4785 addl %eax,%edx
4786 rorxl $27,%esi,%r12d
4787 rorxl $2,%esi,%eax
4788 andl %ebp,%esi
4789 addl %r12d,%edx
4790 xorl %edi,%esi
4791 addl -24(%r13),%ecx
4792 andnl %ebp,%edx,%edi
4793 addl %esi,%ecx
4794 rorxl $27,%edx,%r12d
4795 rorxl $2,%edx,%esi
4796 andl %eax,%edx
4797 addl %r12d,%ecx
4798 xorl %edi,%edx
4799 addl -20(%r13),%ebx
4800 andnl %eax,%ecx,%edi
4801 addl %edx,%ebx
4802 rorxl $27,%ecx,%r12d
4803 rorxl $2,%ecx,%edx
4804 andl %esi,%ecx
4805 addl %r12d,%ebx
4806 xorl %edi,%ecx
4807 addl 0(%r13),%ebp
4808 andnl %esi,%ebx,%edi
4809 addl %ecx,%ebp
4810 rorxl $27,%ebx,%r12d
4811 rorxl $2,%ebx,%ecx
4812 andl %edx,%ebx
4813 addl %r12d,%ebp
4814 xorl %edi,%ebx
4815 addl 4(%r13),%eax
4816 andnl %edx,%ebp,%edi
4817 addl %ebx,%eax
4818 rorxl $27,%ebp,%r12d
4819 rorxl $2,%ebp,%ebx
4820 andl %ecx,%ebp
4821 addl %r12d,%eax
4822 xorl %edi,%ebp
4823 addl 8(%r13),%esi
4824 andnl %ecx,%eax,%edi
4825 addl %ebp,%esi
4826 rorxl $27,%eax,%r12d
4827 rorxl $2,%eax,%ebp
4828 andl %ebx,%eax
4829 addl %r12d,%esi
4830 xorl %edi,%eax
4831 addl 12(%r13),%edx
4832 leal (%rdx,%rax,1),%edx
4833 rorxl $27,%esi,%r12d
4834 rorxl $2,%esi,%eax
4835 xorl %ebp,%esi
4836 addl %r12d,%edx
4837 xorl %ebx,%esi
4838 addl 32(%r13),%ecx
4839 leal (%rcx,%rsi,1),%ecx
4840 rorxl $27,%edx,%r12d
4841 rorxl $2,%edx,%esi
4842 xorl %eax,%edx
4843 addl %r12d,%ecx
4844 xorl %ebp,%edx
4845 addl 36(%r13),%ebx
4846 leal (%rbx,%rdx,1),%ebx
4847 rorxl $27,%ecx,%r12d
4848 rorxl $2,%ecx,%edx
4849 xorl %esi,%ecx
4850 addl %r12d,%ebx
4851 xorl %eax,%ecx
4852 addl 40(%r13),%ebp
4853 leal (%rcx,%rbp,1),%ebp
4854 rorxl $27,%ebx,%r12d
4855 rorxl $2,%ebx,%ecx
4856 xorl %edx,%ebx
4857 addl %r12d,%ebp
4858 xorl %esi,%ebx
4859 addl 44(%r13),%eax
4860 leal (%rax,%rbx,1),%eax
4861 rorxl $27,%ebp,%r12d
4862 rorxl $2,%ebp,%ebx
4863 xorl %ecx,%ebp
4864 addl %r12d,%eax
4865 xorl %edx,%ebp
4866 addl 64(%r13),%esi
4867 leal (%rsi,%rbp,1),%esi
4868 rorxl $27,%eax,%r12d
4869 rorxl $2,%eax,%ebp
4870 xorl %ebx,%eax
4871 addl %r12d,%esi
4872 xorl %ecx,%eax
4873 vmovdqu -64(%r14),%ymm11
4874 vpshufb %ymm6,%ymm0,%ymm0
4875 addl 68(%r13),%edx
4876 leal (%rdx,%rax,1),%edx
4877 rorxl $27,%esi,%r12d
4878 rorxl $2,%esi,%eax
4879 xorl %ebp,%esi
4880 addl %r12d,%edx
4881 xorl %ebx,%esi
4882 addl 72(%r13),%ecx
4883 leal (%rcx,%rsi,1),%ecx
4884 rorxl $27,%edx,%r12d
4885 rorxl $2,%edx,%esi
4886 xorl %eax,%edx
4887 addl %r12d,%ecx
4888 xorl %ebp,%edx
4889 addl 76(%r13),%ebx
4890 leal (%rbx,%rdx,1),%ebx
4891 rorxl $27,%ecx,%r12d
4892 rorxl $2,%ecx,%edx
4893 xorl %esi,%ecx
4894 addl %r12d,%ebx
4895 xorl %eax,%ecx
4896 addl 96(%r13),%ebp
4897 leal (%rcx,%rbp,1),%ebp
4898 rorxl $27,%ebx,%r12d
4899 rorxl $2,%ebx,%ecx
4900 xorl %edx,%ebx
4901 addl %r12d,%ebp
4902 xorl %esi,%ebx
4903 addl 100(%r13),%eax
4904 leal (%rax,%rbx,1),%eax
4905 rorxl $27,%ebp,%r12d
4906 rorxl $2,%ebp,%ebx
4907 xorl %ecx,%ebp
4908 addl %r12d,%eax
4909 xorl %edx,%ebp
4910 vpshufb %ymm6,%ymm1,%ymm1
4911 vpaddd %ymm11,%ymm0,%ymm8
4912 addl 104(%r13),%esi
4913 leal (%rsi,%rbp,1),%esi
4914 rorxl $27,%eax,%r12d
4915 rorxl $2,%eax,%ebp
4916 xorl %ebx,%eax
4917 addl %r12d,%esi
4918 xorl %ecx,%eax
4919 addl 108(%r13),%edx
4920 leaq 256(%r13),%r13
4921 leal (%rdx,%rax,1),%edx
4922 rorxl $27,%esi,%r12d
4923 rorxl $2,%esi,%eax
4924 xorl %ebp,%esi
4925 addl %r12d,%edx
4926 xorl %ebx,%esi
4927 addl -128(%r13),%ecx
4928 leal (%rcx,%rsi,1),%ecx
4929 rorxl $27,%edx,%r12d
4930 rorxl $2,%edx,%esi
4931 xorl %eax,%edx
4932 addl %r12d,%ecx
4933 xorl %ebp,%edx
4934 addl -124(%r13),%ebx
4935 leal (%rbx,%rdx,1),%ebx
4936 rorxl $27,%ecx,%r12d
4937 rorxl $2,%ecx,%edx
4938 xorl %esi,%ecx
4939 addl %r12d,%ebx
4940 xorl %eax,%ecx
4941 addl -120(%r13),%ebp
4942 leal (%rcx,%rbp,1),%ebp
4943 rorxl $27,%ebx,%r12d
4944 rorxl $2,%ebx,%ecx
4945 xorl %edx,%ebx
4946 addl %r12d,%ebp
4947 xorl %esi,%ebx
4948 vmovdqu %ymm8,0(%rsp)
4949 vpshufb %ymm6,%ymm2,%ymm2
4950 vpaddd %ymm11,%ymm1,%ymm9
4951 addl -116(%r13),%eax
4952 leal (%rax,%rbx,1),%eax
4953 rorxl $27,%ebp,%r12d
4954 rorxl $2,%ebp,%ebx
4955 xorl %ecx,%ebp
4956 addl %r12d,%eax
4957 xorl %edx,%ebp
4958 addl -96(%r13),%esi
4959 leal (%rsi,%rbp,1),%esi
4960 rorxl $27,%eax,%r12d
4961 rorxl $2,%eax,%ebp
4962 xorl %ebx,%eax
4963 addl %r12d,%esi
4964 xorl %ecx,%eax
4965 addl -92(%r13),%edx
4966 leal (%rdx,%rax,1),%edx
4967 rorxl $27,%esi,%r12d
4968 rorxl $2,%esi,%eax
4969 xorl %ebp,%esi
4970 addl %r12d,%edx
4971 xorl %ebx,%esi
4972 addl -88(%r13),%ecx
4973 leal (%rcx,%rsi,1),%ecx
4974 rorxl $27,%edx,%r12d
4975 rorxl $2,%edx,%esi
4976 xorl %eax,%edx
4977 addl %r12d,%ecx
4978 xorl %ebp,%edx
4979 addl -84(%r13),%ebx
4980 movl %esi,%edi
4981 xorl %eax,%edi
4982 leal (%rbx,%rdx,1),%ebx
4983 rorxl $27,%ecx,%r12d
4984 rorxl $2,%ecx,%edx
4985 xorl %esi,%ecx
4986 addl %r12d,%ebx
4987 andl %edi,%ecx
4988 vmovdqu %ymm9,32(%rsp)
4989 vpshufb %ymm6,%ymm3,%ymm3
4990 vpaddd %ymm11,%ymm2,%ymm6
4991 addl -64(%r13),%ebp
4992 xorl %esi,%ecx
4993 movl %edx,%edi
4994 xorl %esi,%edi
4995 leal (%rcx,%rbp,1),%ebp
4996 rorxl $27,%ebx,%r12d
4997 rorxl $2,%ebx,%ecx
4998 xorl %edx,%ebx
4999 addl %r12d,%ebp
5000 andl %edi,%ebx
5001 addl -60(%r13),%eax
5002 xorl %edx,%ebx
5003 movl %ecx,%edi
5004 xorl %edx,%edi
5005 leal (%rax,%rbx,1),%eax
5006 rorxl $27,%ebp,%r12d
5007 rorxl $2,%ebp,%ebx
5008 xorl %ecx,%ebp
5009 addl %r12d,%eax
5010 andl %edi,%ebp
5011 addl -56(%r13),%esi
5012 xorl %ecx,%ebp
5013 movl %ebx,%edi
5014 xorl %ecx,%edi
5015 leal (%rsi,%rbp,1),%esi
5016 rorxl $27,%eax,%r12d
5017 rorxl $2,%eax,%ebp
5018 xorl %ebx,%eax
5019 addl %r12d,%esi
5020 andl %edi,%eax
5021 addl -52(%r13),%edx
5022 xorl %ebx,%eax
5023 movl %ebp,%edi
5024 xorl %ebx,%edi
5025 leal (%rdx,%rax,1),%edx
5026 rorxl $27,%esi,%r12d
5027 rorxl $2,%esi,%eax
5028 xorl %ebp,%esi
5029 addl %r12d,%edx
5030 andl %edi,%esi
5031 addl -32(%r13),%ecx
5032 xorl %ebp,%esi
5033 movl %eax,%edi
5034 xorl %ebp,%edi
5035 leal (%rcx,%rsi,1),%ecx
5036 rorxl $27,%edx,%r12d
5037 rorxl $2,%edx,%esi
5038 xorl %eax,%edx
5039 addl %r12d,%ecx
5040 andl %edi,%edx
5041 jmp .Lalign32_3
5042 .align 32
5043 .Lalign32_3:
5044 vmovdqu %ymm6,64(%rsp)
5045 vpaddd %ymm11,%ymm3,%ymm7
5046 addl -28(%r13),%ebx
5047 xorl %eax,%edx
5048 movl %esi,%edi
5049 xorl %eax,%edi
5050 leal (%rbx,%rdx,1),%ebx
5051 rorxl $27,%ecx,%r12d
5052 rorxl $2,%ecx,%edx
5053 xorl %esi,%ecx
5054 addl %r12d,%ebx
5055 andl %edi,%ecx
5056 addl -24(%r13),%ebp
5057 xorl %esi,%ecx
5058 movl %edx,%edi
5059 xorl %esi,%edi
5060 leal (%rcx,%rbp,1),%ebp
5061 rorxl $27,%ebx,%r12d
5062 rorxl $2,%ebx,%ecx
5063 xorl %edx,%ebx
5064 addl %r12d,%ebp
5065 andl %edi,%ebx
5066 addl -20(%r13),%eax
5067 xorl %edx,%ebx
5068 movl %ecx,%edi
5069 xorl %edx,%edi
5070 leal (%rax,%rbx,1),%eax
5071 rorxl $27,%ebp,%r12d
5072 rorxl $2,%ebp,%ebx
5073 xorl %ecx,%ebp
5074 addl %r12d,%eax
5075 andl %edi,%ebp
5076 addl 0(%r13),%esi
5077 xorl %ecx,%ebp
5078 movl %ebx,%edi
5079 xorl %ecx,%edi
5080 leal (%rsi,%rbp,1),%esi
5081 rorxl $27,%eax,%r12d
5082 rorxl $2,%eax,%ebp
5083 xorl %ebx,%eax
5084 addl %r12d,%esi
5085 andl %edi,%eax
5086 addl 4(%r13),%edx
5087 xorl %ebx,%eax
5088 movl %ebp,%edi
5089 xorl %ebx,%edi
5090 leal (%rdx,%rax,1),%edx
5091 rorxl $27,%esi,%r12d
5092 rorxl $2,%esi,%eax
5093 xorl %ebp,%esi
5094 addl %r12d,%edx
5095 andl %edi,%esi
5096 vmovdqu %ymm7,96(%rsp)
5097 addl 8(%r13),%ecx
5098 xorl %ebp,%esi
5099 movl %eax,%edi
5100 xorl %ebp,%edi
5101 leal (%rcx,%rsi,1),%ecx
5102 rorxl $27,%edx,%r12d
5103 rorxl $2,%edx,%esi
5104 xorl %eax,%edx
5105 addl %r12d,%ecx
5106 andl %edi,%edx
5107 addl 12(%r13),%ebx
5108 xorl %eax,%edx
5109 movl %esi,%edi
5110 xorl %eax,%edi
5111 leal (%rbx,%rdx,1),%ebx
5112 rorxl $27,%ecx,%r12d
5113 rorxl $2,%ecx,%edx
5114 xorl %esi,%ecx
5115 addl %r12d,%ebx
5116 andl %edi,%ecx
5117 addl 32(%r13),%ebp
5118 xorl %esi,%ecx
5119 movl %edx,%edi
5120 xorl %esi,%edi
5121 leal (%rcx,%rbp,1),%ebp
5122 rorxl $27,%ebx,%r12d
5123 rorxl $2,%ebx,%ecx
5124 xorl %edx,%ebx
5125 addl %r12d,%ebp
5126 andl %edi,%ebx
5127 addl 36(%r13),%eax
5128 xorl %edx,%ebx
5129 movl %ecx,%edi
5130 xorl %edx,%edi
5131 leal (%rax,%rbx,1),%eax
5132 rorxl $27,%ebp,%r12d
5133 rorxl $2,%ebp,%ebx
5134 xorl %ecx,%ebp
5135 addl %r12d,%eax
5136 andl %edi,%ebp
5137 addl 40(%r13),%esi
5138 xorl %ecx,%ebp
5139 movl %ebx,%edi
5140 xorl %ecx,%edi
5141 leal (%rsi,%rbp,1),%esi
5142 rorxl $27,%eax,%r12d
5143 rorxl $2,%eax,%ebp
5144 xorl %ebx,%eax
5145 addl %r12d,%esi
5146 andl %edi,%eax
5147 vpalignr $8,%ymm0,%ymm1,%ymm4
5148 addl 44(%r13),%edx
5149 xorl %ebx,%eax
5150 movl %ebp,%edi
5151 xorl %ebx,%edi
5152 vpsrldq $4,%ymm3,%ymm8
5153 leal (%rdx,%rax,1),%edx
5154 rorxl $27,%esi,%r12d
5155 rorxl $2,%esi,%eax
5156 vpxor %ymm0,%ymm4,%ymm4
5157 vpxor %ymm2,%ymm8,%ymm8
5158 xorl %ebp,%esi
5159 addl %r12d,%edx
5160 vpxor %ymm8,%ymm4,%ymm4
5161 andl %edi,%esi
5162 addl 64(%r13),%ecx
5163 xorl %ebp,%esi
5164 movl %eax,%edi
5165 vpsrld $31,%ymm4,%ymm8
5166 xorl %ebp,%edi
5167 leal (%rcx,%rsi,1),%ecx
5168 rorxl $27,%edx,%r12d
5169 vpslldq $12,%ymm4,%ymm10
5170 vpaddd %ymm4,%ymm4,%ymm4
5171 rorxl $2,%edx,%esi
5172 xorl %eax,%edx
5173 vpsrld $30,%ymm10,%ymm9
5174 vpor %ymm8,%ymm4,%ymm4
5175 addl %r12d,%ecx
5176 andl %edi,%edx
5177 vpslld $2,%ymm10,%ymm10
5178 vpxor %ymm9,%ymm4,%ymm4
5179 addl 68(%r13),%ebx
5180 xorl %eax,%edx
5181 vpxor %ymm10,%ymm4,%ymm4
5182 movl %esi,%edi
5183 xorl %eax,%edi
5184 leal (%rbx,%rdx,1),%ebx
5185 vpaddd %ymm11,%ymm4,%ymm9
5186 rorxl $27,%ecx,%r12d
5187 rorxl $2,%ecx,%edx
5188 xorl %esi,%ecx
5189 vmovdqu %ymm9,128(%rsp)
5190 addl %r12d,%ebx
5191 andl %edi,%ecx
5192 addl 72(%r13),%ebp
5193 xorl %esi,%ecx
5194 movl %edx,%edi
5195 xorl %esi,%edi
5196 leal (%rcx,%rbp,1),%ebp
5197 rorxl $27,%ebx,%r12d
5198 rorxl $2,%ebx,%ecx
5199 xorl %edx,%ebx
5200 addl %r12d,%ebp
5201 andl %edi,%ebx
5202 addl 76(%r13),%eax
5203 xorl %edx,%ebx
5204 leal (%rax,%rbx,1),%eax
5205 rorxl $27,%ebp,%r12d
5206 rorxl $2,%ebp,%ebx
5207 xorl %ecx,%ebp
5208 addl %r12d,%eax
5209 xorl %edx,%ebp
5210 vpalignr $8,%ymm1,%ymm2,%ymm5
5211 addl 96(%r13),%esi
5212 leal (%rsi,%rbp,1),%esi
5213 rorxl $27,%eax,%r12d
5214 rorxl $2,%eax,%ebp
5215 vpsrldq $4,%ymm4,%ymm8
5216 xorl %ebx,%eax
5217 addl %r12d,%esi
5218 xorl %ecx,%eax
5219 vpxor %ymm1,%ymm5,%ymm5
5220 vpxor %ymm3,%ymm8,%ymm8
5221 addl 100(%r13),%edx
5222 leal (%rdx,%rax,1),%edx
5223 vpxor %ymm8,%ymm5,%ymm5
5224 rorxl $27,%esi,%r12d
5225 rorxl $2,%esi,%eax
5226 xorl %ebp,%esi
5227 addl %r12d,%edx
5228 vpsrld $31,%ymm5,%ymm8
5229 vmovdqu -32(%r14),%ymm11
5230 xorl %ebx,%esi
5231 addl 104(%r13),%ecx
5232 leal (%rcx,%rsi,1),%ecx
5233 vpslldq $12,%ymm5,%ymm10
5234 vpaddd %ymm5,%ymm5,%ymm5
5235 rorxl $27,%edx,%r12d
5236 rorxl $2,%edx,%esi
5237 vpsrld $30,%ymm10,%ymm9
5238 vpor %ymm8,%ymm5,%ymm5
5239 xorl %eax,%edx
5240 addl %r12d,%ecx
5241 vpslld $2,%ymm10,%ymm10
5242 vpxor %ymm9,%ymm5,%ymm5
5243 xorl %ebp,%edx
5244 addl 108(%r13),%ebx
5245 leaq 256(%r13),%r13
5246 vpxor %ymm10,%ymm5,%ymm5
5247 leal (%rbx,%rdx,1),%ebx
5248 rorxl $27,%ecx,%r12d
5249 rorxl $2,%ecx,%edx
5250 vpaddd %ymm11,%ymm5,%ymm9
5251 xorl %esi,%ecx
5252 addl %r12d,%ebx
5253 xorl %eax,%ecx
5254 vmovdqu %ymm9,160(%rsp)
5255 addl -128(%r13),%ebp
5256 leal (%rcx,%rbp,1),%ebp
5257 rorxl $27,%ebx,%r12d
5258 rorxl $2,%ebx,%ecx
5259 xorl %edx,%ebx
5260 addl %r12d,%ebp
5261 xorl %esi,%ebx
5262 vpalignr $8,%ymm2,%ymm3,%ymm6
5263 addl -124(%r13),%eax
5264 leal (%rax,%rbx,1),%eax
5265 rorxl $27,%ebp,%r12d
5266 rorxl $2,%ebp,%ebx
5267 vpsrldq $4,%ymm5,%ymm8
5268 xorl %ecx,%ebp
5269 addl %r12d,%eax
5270 xorl %edx,%ebp
5271 vpxor %ymm2,%ymm6,%ymm6
5272 vpxor %ymm4,%ymm8,%ymm8
5273 addl -120(%r13),%esi
5274 leal (%rsi,%rbp,1),%esi
5275 vpxor %ymm8,%ymm6,%ymm6
5276 rorxl $27,%eax,%r12d
5277 rorxl $2,%eax,%ebp
5278 xorl %ebx,%eax
5279 addl %r12d,%esi
5280 vpsrld $31,%ymm6,%ymm8
5281 xorl %ecx,%eax
5282 addl -116(%r13),%edx
5283 leal (%rdx,%rax,1),%edx
5284 vpslldq $12,%ymm6,%ymm10
5285 vpaddd %ymm6,%ymm6,%ymm6
5286 rorxl $27,%esi,%r12d
5287 rorxl $2,%esi,%eax
5288 vpsrld $30,%ymm10,%ymm9
5289 vpor %ymm8,%ymm6,%ymm6
5290 xorl %ebp,%esi
5291 addl %r12d,%edx
5292 vpslld $2,%ymm10,%ymm10
5293 vpxor %ymm9,%ymm6,%ymm6
5294 xorl %ebx,%esi
5295 addl -96(%r13),%ecx
5296 vpxor %ymm10,%ymm6,%ymm6
5297 leal (%rcx,%rsi,1),%ecx
5298 rorxl $27,%edx,%r12d
5299 rorxl $2,%edx,%esi
5300 vpaddd %ymm11,%ymm6,%ymm9
5301 xorl %eax,%edx
5302 addl %r12d,%ecx
5303 xorl %ebp,%edx
5304 vmovdqu %ymm9,192(%rsp)
5305 addl -92(%r13),%ebx
5306 leal (%rbx,%rdx,1),%ebx
5307 rorxl $27,%ecx,%r12d
5308 rorxl $2,%ecx,%edx
5309 xorl %esi,%ecx
5310 addl %r12d,%ebx
5311 xorl %eax,%ecx
5312 vpalignr $8,%ymm3,%ymm4,%ymm7
5313 addl -88(%r13),%ebp
5314 leal (%rcx,%rbp,1),%ebp
5315 rorxl $27,%ebx,%r12d
5316 rorxl $2,%ebx,%ecx
5317 vpsrldq $4,%ymm6,%ymm8
5318 xorl %edx,%ebx
5319 addl %r12d,%ebp
5320 xorl %esi,%ebx
5321 vpxor %ymm3,%ymm7,%ymm7
5322 vpxor %ymm5,%ymm8,%ymm8
5323 addl -84(%r13),%eax
5324 leal (%rax,%rbx,1),%eax
5325 vpxor %ymm8,%ymm7,%ymm7
5326 rorxl $27,%ebp,%r12d
5327 rorxl $2,%ebp,%ebx
5328 xorl %ecx,%ebp
5329 addl %r12d,%eax
5330 vpsrld $31,%ymm7,%ymm8
5331 xorl %edx,%ebp
5332 addl -64(%r13),%esi
5333 leal (%rsi,%rbp,1),%esi
5334 vpslldq $12,%ymm7,%ymm10
5335 vpaddd %ymm7,%ymm7,%ymm7
5336 rorxl $27,%eax,%r12d
5337 rorxl $2,%eax,%ebp
5338 vpsrld $30,%ymm10,%ymm9
5339 vpor %ymm8,%ymm7,%ymm7
5340 xorl %ebx,%eax
5341 addl %r12d,%esi
5342 vpslld $2,%ymm10,%ymm10
5343 vpxor %ymm9,%ymm7,%ymm7
5344 xorl %ecx,%eax
5345 addl -60(%r13),%edx
5346 vpxor %ymm10,%ymm7,%ymm7
5347 leal (%rdx,%rax,1),%edx
5348 rorxl $27,%esi,%r12d
5349 rorxl $2,%esi,%eax
5350 vpaddd %ymm11,%ymm7,%ymm9
5351 xorl %ebp,%esi
5352 addl %r12d,%edx
5353 xorl %ebx,%esi
5354 vmovdqu %ymm9,224(%rsp)
5355 addl -56(%r13),%ecx
5356 leal (%rcx,%rsi,1),%ecx
5357 rorxl $27,%edx,%r12d
5358 rorxl $2,%edx,%esi
5359 xorl %eax,%edx
5360 addl %r12d,%ecx
5361 xorl %ebp,%edx
5362 addl -52(%r13),%ebx
5363 leal (%rbx,%rdx,1),%ebx
5364 rorxl $27,%ecx,%r12d
5365 rorxl $2,%ecx,%edx
5366 xorl %esi,%ecx
5367 addl %r12d,%ebx
5368 xorl %eax,%ecx
5369 addl -32(%r13),%ebp
5370 leal (%rcx,%rbp,1),%ebp
5371 rorxl $27,%ebx,%r12d
5372 rorxl $2,%ebx,%ecx
5373 xorl %edx,%ebx
5374 addl %r12d,%ebp
5375 xorl %esi,%ebx
5376 addl -28(%r13),%eax
5377 leal (%rax,%rbx,1),%eax
5378 rorxl $27,%ebp,%r12d
5379 rorxl $2,%ebp,%ebx
5380 xorl %ecx,%ebp
5381 addl %r12d,%eax
5382 xorl %edx,%ebp
5383 addl -24(%r13),%esi
5384 leal (%rsi,%rbp,1),%esi
5385 rorxl $27,%eax,%r12d
5386 rorxl $2,%eax,%ebp
5387 xorl %ebx,%eax
5388 addl %r12d,%esi
5389 xorl %ecx,%eax
5390 addl -20(%r13),%edx
5391 leal (%rdx,%rax,1),%edx
5392 rorxl $27,%esi,%r12d
5393 addl %r12d,%edx
5394 leaq 128(%rsp),%r13
5395
5396
5397 addl 0(%r8),%edx
5398 addl 4(%r8),%esi
5399 addl 8(%r8),%ebp
5400 movl %edx,0(%r8)
5401 addl 12(%r8),%ebx
5402 movl %esi,4(%r8)
5403 movl %edx,%eax
5404 addl 16(%r8),%ecx
5405 movl %ebp,%r12d
5406 movl %ebp,8(%r8)
5407 movl %ebx,%edx
5408
5409 movl %ebx,12(%r8)
5410 movl %esi,%ebp
5411 movl %ecx,16(%r8)
5412
5413 movl %ecx,%esi
5414 movl %r12d,%ecx
5415
5416
5417 cmpq %r10,%r9
5418 jbe .Loop_avx2
5419
5420 .Ldone_avx2:
5421 vzeroupper
5422 movq -40(%r11),%r14
5423 .cfi_restore %r14
5424 movq -32(%r11),%r13
5425 .cfi_restore %r13
5426 movq -24(%r11),%r12
5427 .cfi_restore %r12
5428 movq -16(%r11),%rbp
5429 .cfi_restore %rbp
5430 movq -8(%r11),%rbx
5431 .cfi_restore %rbx
5432 leaq (%r11),%rsp
5433 .cfi_def_cfa_register %rsp
5434 .Lepilogue_avx2:
5435 .byte 0xf3,0xc3
5436 .cfi_endproc
5437 .size sha1_block_data_order_avx2,.-sha1_block_data_order_avx2
5438 .align 64
5439 K_XX_XX:
5440 .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999
5441 .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999
5442 .long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
5443 .long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
5444 .long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
5445 .long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
5446 .long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
5447 .long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
5448 .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
5449 .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
5450 .byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
5451 .byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,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
5452 .align 64
Cache object: 240a07b1cb8e72eaf43099dfc61e984b
|