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