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