]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - secure/lib/libcrypto/amd64/sha512-x86_64.S
Merge ^/vendor/libc++/dist up to its last change, and resolve conflicts.
[FreeBSD/FreeBSD.git] / secure / lib / libcrypto / amd64 / sha512-x86_64.S
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         leaq    -128(%rsp),%rsp
4171         vpaddq  96(%rbp),%ymm7,%ymm11
4172         vmovdqa %ymm8,0(%rsp)
4173         xorq    %r14,%r14
4174         vmovdqa %ymm9,32(%rsp)
4175         movq    %rbx,%rdi
4176         vmovdqa %ymm10,64(%rsp)
4177         xorq    %rcx,%rdi
4178         vmovdqa %ymm11,96(%rsp)
4179         movq    %r9,%r12
4180         addq    $32*8,%rbp
4181         jmp     .Lavx2_00_47
4182
4183 .align  16
4184 .Lavx2_00_47:
4185         leaq    -128(%rsp),%rsp
4186         vpalignr        $8,%ymm0,%ymm1,%ymm8
4187         addq    0+256(%rsp),%r11
4188         andq    %r8,%r12
4189         rorxq   $41,%r8,%r13
4190         vpalignr        $8,%ymm4,%ymm5,%ymm11
4191         rorxq   $18,%r8,%r15
4192         leaq    (%rax,%r14,1),%rax
4193         leaq    (%r11,%r12,1),%r11
4194         vpsrlq  $1,%ymm8,%ymm10
4195         andnq   %r10,%r8,%r12
4196         xorq    %r15,%r13
4197         rorxq   $14,%r8,%r14
4198         vpaddq  %ymm11,%ymm0,%ymm0
4199         vpsrlq  $7,%ymm8,%ymm11
4200         leaq    (%r11,%r12,1),%r11
4201         xorq    %r14,%r13
4202         movq    %rax,%r15
4203         vpsllq  $56,%ymm8,%ymm9
4204         vpxor   %ymm10,%ymm11,%ymm8
4205         rorxq   $39,%rax,%r12
4206         leaq    (%r11,%r13,1),%r11
4207         xorq    %rbx,%r15
4208         vpsrlq  $7,%ymm10,%ymm10
4209         vpxor   %ymm9,%ymm8,%ymm8
4210         rorxq   $34,%rax,%r14
4211         rorxq   $28,%rax,%r13
4212         leaq    (%rdx,%r11,1),%rdx
4213         vpsllq  $7,%ymm9,%ymm9
4214         vpxor   %ymm10,%ymm8,%ymm8
4215         andq    %r15,%rdi
4216         xorq    %r12,%r14
4217         xorq    %rbx,%rdi
4218         vpsrlq  $6,%ymm7,%ymm11
4219         vpxor   %ymm9,%ymm8,%ymm8
4220         xorq    %r13,%r14
4221         leaq    (%r11,%rdi,1),%r11
4222         movq    %r8,%r12
4223         vpsllq  $3,%ymm7,%ymm10
4224         vpaddq  %ymm8,%ymm0,%ymm0
4225         addq    8+256(%rsp),%r10
4226         andq    %rdx,%r12
4227         rorxq   $41,%rdx,%r13
4228         vpsrlq  $19,%ymm7,%ymm9
4229         vpxor   %ymm10,%ymm11,%ymm11
4230         rorxq   $18,%rdx,%rdi
4231         leaq    (%r11,%r14,1),%r11
4232         leaq    (%r10,%r12,1),%r10
4233         vpsllq  $42,%ymm10,%ymm10
4234         vpxor   %ymm9,%ymm11,%ymm11
4235         andnq   %r9,%rdx,%r12
4236         xorq    %rdi,%r13
4237         rorxq   $14,%rdx,%r14
4238         vpsrlq  $42,%ymm9,%ymm9
4239         vpxor   %ymm10,%ymm11,%ymm11
4240         leaq    (%r10,%r12,1),%r10
4241         xorq    %r14,%r13
4242         movq    %r11,%rdi
4243         vpxor   %ymm9,%ymm11,%ymm11
4244         rorxq   $39,%r11,%r12
4245         leaq    (%r10,%r13,1),%r10
4246         xorq    %rax,%rdi
4247         vpaddq  %ymm11,%ymm0,%ymm0
4248         rorxq   $34,%r11,%r14
4249         rorxq   $28,%r11,%r13
4250         leaq    (%rcx,%r10,1),%rcx
4251         vpaddq  -128(%rbp),%ymm0,%ymm10
4252         andq    %rdi,%r15
4253         xorq    %r12,%r14
4254         xorq    %rax,%r15
4255         xorq    %r13,%r14
4256         leaq    (%r10,%r15,1),%r10
4257         movq    %rdx,%r12
4258         vmovdqa %ymm10,0(%rsp)
4259         vpalignr        $8,%ymm1,%ymm2,%ymm8
4260         addq    32+256(%rsp),%r9
4261         andq    %rcx,%r12
4262         rorxq   $41,%rcx,%r13
4263         vpalignr        $8,%ymm5,%ymm6,%ymm11
4264         rorxq   $18,%rcx,%r15
4265         leaq    (%r10,%r14,1),%r10
4266         leaq    (%r9,%r12,1),%r9
4267         vpsrlq  $1,%ymm8,%ymm10
4268         andnq   %r8,%rcx,%r12
4269         xorq    %r15,%r13
4270         rorxq   $14,%rcx,%r14
4271         vpaddq  %ymm11,%ymm1,%ymm1
4272         vpsrlq  $7,%ymm8,%ymm11
4273         leaq    (%r9,%r12,1),%r9
4274         xorq    %r14,%r13
4275         movq    %r10,%r15
4276         vpsllq  $56,%ymm8,%ymm9
4277         vpxor   %ymm10,%ymm11,%ymm8
4278         rorxq   $39,%r10,%r12
4279         leaq    (%r9,%r13,1),%r9
4280         xorq    %r11,%r15
4281         vpsrlq  $7,%ymm10,%ymm10
4282         vpxor   %ymm9,%ymm8,%ymm8
4283         rorxq   $34,%r10,%r14
4284         rorxq   $28,%r10,%r13
4285         leaq    (%rbx,%r9,1),%rbx
4286         vpsllq  $7,%ymm9,%ymm9
4287         vpxor   %ymm10,%ymm8,%ymm8
4288         andq    %r15,%rdi
4289         xorq    %r12,%r14
4290         xorq    %r11,%rdi
4291         vpsrlq  $6,%ymm0,%ymm11
4292         vpxor   %ymm9,%ymm8,%ymm8
4293         xorq    %r13,%r14
4294         leaq    (%r9,%rdi,1),%r9
4295         movq    %rcx,%r12
4296         vpsllq  $3,%ymm0,%ymm10
4297         vpaddq  %ymm8,%ymm1,%ymm1
4298         addq    40+256(%rsp),%r8
4299         andq    %rbx,%r12
4300         rorxq   $41,%rbx,%r13
4301         vpsrlq  $19,%ymm0,%ymm9
4302         vpxor   %ymm10,%ymm11,%ymm11
4303         rorxq   $18,%rbx,%rdi
4304         leaq    (%r9,%r14,1),%r9
4305         leaq    (%r8,%r12,1),%r8
4306         vpsllq  $42,%ymm10,%ymm10
4307         vpxor   %ymm9,%ymm11,%ymm11
4308         andnq   %rdx,%rbx,%r12
4309         xorq    %rdi,%r13
4310         rorxq   $14,%rbx,%r14
4311         vpsrlq  $42,%ymm9,%ymm9
4312         vpxor   %ymm10,%ymm11,%ymm11
4313         leaq    (%r8,%r12,1),%r8
4314         xorq    %r14,%r13
4315         movq    %r9,%rdi
4316         vpxor   %ymm9,%ymm11,%ymm11
4317         rorxq   $39,%r9,%r12
4318         leaq    (%r8,%r13,1),%r8
4319         xorq    %r10,%rdi
4320         vpaddq  %ymm11,%ymm1,%ymm1
4321         rorxq   $34,%r9,%r14
4322         rorxq   $28,%r9,%r13
4323         leaq    (%rax,%r8,1),%rax
4324         vpaddq  -96(%rbp),%ymm1,%ymm10
4325         andq    %rdi,%r15
4326         xorq    %r12,%r14
4327         xorq    %r10,%r15
4328         xorq    %r13,%r14
4329         leaq    (%r8,%r15,1),%r8
4330         movq    %rbx,%r12
4331         vmovdqa %ymm10,32(%rsp)
4332         vpalignr        $8,%ymm2,%ymm3,%ymm8
4333         addq    64+256(%rsp),%rdx
4334         andq    %rax,%r12
4335         rorxq   $41,%rax,%r13
4336         vpalignr        $8,%ymm6,%ymm7,%ymm11
4337         rorxq   $18,%rax,%r15
4338         leaq    (%r8,%r14,1),%r8
4339         leaq    (%rdx,%r12,1),%rdx
4340         vpsrlq  $1,%ymm8,%ymm10
4341         andnq   %rcx,%rax,%r12
4342         xorq    %r15,%r13
4343         rorxq   $14,%rax,%r14
4344         vpaddq  %ymm11,%ymm2,%ymm2
4345         vpsrlq  $7,%ymm8,%ymm11
4346         leaq    (%rdx,%r12,1),%rdx
4347         xorq    %r14,%r13
4348         movq    %r8,%r15
4349         vpsllq  $56,%ymm8,%ymm9
4350         vpxor   %ymm10,%ymm11,%ymm8
4351         rorxq   $39,%r8,%r12
4352         leaq    (%rdx,%r13,1),%rdx
4353         xorq    %r9,%r15
4354         vpsrlq  $7,%ymm10,%ymm10
4355         vpxor   %ymm9,%ymm8,%ymm8
4356         rorxq   $34,%r8,%r14
4357         rorxq   $28,%r8,%r13
4358         leaq    (%r11,%rdx,1),%r11
4359         vpsllq  $7,%ymm9,%ymm9
4360         vpxor   %ymm10,%ymm8,%ymm8
4361         andq    %r15,%rdi
4362         xorq    %r12,%r14
4363         xorq    %r9,%rdi
4364         vpsrlq  $6,%ymm1,%ymm11
4365         vpxor   %ymm9,%ymm8,%ymm8
4366         xorq    %r13,%r14
4367         leaq    (%rdx,%rdi,1),%rdx
4368         movq    %rax,%r12
4369         vpsllq  $3,%ymm1,%ymm10
4370         vpaddq  %ymm8,%ymm2,%ymm2
4371         addq    72+256(%rsp),%rcx
4372         andq    %r11,%r12
4373         rorxq   $41,%r11,%r13
4374         vpsrlq  $19,%ymm1,%ymm9
4375         vpxor   %ymm10,%ymm11,%ymm11
4376         rorxq   $18,%r11,%rdi
4377         leaq    (%rdx,%r14,1),%rdx
4378         leaq    (%rcx,%r12,1),%rcx
4379         vpsllq  $42,%ymm10,%ymm10
4380         vpxor   %ymm9,%ymm11,%ymm11
4381         andnq   %rbx,%r11,%r12
4382         xorq    %rdi,%r13
4383         rorxq   $14,%r11,%r14
4384         vpsrlq  $42,%ymm9,%ymm9
4385         vpxor   %ymm10,%ymm11,%ymm11
4386         leaq    (%rcx,%r12,1),%rcx
4387         xorq    %r14,%r13
4388         movq    %rdx,%rdi
4389         vpxor   %ymm9,%ymm11,%ymm11
4390         rorxq   $39,%rdx,%r12
4391         leaq    (%rcx,%r13,1),%rcx
4392         xorq    %r8,%rdi
4393         vpaddq  %ymm11,%ymm2,%ymm2
4394         rorxq   $34,%rdx,%r14
4395         rorxq   $28,%rdx,%r13
4396         leaq    (%r10,%rcx,1),%r10
4397         vpaddq  -64(%rbp),%ymm2,%ymm10
4398         andq    %rdi,%r15
4399         xorq    %r12,%r14
4400         xorq    %r8,%r15
4401         xorq    %r13,%r14
4402         leaq    (%rcx,%r15,1),%rcx
4403         movq    %r11,%r12
4404         vmovdqa %ymm10,64(%rsp)
4405         vpalignr        $8,%ymm3,%ymm4,%ymm8
4406         addq    96+256(%rsp),%rbx
4407         andq    %r10,%r12
4408         rorxq   $41,%r10,%r13
4409         vpalignr        $8,%ymm7,%ymm0,%ymm11
4410         rorxq   $18,%r10,%r15
4411         leaq    (%rcx,%r14,1),%rcx
4412         leaq    (%rbx,%r12,1),%rbx
4413         vpsrlq  $1,%ymm8,%ymm10
4414         andnq   %rax,%r10,%r12
4415         xorq    %r15,%r13
4416         rorxq   $14,%r10,%r14
4417         vpaddq  %ymm11,%ymm3,%ymm3
4418         vpsrlq  $7,%ymm8,%ymm11
4419         leaq    (%rbx,%r12,1),%rbx
4420         xorq    %r14,%r13
4421         movq    %rcx,%r15
4422         vpsllq  $56,%ymm8,%ymm9
4423         vpxor   %ymm10,%ymm11,%ymm8
4424         rorxq   $39,%rcx,%r12
4425         leaq    (%rbx,%r13,1),%rbx
4426         xorq    %rdx,%r15
4427         vpsrlq  $7,%ymm10,%ymm10
4428         vpxor   %ymm9,%ymm8,%ymm8
4429         rorxq   $34,%rcx,%r14
4430         rorxq   $28,%rcx,%r13
4431         leaq    (%r9,%rbx,1),%r9
4432         vpsllq  $7,%ymm9,%ymm9
4433         vpxor   %ymm10,%ymm8,%ymm8
4434         andq    %r15,%rdi
4435         xorq    %r12,%r14
4436         xorq    %rdx,%rdi
4437         vpsrlq  $6,%ymm2,%ymm11
4438         vpxor   %ymm9,%ymm8,%ymm8
4439         xorq    %r13,%r14
4440         leaq    (%rbx,%rdi,1),%rbx
4441         movq    %r10,%r12
4442         vpsllq  $3,%ymm2,%ymm10
4443         vpaddq  %ymm8,%ymm3,%ymm3
4444         addq    104+256(%rsp),%rax
4445         andq    %r9,%r12
4446         rorxq   $41,%r9,%r13
4447         vpsrlq  $19,%ymm2,%ymm9
4448         vpxor   %ymm10,%ymm11,%ymm11
4449         rorxq   $18,%r9,%rdi
4450         leaq    (%rbx,%r14,1),%rbx
4451         leaq    (%rax,%r12,1),%rax
4452         vpsllq  $42,%ymm10,%ymm10
4453         vpxor   %ymm9,%ymm11,%ymm11
4454         andnq   %r11,%r9,%r12
4455         xorq    %rdi,%r13
4456         rorxq   $14,%r9,%r14
4457         vpsrlq  $42,%ymm9,%ymm9
4458         vpxor   %ymm10,%ymm11,%ymm11
4459         leaq    (%rax,%r12,1),%rax
4460         xorq    %r14,%r13
4461         movq    %rbx,%rdi
4462         vpxor   %ymm9,%ymm11,%ymm11
4463         rorxq   $39,%rbx,%r12
4464         leaq    (%rax,%r13,1),%rax
4465         xorq    %rcx,%rdi
4466         vpaddq  %ymm11,%ymm3,%ymm3
4467         rorxq   $34,%rbx,%r14
4468         rorxq   $28,%rbx,%r13
4469         leaq    (%r8,%rax,1),%r8
4470         vpaddq  -32(%rbp),%ymm3,%ymm10
4471         andq    %rdi,%r15
4472         xorq    %r12,%r14
4473         xorq    %rcx,%r15
4474         xorq    %r13,%r14
4475         leaq    (%rax,%r15,1),%rax
4476         movq    %r9,%r12
4477         vmovdqa %ymm10,96(%rsp)
4478         leaq    -128(%rsp),%rsp
4479         vpalignr        $8,%ymm4,%ymm5,%ymm8
4480         addq    0+256(%rsp),%r11
4481         andq    %r8,%r12
4482         rorxq   $41,%r8,%r13
4483         vpalignr        $8,%ymm0,%ymm1,%ymm11
4484         rorxq   $18,%r8,%r15
4485         leaq    (%rax,%r14,1),%rax
4486         leaq    (%r11,%r12,1),%r11
4487         vpsrlq  $1,%ymm8,%ymm10
4488         andnq   %r10,%r8,%r12
4489         xorq    %r15,%r13
4490         rorxq   $14,%r8,%r14
4491         vpaddq  %ymm11,%ymm4,%ymm4
4492         vpsrlq  $7,%ymm8,%ymm11
4493         leaq    (%r11,%r12,1),%r11
4494         xorq    %r14,%r13
4495         movq    %rax,%r15
4496         vpsllq  $56,%ymm8,%ymm9
4497         vpxor   %ymm10,%ymm11,%ymm8
4498         rorxq   $39,%rax,%r12
4499         leaq    (%r11,%r13,1),%r11
4500         xorq    %rbx,%r15
4501         vpsrlq  $7,%ymm10,%ymm10
4502         vpxor   %ymm9,%ymm8,%ymm8
4503         rorxq   $34,%rax,%r14
4504         rorxq   $28,%rax,%r13
4505         leaq    (%rdx,%r11,1),%rdx
4506         vpsllq  $7,%ymm9,%ymm9
4507         vpxor   %ymm10,%ymm8,%ymm8
4508         andq    %r15,%rdi
4509         xorq    %r12,%r14
4510         xorq    %rbx,%rdi
4511         vpsrlq  $6,%ymm3,%ymm11
4512         vpxor   %ymm9,%ymm8,%ymm8
4513         xorq    %r13,%r14
4514         leaq    (%r11,%rdi,1),%r11
4515         movq    %r8,%r12
4516         vpsllq  $3,%ymm3,%ymm10
4517         vpaddq  %ymm8,%ymm4,%ymm4
4518         addq    8+256(%rsp),%r10
4519         andq    %rdx,%r12
4520         rorxq   $41,%rdx,%r13
4521         vpsrlq  $19,%ymm3,%ymm9
4522         vpxor   %ymm10,%ymm11,%ymm11
4523         rorxq   $18,%rdx,%rdi
4524         leaq    (%r11,%r14,1),%r11
4525         leaq    (%r10,%r12,1),%r10
4526         vpsllq  $42,%ymm10,%ymm10
4527         vpxor   %ymm9,%ymm11,%ymm11
4528         andnq   %r9,%rdx,%r12
4529         xorq    %rdi,%r13
4530         rorxq   $14,%rdx,%r14
4531         vpsrlq  $42,%ymm9,%ymm9
4532         vpxor   %ymm10,%ymm11,%ymm11
4533         leaq    (%r10,%r12,1),%r10
4534         xorq    %r14,%r13
4535         movq    %r11,%rdi
4536         vpxor   %ymm9,%ymm11,%ymm11
4537         rorxq   $39,%r11,%r12
4538         leaq    (%r10,%r13,1),%r10
4539         xorq    %rax,%rdi
4540         vpaddq  %ymm11,%ymm4,%ymm4
4541         rorxq   $34,%r11,%r14
4542         rorxq   $28,%r11,%r13
4543         leaq    (%rcx,%r10,1),%rcx
4544         vpaddq  0(%rbp),%ymm4,%ymm10
4545         andq    %rdi,%r15
4546         xorq    %r12,%r14
4547         xorq    %rax,%r15
4548         xorq    %r13,%r14
4549         leaq    (%r10,%r15,1),%r10
4550         movq    %rdx,%r12
4551         vmovdqa %ymm10,0(%rsp)
4552         vpalignr        $8,%ymm5,%ymm6,%ymm8
4553         addq    32+256(%rsp),%r9
4554         andq    %rcx,%r12
4555         rorxq   $41,%rcx,%r13
4556         vpalignr        $8,%ymm1,%ymm2,%ymm11
4557         rorxq   $18,%rcx,%r15
4558         leaq    (%r10,%r14,1),%r10
4559         leaq    (%r9,%r12,1),%r9
4560         vpsrlq  $1,%ymm8,%ymm10
4561         andnq   %r8,%rcx,%r12
4562         xorq    %r15,%r13
4563         rorxq   $14,%rcx,%r14
4564         vpaddq  %ymm11,%ymm5,%ymm5
4565         vpsrlq  $7,%ymm8,%ymm11
4566         leaq    (%r9,%r12,1),%r9
4567         xorq    %r14,%r13
4568         movq    %r10,%r15
4569         vpsllq  $56,%ymm8,%ymm9
4570         vpxor   %ymm10,%ymm11,%ymm8
4571         rorxq   $39,%r10,%r12
4572         leaq    (%r9,%r13,1),%r9
4573         xorq    %r11,%r15
4574         vpsrlq  $7,%ymm10,%ymm10
4575         vpxor   %ymm9,%ymm8,%ymm8
4576         rorxq   $34,%r10,%r14
4577         rorxq   $28,%r10,%r13
4578         leaq    (%rbx,%r9,1),%rbx
4579         vpsllq  $7,%ymm9,%ymm9
4580         vpxor   %ymm10,%ymm8,%ymm8
4581         andq    %r15,%rdi
4582         xorq    %r12,%r14
4583         xorq    %r11,%rdi
4584         vpsrlq  $6,%ymm4,%ymm11
4585         vpxor   %ymm9,%ymm8,%ymm8
4586         xorq    %r13,%r14
4587         leaq    (%r9,%rdi,1),%r9
4588         movq    %rcx,%r12
4589         vpsllq  $3,%ymm4,%ymm10
4590         vpaddq  %ymm8,%ymm5,%ymm5
4591         addq    40+256(%rsp),%r8
4592         andq    %rbx,%r12
4593         rorxq   $41,%rbx,%r13
4594         vpsrlq  $19,%ymm4,%ymm9
4595         vpxor   %ymm10,%ymm11,%ymm11
4596         rorxq   $18,%rbx,%rdi
4597         leaq    (%r9,%r14,1),%r9
4598         leaq    (%r8,%r12,1),%r8
4599         vpsllq  $42,%ymm10,%ymm10
4600         vpxor   %ymm9,%ymm11,%ymm11
4601         andnq   %rdx,%rbx,%r12
4602         xorq    %rdi,%r13
4603         rorxq   $14,%rbx,%r14
4604         vpsrlq  $42,%ymm9,%ymm9
4605         vpxor   %ymm10,%ymm11,%ymm11
4606         leaq    (%r8,%r12,1),%r8
4607         xorq    %r14,%r13
4608         movq    %r9,%rdi
4609         vpxor   %ymm9,%ymm11,%ymm11
4610         rorxq   $39,%r9,%r12
4611         leaq    (%r8,%r13,1),%r8
4612         xorq    %r10,%rdi
4613         vpaddq  %ymm11,%ymm5,%ymm5
4614         rorxq   $34,%r9,%r14
4615         rorxq   $28,%r9,%r13
4616         leaq    (%rax,%r8,1),%rax
4617         vpaddq  32(%rbp),%ymm5,%ymm10
4618         andq    %rdi,%r15
4619         xorq    %r12,%r14
4620         xorq    %r10,%r15
4621         xorq    %r13,%r14
4622         leaq    (%r8,%r15,1),%r8
4623         movq    %rbx,%r12
4624         vmovdqa %ymm10,32(%rsp)
4625         vpalignr        $8,%ymm6,%ymm7,%ymm8
4626         addq    64+256(%rsp),%rdx
4627         andq    %rax,%r12
4628         rorxq   $41,%rax,%r13
4629         vpalignr        $8,%ymm2,%ymm3,%ymm11
4630         rorxq   $18,%rax,%r15
4631         leaq    (%r8,%r14,1),%r8
4632         leaq    (%rdx,%r12,1),%rdx
4633         vpsrlq  $1,%ymm8,%ymm10
4634         andnq   %rcx,%rax,%r12
4635         xorq    %r15,%r13
4636         rorxq   $14,%rax,%r14
4637         vpaddq  %ymm11,%ymm6,%ymm6
4638         vpsrlq  $7,%ymm8,%ymm11
4639         leaq    (%rdx,%r12,1),%rdx
4640         xorq    %r14,%r13
4641         movq    %r8,%r15
4642         vpsllq  $56,%ymm8,%ymm9
4643         vpxor   %ymm10,%ymm11,%ymm8
4644         rorxq   $39,%r8,%r12
4645         leaq    (%rdx,%r13,1),%rdx
4646         xorq    %r9,%r15
4647         vpsrlq  $7,%ymm10,%ymm10
4648         vpxor   %ymm9,%ymm8,%ymm8
4649         rorxq   $34,%r8,%r14
4650         rorxq   $28,%r8,%r13
4651         leaq    (%r11,%rdx,1),%r11
4652         vpsllq  $7,%ymm9,%ymm9
4653         vpxor   %ymm10,%ymm8,%ymm8
4654         andq    %r15,%rdi
4655         xorq    %r12,%r14
4656         xorq    %r9,%rdi
4657         vpsrlq  $6,%ymm5,%ymm11
4658         vpxor   %ymm9,%ymm8,%ymm8
4659         xorq    %r13,%r14
4660         leaq    (%rdx,%rdi,1),%rdx
4661         movq    %rax,%r12
4662         vpsllq  $3,%ymm5,%ymm10
4663         vpaddq  %ymm8,%ymm6,%ymm6
4664         addq    72+256(%rsp),%rcx
4665         andq    %r11,%r12
4666         rorxq   $41,%r11,%r13
4667         vpsrlq  $19,%ymm5,%ymm9
4668         vpxor   %ymm10,%ymm11,%ymm11
4669         rorxq   $18,%r11,%rdi
4670         leaq    (%rdx,%r14,1),%rdx
4671         leaq    (%rcx,%r12,1),%rcx
4672         vpsllq  $42,%ymm10,%ymm10
4673         vpxor   %ymm9,%ymm11,%ymm11
4674         andnq   %rbx,%r11,%r12
4675         xorq    %rdi,%r13
4676         rorxq   $14,%r11,%r14
4677         vpsrlq  $42,%ymm9,%ymm9
4678         vpxor   %ymm10,%ymm11,%ymm11
4679         leaq    (%rcx,%r12,1),%rcx
4680         xorq    %r14,%r13
4681         movq    %rdx,%rdi
4682         vpxor   %ymm9,%ymm11,%ymm11
4683         rorxq   $39,%rdx,%r12
4684         leaq    (%rcx,%r13,1),%rcx
4685         xorq    %r8,%rdi
4686         vpaddq  %ymm11,%ymm6,%ymm6
4687         rorxq   $34,%rdx,%r14
4688         rorxq   $28,%rdx,%r13
4689         leaq    (%r10,%rcx,1),%r10
4690         vpaddq  64(%rbp),%ymm6,%ymm10
4691         andq    %rdi,%r15
4692         xorq    %r12,%r14
4693         xorq    %r8,%r15
4694         xorq    %r13,%r14
4695         leaq    (%rcx,%r15,1),%rcx
4696         movq    %r11,%r12
4697         vmovdqa %ymm10,64(%rsp)
4698         vpalignr        $8,%ymm7,%ymm0,%ymm8
4699         addq    96+256(%rsp),%rbx
4700         andq    %r10,%r12
4701         rorxq   $41,%r10,%r13
4702         vpalignr        $8,%ymm3,%ymm4,%ymm11
4703         rorxq   $18,%r10,%r15
4704         leaq    (%rcx,%r14,1),%rcx
4705         leaq    (%rbx,%r12,1),%rbx
4706         vpsrlq  $1,%ymm8,%ymm10
4707         andnq   %rax,%r10,%r12
4708         xorq    %r15,%r13
4709         rorxq   $14,%r10,%r14
4710         vpaddq  %ymm11,%ymm7,%ymm7
4711         vpsrlq  $7,%ymm8,%ymm11
4712         leaq    (%rbx,%r12,1),%rbx
4713         xorq    %r14,%r13
4714         movq    %rcx,%r15
4715         vpsllq  $56,%ymm8,%ymm9
4716         vpxor   %ymm10,%ymm11,%ymm8
4717         rorxq   $39,%rcx,%r12
4718         leaq    (%rbx,%r13,1),%rbx
4719         xorq    %rdx,%r15
4720         vpsrlq  $7,%ymm10,%ymm10
4721         vpxor   %ymm9,%ymm8,%ymm8
4722         rorxq   $34,%rcx,%r14
4723         rorxq   $28,%rcx,%r13
4724         leaq    (%r9,%rbx,1),%r9
4725         vpsllq  $7,%ymm9,%ymm9
4726         vpxor   %ymm10,%ymm8,%ymm8
4727         andq    %r15,%rdi
4728         xorq    %r12,%r14
4729         xorq    %rdx,%rdi
4730         vpsrlq  $6,%ymm6,%ymm11
4731         vpxor   %ymm9,%ymm8,%ymm8
4732         xorq    %r13,%r14
4733         leaq    (%rbx,%rdi,1),%rbx
4734         movq    %r10,%r12
4735         vpsllq  $3,%ymm6,%ymm10
4736         vpaddq  %ymm8,%ymm7,%ymm7
4737         addq    104+256(%rsp),%rax
4738         andq    %r9,%r12
4739         rorxq   $41,%r9,%r13
4740         vpsrlq  $19,%ymm6,%ymm9
4741         vpxor   %ymm10,%ymm11,%ymm11
4742         rorxq   $18,%r9,%rdi
4743         leaq    (%rbx,%r14,1),%rbx
4744         leaq    (%rax,%r12,1),%rax
4745         vpsllq  $42,%ymm10,%ymm10
4746         vpxor   %ymm9,%ymm11,%ymm11
4747         andnq   %r11,%r9,%r12
4748         xorq    %rdi,%r13
4749         rorxq   $14,%r9,%r14
4750         vpsrlq  $42,%ymm9,%ymm9
4751         vpxor   %ymm10,%ymm11,%ymm11
4752         leaq    (%rax,%r12,1),%rax
4753         xorq    %r14,%r13
4754         movq    %rbx,%rdi
4755         vpxor   %ymm9,%ymm11,%ymm11
4756         rorxq   $39,%rbx,%r12
4757         leaq    (%rax,%r13,1),%rax
4758         xorq    %rcx,%rdi
4759         vpaddq  %ymm11,%ymm7,%ymm7
4760         rorxq   $34,%rbx,%r14
4761         rorxq   $28,%rbx,%r13
4762         leaq    (%r8,%rax,1),%r8
4763         vpaddq  96(%rbp),%ymm7,%ymm10
4764         andq    %rdi,%r15
4765         xorq    %r12,%r14
4766         xorq    %rcx,%r15
4767         xorq    %r13,%r14
4768         leaq    (%rax,%r15,1),%rax
4769         movq    %r9,%r12
4770         vmovdqa %ymm10,96(%rsp)
4771         leaq    256(%rbp),%rbp
4772         cmpb    $0,-121(%rbp)
4773         jne     .Lavx2_00_47
4774         addq    0+128(%rsp),%r11
4775         andq    %r8,%r12
4776         rorxq   $41,%r8,%r13
4777         rorxq   $18,%r8,%r15
4778         leaq    (%rax,%r14,1),%rax
4779         leaq    (%r11,%r12,1),%r11
4780         andnq   %r10,%r8,%r12
4781         xorq    %r15,%r13
4782         rorxq   $14,%r8,%r14
4783         leaq    (%r11,%r12,1),%r11
4784         xorq    %r14,%r13
4785         movq    %rax,%r15
4786         rorxq   $39,%rax,%r12
4787         leaq    (%r11,%r13,1),%r11
4788         xorq    %rbx,%r15
4789         rorxq   $34,%rax,%r14
4790         rorxq   $28,%rax,%r13
4791         leaq    (%rdx,%r11,1),%rdx
4792         andq    %r15,%rdi
4793         xorq    %r12,%r14
4794         xorq    %rbx,%rdi
4795         xorq    %r13,%r14
4796         leaq    (%r11,%rdi,1),%r11
4797         movq    %r8,%r12
4798         addq    8+128(%rsp),%r10
4799         andq    %rdx,%r12
4800         rorxq   $41,%rdx,%r13
4801         rorxq   $18,%rdx,%rdi
4802         leaq    (%r11,%r14,1),%r11
4803         leaq    (%r10,%r12,1),%r10
4804         andnq   %r9,%rdx,%r12
4805         xorq    %rdi,%r13
4806         rorxq   $14,%rdx,%r14
4807         leaq    (%r10,%r12,1),%r10
4808         xorq    %r14,%r13
4809         movq    %r11,%rdi
4810         rorxq   $39,%r11,%r12
4811         leaq    (%r10,%r13,1),%r10
4812         xorq    %rax,%rdi
4813         rorxq   $34,%r11,%r14
4814         rorxq   $28,%r11,%r13
4815         leaq    (%rcx,%r10,1),%rcx
4816         andq    %rdi,%r15
4817         xorq    %r12,%r14
4818         xorq    %rax,%r15
4819         xorq    %r13,%r14
4820         leaq    (%r10,%r15,1),%r10
4821         movq    %rdx,%r12
4822         addq    32+128(%rsp),%r9
4823         andq    %rcx,%r12
4824         rorxq   $41,%rcx,%r13
4825         rorxq   $18,%rcx,%r15
4826         leaq    (%r10,%r14,1),%r10
4827         leaq    (%r9,%r12,1),%r9
4828         andnq   %r8,%rcx,%r12
4829         xorq    %r15,%r13
4830         rorxq   $14,%rcx,%r14
4831         leaq    (%r9,%r12,1),%r9
4832         xorq    %r14,%r13
4833         movq    %r10,%r15
4834         rorxq   $39,%r10,%r12
4835         leaq    (%r9,%r13,1),%r9
4836         xorq    %r11,%r15
4837         rorxq   $34,%r10,%r14
4838         rorxq   $28,%r10,%r13
4839         leaq    (%rbx,%r9,1),%rbx
4840         andq    %r15,%rdi
4841         xorq    %r12,%r14
4842         xorq    %r11,%rdi
4843         xorq    %r13,%r14
4844         leaq    (%r9,%rdi,1),%r9
4845         movq    %rcx,%r12
4846         addq    40+128(%rsp),%r8
4847         andq    %rbx,%r12
4848         rorxq   $41,%rbx,%r13
4849         rorxq   $18,%rbx,%rdi
4850         leaq    (%r9,%r14,1),%r9
4851         leaq    (%r8,%r12,1),%r8
4852         andnq   %rdx,%rbx,%r12
4853         xorq    %rdi,%r13
4854         rorxq   $14,%rbx,%r14
4855         leaq    (%r8,%r12,1),%r8
4856         xorq    %r14,%r13
4857         movq    %r9,%rdi
4858         rorxq   $39,%r9,%r12
4859         leaq    (%r8,%r13,1),%r8
4860         xorq    %r10,%rdi
4861         rorxq   $34,%r9,%r14
4862         rorxq   $28,%r9,%r13
4863         leaq    (%rax,%r8,1),%rax
4864         andq    %rdi,%r15
4865         xorq    %r12,%r14
4866         xorq    %r10,%r15
4867         xorq    %r13,%r14
4868         leaq    (%r8,%r15,1),%r8
4869         movq    %rbx,%r12
4870         addq    64+128(%rsp),%rdx
4871         andq    %rax,%r12
4872         rorxq   $41,%rax,%r13
4873         rorxq   $18,%rax,%r15
4874         leaq    (%r8,%r14,1),%r8
4875         leaq    (%rdx,%r12,1),%rdx
4876         andnq   %rcx,%rax,%r12
4877         xorq    %r15,%r13
4878         rorxq   $14,%rax,%r14
4879         leaq    (%rdx,%r12,1),%rdx
4880         xorq    %r14,%r13
4881         movq    %r8,%r15
4882         rorxq   $39,%r8,%r12
4883         leaq    (%rdx,%r13,1),%rdx
4884         xorq    %r9,%r15
4885         rorxq   $34,%r8,%r14
4886         rorxq   $28,%r8,%r13
4887         leaq    (%r11,%rdx,1),%r11
4888         andq    %r15,%rdi
4889         xorq    %r12,%r14
4890         xorq    %r9,%rdi
4891         xorq    %r13,%r14
4892         leaq    (%rdx,%rdi,1),%rdx
4893         movq    %rax,%r12
4894         addq    72+128(%rsp),%rcx
4895         andq    %r11,%r12
4896         rorxq   $41,%r11,%r13
4897         rorxq   $18,%r11,%rdi
4898         leaq    (%rdx,%r14,1),%rdx
4899         leaq    (%rcx,%r12,1),%rcx
4900         andnq   %rbx,%r11,%r12
4901         xorq    %rdi,%r13
4902         rorxq   $14,%r11,%r14
4903         leaq    (%rcx,%r12,1),%rcx
4904         xorq    %r14,%r13
4905         movq    %rdx,%rdi
4906         rorxq   $39,%rdx,%r12
4907         leaq    (%rcx,%r13,1),%rcx
4908         xorq    %r8,%rdi
4909         rorxq   $34,%rdx,%r14
4910         rorxq   $28,%rdx,%r13
4911         leaq    (%r10,%rcx,1),%r10
4912         andq    %rdi,%r15
4913         xorq    %r12,%r14
4914         xorq    %r8,%r15
4915         xorq    %r13,%r14
4916         leaq    (%rcx,%r15,1),%rcx
4917         movq    %r11,%r12
4918         addq    96+128(%rsp),%rbx
4919         andq    %r10,%r12
4920         rorxq   $41,%r10,%r13
4921         rorxq   $18,%r10,%r15
4922         leaq    (%rcx,%r14,1),%rcx
4923         leaq    (%rbx,%r12,1),%rbx
4924         andnq   %rax,%r10,%r12
4925         xorq    %r15,%r13
4926         rorxq   $14,%r10,%r14
4927         leaq    (%rbx,%r12,1),%rbx
4928         xorq    %r14,%r13
4929         movq    %rcx,%r15
4930         rorxq   $39,%rcx,%r12
4931         leaq    (%rbx,%r13,1),%rbx
4932         xorq    %rdx,%r15
4933         rorxq   $34,%rcx,%r14
4934         rorxq   $28,%rcx,%r13
4935         leaq    (%r9,%rbx,1),%r9
4936         andq    %r15,%rdi
4937         xorq    %r12,%r14
4938         xorq    %rdx,%rdi
4939         xorq    %r13,%r14
4940         leaq    (%rbx,%rdi,1),%rbx
4941         movq    %r10,%r12
4942         addq    104+128(%rsp),%rax
4943         andq    %r9,%r12
4944         rorxq   $41,%r9,%r13
4945         rorxq   $18,%r9,%rdi
4946         leaq    (%rbx,%r14,1),%rbx
4947         leaq    (%rax,%r12,1),%rax
4948         andnq   %r11,%r9,%r12
4949         xorq    %rdi,%r13
4950         rorxq   $14,%r9,%r14
4951         leaq    (%rax,%r12,1),%rax
4952         xorq    %r14,%r13
4953         movq    %rbx,%rdi
4954         rorxq   $39,%rbx,%r12
4955         leaq    (%rax,%r13,1),%rax
4956         xorq    %rcx,%rdi
4957         rorxq   $34,%rbx,%r14
4958         rorxq   $28,%rbx,%r13
4959         leaq    (%r8,%rax,1),%r8
4960         andq    %rdi,%r15
4961         xorq    %r12,%r14
4962         xorq    %rcx,%r15
4963         xorq    %r13,%r14
4964         leaq    (%rax,%r15,1),%rax
4965         movq    %r9,%r12
4966         addq    0(%rsp),%r11
4967         andq    %r8,%r12
4968         rorxq   $41,%r8,%r13
4969         rorxq   $18,%r8,%r15
4970         leaq    (%rax,%r14,1),%rax
4971         leaq    (%r11,%r12,1),%r11
4972         andnq   %r10,%r8,%r12
4973         xorq    %r15,%r13
4974         rorxq   $14,%r8,%r14
4975         leaq    (%r11,%r12,1),%r11
4976         xorq    %r14,%r13
4977         movq    %rax,%r15
4978         rorxq   $39,%rax,%r12
4979         leaq    (%r11,%r13,1),%r11
4980         xorq    %rbx,%r15
4981         rorxq   $34,%rax,%r14
4982         rorxq   $28,%rax,%r13
4983         leaq    (%rdx,%r11,1),%rdx
4984         andq    %r15,%rdi
4985         xorq    %r12,%r14
4986         xorq    %rbx,%rdi
4987         xorq    %r13,%r14
4988         leaq    (%r11,%rdi,1),%r11
4989         movq    %r8,%r12
4990         addq    8(%rsp),%r10
4991         andq    %rdx,%r12
4992         rorxq   $41,%rdx,%r13
4993         rorxq   $18,%rdx,%rdi
4994         leaq    (%r11,%r14,1),%r11
4995         leaq    (%r10,%r12,1),%r10
4996         andnq   %r9,%rdx,%r12
4997         xorq    %rdi,%r13
4998         rorxq   $14,%rdx,%r14
4999         leaq    (%r10,%r12,1),%r10
5000         xorq    %r14,%r13
5001         movq    %r11,%rdi
5002         rorxq   $39,%r11,%r12
5003         leaq    (%r10,%r13,1),%r10
5004         xorq    %rax,%rdi
5005         rorxq   $34,%r11,%r14
5006         rorxq   $28,%r11,%r13
5007         leaq    (%rcx,%r10,1),%rcx
5008         andq    %rdi,%r15
5009         xorq    %r12,%r14
5010         xorq    %rax,%r15
5011         xorq    %r13,%r14
5012         leaq    (%r10,%r15,1),%r10
5013         movq    %rdx,%r12
5014         addq    32(%rsp),%r9
5015         andq    %rcx,%r12
5016         rorxq   $41,%rcx,%r13
5017         rorxq   $18,%rcx,%r15
5018         leaq    (%r10,%r14,1),%r10
5019         leaq    (%r9,%r12,1),%r9
5020         andnq   %r8,%rcx,%r12
5021         xorq    %r15,%r13
5022         rorxq   $14,%rcx,%r14
5023         leaq    (%r9,%r12,1),%r9
5024         xorq    %r14,%r13
5025         movq    %r10,%r15
5026         rorxq   $39,%r10,%r12
5027         leaq    (%r9,%r13,1),%r9
5028         xorq    %r11,%r15
5029         rorxq   $34,%r10,%r14
5030         rorxq   $28,%r10,%r13
5031         leaq    (%rbx,%r9,1),%rbx
5032         andq    %r15,%rdi
5033         xorq    %r12,%r14
5034         xorq    %r11,%rdi
5035         xorq    %r13,%r14
5036         leaq    (%r9,%rdi,1),%r9
5037         movq    %rcx,%r12
5038         addq    40(%rsp),%r8
5039         andq    %rbx,%r12
5040         rorxq   $41,%rbx,%r13
5041         rorxq   $18,%rbx,%rdi
5042         leaq    (%r9,%r14,1),%r9
5043         leaq    (%r8,%r12,1),%r8
5044         andnq   %rdx,%rbx,%r12
5045         xorq    %rdi,%r13
5046         rorxq   $14,%rbx,%r14
5047         leaq    (%r8,%r12,1),%r8
5048         xorq    %r14,%r13
5049         movq    %r9,%rdi
5050         rorxq   $39,%r9,%r12
5051         leaq    (%r8,%r13,1),%r8
5052         xorq    %r10,%rdi
5053         rorxq   $34,%r9,%r14
5054         rorxq   $28,%r9,%r13
5055         leaq    (%rax,%r8,1),%rax
5056         andq    %rdi,%r15
5057         xorq    %r12,%r14
5058         xorq    %r10,%r15
5059         xorq    %r13,%r14
5060         leaq    (%r8,%r15,1),%r8
5061         movq    %rbx,%r12
5062         addq    64(%rsp),%rdx
5063         andq    %rax,%r12
5064         rorxq   $41,%rax,%r13
5065         rorxq   $18,%rax,%r15
5066         leaq    (%r8,%r14,1),%r8
5067         leaq    (%rdx,%r12,1),%rdx
5068         andnq   %rcx,%rax,%r12
5069         xorq    %r15,%r13
5070         rorxq   $14,%rax,%r14
5071         leaq    (%rdx,%r12,1),%rdx
5072         xorq    %r14,%r13
5073         movq    %r8,%r15
5074         rorxq   $39,%r8,%r12
5075         leaq    (%rdx,%r13,1),%rdx
5076         xorq    %r9,%r15
5077         rorxq   $34,%r8,%r14
5078         rorxq   $28,%r8,%r13
5079         leaq    (%r11,%rdx,1),%r11
5080         andq    %r15,%rdi
5081         xorq    %r12,%r14
5082         xorq    %r9,%rdi
5083         xorq    %r13,%r14
5084         leaq    (%rdx,%rdi,1),%rdx
5085         movq    %rax,%r12
5086         addq    72(%rsp),%rcx
5087         andq    %r11,%r12
5088         rorxq   $41,%r11,%r13
5089         rorxq   $18,%r11,%rdi
5090         leaq    (%rdx,%r14,1),%rdx
5091         leaq    (%rcx,%r12,1),%rcx
5092         andnq   %rbx,%r11,%r12
5093         xorq    %rdi,%r13
5094         rorxq   $14,%r11,%r14
5095         leaq    (%rcx,%r12,1),%rcx
5096         xorq    %r14,%r13
5097         movq    %rdx,%rdi
5098         rorxq   $39,%rdx,%r12
5099         leaq    (%rcx,%r13,1),%rcx
5100         xorq    %r8,%rdi
5101         rorxq   $34,%rdx,%r14
5102         rorxq   $28,%rdx,%r13
5103         leaq    (%r10,%rcx,1),%r10
5104         andq    %rdi,%r15
5105         xorq    %r12,%r14
5106         xorq    %r8,%r15
5107         xorq    %r13,%r14
5108         leaq    (%rcx,%r15,1),%rcx
5109         movq    %r11,%r12
5110         addq    96(%rsp),%rbx
5111         andq    %r10,%r12
5112         rorxq   $41,%r10,%r13
5113         rorxq   $18,%r10,%r15
5114         leaq    (%rcx,%r14,1),%rcx
5115         leaq    (%rbx,%r12,1),%rbx
5116         andnq   %rax,%r10,%r12
5117         xorq    %r15,%r13
5118         rorxq   $14,%r10,%r14
5119         leaq    (%rbx,%r12,1),%rbx
5120         xorq    %r14,%r13
5121         movq    %rcx,%r15
5122         rorxq   $39,%rcx,%r12
5123         leaq    (%rbx,%r13,1),%rbx
5124         xorq    %rdx,%r15
5125         rorxq   $34,%rcx,%r14
5126         rorxq   $28,%rcx,%r13
5127         leaq    (%r9,%rbx,1),%r9
5128         andq    %r15,%rdi
5129         xorq    %r12,%r14
5130         xorq    %rdx,%rdi
5131         xorq    %r13,%r14
5132         leaq    (%rbx,%rdi,1),%rbx
5133         movq    %r10,%r12
5134         addq    104(%rsp),%rax
5135         andq    %r9,%r12
5136         rorxq   $41,%r9,%r13
5137         rorxq   $18,%r9,%rdi
5138         leaq    (%rbx,%r14,1),%rbx
5139         leaq    (%rax,%r12,1),%rax
5140         andnq   %r11,%r9,%r12
5141         xorq    %rdi,%r13
5142         rorxq   $14,%r9,%r14
5143         leaq    (%rax,%r12,1),%rax
5144         xorq    %r14,%r13
5145         movq    %rbx,%rdi
5146         rorxq   $39,%rbx,%r12
5147         leaq    (%rax,%r13,1),%rax
5148         xorq    %rcx,%rdi
5149         rorxq   $34,%rbx,%r14
5150         rorxq   $28,%rbx,%r13
5151         leaq    (%r8,%rax,1),%r8
5152         andq    %rdi,%r15
5153         xorq    %r12,%r14
5154         xorq    %rcx,%r15
5155         xorq    %r13,%r14
5156         leaq    (%rax,%r15,1),%rax
5157         movq    %r9,%r12
5158         movq    1280(%rsp),%rdi
5159         addq    %r14,%rax
5160
5161         leaq    1152(%rsp),%rbp
5162
5163         addq    0(%rdi),%rax
5164         addq    8(%rdi),%rbx
5165         addq    16(%rdi),%rcx
5166         addq    24(%rdi),%rdx
5167         addq    32(%rdi),%r8
5168         addq    40(%rdi),%r9
5169         addq    48(%rdi),%r10
5170         addq    56(%rdi),%r11
5171
5172         movq    %rax,0(%rdi)
5173         movq    %rbx,8(%rdi)
5174         movq    %rcx,16(%rdi)
5175         movq    %rdx,24(%rdi)
5176         movq    %r8,32(%rdi)
5177         movq    %r9,40(%rdi)
5178         movq    %r10,48(%rdi)
5179         movq    %r11,56(%rdi)
5180
5181         cmpq    144(%rbp),%rsi
5182         je      .Ldone_avx2
5183
5184         xorq    %r14,%r14
5185         movq    %rbx,%rdi
5186         xorq    %rcx,%rdi
5187         movq    %r9,%r12
5188         jmp     .Lower_avx2
5189 .align  16
5190 .Lower_avx2:
5191         addq    0+16(%rbp),%r11
5192         andq    %r8,%r12
5193         rorxq   $41,%r8,%r13
5194         rorxq   $18,%r8,%r15
5195         leaq    (%rax,%r14,1),%rax
5196         leaq    (%r11,%r12,1),%r11
5197         andnq   %r10,%r8,%r12
5198         xorq    %r15,%r13
5199         rorxq   $14,%r8,%r14
5200         leaq    (%r11,%r12,1),%r11
5201         xorq    %r14,%r13
5202         movq    %rax,%r15
5203         rorxq   $39,%rax,%r12
5204         leaq    (%r11,%r13,1),%r11
5205         xorq    %rbx,%r15
5206         rorxq   $34,%rax,%r14
5207         rorxq   $28,%rax,%r13
5208         leaq    (%rdx,%r11,1),%rdx
5209         andq    %r15,%rdi
5210         xorq    %r12,%r14
5211         xorq    %rbx,%rdi
5212         xorq    %r13,%r14
5213         leaq    (%r11,%rdi,1),%r11
5214         movq    %r8,%r12
5215         addq    8+16(%rbp),%r10
5216         andq    %rdx,%r12
5217         rorxq   $41,%rdx,%r13
5218         rorxq   $18,%rdx,%rdi
5219         leaq    (%r11,%r14,1),%r11
5220         leaq    (%r10,%r12,1),%r10
5221         andnq   %r9,%rdx,%r12
5222         xorq    %rdi,%r13
5223         rorxq   $14,%rdx,%r14
5224         leaq    (%r10,%r12,1),%r10
5225         xorq    %r14,%r13
5226         movq    %r11,%rdi
5227         rorxq   $39,%r11,%r12
5228         leaq    (%r10,%r13,1),%r10
5229         xorq    %rax,%rdi
5230         rorxq   $34,%r11,%r14
5231         rorxq   $28,%r11,%r13
5232         leaq    (%rcx,%r10,1),%rcx
5233         andq    %rdi,%r15
5234         xorq    %r12,%r14
5235         xorq    %rax,%r15
5236         xorq    %r13,%r14
5237         leaq    (%r10,%r15,1),%r10
5238         movq    %rdx,%r12
5239         addq    32+16(%rbp),%r9
5240         andq    %rcx,%r12
5241         rorxq   $41,%rcx,%r13
5242         rorxq   $18,%rcx,%r15
5243         leaq    (%r10,%r14,1),%r10
5244         leaq    (%r9,%r12,1),%r9
5245         andnq   %r8,%rcx,%r12
5246         xorq    %r15,%r13
5247         rorxq   $14,%rcx,%r14
5248         leaq    (%r9,%r12,1),%r9
5249         xorq    %r14,%r13
5250         movq    %r10,%r15
5251         rorxq   $39,%r10,%r12
5252         leaq    (%r9,%r13,1),%r9
5253         xorq    %r11,%r15
5254         rorxq   $34,%r10,%r14
5255         rorxq   $28,%r10,%r13
5256         leaq    (%rbx,%r9,1),%rbx
5257         andq    %r15,%rdi
5258         xorq    %r12,%r14
5259         xorq    %r11,%rdi
5260         xorq    %r13,%r14
5261         leaq    (%r9,%rdi,1),%r9
5262         movq    %rcx,%r12
5263         addq    40+16(%rbp),%r8
5264         andq    %rbx,%r12
5265         rorxq   $41,%rbx,%r13
5266         rorxq   $18,%rbx,%rdi
5267         leaq    (%r9,%r14,1),%r9
5268         leaq    (%r8,%r12,1),%r8
5269         andnq   %rdx,%rbx,%r12
5270         xorq    %rdi,%r13
5271         rorxq   $14,%rbx,%r14
5272         leaq    (%r8,%r12,1),%r8
5273         xorq    %r14,%r13
5274         movq    %r9,%rdi
5275         rorxq   $39,%r9,%r12
5276         leaq    (%r8,%r13,1),%r8
5277         xorq    %r10,%rdi
5278         rorxq   $34,%r9,%r14
5279         rorxq   $28,%r9,%r13
5280         leaq    (%rax,%r8,1),%rax
5281         andq    %rdi,%r15
5282         xorq    %r12,%r14
5283         xorq    %r10,%r15
5284         xorq    %r13,%r14
5285         leaq    (%r8,%r15,1),%r8
5286         movq    %rbx,%r12
5287         addq    64+16(%rbp),%rdx
5288         andq    %rax,%r12
5289         rorxq   $41,%rax,%r13
5290         rorxq   $18,%rax,%r15
5291         leaq    (%r8,%r14,1),%r8
5292         leaq    (%rdx,%r12,1),%rdx
5293         andnq   %rcx,%rax,%r12
5294         xorq    %r15,%r13
5295         rorxq   $14,%rax,%r14
5296         leaq    (%rdx,%r12,1),%rdx
5297         xorq    %r14,%r13
5298         movq    %r8,%r15
5299         rorxq   $39,%r8,%r12
5300         leaq    (%rdx,%r13,1),%rdx
5301         xorq    %r9,%r15
5302         rorxq   $34,%r8,%r14
5303         rorxq   $28,%r8,%r13
5304         leaq    (%r11,%rdx,1),%r11
5305         andq    %r15,%rdi
5306         xorq    %r12,%r14
5307         xorq    %r9,%rdi
5308         xorq    %r13,%r14
5309         leaq    (%rdx,%rdi,1),%rdx
5310         movq    %rax,%r12
5311         addq    72+16(%rbp),%rcx
5312         andq    %r11,%r12
5313         rorxq   $41,%r11,%r13
5314         rorxq   $18,%r11,%rdi
5315         leaq    (%rdx,%r14,1),%rdx
5316         leaq    (%rcx,%r12,1),%rcx
5317         andnq   %rbx,%r11,%r12
5318         xorq    %rdi,%r13
5319         rorxq   $14,%r11,%r14
5320         leaq    (%rcx,%r12,1),%rcx
5321         xorq    %r14,%r13
5322         movq    %rdx,%rdi
5323         rorxq   $39,%rdx,%r12
5324         leaq    (%rcx,%r13,1),%rcx
5325         xorq    %r8,%rdi
5326         rorxq   $34,%rdx,%r14
5327         rorxq   $28,%rdx,%r13
5328         leaq    (%r10,%rcx,1),%r10
5329         andq    %rdi,%r15
5330         xorq    %r12,%r14
5331         xorq    %r8,%r15
5332         xorq    %r13,%r14
5333         leaq    (%rcx,%r15,1),%rcx
5334         movq    %r11,%r12
5335         addq    96+16(%rbp),%rbx
5336         andq    %r10,%r12
5337         rorxq   $41,%r10,%r13
5338         rorxq   $18,%r10,%r15
5339         leaq    (%rcx,%r14,1),%rcx
5340         leaq    (%rbx,%r12,1),%rbx
5341         andnq   %rax,%r10,%r12
5342         xorq    %r15,%r13
5343         rorxq   $14,%r10,%r14
5344         leaq    (%rbx,%r12,1),%rbx
5345         xorq    %r14,%r13
5346         movq    %rcx,%r15
5347         rorxq   $39,%rcx,%r12
5348         leaq    (%rbx,%r13,1),%rbx
5349         xorq    %rdx,%r15
5350         rorxq   $34,%rcx,%r14
5351         rorxq   $28,%rcx,%r13
5352         leaq    (%r9,%rbx,1),%r9
5353         andq    %r15,%rdi
5354         xorq    %r12,%r14
5355         xorq    %rdx,%rdi
5356         xorq    %r13,%r14
5357         leaq    (%rbx,%rdi,1),%rbx
5358         movq    %r10,%r12
5359         addq    104+16(%rbp),%rax
5360         andq    %r9,%r12
5361         rorxq   $41,%r9,%r13
5362         rorxq   $18,%r9,%rdi
5363         leaq    (%rbx,%r14,1),%rbx
5364         leaq    (%rax,%r12,1),%rax
5365         andnq   %r11,%r9,%r12
5366         xorq    %rdi,%r13
5367         rorxq   $14,%r9,%r14
5368         leaq    (%rax,%r12,1),%rax
5369         xorq    %r14,%r13
5370         movq    %rbx,%rdi
5371         rorxq   $39,%rbx,%r12
5372         leaq    (%rax,%r13,1),%rax
5373         xorq    %rcx,%rdi
5374         rorxq   $34,%rbx,%r14
5375         rorxq   $28,%rbx,%r13
5376         leaq    (%r8,%rax,1),%r8
5377         andq    %rdi,%r15
5378         xorq    %r12,%r14
5379         xorq    %rcx,%r15
5380         xorq    %r13,%r14
5381         leaq    (%rax,%r15,1),%rax
5382         movq    %r9,%r12
5383         leaq    -128(%rbp),%rbp
5384         cmpq    %rsp,%rbp
5385         jae     .Lower_avx2
5386
5387         movq    1280(%rsp),%rdi
5388         addq    %r14,%rax
5389
5390         leaq    1152(%rsp),%rsp
5391
5392         addq    0(%rdi),%rax
5393         addq    8(%rdi),%rbx
5394         addq    16(%rdi),%rcx
5395         addq    24(%rdi),%rdx
5396         addq    32(%rdi),%r8
5397         addq    40(%rdi),%r9
5398         leaq    256(%rsi),%rsi
5399         addq    48(%rdi),%r10
5400         movq    %rsi,%r12
5401         addq    56(%rdi),%r11
5402         cmpq    128+16(%rsp),%rsi
5403
5404         movq    %rax,0(%rdi)
5405         cmoveq  %rsp,%r12
5406         movq    %rbx,8(%rdi)
5407         movq    %rcx,16(%rdi)
5408         movq    %rdx,24(%rdi)
5409         movq    %r8,32(%rdi)
5410         movq    %r9,40(%rdi)
5411         movq    %r10,48(%rdi)
5412         movq    %r11,56(%rdi)
5413
5414         jbe     .Loop_avx2
5415         leaq    (%rsp),%rbp
5416
5417 .Ldone_avx2:
5418         leaq    (%rbp),%rsp
5419         movq    152(%rsp),%rsi
5420 .cfi_def_cfa    %rsi,8
5421         vzeroupper
5422         movq    -48(%rsi),%r15
5423 .cfi_restore    %r15
5424         movq    -40(%rsi),%r14
5425 .cfi_restore    %r14
5426         movq    -32(%rsi),%r13
5427 .cfi_restore    %r13
5428         movq    -24(%rsi),%r12
5429 .cfi_restore    %r12
5430         movq    -16(%rsi),%rbp
5431 .cfi_restore    %rbp
5432         movq    -8(%rsi),%rbx
5433 .cfi_restore    %rbx
5434         leaq    (%rsi),%rsp
5435 .cfi_def_cfa_register   %rsp
5436 .Lepilogue_avx2:
5437         .byte   0xf3,0xc3
5438 .cfi_endproc    
5439 .size   sha512_block_data_order_avx2,.-sha512_block_data_order_avx2