etc/services - sync with NetBSD-8
[minix.git] / crypto / external / bsd / openssl / lib / libcrypto / arch / x86_64 / aesni-sha1-x86_64.S
blob23a22090ed1ce6f858ea671898d1059c903cedd7
1 #include <machine/asm.h>
2 .text   
5 .globl  aesni_cbc_sha1_enc
6 .type   aesni_cbc_sha1_enc,@function
7 .align  16
8 aesni_cbc_sha1_enc:
10         movq    OPENSSL_ia32cap_P@GOTPCREL(%rip),%r10
11         bt      $28,4(%r10)
12         jc      aesni_cbc_sha1_enc_avx
13         jmp     aesni_cbc_sha1_enc_ssse3
14         .byte   0xf3,0xc3
15 .size   aesni_cbc_sha1_enc,.-aesni_cbc_sha1_enc
16 .type   aesni_cbc_sha1_enc_ssse3,@function
17 .align  16
18 aesni_cbc_sha1_enc_ssse3:
19         movq    8(%rsp),%r10
22         pushq   %rbx
23         pushq   %rbp
24         pushq   %r12
25         pushq   %r13
26         pushq   %r14
27         pushq   %r15
28         leaq    -104(%rsp),%rsp
31         movq    %rdi,%r12
32         movq    %rsi,%r13
33         movq    %rdx,%r14
34         movq    %rcx,%r15
35         movdqu  (%r8),%xmm11
36         movq    %r8,88(%rsp)
37         shlq    $6,%r14
38         subq    %r12,%r13
39         movl    240(%r15),%r8d
40         addq    %r10,%r14
42         leaq    K_XX_XX(%rip),%r11
43         movl    0(%r9),%eax
44         movl    4(%r9),%ebx
45         movl    8(%r9),%ecx
46         movl    12(%r9),%edx
47         movl    %ebx,%esi
48         movl    16(%r9),%ebp
50         movdqa  64(%r11),%xmm6
51         movdqa  0(%r11),%xmm9
52         movdqu  0(%r10),%xmm0
53         movdqu  16(%r10),%xmm1
54         movdqu  32(%r10),%xmm2
55         movdqu  48(%r10),%xmm3
56 .byte   102,15,56,0,198
57         addq    $64,%r10
58 .byte   102,15,56,0,206
59 .byte   102,15,56,0,214
60 .byte   102,15,56,0,222
61         paddd   %xmm9,%xmm0
62         paddd   %xmm9,%xmm1
63         paddd   %xmm9,%xmm2
64         movdqa  %xmm0,0(%rsp)
65         psubd   %xmm9,%xmm0
66         movdqa  %xmm1,16(%rsp)
67         psubd   %xmm9,%xmm1
68         movdqa  %xmm2,32(%rsp)
69         psubd   %xmm9,%xmm2
70         movups  (%r15),%xmm13
71         movups  16(%r15),%xmm14
72         jmp     .Loop_ssse3
73 .align  16
74 .Loop_ssse3:
75         movdqa  %xmm1,%xmm4
76         addl    0(%rsp),%ebp
77         movups  0(%r12),%xmm12
78         xorps   %xmm13,%xmm12
79         xorps   %xmm12,%xmm11
80 .byte   102,69,15,56,220,222
81         movups  32(%r15),%xmm15
82         xorl    %edx,%ecx
83         movdqa  %xmm3,%xmm8
84 .byte   102,15,58,15,224,8
85         movl    %eax,%edi
86         roll    $5,%eax
87         paddd   %xmm3,%xmm9
88         andl    %ecx,%esi
89         xorl    %edx,%ecx
90         psrldq  $4,%xmm8
91         xorl    %edx,%esi
92         addl    %eax,%ebp
93         pxor    %xmm0,%xmm4
94         rorl    $2,%ebx
95         addl    %esi,%ebp
96         pxor    %xmm2,%xmm8
97         addl    4(%rsp),%edx
98         xorl    %ecx,%ebx
99         movl    %ebp,%esi
100         roll    $5,%ebp
101         pxor    %xmm8,%xmm4
102         andl    %ebx,%edi
103         xorl    %ecx,%ebx
104         movdqa  %xmm9,48(%rsp)
105         xorl    %ecx,%edi
106 .byte   102,69,15,56,220,223
107         movups  48(%r15),%xmm14
108         addl    %ebp,%edx
109         movdqa  %xmm4,%xmm10
110         movdqa  %xmm4,%xmm8
111         rorl    $7,%eax
112         addl    %edi,%edx
113         addl    8(%rsp),%ecx
114         xorl    %ebx,%eax
115         pslldq  $12,%xmm10
116         paddd   %xmm4,%xmm4
117         movl    %edx,%edi
118         roll    $5,%edx
119         andl    %eax,%esi
120         xorl    %ebx,%eax
121         psrld   $31,%xmm8
122         xorl    %ebx,%esi
123         addl    %edx,%ecx
124         movdqa  %xmm10,%xmm9
125         rorl    $7,%ebp
126         addl    %esi,%ecx
127         psrld   $30,%xmm10
128         por     %xmm8,%xmm4
129         addl    12(%rsp),%ebx
130         xorl    %eax,%ebp
131         movl    %ecx,%esi
132         roll    $5,%ecx
133 .byte   102,69,15,56,220,222
134         movups  64(%r15),%xmm15
135         pslld   $2,%xmm9
136         pxor    %xmm10,%xmm4
137         andl    %ebp,%edi
138         xorl    %eax,%ebp
139         movdqa  0(%r11),%xmm10
140         xorl    %eax,%edi
141         addl    %ecx,%ebx
142         pxor    %xmm9,%xmm4
143         rorl    $7,%edx
144         addl    %edi,%ebx
145         movdqa  %xmm2,%xmm5
146         addl    16(%rsp),%eax
147         xorl    %ebp,%edx
148         movdqa  %xmm4,%xmm9
149 .byte   102,15,58,15,233,8
150         movl    %ebx,%edi
151         roll    $5,%ebx
152         paddd   %xmm4,%xmm10
153         andl    %edx,%esi
154         xorl    %ebp,%edx
155         psrldq  $4,%xmm9
156         xorl    %ebp,%esi
157         addl    %ebx,%eax
158         pxor    %xmm1,%xmm5
159         rorl    $7,%ecx
160         addl    %esi,%eax
161         pxor    %xmm3,%xmm9
162         addl    20(%rsp),%ebp
163 .byte   102,69,15,56,220,223
164         movups  80(%r15),%xmm14
165         xorl    %edx,%ecx
166         movl    %eax,%esi
167         roll    $5,%eax
168         pxor    %xmm9,%xmm5
169         andl    %ecx,%edi
170         xorl    %edx,%ecx
171         movdqa  %xmm10,0(%rsp)
172         xorl    %edx,%edi
173         addl    %eax,%ebp
174         movdqa  %xmm5,%xmm8
175         movdqa  %xmm5,%xmm9
176         rorl    $7,%ebx
177         addl    %edi,%ebp
178         addl    24(%rsp),%edx
179         xorl    %ecx,%ebx
180         pslldq  $12,%xmm8
181         paddd   %xmm5,%xmm5
182         movl    %ebp,%edi
183         roll    $5,%ebp
184         andl    %ebx,%esi
185         xorl    %ecx,%ebx
186         psrld   $31,%xmm9
187         xorl    %ecx,%esi
188 .byte   102,69,15,56,220,222
189         movups  96(%r15),%xmm15
190         addl    %ebp,%edx
191         movdqa  %xmm8,%xmm10
192         rorl    $7,%eax
193         addl    %esi,%edx
194         psrld   $30,%xmm8
195         por     %xmm9,%xmm5
196         addl    28(%rsp),%ecx
197         xorl    %ebx,%eax
198         movl    %edx,%esi
199         roll    $5,%edx
200         pslld   $2,%xmm10
201         pxor    %xmm8,%xmm5
202         andl    %eax,%edi
203         xorl    %ebx,%eax
204         movdqa  16(%r11),%xmm8
205         xorl    %ebx,%edi
206         addl    %edx,%ecx
207         pxor    %xmm10,%xmm5
208         rorl    $7,%ebp
209         addl    %edi,%ecx
210         movdqa  %xmm3,%xmm6
211         addl    32(%rsp),%ebx
212         xorl    %eax,%ebp
213         movdqa  %xmm5,%xmm10
214 .byte   102,15,58,15,242,8
215         movl    %ecx,%edi
216         roll    $5,%ecx
217 .byte   102,69,15,56,220,223
218         movups  112(%r15),%xmm14
219         paddd   %xmm5,%xmm8
220         andl    %ebp,%esi
221         xorl    %eax,%ebp
222         psrldq  $4,%xmm10
223         xorl    %eax,%esi
224         addl    %ecx,%ebx
225         pxor    %xmm2,%xmm6
226         rorl    $7,%edx
227         addl    %esi,%ebx
228         pxor    %xmm4,%xmm10
229         addl    36(%rsp),%eax
230         xorl    %ebp,%edx
231         movl    %ebx,%esi
232         roll    $5,%ebx
233         pxor    %xmm10,%xmm6
234         andl    %edx,%edi
235         xorl    %ebp,%edx
236         movdqa  %xmm8,16(%rsp)
237         xorl    %ebp,%edi
238         addl    %ebx,%eax
239         movdqa  %xmm6,%xmm9
240         movdqa  %xmm6,%xmm10
241         rorl    $7,%ecx
242         addl    %edi,%eax
243         addl    40(%rsp),%ebp
244 .byte   102,69,15,56,220,222
245         movups  128(%r15),%xmm15
246         xorl    %edx,%ecx
247         pslldq  $12,%xmm9
248         paddd   %xmm6,%xmm6
249         movl    %eax,%edi
250         roll    $5,%eax
251         andl    %ecx,%esi
252         xorl    %edx,%ecx
253         psrld   $31,%xmm10
254         xorl    %edx,%esi
255         addl    %eax,%ebp
256         movdqa  %xmm9,%xmm8
257         rorl    $7,%ebx
258         addl    %esi,%ebp
259         psrld   $30,%xmm9
260         por     %xmm10,%xmm6
261         addl    44(%rsp),%edx
262         xorl    %ecx,%ebx
263         movl    %ebp,%esi
264         roll    $5,%ebp
265         pslld   $2,%xmm8
266         pxor    %xmm9,%xmm6
267         andl    %ebx,%edi
268         xorl    %ecx,%ebx
269         movdqa  16(%r11),%xmm9
270         xorl    %ecx,%edi
271 .byte   102,69,15,56,220,223
272         movups  144(%r15),%xmm14
273         addl    %ebp,%edx
274         pxor    %xmm8,%xmm6
275         rorl    $7,%eax
276         addl    %edi,%edx
277         movdqa  %xmm4,%xmm7
278         addl    48(%rsp),%ecx
279         xorl    %ebx,%eax
280         movdqa  %xmm6,%xmm8
281 .byte   102,15,58,15,251,8
282         movl    %edx,%edi
283         roll    $5,%edx
284         paddd   %xmm6,%xmm9
285         andl    %eax,%esi
286         xorl    %ebx,%eax
287         psrldq  $4,%xmm8
288         xorl    %ebx,%esi
289         addl    %edx,%ecx
290         pxor    %xmm3,%xmm7
291         rorl    $7,%ebp
292         addl    %esi,%ecx
293         pxor    %xmm5,%xmm8
294         addl    52(%rsp),%ebx
295         xorl    %eax,%ebp
296         movl    %ecx,%esi
297         roll    $5,%ecx
298 .byte   102,69,15,56,220,222
299         movups  160(%r15),%xmm15
300         pxor    %xmm8,%xmm7
301         andl    %ebp,%edi
302         xorl    %eax,%ebp
303         movdqa  %xmm9,32(%rsp)
304         xorl    %eax,%edi
305         addl    %ecx,%ebx
306         movdqa  %xmm7,%xmm10
307         movdqa  %xmm7,%xmm8
308         rorl    $7,%edx
309         addl    %edi,%ebx
310         addl    56(%rsp),%eax
311         xorl    %ebp,%edx
312         pslldq  $12,%xmm10
313         paddd   %xmm7,%xmm7
314         movl    %ebx,%edi
315         roll    $5,%ebx
316         andl    %edx,%esi
317         xorl    %ebp,%edx
318         psrld   $31,%xmm8
319         xorl    %ebp,%esi
320         addl    %ebx,%eax
321         movdqa  %xmm10,%xmm9
322         rorl    $7,%ecx
323         addl    %esi,%eax
324         psrld   $30,%xmm10
325         por     %xmm8,%xmm7
326         addl    60(%rsp),%ebp
327         cmpl    $11,%r8d
328         jb      .Laesenclast1
329         movups  176(%r15),%xmm14
330 .byte   102,69,15,56,220,223
331         movups  192(%r15),%xmm15
332 .byte   102,69,15,56,220,222
333         je      .Laesenclast1
334         movups  208(%r15),%xmm14
335 .byte   102,69,15,56,220,223
336         movups  224(%r15),%xmm15
337 .byte   102,69,15,56,220,222
338 .Laesenclast1:
339 .byte   102,69,15,56,221,223
340         movups  16(%r15),%xmm14
341         xorl    %edx,%ecx
342         movl    %eax,%esi
343         roll    $5,%eax
344         pslld   $2,%xmm9
345         pxor    %xmm10,%xmm7
346         andl    %ecx,%edi
347         xorl    %edx,%ecx
348         movdqa  16(%r11),%xmm10
349         xorl    %edx,%edi
350         addl    %eax,%ebp
351         pxor    %xmm9,%xmm7
352         rorl    $7,%ebx
353         addl    %edi,%ebp
354         movdqa  %xmm7,%xmm9
355         addl    0(%rsp),%edx
356         pxor    %xmm4,%xmm0
357 .byte   102,68,15,58,15,206,8
358         xorl    %ecx,%ebx
359         movl    %ebp,%edi
360         roll    $5,%ebp
361         pxor    %xmm1,%xmm0
362         andl    %ebx,%esi
363         xorl    %ecx,%ebx
364         movdqa  %xmm10,%xmm8
365         paddd   %xmm7,%xmm10
366         xorl    %ecx,%esi
367         movups  16(%r12),%xmm12
368         xorps   %xmm13,%xmm12
369         movups  %xmm11,0(%r13,%r12,1)
370         xorps   %xmm12,%xmm11
371 .byte   102,69,15,56,220,222
372         movups  32(%r15),%xmm15
373         addl    %ebp,%edx
374         pxor    %xmm9,%xmm0
375         rorl    $7,%eax
376         addl    %esi,%edx
377         addl    4(%rsp),%ecx
378         xorl    %ebx,%eax
379         movdqa  %xmm0,%xmm9
380         movdqa  %xmm10,48(%rsp)
381         movl    %edx,%esi
382         roll    $5,%edx
383         andl    %eax,%edi
384         xorl    %ebx,%eax
385         pslld   $2,%xmm0
386         xorl    %ebx,%edi
387         addl    %edx,%ecx
388         psrld   $30,%xmm9
389         rorl    $7,%ebp
390         addl    %edi,%ecx
391         addl    8(%rsp),%ebx
392         xorl    %eax,%ebp
393         movl    %ecx,%edi
394         roll    $5,%ecx
395 .byte   102,69,15,56,220,223
396         movups  48(%r15),%xmm14
397         por     %xmm9,%xmm0
398         andl    %ebp,%esi
399         xorl    %eax,%ebp
400         movdqa  %xmm0,%xmm10
401         xorl    %eax,%esi
402         addl    %ecx,%ebx
403         rorl    $7,%edx
404         addl    %esi,%ebx
405         addl    12(%rsp),%eax
406         xorl    %ebp,%edx
407         movl    %ebx,%esi
408         roll    $5,%ebx
409         andl    %edx,%edi
410         xorl    %ebp,%edx
411         xorl    %ebp,%edi
412         addl    %ebx,%eax
413         rorl    $7,%ecx
414         addl    %edi,%eax
415         addl    16(%rsp),%ebp
416 .byte   102,69,15,56,220,222
417         movups  64(%r15),%xmm15
418         pxor    %xmm5,%xmm1
419 .byte   102,68,15,58,15,215,8
420         xorl    %edx,%esi
421         movl    %eax,%edi
422         roll    $5,%eax
423         pxor    %xmm2,%xmm1
424         xorl    %ecx,%esi
425         addl    %eax,%ebp
426         movdqa  %xmm8,%xmm9
427         paddd   %xmm0,%xmm8
428         rorl    $7,%ebx
429         addl    %esi,%ebp
430         pxor    %xmm10,%xmm1
431         addl    20(%rsp),%edx
432         xorl    %ecx,%edi
433         movl    %ebp,%esi
434         roll    $5,%ebp
435         movdqa  %xmm1,%xmm10
436         movdqa  %xmm8,0(%rsp)
437         xorl    %ebx,%edi
438         addl    %ebp,%edx
439         rorl    $7,%eax
440         addl    %edi,%edx
441         pslld   $2,%xmm1
442         addl    24(%rsp),%ecx
443         xorl    %ebx,%esi
444         psrld   $30,%xmm10
445         movl    %edx,%edi
446         roll    $5,%edx
447         xorl    %eax,%esi
448 .byte   102,69,15,56,220,223
449         movups  80(%r15),%xmm14
450         addl    %edx,%ecx
451         rorl    $7,%ebp
452         addl    %esi,%ecx
453         por     %xmm10,%xmm1
454         addl    28(%rsp),%ebx
455         xorl    %eax,%edi
456         movdqa  %xmm1,%xmm8
457         movl    %ecx,%esi
458         roll    $5,%ecx
459         xorl    %ebp,%edi
460         addl    %ecx,%ebx
461         rorl    $7,%edx
462         addl    %edi,%ebx
463         addl    32(%rsp),%eax
464         pxor    %xmm6,%xmm2
465 .byte   102,68,15,58,15,192,8
466         xorl    %ebp,%esi
467         movl    %ebx,%edi
468         roll    $5,%ebx
469         pxor    %xmm3,%xmm2
470         xorl    %edx,%esi
471         addl    %ebx,%eax
472         movdqa  32(%r11),%xmm10
473         paddd   %xmm1,%xmm9
474         rorl    $7,%ecx
475         addl    %esi,%eax
476         pxor    %xmm8,%xmm2
477         addl    36(%rsp),%ebp
478 .byte   102,69,15,56,220,222
479         movups  96(%r15),%xmm15
480         xorl    %edx,%edi
481         movl    %eax,%esi
482         roll    $5,%eax
483         movdqa  %xmm2,%xmm8
484         movdqa  %xmm9,16(%rsp)
485         xorl    %ecx,%edi
486         addl    %eax,%ebp
487         rorl    $7,%ebx
488         addl    %edi,%ebp
489         pslld   $2,%xmm2
490         addl    40(%rsp),%edx
491         xorl    %ecx,%esi
492         psrld   $30,%xmm8
493         movl    %ebp,%edi
494         roll    $5,%ebp
495         xorl    %ebx,%esi
496         addl    %ebp,%edx
497         rorl    $7,%eax
498         addl    %esi,%edx
499         por     %xmm8,%xmm2
500         addl    44(%rsp),%ecx
501         xorl    %ebx,%edi
502         movdqa  %xmm2,%xmm9
503         movl    %edx,%esi
504         roll    $5,%edx
505         xorl    %eax,%edi
506 .byte   102,69,15,56,220,223
507         movups  112(%r15),%xmm14
508         addl    %edx,%ecx
509         rorl    $7,%ebp
510         addl    %edi,%ecx
511         addl    48(%rsp),%ebx
512         pxor    %xmm7,%xmm3
513 .byte   102,68,15,58,15,201,8
514         xorl    %eax,%esi
515         movl    %ecx,%edi
516         roll    $5,%ecx
517         pxor    %xmm4,%xmm3
518         xorl    %ebp,%esi
519         addl    %ecx,%ebx
520         movdqa  %xmm10,%xmm8
521         paddd   %xmm2,%xmm10
522         rorl    $7,%edx
523         addl    %esi,%ebx
524         pxor    %xmm9,%xmm3
525         addl    52(%rsp),%eax
526         xorl    %ebp,%edi
527         movl    %ebx,%esi
528         roll    $5,%ebx
529         movdqa  %xmm3,%xmm9
530         movdqa  %xmm10,32(%rsp)
531         xorl    %edx,%edi
532         addl    %ebx,%eax
533         rorl    $7,%ecx
534         addl    %edi,%eax
535         pslld   $2,%xmm3
536         addl    56(%rsp),%ebp
537 .byte   102,69,15,56,220,222
538         movups  128(%r15),%xmm15
539         xorl    %edx,%esi
540         psrld   $30,%xmm9
541         movl    %eax,%edi
542         roll    $5,%eax
543         xorl    %ecx,%esi
544         addl    %eax,%ebp
545         rorl    $7,%ebx
546         addl    %esi,%ebp
547         por     %xmm9,%xmm3
548         addl    60(%rsp),%edx
549         xorl    %ecx,%edi
550         movdqa  %xmm3,%xmm10
551         movl    %ebp,%esi
552         roll    $5,%ebp
553         xorl    %ebx,%edi
554         addl    %ebp,%edx
555         rorl    $7,%eax
556         addl    %edi,%edx
557         addl    0(%rsp),%ecx
558         pxor    %xmm0,%xmm4
559 .byte   102,68,15,58,15,210,8
560         xorl    %ebx,%esi
561         movl    %edx,%edi
562         roll    $5,%edx
563         pxor    %xmm5,%xmm4
564         xorl    %eax,%esi
565 .byte   102,69,15,56,220,223
566         movups  144(%r15),%xmm14
567         addl    %edx,%ecx
568         movdqa  %xmm8,%xmm9
569         paddd   %xmm3,%xmm8
570         rorl    $7,%ebp
571         addl    %esi,%ecx
572         pxor    %xmm10,%xmm4
573         addl    4(%rsp),%ebx
574         xorl    %eax,%edi
575         movl    %ecx,%esi
576         roll    $5,%ecx
577         movdqa  %xmm4,%xmm10
578         movdqa  %xmm8,48(%rsp)
579         xorl    %ebp,%edi
580         addl    %ecx,%ebx
581         rorl    $7,%edx
582         addl    %edi,%ebx
583         pslld   $2,%xmm4
584         addl    8(%rsp),%eax
585         xorl    %ebp,%esi
586         psrld   $30,%xmm10
587         movl    %ebx,%edi
588         roll    $5,%ebx
589         xorl    %edx,%esi
590         addl    %ebx,%eax
591         rorl    $7,%ecx
592         addl    %esi,%eax
593         por     %xmm10,%xmm4
594         addl    12(%rsp),%ebp
595 .byte   102,69,15,56,220,222
596         movups  160(%r15),%xmm15
597         xorl    %edx,%edi
598         movdqa  %xmm4,%xmm8
599         movl    %eax,%esi
600         roll    $5,%eax
601         xorl    %ecx,%edi
602         addl    %eax,%ebp
603         rorl    $7,%ebx
604         addl    %edi,%ebp
605         addl    16(%rsp),%edx
606         pxor    %xmm1,%xmm5
607 .byte   102,68,15,58,15,195,8
608         xorl    %ecx,%esi
609         movl    %ebp,%edi
610         roll    $5,%ebp
611         pxor    %xmm6,%xmm5
612         xorl    %ebx,%esi
613         addl    %ebp,%edx
614         movdqa  %xmm9,%xmm10
615         paddd   %xmm4,%xmm9
616         rorl    $7,%eax
617         addl    %esi,%edx
618         pxor    %xmm8,%xmm5
619         addl    20(%rsp),%ecx
620         xorl    %ebx,%edi
621         movl    %edx,%esi
622         roll    $5,%edx
623         movdqa  %xmm5,%xmm8
624         movdqa  %xmm9,0(%rsp)
625         xorl    %eax,%edi
626         cmpl    $11,%r8d
627         jb      .Laesenclast2
628         movups  176(%r15),%xmm14
629 .byte   102,69,15,56,220,223
630         movups  192(%r15),%xmm15
631 .byte   102,69,15,56,220,222
632         je      .Laesenclast2
633         movups  208(%r15),%xmm14
634 .byte   102,69,15,56,220,223
635         movups  224(%r15),%xmm15
636 .byte   102,69,15,56,220,222
637 .Laesenclast2:
638 .byte   102,69,15,56,221,223
639         movups  16(%r15),%xmm14
640         addl    %edx,%ecx
641         rorl    $7,%ebp
642         addl    %edi,%ecx
643         pslld   $2,%xmm5
644         addl    24(%rsp),%ebx
645         xorl    %eax,%esi
646         psrld   $30,%xmm8
647         movl    %ecx,%edi
648         roll    $5,%ecx
649         xorl    %ebp,%esi
650         addl    %ecx,%ebx
651         rorl    $7,%edx
652         addl    %esi,%ebx
653         por     %xmm8,%xmm5
654         addl    28(%rsp),%eax
655         xorl    %ebp,%edi
656         movdqa  %xmm5,%xmm9
657         movl    %ebx,%esi
658         roll    $5,%ebx
659         xorl    %edx,%edi
660         addl    %ebx,%eax
661         rorl    $7,%ecx
662         addl    %edi,%eax
663         movl    %ecx,%edi
664         movups  32(%r12),%xmm12
665         xorps   %xmm13,%xmm12
666         movups  %xmm11,16(%r13,%r12,1)
667         xorps   %xmm12,%xmm11
668 .byte   102,69,15,56,220,222
669         movups  32(%r15),%xmm15
670         pxor    %xmm2,%xmm6
671 .byte   102,68,15,58,15,204,8
672         xorl    %edx,%ecx
673         addl    32(%rsp),%ebp
674         andl    %edx,%edi
675         pxor    %xmm7,%xmm6
676         andl    %ecx,%esi
677         rorl    $7,%ebx
678         movdqa  %xmm10,%xmm8
679         paddd   %xmm5,%xmm10
680         addl    %edi,%ebp
681         movl    %eax,%edi
682         pxor    %xmm9,%xmm6
683         roll    $5,%eax
684         addl    %esi,%ebp
685         xorl    %edx,%ecx
686         addl    %eax,%ebp
687         movdqa  %xmm6,%xmm9
688         movdqa  %xmm10,16(%rsp)
689         movl    %ebx,%esi
690         xorl    %ecx,%ebx
691         addl    36(%rsp),%edx
692         andl    %ecx,%esi
693         pslld   $2,%xmm6
694         andl    %ebx,%edi
695         rorl    $7,%eax
696         psrld   $30,%xmm9
697         addl    %esi,%edx
698         movl    %ebp,%esi
699         roll    $5,%ebp
700 .byte   102,69,15,56,220,223
701         movups  48(%r15),%xmm14
702         addl    %edi,%edx
703         xorl    %ecx,%ebx
704         addl    %ebp,%edx
705         por     %xmm9,%xmm6
706         movl    %eax,%edi
707         xorl    %ebx,%eax
708         movdqa  %xmm6,%xmm10
709         addl    40(%rsp),%ecx
710         andl    %ebx,%edi
711         andl    %eax,%esi
712         rorl    $7,%ebp
713         addl    %edi,%ecx
714         movl    %edx,%edi
715         roll    $5,%edx
716         addl    %esi,%ecx
717         xorl    %ebx,%eax
718         addl    %edx,%ecx
719         movl    %ebp,%esi
720         xorl    %eax,%ebp
721         addl    44(%rsp),%ebx
722         andl    %eax,%esi
723         andl    %ebp,%edi
724 .byte   102,69,15,56,220,222
725         movups  64(%r15),%xmm15
726         rorl    $7,%edx
727         addl    %esi,%ebx
728         movl    %ecx,%esi
729         roll    $5,%ecx
730         addl    %edi,%ebx
731         xorl    %eax,%ebp
732         addl    %ecx,%ebx
733         movl    %edx,%edi
734         pxor    %xmm3,%xmm7
735 .byte   102,68,15,58,15,213,8
736         xorl    %ebp,%edx
737         addl    48(%rsp),%eax
738         andl    %ebp,%edi
739         pxor    %xmm0,%xmm7
740         andl    %edx,%esi
741         rorl    $7,%ecx
742         movdqa  48(%r11),%xmm9
743         paddd   %xmm6,%xmm8
744         addl    %edi,%eax
745         movl    %ebx,%edi
746         pxor    %xmm10,%xmm7
747         roll    $5,%ebx
748         addl    %esi,%eax
749         xorl    %ebp,%edx
750         addl    %ebx,%eax
751         movdqa  %xmm7,%xmm10
752         movdqa  %xmm8,32(%rsp)
753         movl    %ecx,%esi
754 .byte   102,69,15,56,220,223
755         movups  80(%r15),%xmm14
756         xorl    %edx,%ecx
757         addl    52(%rsp),%ebp
758         andl    %edx,%esi
759         pslld   $2,%xmm7
760         andl    %ecx,%edi
761         rorl    $7,%ebx
762         psrld   $30,%xmm10
763         addl    %esi,%ebp
764         movl    %eax,%esi
765         roll    $5,%eax
766         addl    %edi,%ebp
767         xorl    %edx,%ecx
768         addl    %eax,%ebp
769         por     %xmm10,%xmm7
770         movl    %ebx,%edi
771         xorl    %ecx,%ebx
772         movdqa  %xmm7,%xmm8
773         addl    56(%rsp),%edx
774         andl    %ecx,%edi
775         andl    %ebx,%esi
776         rorl    $7,%eax
777         addl    %edi,%edx
778         movl    %ebp,%edi
779         roll    $5,%ebp
780 .byte   102,69,15,56,220,222
781         movups  96(%r15),%xmm15
782         addl    %esi,%edx
783         xorl    %ecx,%ebx
784         addl    %ebp,%edx
785         movl    %eax,%esi
786         xorl    %ebx,%eax
787         addl    60(%rsp),%ecx
788         andl    %ebx,%esi
789         andl    %eax,%edi
790         rorl    $7,%ebp
791         addl    %esi,%ecx
792         movl    %edx,%esi
793         roll    $5,%edx
794         addl    %edi,%ecx
795         xorl    %ebx,%eax
796         addl    %edx,%ecx
797         movl    %ebp,%edi
798         pxor    %xmm4,%xmm0
799 .byte   102,68,15,58,15,198,8
800         xorl    %eax,%ebp
801         addl    0(%rsp),%ebx
802         andl    %eax,%edi
803         pxor    %xmm1,%xmm0
804         andl    %ebp,%esi
805 .byte   102,69,15,56,220,223
806         movups  112(%r15),%xmm14
807         rorl    $7,%edx
808         movdqa  %xmm9,%xmm10
809         paddd   %xmm7,%xmm9
810         addl    %edi,%ebx
811         movl    %ecx,%edi
812         pxor    %xmm8,%xmm0
813         roll    $5,%ecx
814         addl    %esi,%ebx
815         xorl    %eax,%ebp
816         addl    %ecx,%ebx
817         movdqa  %xmm0,%xmm8
818         movdqa  %xmm9,48(%rsp)
819         movl    %edx,%esi
820         xorl    %ebp,%edx
821         addl    4(%rsp),%eax
822         andl    %ebp,%esi
823         pslld   $2,%xmm0
824         andl    %edx,%edi
825         rorl    $7,%ecx
826         psrld   $30,%xmm8
827         addl    %esi,%eax
828         movl    %ebx,%esi
829         roll    $5,%ebx
830         addl    %edi,%eax
831         xorl    %ebp,%edx
832         addl    %ebx,%eax
833         por     %xmm8,%xmm0
834         movl    %ecx,%edi
835 .byte   102,69,15,56,220,222
836         movups  128(%r15),%xmm15
837         xorl    %edx,%ecx
838         movdqa  %xmm0,%xmm9
839         addl    8(%rsp),%ebp
840         andl    %edx,%edi
841         andl    %ecx,%esi
842         rorl    $7,%ebx
843         addl    %edi,%ebp
844         movl    %eax,%edi
845         roll    $5,%eax
846         addl    %esi,%ebp
847         xorl    %edx,%ecx
848         addl    %eax,%ebp
849         movl    %ebx,%esi
850         xorl    %ecx,%ebx
851         addl    12(%rsp),%edx
852         andl    %ecx,%esi
853         andl    %ebx,%edi
854         rorl    $7,%eax
855         addl    %esi,%edx
856         movl    %ebp,%esi
857         roll    $5,%ebp
858 .byte   102,69,15,56,220,223
859         movups  144(%r15),%xmm14
860         addl    %edi,%edx
861         xorl    %ecx,%ebx
862         addl    %ebp,%edx
863         movl    %eax,%edi
864         pxor    %xmm5,%xmm1
865 .byte   102,68,15,58,15,207,8
866         xorl    %ebx,%eax
867         addl    16(%rsp),%ecx
868         andl    %ebx,%edi
869         pxor    %xmm2,%xmm1
870         andl    %eax,%esi
871         rorl    $7,%ebp
872         movdqa  %xmm10,%xmm8
873         paddd   %xmm0,%xmm10
874         addl    %edi,%ecx
875         movl    %edx,%edi
876         pxor    %xmm9,%xmm1
877         roll    $5,%edx
878         addl    %esi,%ecx
879         xorl    %ebx,%eax
880         addl    %edx,%ecx
881         movdqa  %xmm1,%xmm9
882         movdqa  %xmm10,0(%rsp)
883         movl    %ebp,%esi
884         xorl    %eax,%ebp
885         addl    20(%rsp),%ebx
886         andl    %eax,%esi
887         pslld   $2,%xmm1
888         andl    %ebp,%edi
889 .byte   102,69,15,56,220,222
890         movups  160(%r15),%xmm15
891         rorl    $7,%edx
892         psrld   $30,%xmm9
893         addl    %esi,%ebx
894         movl    %ecx,%esi
895         roll    $5,%ecx
896         addl    %edi,%ebx
897         xorl    %eax,%ebp
898         addl    %ecx,%ebx
899         por     %xmm9,%xmm1
900         movl    %edx,%edi
901         xorl    %ebp,%edx
902         movdqa  %xmm1,%xmm10
903         addl    24(%rsp),%eax
904         andl    %ebp,%edi
905         andl    %edx,%esi
906         rorl    $7,%ecx
907         addl    %edi,%eax
908         movl    %ebx,%edi
909         roll    $5,%ebx
910         addl    %esi,%eax
911         xorl    %ebp,%edx
912         addl    %ebx,%eax
913         movl    %ecx,%esi
914         cmpl    $11,%r8d
915         jb      .Laesenclast3
916         movups  176(%r15),%xmm14
917 .byte   102,69,15,56,220,223
918         movups  192(%r15),%xmm15
919 .byte   102,69,15,56,220,222
920         je      .Laesenclast3
921         movups  208(%r15),%xmm14
922 .byte   102,69,15,56,220,223
923         movups  224(%r15),%xmm15
924 .byte   102,69,15,56,220,222
925 .Laesenclast3:
926 .byte   102,69,15,56,221,223
927         movups  16(%r15),%xmm14
928         xorl    %edx,%ecx
929         addl    28(%rsp),%ebp
930         andl    %edx,%esi
931         andl    %ecx,%edi
932         rorl    $7,%ebx
933         addl    %esi,%ebp
934         movl    %eax,%esi
935         roll    $5,%eax
936         addl    %edi,%ebp
937         xorl    %edx,%ecx
938         addl    %eax,%ebp
939         movl    %ebx,%edi
940         pxor    %xmm6,%xmm2
941 .byte   102,68,15,58,15,208,8
942         xorl    %ecx,%ebx
943         addl    32(%rsp),%edx
944         andl    %ecx,%edi
945         pxor    %xmm3,%xmm2
946         andl    %ebx,%esi
947         rorl    $7,%eax
948         movdqa  %xmm8,%xmm9
949         paddd   %xmm1,%xmm8
950         addl    %edi,%edx
951         movl    %ebp,%edi
952         pxor    %xmm10,%xmm2
953         roll    $5,%ebp
954         movups  48(%r12),%xmm12
955         xorps   %xmm13,%xmm12
956         movups  %xmm11,32(%r13,%r12,1)
957         xorps   %xmm12,%xmm11
958 .byte   102,69,15,56,220,222
959         movups  32(%r15),%xmm15
960         addl    %esi,%edx
961         xorl    %ecx,%ebx
962         addl    %ebp,%edx
963         movdqa  %xmm2,%xmm10
964         movdqa  %xmm8,16(%rsp)
965         movl    %eax,%esi
966         xorl    %ebx,%eax
967         addl    36(%rsp),%ecx
968         andl    %ebx,%esi
969         pslld   $2,%xmm2
970         andl    %eax,%edi
971         rorl    $7,%ebp
972         psrld   $30,%xmm10
973         addl    %esi,%ecx
974         movl    %edx,%esi
975         roll    $5,%edx
976         addl    %edi,%ecx
977         xorl    %ebx,%eax
978         addl    %edx,%ecx
979         por     %xmm10,%xmm2
980         movl    %ebp,%edi
981         xorl    %eax,%ebp
982         movdqa  %xmm2,%xmm8
983         addl    40(%rsp),%ebx
984         andl    %eax,%edi
985         andl    %ebp,%esi
986 .byte   102,69,15,56,220,223
987         movups  48(%r15),%xmm14
988         rorl    $7,%edx
989         addl    %edi,%ebx
990         movl    %ecx,%edi
991         roll    $5,%ecx
992         addl    %esi,%ebx
993         xorl    %eax,%ebp
994         addl    %ecx,%ebx
995         movl    %edx,%esi
996         xorl    %ebp,%edx
997         addl    44(%rsp),%eax
998         andl    %ebp,%esi
999         andl    %edx,%edi
1000         rorl    $7,%ecx
1001         addl    %esi,%eax
1002         movl    %ebx,%esi
1003         roll    $5,%ebx
1004         addl    %edi,%eax
1005         xorl    %ebp,%edx
1006         addl    %ebx,%eax
1007         addl    48(%rsp),%ebp
1008 .byte   102,69,15,56,220,222
1009         movups  64(%r15),%xmm15
1010         pxor    %xmm7,%xmm3
1011 .byte   102,68,15,58,15,193,8
1012         xorl    %edx,%esi
1013         movl    %eax,%edi
1014         roll    $5,%eax
1015         pxor    %xmm4,%xmm3
1016         xorl    %ecx,%esi
1017         addl    %eax,%ebp
1018         movdqa  %xmm9,%xmm10
1019         paddd   %xmm2,%xmm9
1020         rorl    $7,%ebx
1021         addl    %esi,%ebp
1022         pxor    %xmm8,%xmm3
1023         addl    52(%rsp),%edx
1024         xorl    %ecx,%edi
1025         movl    %ebp,%esi
1026         roll    $5,%ebp
1027         movdqa  %xmm3,%xmm8
1028         movdqa  %xmm9,32(%rsp)
1029         xorl    %ebx,%edi
1030         addl    %ebp,%edx
1031         rorl    $7,%eax
1032         addl    %edi,%edx
1033         pslld   $2,%xmm3
1034         addl    56(%rsp),%ecx
1035         xorl    %ebx,%esi
1036         psrld   $30,%xmm8
1037         movl    %edx,%edi
1038         roll    $5,%edx
1039         xorl    %eax,%esi
1040 .byte   102,69,15,56,220,223
1041         movups  80(%r15),%xmm14
1042         addl    %edx,%ecx
1043         rorl    $7,%ebp
1044         addl    %esi,%ecx
1045         por     %xmm8,%xmm3
1046         addl    60(%rsp),%ebx
1047         xorl    %eax,%edi
1048         movl    %ecx,%esi
1049         roll    $5,%ecx
1050         xorl    %ebp,%edi
1051         addl    %ecx,%ebx
1052         rorl    $7,%edx
1053         addl    %edi,%ebx
1054         addl    0(%rsp),%eax
1055         paddd   %xmm3,%xmm10
1056         xorl    %ebp,%esi
1057         movl    %ebx,%edi
1058         roll    $5,%ebx
1059         xorl    %edx,%esi
1060         movdqa  %xmm10,48(%rsp)
1061         addl    %ebx,%eax
1062         rorl    $7,%ecx
1063         addl    %esi,%eax
1064         addl    4(%rsp),%ebp
1065 .byte   102,69,15,56,220,222
1066         movups  96(%r15),%xmm15
1067         xorl    %edx,%edi
1068         movl    %eax,%esi
1069         roll    $5,%eax
1070         xorl    %ecx,%edi
1071         addl    %eax,%ebp
1072         rorl    $7,%ebx
1073         addl    %edi,%ebp
1074         addl    8(%rsp),%edx
1075         xorl    %ecx,%esi
1076         movl    %ebp,%edi
1077         roll    $5,%ebp
1078         xorl    %ebx,%esi
1079         addl    %ebp,%edx
1080         rorl    $7,%eax
1081         addl    %esi,%edx
1082         addl    12(%rsp),%ecx
1083         xorl    %ebx,%edi
1084         movl    %edx,%esi
1085         roll    $5,%edx
1086         xorl    %eax,%edi
1087 .byte   102,69,15,56,220,223
1088         movups  112(%r15),%xmm14
1089         addl    %edx,%ecx
1090         rorl    $7,%ebp
1091         addl    %edi,%ecx
1092         cmpq    %r14,%r10
1093         je      .Ldone_ssse3
1094         movdqa  64(%r11),%xmm6
1095         movdqa  0(%r11),%xmm9
1096         movdqu  0(%r10),%xmm0
1097         movdqu  16(%r10),%xmm1
1098         movdqu  32(%r10),%xmm2
1099         movdqu  48(%r10),%xmm3
1100 .byte   102,15,56,0,198
1101         addq    $64,%r10
1102         addl    16(%rsp),%ebx
1103         xorl    %eax,%esi
1104 .byte   102,15,56,0,206
1105         movl    %ecx,%edi
1106         roll    $5,%ecx
1107         paddd   %xmm9,%xmm0
1108         xorl    %ebp,%esi
1109         addl    %ecx,%ebx
1110         rorl    $7,%edx
1111         addl    %esi,%ebx
1112         movdqa  %xmm0,0(%rsp)
1113         addl    20(%rsp),%eax
1114         xorl    %ebp,%edi
1115         psubd   %xmm9,%xmm0
1116         movl    %ebx,%esi
1117         roll    $5,%ebx
1118         xorl    %edx,%edi
1119         addl    %ebx,%eax
1120         rorl    $7,%ecx
1121         addl    %edi,%eax
1122         addl    24(%rsp),%ebp
1123 .byte   102,69,15,56,220,222
1124         movups  128(%r15),%xmm15
1125         xorl    %edx,%esi
1126         movl    %eax,%edi
1127         roll    $5,%eax
1128         xorl    %ecx,%esi
1129         addl    %eax,%ebp
1130         rorl    $7,%ebx
1131         addl    %esi,%ebp
1132         addl    28(%rsp),%edx
1133         xorl    %ecx,%edi
1134         movl    %ebp,%esi
1135         roll    $5,%ebp
1136         xorl    %ebx,%edi
1137         addl    %ebp,%edx
1138         rorl    $7,%eax
1139         addl    %edi,%edx
1140         addl    32(%rsp),%ecx
1141         xorl    %ebx,%esi
1142 .byte   102,15,56,0,214
1143         movl    %edx,%edi
1144         roll    $5,%edx
1145         paddd   %xmm9,%xmm1
1146         xorl    %eax,%esi
1147 .byte   102,69,15,56,220,223
1148         movups  144(%r15),%xmm14
1149         addl    %edx,%ecx
1150         rorl    $7,%ebp
1151         addl    %esi,%ecx
1152         movdqa  %xmm1,16(%rsp)
1153         addl    36(%rsp),%ebx
1154         xorl    %eax,%edi
1155         psubd   %xmm9,%xmm1
1156         movl    %ecx,%esi
1157         roll    $5,%ecx
1158         xorl    %ebp,%edi
1159         addl    %ecx,%ebx
1160         rorl    $7,%edx
1161         addl    %edi,%ebx
1162         addl    40(%rsp),%eax
1163         xorl    %ebp,%esi
1164         movl    %ebx,%edi
1165         roll    $5,%ebx
1166         xorl    %edx,%esi
1167         addl    %ebx,%eax
1168         rorl    $7,%ecx
1169         addl    %esi,%eax
1170         addl    44(%rsp),%ebp
1171 .byte   102,69,15,56,220,222
1172         movups  160(%r15),%xmm15
1173         xorl    %edx,%edi
1174         movl    %eax,%esi
1175         roll    $5,%eax
1176         xorl    %ecx,%edi
1177         addl    %eax,%ebp
1178         rorl    $7,%ebx
1179         addl    %edi,%ebp
1180         addl    48(%rsp),%edx
1181         xorl    %ecx,%esi
1182 .byte   102,15,56,0,222
1183         movl    %ebp,%edi
1184         roll    $5,%ebp
1185         paddd   %xmm9,%xmm2
1186         xorl    %ebx,%esi
1187         addl    %ebp,%edx
1188         rorl    $7,%eax
1189         addl    %esi,%edx
1190         movdqa  %xmm2,32(%rsp)
1191         addl    52(%rsp),%ecx
1192         xorl    %ebx,%edi
1193         psubd   %xmm9,%xmm2
1194         movl    %edx,%esi
1195         roll    $5,%edx
1196         xorl    %eax,%edi
1197         cmpl    $11,%r8d
1198         jb      .Laesenclast4
1199         movups  176(%r15),%xmm14
1200 .byte   102,69,15,56,220,223
1201         movups  192(%r15),%xmm15
1202 .byte   102,69,15,56,220,222
1203         je      .Laesenclast4
1204         movups  208(%r15),%xmm14
1205 .byte   102,69,15,56,220,223
1206         movups  224(%r15),%xmm15
1207 .byte   102,69,15,56,220,222
1208 .Laesenclast4:
1209 .byte   102,69,15,56,221,223
1210         movups  16(%r15),%xmm14
1211         addl    %edx,%ecx
1212         rorl    $7,%ebp
1213         addl    %edi,%ecx
1214         addl    56(%rsp),%ebx
1215         xorl    %eax,%esi
1216         movl    %ecx,%edi
1217         roll    $5,%ecx
1218         xorl    %ebp,%esi
1219         addl    %ecx,%ebx
1220         rorl    $7,%edx
1221         addl    %esi,%ebx
1222         addl    60(%rsp),%eax
1223         xorl    %ebp,%edi
1224         movl    %ebx,%esi
1225         roll    $5,%ebx
1226         xorl    %edx,%edi
1227         addl    %ebx,%eax
1228         rorl    $7,%ecx
1229         addl    %edi,%eax
1230         movups  %xmm11,48(%r13,%r12,1)
1231         leaq    64(%r12),%r12
1233         addl    0(%r9),%eax
1234         addl    4(%r9),%esi
1235         addl    8(%r9),%ecx
1236         addl    12(%r9),%edx
1237         movl    %eax,0(%r9)
1238         addl    16(%r9),%ebp
1239         movl    %esi,4(%r9)
1240         movl    %esi,%ebx
1241         movl    %ecx,8(%r9)
1242         movl    %edx,12(%r9)
1243         movl    %ebp,16(%r9)
1244         jmp     .Loop_ssse3
1246 .align  16
1247 .Ldone_ssse3:
1248         addl    16(%rsp),%ebx
1249         xorl    %eax,%esi
1250         movl    %ecx,%edi
1251         roll    $5,%ecx
1252         xorl    %ebp,%esi
1253         addl    %ecx,%ebx
1254         rorl    $7,%edx
1255         addl    %esi,%ebx
1256         addl    20(%rsp),%eax
1257         xorl    %ebp,%edi
1258         movl    %ebx,%esi
1259         roll    $5,%ebx
1260         xorl    %edx,%edi
1261         addl    %ebx,%eax
1262         rorl    $7,%ecx
1263         addl    %edi,%eax
1264         addl    24(%rsp),%ebp
1265 .byte   102,69,15,56,220,222
1266         movups  128(%r15),%xmm15
1267         xorl    %edx,%esi
1268         movl    %eax,%edi
1269         roll    $5,%eax
1270         xorl    %ecx,%esi
1271         addl    %eax,%ebp
1272         rorl    $7,%ebx
1273         addl    %esi,%ebp
1274         addl    28(%rsp),%edx
1275         xorl    %ecx,%edi
1276         movl    %ebp,%esi
1277         roll    $5,%ebp
1278         xorl    %ebx,%edi
1279         addl    %ebp,%edx
1280         rorl    $7,%eax
1281         addl    %edi,%edx
1282         addl    32(%rsp),%ecx
1283         xorl    %ebx,%esi
1284         movl    %edx,%edi
1285         roll    $5,%edx
1286         xorl    %eax,%esi
1287 .byte   102,69,15,56,220,223
1288         movups  144(%r15),%xmm14
1289         addl    %edx,%ecx
1290         rorl    $7,%ebp
1291         addl    %esi,%ecx
1292         addl    36(%rsp),%ebx
1293         xorl    %eax,%edi
1294         movl    %ecx,%esi
1295         roll    $5,%ecx
1296         xorl    %ebp,%edi
1297         addl    %ecx,%ebx
1298         rorl    $7,%edx
1299         addl    %edi,%ebx
1300         addl    40(%rsp),%eax
1301         xorl    %ebp,%esi
1302         movl    %ebx,%edi
1303         roll    $5,%ebx
1304         xorl    %edx,%esi
1305         addl    %ebx,%eax
1306         rorl    $7,%ecx
1307         addl    %esi,%eax
1308         addl    44(%rsp),%ebp
1309 .byte   102,69,15,56,220,222
1310         movups  160(%r15),%xmm15
1311         xorl    %edx,%edi
1312         movl    %eax,%esi
1313         roll    $5,%eax
1314         xorl    %ecx,%edi
1315         addl    %eax,%ebp
1316         rorl    $7,%ebx
1317         addl    %edi,%ebp
1318         addl    48(%rsp),%edx
1319         xorl    %ecx,%esi
1320         movl    %ebp,%edi
1321         roll    $5,%ebp
1322         xorl    %ebx,%esi
1323         addl    %ebp,%edx
1324         rorl    $7,%eax
1325         addl    %esi,%edx
1326         addl    52(%rsp),%ecx
1327         xorl    %ebx,%edi
1328         movl    %edx,%esi
1329         roll    $5,%edx
1330         xorl    %eax,%edi
1331         cmpl    $11,%r8d
1332         jb      .Laesenclast5
1333         movups  176(%r15),%xmm14
1334 .byte   102,69,15,56,220,223
1335         movups  192(%r15),%xmm15
1336 .byte   102,69,15,56,220,222
1337         je      .Laesenclast5
1338         movups  208(%r15),%xmm14
1339 .byte   102,69,15,56,220,223
1340         movups  224(%r15),%xmm15
1341 .byte   102,69,15,56,220,222
1342 .Laesenclast5:
1343 .byte   102,69,15,56,221,223
1344         movups  16(%r15),%xmm14
1345         addl    %edx,%ecx
1346         rorl    $7,%ebp
1347         addl    %edi,%ecx
1348         addl    56(%rsp),%ebx
1349         xorl    %eax,%esi
1350         movl    %ecx,%edi
1351         roll    $5,%ecx
1352         xorl    %ebp,%esi
1353         addl    %ecx,%ebx
1354         rorl    $7,%edx
1355         addl    %esi,%ebx
1356         addl    60(%rsp),%eax
1357         xorl    %ebp,%edi
1358         movl    %ebx,%esi
1359         roll    $5,%ebx
1360         xorl    %edx,%edi
1361         addl    %ebx,%eax
1362         rorl    $7,%ecx
1363         addl    %edi,%eax
1364         movups  %xmm11,48(%r13,%r12,1)
1365         movq    88(%rsp),%r8
1367         addl    0(%r9),%eax
1368         addl    4(%r9),%esi
1369         addl    8(%r9),%ecx
1370         movl    %eax,0(%r9)
1371         addl    12(%r9),%edx
1372         movl    %esi,4(%r9)
1373         addl    16(%r9),%ebp
1374         movl    %ecx,8(%r9)
1375         movl    %edx,12(%r9)
1376         movl    %ebp,16(%r9)
1377         movups  %xmm11,(%r8)
1378         leaq    104(%rsp),%rsi
1379         movq    0(%rsi),%r15
1380         movq    8(%rsi),%r14
1381         movq    16(%rsi),%r13
1382         movq    24(%rsi),%r12
1383         movq    32(%rsi),%rbp
1384         movq    40(%rsi),%rbx
1385         leaq    48(%rsi),%rsp
1386 .Lepilogue_ssse3:
1387         .byte   0xf3,0xc3
1388 .size   aesni_cbc_sha1_enc_ssse3,.-aesni_cbc_sha1_enc_ssse3
1389 .type   aesni_cbc_sha1_enc_avx,@function
1390 .align  16
1391 aesni_cbc_sha1_enc_avx:
1392         movq    8(%rsp),%r10
1395         pushq   %rbx
1396         pushq   %rbp
1397         pushq   %r12
1398         pushq   %r13
1399         pushq   %r14
1400         pushq   %r15
1401         leaq    -104(%rsp),%rsp
1404         vzeroall
1405         movq    %rdi,%r12
1406         movq    %rsi,%r13
1407         movq    %rdx,%r14
1408         movq    %rcx,%r15
1409         vmovdqu (%r8),%xmm11
1410         movq    %r8,88(%rsp)
1411         shlq    $6,%r14
1412         subq    %r12,%r13
1413         movl    240(%r15),%r8d
1414         addq    $112,%r15
1415         addq    %r10,%r14
1417         leaq    K_XX_XX(%rip),%r11
1418         movl    0(%r9),%eax
1419         movl    4(%r9),%ebx
1420         movl    8(%r9),%ecx
1421         movl    12(%r9),%edx
1422         movl    %ebx,%esi
1423         movl    16(%r9),%ebp
1425         vmovdqa 64(%r11),%xmm6
1426         vmovdqa 0(%r11),%xmm9
1427         vmovdqu 0(%r10),%xmm0
1428         vmovdqu 16(%r10),%xmm1
1429         vmovdqu 32(%r10),%xmm2
1430         vmovdqu 48(%r10),%xmm3
1431         vpshufb %xmm6,%xmm0,%xmm0
1432         addq    $64,%r10
1433         vpshufb %xmm6,%xmm1,%xmm1
1434         vpshufb %xmm6,%xmm2,%xmm2
1435         vpshufb %xmm6,%xmm3,%xmm3
1436         vpaddd  %xmm9,%xmm0,%xmm4
1437         vpaddd  %xmm9,%xmm1,%xmm5
1438         vpaddd  %xmm9,%xmm2,%xmm6
1439         vmovdqa %xmm4,0(%rsp)
1440         vmovdqa %xmm5,16(%rsp)
1441         vmovdqa %xmm6,32(%rsp)
1442         vmovups -112(%r15),%xmm13
1443         vmovups 16-112(%r15),%xmm14
1444         jmp     .Loop_avx
1445 .align  16
1446 .Loop_avx:
1447         addl    0(%rsp),%ebp
1448         vmovups 0(%r12),%xmm12
1449         vxorps  %xmm13,%xmm12,%xmm12
1450         vxorps  %xmm12,%xmm11,%xmm11
1451         vaesenc %xmm14,%xmm11,%xmm11
1452         vmovups -80(%r15),%xmm15
1453         xorl    %edx,%ecx
1454         vpalignr        $8,%xmm0,%xmm1,%xmm4
1455         movl    %eax,%edi
1456         shldl   $5,%eax,%eax
1457         vpaddd  %xmm3,%xmm9,%xmm9
1458         andl    %ecx,%esi
1459         xorl    %edx,%ecx
1460         vpsrldq $4,%xmm3,%xmm8
1461         xorl    %edx,%esi
1462         addl    %eax,%ebp
1463         vpxor   %xmm0,%xmm4,%xmm4
1464         shrdl   $2,%ebx,%ebx
1465         addl    %esi,%ebp
1466         vpxor   %xmm2,%xmm8,%xmm8
1467         addl    4(%rsp),%edx
1468         xorl    %ecx,%ebx
1469         movl    %ebp,%esi
1470         shldl   $5,%ebp,%ebp
1471         vpxor   %xmm8,%xmm4,%xmm4
1472         andl    %ebx,%edi
1473         xorl    %ecx,%ebx
1474         vmovdqa %xmm9,48(%rsp)
1475         xorl    %ecx,%edi
1476         vaesenc %xmm15,%xmm11,%xmm11
1477         vmovups -64(%r15),%xmm14
1478         addl    %ebp,%edx
1479         vpsrld  $31,%xmm4,%xmm8
1480         shrdl   $7,%eax,%eax
1481         addl    %edi,%edx
1482         addl    8(%rsp),%ecx
1483         xorl    %ebx,%eax
1484         vpslldq $12,%xmm4,%xmm10
1485         vpaddd  %xmm4,%xmm4,%xmm4
1486         movl    %edx,%edi
1487         shldl   $5,%edx,%edx
1488         andl    %eax,%esi
1489         xorl    %ebx,%eax
1490         vpsrld  $30,%xmm10,%xmm9
1491         vpor    %xmm8,%xmm4,%xmm4
1492         xorl    %ebx,%esi
1493         addl    %edx,%ecx
1494         shrdl   $7,%ebp,%ebp
1495         addl    %esi,%ecx
1496         vpslld  $2,%xmm10,%xmm10
1497         vpxor   %xmm9,%xmm4,%xmm4
1498         addl    12(%rsp),%ebx
1499         xorl    %eax,%ebp
1500         movl    %ecx,%esi
1501         shldl   $5,%ecx,%ecx
1502         vaesenc %xmm14,%xmm11,%xmm11
1503         vmovups -48(%r15),%xmm15
1504         vpxor   %xmm10,%xmm4,%xmm4
1505         andl    %ebp,%edi
1506         xorl    %eax,%ebp
1507         vmovdqa 0(%r11),%xmm10
1508         xorl    %eax,%edi
1509         addl    %ecx,%ebx
1510         shrdl   $7,%edx,%edx
1511         addl    %edi,%ebx
1512         addl    16(%rsp),%eax
1513         xorl    %ebp,%edx
1514         vpalignr        $8,%xmm1,%xmm2,%xmm5
1515         movl    %ebx,%edi
1516         shldl   $5,%ebx,%ebx
1517         vpaddd  %xmm4,%xmm10,%xmm10
1518         andl    %edx,%esi
1519         xorl    %ebp,%edx
1520         vpsrldq $4,%xmm4,%xmm9
1521         xorl    %ebp,%esi
1522         addl    %ebx,%eax
1523         vpxor   %xmm1,%xmm5,%xmm5
1524         shrdl   $7,%ecx,%ecx
1525         addl    %esi,%eax
1526         vpxor   %xmm3,%xmm9,%xmm9
1527         addl    20(%rsp),%ebp
1528         vaesenc %xmm15,%xmm11,%xmm11
1529         vmovups -32(%r15),%xmm14
1530         xorl    %edx,%ecx
1531         movl    %eax,%esi
1532         shldl   $5,%eax,%eax
1533         vpxor   %xmm9,%xmm5,%xmm5
1534         andl    %ecx,%edi
1535         xorl    %edx,%ecx
1536         vmovdqa %xmm10,0(%rsp)
1537         xorl    %edx,%edi
1538         addl    %eax,%ebp
1539         vpsrld  $31,%xmm5,%xmm9
1540         shrdl   $7,%ebx,%ebx
1541         addl    %edi,%ebp
1542         addl    24(%rsp),%edx
1543         xorl    %ecx,%ebx
1544         vpslldq $12,%xmm5,%xmm8
1545         vpaddd  %xmm5,%xmm5,%xmm5
1546         movl    %ebp,%edi
1547         shldl   $5,%ebp,%ebp
1548         andl    %ebx,%esi
1549         xorl    %ecx,%ebx
1550         vpsrld  $30,%xmm8,%xmm10
1551         vpor    %xmm9,%xmm5,%xmm5
1552         xorl    %ecx,%esi
1553         vaesenc %xmm14,%xmm11,%xmm11
1554         vmovups -16(%r15),%xmm15
1555         addl    %ebp,%edx
1556         shrdl   $7,%eax,%eax
1557         addl    %esi,%edx
1558         vpslld  $2,%xmm8,%xmm8
1559         vpxor   %xmm10,%xmm5,%xmm5
1560         addl    28(%rsp),%ecx
1561         xorl    %ebx,%eax
1562         movl    %edx,%esi
1563         shldl   $5,%edx,%edx
1564         vpxor   %xmm8,%xmm5,%xmm5
1565         andl    %eax,%edi
1566         xorl    %ebx,%eax
1567         vmovdqa 16(%r11),%xmm8
1568         xorl    %ebx,%edi
1569         addl    %edx,%ecx
1570         shrdl   $7,%ebp,%ebp
1571         addl    %edi,%ecx
1572         addl    32(%rsp),%ebx
1573         xorl    %eax,%ebp
1574         vpalignr        $8,%xmm2,%xmm3,%xmm6
1575         movl    %ecx,%edi
1576         shldl   $5,%ecx,%ecx
1577         vaesenc %xmm15,%xmm11,%xmm11
1578         vmovups 0(%r15),%xmm14
1579         vpaddd  %xmm5,%xmm8,%xmm8
1580         andl    %ebp,%esi
1581         xorl    %eax,%ebp
1582         vpsrldq $4,%xmm5,%xmm10
1583         xorl    %eax,%esi
1584         addl    %ecx,%ebx
1585         vpxor   %xmm2,%xmm6,%xmm6
1586         shrdl   $7,%edx,%edx
1587         addl    %esi,%ebx
1588         vpxor   %xmm4,%xmm10,%xmm10
1589         addl    36(%rsp),%eax
1590         xorl    %ebp,%edx
1591         movl    %ebx,%esi
1592         shldl   $5,%ebx,%ebx
1593         vpxor   %xmm10,%xmm6,%xmm6
1594         andl    %edx,%edi
1595         xorl    %ebp,%edx
1596         vmovdqa %xmm8,16(%rsp)
1597         xorl    %ebp,%edi
1598         addl    %ebx,%eax
1599         vpsrld  $31,%xmm6,%xmm10
1600         shrdl   $7,%ecx,%ecx
1601         addl    %edi,%eax
1602         addl    40(%rsp),%ebp
1603         vaesenc %xmm14,%xmm11,%xmm11
1604         vmovups 16(%r15),%xmm15
1605         xorl    %edx,%ecx
1606         vpslldq $12,%xmm6,%xmm9
1607         vpaddd  %xmm6,%xmm6,%xmm6
1608         movl    %eax,%edi
1609         shldl   $5,%eax,%eax
1610         andl    %ecx,%esi
1611         xorl    %edx,%ecx
1612         vpsrld  $30,%xmm9,%xmm8
1613         vpor    %xmm10,%xmm6,%xmm6
1614         xorl    %edx,%esi
1615         addl    %eax,%ebp
1616         shrdl   $7,%ebx,%ebx
1617         addl    %esi,%ebp
1618         vpslld  $2,%xmm9,%xmm9
1619         vpxor   %xmm8,%xmm6,%xmm6
1620         addl    44(%rsp),%edx
1621         xorl    %ecx,%ebx
1622         movl    %ebp,%esi
1623         shldl   $5,%ebp,%ebp
1624         vpxor   %xmm9,%xmm6,%xmm6
1625         andl    %ebx,%edi
1626         xorl    %ecx,%ebx
1627         vmovdqa 16(%r11),%xmm9
1628         xorl    %ecx,%edi
1629         vaesenc %xmm15,%xmm11,%xmm11
1630         vmovups 32(%r15),%xmm14
1631         addl    %ebp,%edx
1632         shrdl   $7,%eax,%eax
1633         addl    %edi,%edx
1634         addl    48(%rsp),%ecx
1635         xorl    %ebx,%eax
1636         vpalignr        $8,%xmm3,%xmm4,%xmm7
1637         movl    %edx,%edi
1638         shldl   $5,%edx,%edx
1639         vpaddd  %xmm6,%xmm9,%xmm9
1640         andl    %eax,%esi
1641         xorl    %ebx,%eax
1642         vpsrldq $4,%xmm6,%xmm8
1643         xorl    %ebx,%esi
1644         addl    %edx,%ecx
1645         vpxor   %xmm3,%xmm7,%xmm7
1646         shrdl   $7,%ebp,%ebp
1647         addl    %esi,%ecx
1648         vpxor   %xmm5,%xmm8,%xmm8
1649         addl    52(%rsp),%ebx
1650         xorl    %eax,%ebp
1651         movl    %ecx,%esi
1652         shldl   $5,%ecx,%ecx
1653         vaesenc %xmm14,%xmm11,%xmm11
1654         vmovups 48(%r15),%xmm15
1655         vpxor   %xmm8,%xmm7,%xmm7
1656         andl    %ebp,%edi
1657         xorl    %eax,%ebp
1658         vmovdqa %xmm9,32(%rsp)
1659         xorl    %eax,%edi
1660         addl    %ecx,%ebx
1661         vpsrld  $31,%xmm7,%xmm8
1662         shrdl   $7,%edx,%edx
1663         addl    %edi,%ebx
1664         addl    56(%rsp),%eax
1665         xorl    %ebp,%edx
1666         vpslldq $12,%xmm7,%xmm10
1667         vpaddd  %xmm7,%xmm7,%xmm7
1668         movl    %ebx,%edi
1669         shldl   $5,%ebx,%ebx
1670         andl    %edx,%esi
1671         xorl    %ebp,%edx
1672         vpsrld  $30,%xmm10,%xmm9
1673         vpor    %xmm8,%xmm7,%xmm7
1674         xorl    %ebp,%esi
1675         addl    %ebx,%eax
1676         shrdl   $7,%ecx,%ecx
1677         addl    %esi,%eax
1678         vpslld  $2,%xmm10,%xmm10
1679         vpxor   %xmm9,%xmm7,%xmm7
1680         addl    60(%rsp),%ebp
1681         cmpl    $11,%r8d
1682         jb      .Lvaesenclast1
1683         vaesenc %xmm15,%xmm11,%xmm11
1684         vmovups 64(%r15),%xmm14
1685         vaesenc %xmm14,%xmm11,%xmm11
1686         vmovups 80(%r15),%xmm15
1687         je      .Lvaesenclast1
1688         vaesenc %xmm15,%xmm11,%xmm11
1689         vmovups 96(%r15),%xmm14
1690         vaesenc %xmm14,%xmm11,%xmm11
1691         vmovups 112(%r15),%xmm15
1692 .Lvaesenclast1:
1693         vaesenclast     %xmm15,%xmm11,%xmm11
1694         vmovups 16-112(%r15),%xmm14
1695         xorl    %edx,%ecx
1696         movl    %eax,%esi
1697         shldl   $5,%eax,%eax
1698         vpxor   %xmm10,%xmm7,%xmm7
1699         andl    %ecx,%edi
1700         xorl    %edx,%ecx
1701         vmovdqa 16(%r11),%xmm10
1702         xorl    %edx,%edi
1703         addl    %eax,%ebp
1704         shrdl   $7,%ebx,%ebx
1705         addl    %edi,%ebp
1706         vpalignr        $8,%xmm6,%xmm7,%xmm9
1707         vpxor   %xmm4,%xmm0,%xmm0
1708         addl    0(%rsp),%edx
1709         xorl    %ecx,%ebx
1710         movl    %ebp,%edi
1711         shldl   $5,%ebp,%ebp
1712         vpxor   %xmm1,%xmm0,%xmm0
1713         andl    %ebx,%esi
1714         xorl    %ecx,%ebx
1715         vmovdqa %xmm10,%xmm8
1716         vpaddd  %xmm7,%xmm10,%xmm10
1717         xorl    %ecx,%esi
1718         vmovups 16(%r12),%xmm12
1719         vxorps  %xmm13,%xmm12,%xmm12
1720         vmovups %xmm11,0(%r13,%r12,1)
1721         vxorps  %xmm12,%xmm11,%xmm11
1722         vaesenc %xmm14,%xmm11,%xmm11
1723         vmovups -80(%r15),%xmm15
1724         addl    %ebp,%edx
1725         vpxor   %xmm9,%xmm0,%xmm0
1726         shrdl   $7,%eax,%eax
1727         addl    %esi,%edx
1728         addl    4(%rsp),%ecx
1729         xorl    %ebx,%eax
1730         vpsrld  $30,%xmm0,%xmm9
1731         vmovdqa %xmm10,48(%rsp)
1732         movl    %edx,%esi
1733         shldl   $5,%edx,%edx
1734         andl    %eax,%edi
1735         xorl    %ebx,%eax
1736         vpslld  $2,%xmm0,%xmm0
1737         xorl    %ebx,%edi
1738         addl    %edx,%ecx
1739         shrdl   $7,%ebp,%ebp
1740         addl    %edi,%ecx
1741         addl    8(%rsp),%ebx
1742         xorl    %eax,%ebp
1743         movl    %ecx,%edi
1744         shldl   $5,%ecx,%ecx
1745         vaesenc %xmm15,%xmm11,%xmm11
1746         vmovups -64(%r15),%xmm14
1747         vpor    %xmm9,%xmm0,%xmm0
1748         andl    %ebp,%esi
1749         xorl    %eax,%ebp
1750         vmovdqa %xmm0,%xmm10
1751         xorl    %eax,%esi
1752         addl    %ecx,%ebx
1753         shrdl   $7,%edx,%edx
1754         addl    %esi,%ebx
1755         addl    12(%rsp),%eax
1756         xorl    %ebp,%edx
1757         movl    %ebx,%esi
1758         shldl   $5,%ebx,%ebx
1759         andl    %edx,%edi
1760         xorl    %ebp,%edx
1761         xorl    %ebp,%edi
1762         addl    %ebx,%eax
1763         shrdl   $7,%ecx,%ecx
1764         addl    %edi,%eax
1765         vpalignr        $8,%xmm7,%xmm0,%xmm10
1766         vpxor   %xmm5,%xmm1,%xmm1
1767         addl    16(%rsp),%ebp
1768         vaesenc %xmm14,%xmm11,%xmm11
1769         vmovups -48(%r15),%xmm15
1770         xorl    %edx,%esi
1771         movl    %eax,%edi
1772         shldl   $5,%eax,%eax
1773         vpxor   %xmm2,%xmm1,%xmm1
1774         xorl    %ecx,%esi
1775         addl    %eax,%ebp
1776         vmovdqa %xmm8,%xmm9
1777         vpaddd  %xmm0,%xmm8,%xmm8
1778         shrdl   $7,%ebx,%ebx
1779         addl    %esi,%ebp
1780         vpxor   %xmm10,%xmm1,%xmm1
1781         addl    20(%rsp),%edx
1782         xorl    %ecx,%edi
1783         movl    %ebp,%esi
1784         shldl   $5,%ebp,%ebp
1785         vpsrld  $30,%xmm1,%xmm10
1786         vmovdqa %xmm8,0(%rsp)
1787         xorl    %ebx,%edi
1788         addl    %ebp,%edx
1789         shrdl   $7,%eax,%eax
1790         addl    %edi,%edx
1791         vpslld  $2,%xmm1,%xmm1
1792         addl    24(%rsp),%ecx
1793         xorl    %ebx,%esi
1794         movl    %edx,%edi
1795         shldl   $5,%edx,%edx
1796         xorl    %eax,%esi
1797         vaesenc %xmm15,%xmm11,%xmm11
1798         vmovups -32(%r15),%xmm14
1799         addl    %edx,%ecx
1800         shrdl   $7,%ebp,%ebp
1801         addl    %esi,%ecx
1802         vpor    %xmm10,%xmm1,%xmm1
1803         addl    28(%rsp),%ebx
1804         xorl    %eax,%edi
1805         vmovdqa %xmm1,%xmm8
1806         movl    %ecx,%esi
1807         shldl   $5,%ecx,%ecx
1808         xorl    %ebp,%edi
1809         addl    %ecx,%ebx
1810         shrdl   $7,%edx,%edx
1811         addl    %edi,%ebx
1812         vpalignr        $8,%xmm0,%xmm1,%xmm8
1813         vpxor   %xmm6,%xmm2,%xmm2
1814         addl    32(%rsp),%eax
1815         xorl    %ebp,%esi
1816         movl    %ebx,%edi
1817         shldl   $5,%ebx,%ebx
1818         vpxor   %xmm3,%xmm2,%xmm2
1819         xorl    %edx,%esi
1820         addl    %ebx,%eax
1821         vmovdqa 32(%r11),%xmm10
1822         vpaddd  %xmm1,%xmm9,%xmm9
1823         shrdl   $7,%ecx,%ecx
1824         addl    %esi,%eax
1825         vpxor   %xmm8,%xmm2,%xmm2
1826         addl    36(%rsp),%ebp
1827         vaesenc %xmm14,%xmm11,%xmm11
1828         vmovups -16(%r15),%xmm15
1829         xorl    %edx,%edi
1830         movl    %eax,%esi
1831         shldl   $5,%eax,%eax
1832         vpsrld  $30,%xmm2,%xmm8
1833         vmovdqa %xmm9,16(%rsp)
1834         xorl    %ecx,%edi
1835         addl    %eax,%ebp
1836         shrdl   $7,%ebx,%ebx
1837         addl    %edi,%ebp
1838         vpslld  $2,%xmm2,%xmm2
1839         addl    40(%rsp),%edx
1840         xorl    %ecx,%esi
1841         movl    %ebp,%edi
1842         shldl   $5,%ebp,%ebp
1843         xorl    %ebx,%esi
1844         addl    %ebp,%edx
1845         shrdl   $7,%eax,%eax
1846         addl    %esi,%edx
1847         vpor    %xmm8,%xmm2,%xmm2
1848         addl    44(%rsp),%ecx
1849         xorl    %ebx,%edi
1850         vmovdqa %xmm2,%xmm9
1851         movl    %edx,%esi
1852         shldl   $5,%edx,%edx
1853         xorl    %eax,%edi
1854         vaesenc %xmm15,%xmm11,%xmm11
1855         vmovups 0(%r15),%xmm14
1856         addl    %edx,%ecx
1857         shrdl   $7,%ebp,%ebp
1858         addl    %edi,%ecx
1859         vpalignr        $8,%xmm1,%xmm2,%xmm9
1860         vpxor   %xmm7,%xmm3,%xmm3
1861         addl    48(%rsp),%ebx
1862         xorl    %eax,%esi
1863         movl    %ecx,%edi
1864         shldl   $5,%ecx,%ecx
1865         vpxor   %xmm4,%xmm3,%xmm3
1866         xorl    %ebp,%esi
1867         addl    %ecx,%ebx
1868         vmovdqa %xmm10,%xmm8
1869         vpaddd  %xmm2,%xmm10,%xmm10
1870         shrdl   $7,%edx,%edx
1871         addl    %esi,%ebx
1872         vpxor   %xmm9,%xmm3,%xmm3
1873         addl    52(%rsp),%eax
1874         xorl    %ebp,%edi
1875         movl    %ebx,%esi
1876         shldl   $5,%ebx,%ebx
1877         vpsrld  $30,%xmm3,%xmm9
1878         vmovdqa %xmm10,32(%rsp)
1879         xorl    %edx,%edi
1880         addl    %ebx,%eax
1881         shrdl   $7,%ecx,%ecx
1882         addl    %edi,%eax
1883         vpslld  $2,%xmm3,%xmm3
1884         addl    56(%rsp),%ebp
1885         vaesenc %xmm14,%xmm11,%xmm11
1886         vmovups 16(%r15),%xmm15
1887         xorl    %edx,%esi
1888         movl    %eax,%edi
1889         shldl   $5,%eax,%eax
1890         xorl    %ecx,%esi
1891         addl    %eax,%ebp
1892         shrdl   $7,%ebx,%ebx
1893         addl    %esi,%ebp
1894         vpor    %xmm9,%xmm3,%xmm3
1895         addl    60(%rsp),%edx
1896         xorl    %ecx,%edi
1897         vmovdqa %xmm3,%xmm10
1898         movl    %ebp,%esi
1899         shldl   $5,%ebp,%ebp
1900         xorl    %ebx,%edi
1901         addl    %ebp,%edx
1902         shrdl   $7,%eax,%eax
1903         addl    %edi,%edx
1904         vpalignr        $8,%xmm2,%xmm3,%xmm10
1905         vpxor   %xmm0,%xmm4,%xmm4
1906         addl    0(%rsp),%ecx
1907         xorl    %ebx,%esi
1908         movl    %edx,%edi
1909         shldl   $5,%edx,%edx
1910         vpxor   %xmm5,%xmm4,%xmm4
1911         xorl    %eax,%esi
1912         vaesenc %xmm15,%xmm11,%xmm11
1913         vmovups 32(%r15),%xmm14
1914         addl    %edx,%ecx
1915         vmovdqa %xmm8,%xmm9
1916         vpaddd  %xmm3,%xmm8,%xmm8
1917         shrdl   $7,%ebp,%ebp
1918         addl    %esi,%ecx
1919         vpxor   %xmm10,%xmm4,%xmm4
1920         addl    4(%rsp),%ebx
1921         xorl    %eax,%edi
1922         movl    %ecx,%esi
1923         shldl   $5,%ecx,%ecx
1924         vpsrld  $30,%xmm4,%xmm10
1925         vmovdqa %xmm8,48(%rsp)
1926         xorl    %ebp,%edi
1927         addl    %ecx,%ebx
1928         shrdl   $7,%edx,%edx
1929         addl    %edi,%ebx
1930         vpslld  $2,%xmm4,%xmm4
1931         addl    8(%rsp),%eax
1932         xorl    %ebp,%esi
1933         movl    %ebx,%edi
1934         shldl   $5,%ebx,%ebx
1935         xorl    %edx,%esi
1936         addl    %ebx,%eax
1937         shrdl   $7,%ecx,%ecx
1938         addl    %esi,%eax
1939         vpor    %xmm10,%xmm4,%xmm4
1940         addl    12(%rsp),%ebp
1941         vaesenc %xmm14,%xmm11,%xmm11
1942         vmovups 48(%r15),%xmm15
1943         xorl    %edx,%edi
1944         vmovdqa %xmm4,%xmm8
1945         movl    %eax,%esi
1946         shldl   $5,%eax,%eax
1947         xorl    %ecx,%edi
1948         addl    %eax,%ebp
1949         shrdl   $7,%ebx,%ebx
1950         addl    %edi,%ebp
1951         vpalignr        $8,%xmm3,%xmm4,%xmm8
1952         vpxor   %xmm1,%xmm5,%xmm5
1953         addl    16(%rsp),%edx
1954         xorl    %ecx,%esi
1955         movl    %ebp,%edi
1956         shldl   $5,%ebp,%ebp
1957         vpxor   %xmm6,%xmm5,%xmm5
1958         xorl    %ebx,%esi
1959         addl    %ebp,%edx
1960         vmovdqa %xmm9,%xmm10
1961         vpaddd  %xmm4,%xmm9,%xmm9
1962         shrdl   $7,%eax,%eax
1963         addl    %esi,%edx
1964         vpxor   %xmm8,%xmm5,%xmm5
1965         addl    20(%rsp),%ecx
1966         xorl    %ebx,%edi
1967         movl    %edx,%esi
1968         shldl   $5,%edx,%edx
1969         vpsrld  $30,%xmm5,%xmm8
1970         vmovdqa %xmm9,0(%rsp)
1971         xorl    %eax,%edi
1972         cmpl    $11,%r8d
1973         jb      .Lvaesenclast2
1974         vaesenc %xmm15,%xmm11,%xmm11
1975         vmovups 64(%r15),%xmm14
1976         vaesenc %xmm14,%xmm11,%xmm11
1977         vmovups 80(%r15),%xmm15
1978         je      .Lvaesenclast2
1979         vaesenc %xmm15,%xmm11,%xmm11
1980         vmovups 96(%r15),%xmm14
1981         vaesenc %xmm14,%xmm11,%xmm11
1982         vmovups 112(%r15),%xmm15
1983 .Lvaesenclast2:
1984         vaesenclast     %xmm15,%xmm11,%xmm11
1985         vmovups 16-112(%r15),%xmm14
1986         addl    %edx,%ecx
1987         shrdl   $7,%ebp,%ebp
1988         addl    %edi,%ecx
1989         vpslld  $2,%xmm5,%xmm5
1990         addl    24(%rsp),%ebx
1991         xorl    %eax,%esi
1992         movl    %ecx,%edi
1993         shldl   $5,%ecx,%ecx
1994         xorl    %ebp,%esi
1995         addl    %ecx,%ebx
1996         shrdl   $7,%edx,%edx
1997         addl    %esi,%ebx
1998         vpor    %xmm8,%xmm5,%xmm5
1999         addl    28(%rsp),%eax
2000         xorl    %ebp,%edi
2001         vmovdqa %xmm5,%xmm9
2002         movl    %ebx,%esi
2003         shldl   $5,%ebx,%ebx
2004         xorl    %edx,%edi
2005         addl    %ebx,%eax
2006         shrdl   $7,%ecx,%ecx
2007         addl    %edi,%eax
2008         vpalignr        $8,%xmm4,%xmm5,%xmm9
2009         vpxor   %xmm2,%xmm6,%xmm6
2010         movl    %ecx,%edi
2011         vmovups 32(%r12),%xmm12
2012         vxorps  %xmm13,%xmm12,%xmm12
2013         vmovups %xmm11,16(%r13,%r12,1)
2014         vxorps  %xmm12,%xmm11,%xmm11
2015         vaesenc %xmm14,%xmm11,%xmm11
2016         vmovups -80(%r15),%xmm15
2017         xorl    %edx,%ecx
2018         addl    32(%rsp),%ebp
2019         andl    %edx,%edi
2020         vpxor   %xmm7,%xmm6,%xmm6
2021         andl    %ecx,%esi
2022         shrdl   $7,%ebx,%ebx
2023         vmovdqa %xmm10,%xmm8
2024         vpaddd  %xmm5,%xmm10,%xmm10
2025         addl    %edi,%ebp
2026         movl    %eax,%edi
2027         vpxor   %xmm9,%xmm6,%xmm6
2028         shldl   $5,%eax,%eax
2029         addl    %esi,%ebp
2030         xorl    %edx,%ecx
2031         addl    %eax,%ebp
2032         vpsrld  $30,%xmm6,%xmm9
2033         vmovdqa %xmm10,16(%rsp)
2034         movl    %ebx,%esi
2035         xorl    %ecx,%ebx
2036         addl    36(%rsp),%edx
2037         andl    %ecx,%esi
2038         vpslld  $2,%xmm6,%xmm6
2039         andl    %ebx,%edi
2040         shrdl   $7,%eax,%eax
2041         addl    %esi,%edx
2042         movl    %ebp,%esi
2043         shldl   $5,%ebp,%ebp
2044         vaesenc %xmm15,%xmm11,%xmm11
2045         vmovups -64(%r15),%xmm14
2046         addl    %edi,%edx
2047         xorl    %ecx,%ebx
2048         addl    %ebp,%edx
2049         vpor    %xmm9,%xmm6,%xmm6
2050         movl    %eax,%edi
2051         xorl    %ebx,%eax
2052         vmovdqa %xmm6,%xmm10
2053         addl    40(%rsp),%ecx
2054         andl    %ebx,%edi
2055         andl    %eax,%esi
2056         shrdl   $7,%ebp,%ebp
2057         addl    %edi,%ecx
2058         movl    %edx,%edi
2059         shldl   $5,%edx,%edx
2060         addl    %esi,%ecx
2061         xorl    %ebx,%eax
2062         addl    %edx,%ecx
2063         movl    %ebp,%esi
2064         xorl    %eax,%ebp
2065         addl    44(%rsp),%ebx
2066         andl    %eax,%esi
2067         andl    %ebp,%edi
2068         vaesenc %xmm14,%xmm11,%xmm11
2069         vmovups -48(%r15),%xmm15
2070         shrdl   $7,%edx,%edx
2071         addl    %esi,%ebx
2072         movl    %ecx,%esi
2073         shldl   $5,%ecx,%ecx
2074         addl    %edi,%ebx
2075         xorl    %eax,%ebp
2076         addl    %ecx,%ebx
2077         vpalignr        $8,%xmm5,%xmm6,%xmm10
2078         vpxor   %xmm3,%xmm7,%xmm7
2079         movl    %edx,%edi
2080         xorl    %ebp,%edx
2081         addl    48(%rsp),%eax
2082         andl    %ebp,%edi
2083         vpxor   %xmm0,%xmm7,%xmm7
2084         andl    %edx,%esi
2085         shrdl   $7,%ecx,%ecx
2086         vmovdqa 48(%r11),%xmm9
2087         vpaddd  %xmm6,%xmm8,%xmm8
2088         addl    %edi,%eax
2089         movl    %ebx,%edi
2090         vpxor   %xmm10,%xmm7,%xmm7
2091         shldl   $5,%ebx,%ebx
2092         addl    %esi,%eax
2093         xorl    %ebp,%edx
2094         addl    %ebx,%eax
2095         vpsrld  $30,%xmm7,%xmm10
2096         vmovdqa %xmm8,32(%rsp)
2097         movl    %ecx,%esi
2098         vaesenc %xmm15,%xmm11,%xmm11
2099         vmovups -32(%r15),%xmm14
2100         xorl    %edx,%ecx
2101         addl    52(%rsp),%ebp
2102         andl    %edx,%esi
2103         vpslld  $2,%xmm7,%xmm7
2104         andl    %ecx,%edi
2105         shrdl   $7,%ebx,%ebx
2106         addl    %esi,%ebp
2107         movl    %eax,%esi
2108         shldl   $5,%eax,%eax
2109         addl    %edi,%ebp
2110         xorl    %edx,%ecx
2111         addl    %eax,%ebp
2112         vpor    %xmm10,%xmm7,%xmm7
2113         movl    %ebx,%edi
2114         xorl    %ecx,%ebx
2115         vmovdqa %xmm7,%xmm8
2116         addl    56(%rsp),%edx
2117         andl    %ecx,%edi
2118         andl    %ebx,%esi
2119         shrdl   $7,%eax,%eax
2120         addl    %edi,%edx
2121         movl    %ebp,%edi
2122         shldl   $5,%ebp,%ebp
2123         vaesenc %xmm14,%xmm11,%xmm11
2124         vmovups -16(%r15),%xmm15
2125         addl    %esi,%edx
2126         xorl    %ecx,%ebx
2127         addl    %ebp,%edx
2128         movl    %eax,%esi
2129         xorl    %ebx,%eax
2130         addl    60(%rsp),%ecx
2131         andl    %ebx,%esi
2132         andl    %eax,%edi
2133         shrdl   $7,%ebp,%ebp
2134         addl    %esi,%ecx
2135         movl    %edx,%esi
2136         shldl   $5,%edx,%edx
2137         addl    %edi,%ecx
2138         xorl    %ebx,%eax
2139         addl    %edx,%ecx
2140         vpalignr        $8,%xmm6,%xmm7,%xmm8
2141         vpxor   %xmm4,%xmm0,%xmm0
2142         movl    %ebp,%edi
2143         xorl    %eax,%ebp
2144         addl    0(%rsp),%ebx
2145         andl    %eax,%edi
2146         vpxor   %xmm1,%xmm0,%xmm0
2147         andl    %ebp,%esi
2148         vaesenc %xmm15,%xmm11,%xmm11
2149         vmovups 0(%r15),%xmm14
2150         shrdl   $7,%edx,%edx
2151         vmovdqa %xmm9,%xmm10
2152         vpaddd  %xmm7,%xmm9,%xmm9
2153         addl    %edi,%ebx
2154         movl    %ecx,%edi
2155         vpxor   %xmm8,%xmm0,%xmm0
2156         shldl   $5,%ecx,%ecx
2157         addl    %esi,%ebx
2158         xorl    %eax,%ebp
2159         addl    %ecx,%ebx
2160         vpsrld  $30,%xmm0,%xmm8
2161         vmovdqa %xmm9,48(%rsp)
2162         movl    %edx,%esi
2163         xorl    %ebp,%edx
2164         addl    4(%rsp),%eax
2165         andl    %ebp,%esi
2166         vpslld  $2,%xmm0,%xmm0
2167         andl    %edx,%edi
2168         shrdl   $7,%ecx,%ecx
2169         addl    %esi,%eax
2170         movl    %ebx,%esi
2171         shldl   $5,%ebx,%ebx
2172         addl    %edi,%eax
2173         xorl    %ebp,%edx
2174         addl    %ebx,%eax
2175         vpor    %xmm8,%xmm0,%xmm0
2176         movl    %ecx,%edi
2177         vaesenc %xmm14,%xmm11,%xmm11
2178         vmovups 16(%r15),%xmm15
2179         xorl    %edx,%ecx
2180         vmovdqa %xmm0,%xmm9
2181         addl    8(%rsp),%ebp
2182         andl    %edx,%edi
2183         andl    %ecx,%esi
2184         shrdl   $7,%ebx,%ebx
2185         addl    %edi,%ebp
2186         movl    %eax,%edi
2187         shldl   $5,%eax,%eax
2188         addl    %esi,%ebp
2189         xorl    %edx,%ecx
2190         addl    %eax,%ebp
2191         movl    %ebx,%esi
2192         xorl    %ecx,%ebx
2193         addl    12(%rsp),%edx
2194         andl    %ecx,%esi
2195         andl    %ebx,%edi
2196         shrdl   $7,%eax,%eax
2197         addl    %esi,%edx
2198         movl    %ebp,%esi
2199         shldl   $5,%ebp,%ebp
2200         vaesenc %xmm15,%xmm11,%xmm11
2201         vmovups 32(%r15),%xmm14
2202         addl    %edi,%edx
2203         xorl    %ecx,%ebx
2204         addl    %ebp,%edx
2205         vpalignr        $8,%xmm7,%xmm0,%xmm9
2206         vpxor   %xmm5,%xmm1,%xmm1
2207         movl    %eax,%edi
2208         xorl    %ebx,%eax
2209         addl    16(%rsp),%ecx
2210         andl    %ebx,%edi
2211         vpxor   %xmm2,%xmm1,%xmm1
2212         andl    %eax,%esi
2213         shrdl   $7,%ebp,%ebp
2214         vmovdqa %xmm10,%xmm8
2215         vpaddd  %xmm0,%xmm10,%xmm10
2216         addl    %edi,%ecx
2217         movl    %edx,%edi
2218         vpxor   %xmm9,%xmm1,%xmm1
2219         shldl   $5,%edx,%edx
2220         addl    %esi,%ecx
2221         xorl    %ebx,%eax
2222         addl    %edx,%ecx
2223         vpsrld  $30,%xmm1,%xmm9
2224         vmovdqa %xmm10,0(%rsp)
2225         movl    %ebp,%esi
2226         xorl    %eax,%ebp
2227         addl    20(%rsp),%ebx
2228         andl    %eax,%esi
2229         vpslld  $2,%xmm1,%xmm1
2230         andl    %ebp,%edi
2231         vaesenc %xmm14,%xmm11,%xmm11
2232         vmovups 48(%r15),%xmm15
2233         shrdl   $7,%edx,%edx
2234         addl    %esi,%ebx
2235         movl    %ecx,%esi
2236         shldl   $5,%ecx,%ecx
2237         addl    %edi,%ebx
2238         xorl    %eax,%ebp
2239         addl    %ecx,%ebx
2240         vpor    %xmm9,%xmm1,%xmm1
2241         movl    %edx,%edi
2242         xorl    %ebp,%edx
2243         vmovdqa %xmm1,%xmm10
2244         addl    24(%rsp),%eax
2245         andl    %ebp,%edi
2246         andl    %edx,%esi
2247         shrdl   $7,%ecx,%ecx
2248         addl    %edi,%eax
2249         movl    %ebx,%edi
2250         shldl   $5,%ebx,%ebx
2251         addl    %esi,%eax
2252         xorl    %ebp,%edx
2253         addl    %ebx,%eax
2254         movl    %ecx,%esi
2255         cmpl    $11,%r8d
2256         jb      .Lvaesenclast3
2257         vaesenc %xmm15,%xmm11,%xmm11
2258         vmovups 64(%r15),%xmm14
2259         vaesenc %xmm14,%xmm11,%xmm11
2260         vmovups 80(%r15),%xmm15
2261         je      .Lvaesenclast3
2262         vaesenc %xmm15,%xmm11,%xmm11
2263         vmovups 96(%r15),%xmm14
2264         vaesenc %xmm14,%xmm11,%xmm11
2265         vmovups 112(%r15),%xmm15
2266 .Lvaesenclast3:
2267         vaesenclast     %xmm15,%xmm11,%xmm11
2268         vmovups 16-112(%r15),%xmm14
2269         xorl    %edx,%ecx
2270         addl    28(%rsp),%ebp
2271         andl    %edx,%esi
2272         andl    %ecx,%edi
2273         shrdl   $7,%ebx,%ebx
2274         addl    %esi,%ebp
2275         movl    %eax,%esi
2276         shldl   $5,%eax,%eax
2277         addl    %edi,%ebp
2278         xorl    %edx,%ecx
2279         addl    %eax,%ebp
2280         vpalignr        $8,%xmm0,%xmm1,%xmm10
2281         vpxor   %xmm6,%xmm2,%xmm2
2282         movl    %ebx,%edi
2283         xorl    %ecx,%ebx
2284         addl    32(%rsp),%edx
2285         andl    %ecx,%edi
2286         vpxor   %xmm3,%xmm2,%xmm2
2287         andl    %ebx,%esi
2288         shrdl   $7,%eax,%eax
2289         vmovdqa %xmm8,%xmm9
2290         vpaddd  %xmm1,%xmm8,%xmm8
2291         addl    %edi,%edx
2292         movl    %ebp,%edi
2293         vpxor   %xmm10,%xmm2,%xmm2
2294         shldl   $5,%ebp,%ebp
2295         vmovups 48(%r12),%xmm12
2296         vxorps  %xmm13,%xmm12,%xmm12
2297         vmovups %xmm11,32(%r13,%r12,1)
2298         vxorps  %xmm12,%xmm11,%xmm11
2299         vaesenc %xmm14,%xmm11,%xmm11
2300         vmovups -80(%r15),%xmm15
2301         addl    %esi,%edx
2302         xorl    %ecx,%ebx
2303         addl    %ebp,%edx
2304         vpsrld  $30,%xmm2,%xmm10
2305         vmovdqa %xmm8,16(%rsp)
2306         movl    %eax,%esi
2307         xorl    %ebx,%eax
2308         addl    36(%rsp),%ecx
2309         andl    %ebx,%esi
2310         vpslld  $2,%xmm2,%xmm2
2311         andl    %eax,%edi
2312         shrdl   $7,%ebp,%ebp
2313         addl    %esi,%ecx
2314         movl    %edx,%esi
2315         shldl   $5,%edx,%edx
2316         addl    %edi,%ecx
2317         xorl    %ebx,%eax
2318         addl    %edx,%ecx
2319         vpor    %xmm10,%xmm2,%xmm2
2320         movl    %ebp,%edi
2321         xorl    %eax,%ebp
2322         vmovdqa %xmm2,%xmm8
2323         addl    40(%rsp),%ebx
2324         andl    %eax,%edi
2325         andl    %ebp,%esi
2326         vaesenc %xmm15,%xmm11,%xmm11
2327         vmovups -64(%r15),%xmm14
2328         shrdl   $7,%edx,%edx
2329         addl    %edi,%ebx
2330         movl    %ecx,%edi
2331         shldl   $5,%ecx,%ecx
2332         addl    %esi,%ebx
2333         xorl    %eax,%ebp
2334         addl    %ecx,%ebx
2335         movl    %edx,%esi
2336         xorl    %ebp,%edx
2337         addl    44(%rsp),%eax
2338         andl    %ebp,%esi
2339         andl    %edx,%edi
2340         shrdl   $7,%ecx,%ecx
2341         addl    %esi,%eax
2342         movl    %ebx,%esi
2343         shldl   $5,%ebx,%ebx
2344         addl    %edi,%eax
2345         xorl    %ebp,%edx
2346         addl    %ebx,%eax
2347         vpalignr        $8,%xmm1,%xmm2,%xmm8
2348         vpxor   %xmm7,%xmm3,%xmm3
2349         addl    48(%rsp),%ebp
2350         vaesenc %xmm14,%xmm11,%xmm11
2351         vmovups -48(%r15),%xmm15
2352         xorl    %edx,%esi
2353         movl    %eax,%edi
2354         shldl   $5,%eax,%eax
2355         vpxor   %xmm4,%xmm3,%xmm3
2356         xorl    %ecx,%esi
2357         addl    %eax,%ebp
2358         vmovdqa %xmm9,%xmm10
2359         vpaddd  %xmm2,%xmm9,%xmm9
2360         shrdl   $7,%ebx,%ebx
2361         addl    %esi,%ebp
2362         vpxor   %xmm8,%xmm3,%xmm3
2363         addl    52(%rsp),%edx
2364         xorl    %ecx,%edi
2365         movl    %ebp,%esi
2366         shldl   $5,%ebp,%ebp
2367         vpsrld  $30,%xmm3,%xmm8
2368         vmovdqa %xmm9,32(%rsp)
2369         xorl    %ebx,%edi
2370         addl    %ebp,%edx
2371         shrdl   $7,%eax,%eax
2372         addl    %edi,%edx
2373         vpslld  $2,%xmm3,%xmm3
2374         addl    56(%rsp),%ecx
2375         xorl    %ebx,%esi
2376         movl    %edx,%edi
2377         shldl   $5,%edx,%edx
2378         xorl    %eax,%esi
2379         vaesenc %xmm15,%xmm11,%xmm11
2380         vmovups -32(%r15),%xmm14
2381         addl    %edx,%ecx
2382         shrdl   $7,%ebp,%ebp
2383         addl    %esi,%ecx
2384         vpor    %xmm8,%xmm3,%xmm3
2385         addl    60(%rsp),%ebx
2386         xorl    %eax,%edi
2387         movl    %ecx,%esi
2388         shldl   $5,%ecx,%ecx
2389         xorl    %ebp,%edi
2390         addl    %ecx,%ebx
2391         shrdl   $7,%edx,%edx
2392         addl    %edi,%ebx
2393         addl    0(%rsp),%eax
2394         vpaddd  %xmm3,%xmm10,%xmm10
2395         xorl    %ebp,%esi
2396         movl    %ebx,%edi
2397         shldl   $5,%ebx,%ebx
2398         xorl    %edx,%esi
2399         movdqa  %xmm10,48(%rsp)
2400         addl    %ebx,%eax
2401         shrdl   $7,%ecx,%ecx
2402         addl    %esi,%eax
2403         addl    4(%rsp),%ebp
2404         vaesenc %xmm14,%xmm11,%xmm11
2405         vmovups -16(%r15),%xmm15
2406         xorl    %edx,%edi
2407         movl    %eax,%esi
2408         shldl   $5,%eax,%eax
2409         xorl    %ecx,%edi
2410         addl    %eax,%ebp
2411         shrdl   $7,%ebx,%ebx
2412         addl    %edi,%ebp
2413         addl    8(%rsp),%edx
2414         xorl    %ecx,%esi
2415         movl    %ebp,%edi
2416         shldl   $5,%ebp,%ebp
2417         xorl    %ebx,%esi
2418         addl    %ebp,%edx
2419         shrdl   $7,%eax,%eax
2420         addl    %esi,%edx
2421         addl    12(%rsp),%ecx
2422         xorl    %ebx,%edi
2423         movl    %edx,%esi
2424         shldl   $5,%edx,%edx
2425         xorl    %eax,%edi
2426         vaesenc %xmm15,%xmm11,%xmm11
2427         vmovups 0(%r15),%xmm14
2428         addl    %edx,%ecx
2429         shrdl   $7,%ebp,%ebp
2430         addl    %edi,%ecx
2431         cmpq    %r14,%r10
2432         je      .Ldone_avx
2433         vmovdqa 64(%r11),%xmm6
2434         vmovdqa 0(%r11),%xmm9
2435         vmovdqu 0(%r10),%xmm0
2436         vmovdqu 16(%r10),%xmm1
2437         vmovdqu 32(%r10),%xmm2
2438         vmovdqu 48(%r10),%xmm3
2439         vpshufb %xmm6,%xmm0,%xmm0
2440         addq    $64,%r10
2441         addl    16(%rsp),%ebx
2442         xorl    %eax,%esi
2443         vpshufb %xmm6,%xmm1,%xmm1
2444         movl    %ecx,%edi
2445         shldl   $5,%ecx,%ecx
2446         vpaddd  %xmm9,%xmm0,%xmm4
2447         xorl    %ebp,%esi
2448         addl    %ecx,%ebx
2449         shrdl   $7,%edx,%edx
2450         addl    %esi,%ebx
2451         vmovdqa %xmm4,0(%rsp)
2452         addl    20(%rsp),%eax
2453         xorl    %ebp,%edi
2454         movl    %ebx,%esi
2455         shldl   $5,%ebx,%ebx
2456         xorl    %edx,%edi
2457         addl    %ebx,%eax
2458         shrdl   $7,%ecx,%ecx
2459         addl    %edi,%eax
2460         addl    24(%rsp),%ebp
2461         vaesenc %xmm14,%xmm11,%xmm11
2462         vmovups 16(%r15),%xmm15
2463         xorl    %edx,%esi
2464         movl    %eax,%edi
2465         shldl   $5,%eax,%eax
2466         xorl    %ecx,%esi
2467         addl    %eax,%ebp
2468         shrdl   $7,%ebx,%ebx
2469         addl    %esi,%ebp
2470         addl    28(%rsp),%edx
2471         xorl    %ecx,%edi
2472         movl    %ebp,%esi
2473         shldl   $5,%ebp,%ebp
2474         xorl    %ebx,%edi
2475         addl    %ebp,%edx
2476         shrdl   $7,%eax,%eax
2477         addl    %edi,%edx
2478         addl    32(%rsp),%ecx
2479         xorl    %ebx,%esi
2480         vpshufb %xmm6,%xmm2,%xmm2
2481         movl    %edx,%edi
2482         shldl   $5,%edx,%edx
2483         vpaddd  %xmm9,%xmm1,%xmm5
2484         xorl    %eax,%esi
2485         vaesenc %xmm15,%xmm11,%xmm11
2486         vmovups 32(%r15),%xmm14
2487         addl    %edx,%ecx
2488         shrdl   $7,%ebp,%ebp
2489         addl    %esi,%ecx
2490         vmovdqa %xmm5,16(%rsp)
2491         addl    36(%rsp),%ebx
2492         xorl    %eax,%edi
2493         movl    %ecx,%esi
2494         shldl   $5,%ecx,%ecx
2495         xorl    %ebp,%edi
2496         addl    %ecx,%ebx
2497         shrdl   $7,%edx,%edx
2498         addl    %edi,%ebx
2499         addl    40(%rsp),%eax
2500         xorl    %ebp,%esi
2501         movl    %ebx,%edi
2502         shldl   $5,%ebx,%ebx
2503         xorl    %edx,%esi
2504         addl    %ebx,%eax
2505         shrdl   $7,%ecx,%ecx
2506         addl    %esi,%eax
2507         addl    44(%rsp),%ebp
2508         vaesenc %xmm14,%xmm11,%xmm11
2509         vmovups 48(%r15),%xmm15
2510         xorl    %edx,%edi
2511         movl    %eax,%esi
2512         shldl   $5,%eax,%eax
2513         xorl    %ecx,%edi
2514         addl    %eax,%ebp
2515         shrdl   $7,%ebx,%ebx
2516         addl    %edi,%ebp
2517         addl    48(%rsp),%edx
2518         xorl    %ecx,%esi
2519         vpshufb %xmm6,%xmm3,%xmm3
2520         movl    %ebp,%edi
2521         shldl   $5,%ebp,%ebp
2522         vpaddd  %xmm9,%xmm2,%xmm6
2523         xorl    %ebx,%esi
2524         addl    %ebp,%edx
2525         shrdl   $7,%eax,%eax
2526         addl    %esi,%edx
2527         vmovdqa %xmm6,32(%rsp)
2528         addl    52(%rsp),%ecx
2529         xorl    %ebx,%edi
2530         movl    %edx,%esi
2531         shldl   $5,%edx,%edx
2532         xorl    %eax,%edi
2533         cmpl    $11,%r8d
2534         jb      .Lvaesenclast4
2535         vaesenc %xmm15,%xmm11,%xmm11
2536         vmovups 64(%r15),%xmm14
2537         vaesenc %xmm14,%xmm11,%xmm11
2538         vmovups 80(%r15),%xmm15
2539         je      .Lvaesenclast4
2540         vaesenc %xmm15,%xmm11,%xmm11
2541         vmovups 96(%r15),%xmm14
2542         vaesenc %xmm14,%xmm11,%xmm11
2543         vmovups 112(%r15),%xmm15
2544 .Lvaesenclast4:
2545         vaesenclast     %xmm15,%xmm11,%xmm11
2546         vmovups 16-112(%r15),%xmm14
2547         addl    %edx,%ecx
2548         shrdl   $7,%ebp,%ebp
2549         addl    %edi,%ecx
2550         addl    56(%rsp),%ebx
2551         xorl    %eax,%esi
2552         movl    %ecx,%edi
2553         shldl   $5,%ecx,%ecx
2554         xorl    %ebp,%esi
2555         addl    %ecx,%ebx
2556         shrdl   $7,%edx,%edx
2557         addl    %esi,%ebx
2558         addl    60(%rsp),%eax
2559         xorl    %ebp,%edi
2560         movl    %ebx,%esi
2561         shldl   $5,%ebx,%ebx
2562         xorl    %edx,%edi
2563         addl    %ebx,%eax
2564         shrdl   $7,%ecx,%ecx
2565         addl    %edi,%eax
2566         vmovups %xmm11,48(%r13,%r12,1)
2567         leaq    64(%r12),%r12
2569         addl    0(%r9),%eax
2570         addl    4(%r9),%esi
2571         addl    8(%r9),%ecx
2572         addl    12(%r9),%edx
2573         movl    %eax,0(%r9)
2574         addl    16(%r9),%ebp
2575         movl    %esi,4(%r9)
2576         movl    %esi,%ebx
2577         movl    %ecx,8(%r9)
2578         movl    %edx,12(%r9)
2579         movl    %ebp,16(%r9)
2580         jmp     .Loop_avx
2582 .align  16
2583 .Ldone_avx:
2584         addl    16(%rsp),%ebx
2585         xorl    %eax,%esi
2586         movl    %ecx,%edi
2587         shldl   $5,%ecx,%ecx
2588         xorl    %ebp,%esi
2589         addl    %ecx,%ebx
2590         shrdl   $7,%edx,%edx
2591         addl    %esi,%ebx
2592         addl    20(%rsp),%eax
2593         xorl    %ebp,%edi
2594         movl    %ebx,%esi
2595         shldl   $5,%ebx,%ebx
2596         xorl    %edx,%edi
2597         addl    %ebx,%eax
2598         shrdl   $7,%ecx,%ecx
2599         addl    %edi,%eax
2600         addl    24(%rsp),%ebp
2601         vaesenc %xmm14,%xmm11,%xmm11
2602         vmovups 16(%r15),%xmm15
2603         xorl    %edx,%esi
2604         movl    %eax,%edi
2605         shldl   $5,%eax,%eax
2606         xorl    %ecx,%esi
2607         addl    %eax,%ebp
2608         shrdl   $7,%ebx,%ebx
2609         addl    %esi,%ebp
2610         addl    28(%rsp),%edx
2611         xorl    %ecx,%edi
2612         movl    %ebp,%esi
2613         shldl   $5,%ebp,%ebp
2614         xorl    %ebx,%edi
2615         addl    %ebp,%edx
2616         shrdl   $7,%eax,%eax
2617         addl    %edi,%edx
2618         addl    32(%rsp),%ecx
2619         xorl    %ebx,%esi
2620         movl    %edx,%edi
2621         shldl   $5,%edx,%edx
2622         xorl    %eax,%esi
2623         vaesenc %xmm15,%xmm11,%xmm11
2624         vmovups 32(%r15),%xmm14
2625         addl    %edx,%ecx
2626         shrdl   $7,%ebp,%ebp
2627         addl    %esi,%ecx
2628         addl    36(%rsp),%ebx
2629         xorl    %eax,%edi
2630         movl    %ecx,%esi
2631         shldl   $5,%ecx,%ecx
2632         xorl    %ebp,%edi
2633         addl    %ecx,%ebx
2634         shrdl   $7,%edx,%edx
2635         addl    %edi,%ebx
2636         addl    40(%rsp),%eax
2637         xorl    %ebp,%esi
2638         movl    %ebx,%edi
2639         shldl   $5,%ebx,%ebx
2640         xorl    %edx,%esi
2641         addl    %ebx,%eax
2642         shrdl   $7,%ecx,%ecx
2643         addl    %esi,%eax
2644         addl    44(%rsp),%ebp
2645         vaesenc %xmm14,%xmm11,%xmm11
2646         vmovups 48(%r15),%xmm15
2647         xorl    %edx,%edi
2648         movl    %eax,%esi
2649         shldl   $5,%eax,%eax
2650         xorl    %ecx,%edi
2651         addl    %eax,%ebp
2652         shrdl   $7,%ebx,%ebx
2653         addl    %edi,%ebp
2654         addl    48(%rsp),%edx
2655         xorl    %ecx,%esi
2656         movl    %ebp,%edi
2657         shldl   $5,%ebp,%ebp
2658         xorl    %ebx,%esi
2659         addl    %ebp,%edx
2660         shrdl   $7,%eax,%eax
2661         addl    %esi,%edx
2662         addl    52(%rsp),%ecx
2663         xorl    %ebx,%edi
2664         movl    %edx,%esi
2665         shldl   $5,%edx,%edx
2666         xorl    %eax,%edi
2667         cmpl    $11,%r8d
2668         jb      .Lvaesenclast5
2669         vaesenc %xmm15,%xmm11,%xmm11
2670         vmovups 64(%r15),%xmm14
2671         vaesenc %xmm14,%xmm11,%xmm11
2672         vmovups 80(%r15),%xmm15
2673         je      .Lvaesenclast5
2674         vaesenc %xmm15,%xmm11,%xmm11
2675         vmovups 96(%r15),%xmm14
2676         vaesenc %xmm14,%xmm11,%xmm11
2677         vmovups 112(%r15),%xmm15
2678 .Lvaesenclast5:
2679         vaesenclast     %xmm15,%xmm11,%xmm11
2680         vmovups 16-112(%r15),%xmm14
2681         addl    %edx,%ecx
2682         shrdl   $7,%ebp,%ebp
2683         addl    %edi,%ecx
2684         addl    56(%rsp),%ebx
2685         xorl    %eax,%esi
2686         movl    %ecx,%edi
2687         shldl   $5,%ecx,%ecx
2688         xorl    %ebp,%esi
2689         addl    %ecx,%ebx
2690         shrdl   $7,%edx,%edx
2691         addl    %esi,%ebx
2692         addl    60(%rsp),%eax
2693         xorl    %ebp,%edi
2694         movl    %ebx,%esi
2695         shldl   $5,%ebx,%ebx
2696         xorl    %edx,%edi
2697         addl    %ebx,%eax
2698         shrdl   $7,%ecx,%ecx
2699         addl    %edi,%eax
2700         vmovups %xmm11,48(%r13,%r12,1)
2701         movq    88(%rsp),%r8
2703         addl    0(%r9),%eax
2704         addl    4(%r9),%esi
2705         addl    8(%r9),%ecx
2706         movl    %eax,0(%r9)
2707         addl    12(%r9),%edx
2708         movl    %esi,4(%r9)
2709         addl    16(%r9),%ebp
2710         movl    %ecx,8(%r9)
2711         movl    %edx,12(%r9)
2712         movl    %ebp,16(%r9)
2713         vmovups %xmm11,(%r8)
2714         vzeroall
2715         leaq    104(%rsp),%rsi
2716         movq    0(%rsi),%r15
2717         movq    8(%rsi),%r14
2718         movq    16(%rsi),%r13
2719         movq    24(%rsi),%r12
2720         movq    32(%rsi),%rbp
2721         movq    40(%rsi),%rbx
2722         leaq    48(%rsi),%rsp
2723 .Lepilogue_avx:
2724         .byte   0xf3,0xc3
2725 .size   aesni_cbc_sha1_enc_avx,.-aesni_cbc_sha1_enc_avx
2726 .align  64
2727 K_XX_XX:
2728 .long   0x5a827999,0x5a827999,0x5a827999,0x5a827999     
2729 .long   0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1     
2730 .long   0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc     
2731 .long   0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6     
2732 .long   0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f     
2734 .byte   65,69,83,78,73,45,67,66,67,43,83,72,65,49,32,115,116,105,116,99,104,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
2735 .align  64