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