5 .globl aesni_multi_cbc_encrypt
6 .type aesni_multi_cbc_encrypt,@function
8 aesni_multi_cbc_encrypt:
11 movl OPENSSL_ia32cap_P+4(%rip),%ecx
13 jnz _avx_cbc_enc_shortcut
48 movdqu -56(%rdi),%xmm2
57 movdqu -16(%rdi),%xmm3
81 movups 16-120(%rsi),%xmm1
83 movups 32-120(%rsi),%xmm0
85 movl 240-120(%rsi),%eax
96 movdqa 32(%rsp),%xmm10
107 .byte 102,15,56,220,209
108 prefetcht0 31(%r8,%rbx,1)
109 prefetcht0 31(%r9,%rbx,1)
110 .byte 102,15,56,220,217
111 prefetcht0 31(%r10,%rbx,1)
112 prefetcht0 31(%r10,%rbx,1)
113 .byte 102,15,56,220,225
114 .byte 102,15,56,220,233
115 movups 48-120(%rsi),%xmm1
117 .byte 102,15,56,220,208
118 .byte 102,15,56,220,216
119 .byte 102,15,56,220,224
122 .byte 102,15,56,220,232
123 movups -56(%rsi),%xmm0
125 .byte 102,15,56,220,209
126 .byte 102,15,56,220,217
127 .byte 102,15,56,220,225
130 .byte 102,15,56,220,233
131 movups -40(%rsi),%xmm1
133 .byte 102,15,56,220,208
134 .byte 102,15,56,220,216
135 .byte 102,15,56,220,224
138 .byte 102,15,56,220,232
139 movups -24(%rsi),%xmm0
141 .byte 102,15,56,220,209
142 .byte 102,15,56,220,217
143 .byte 102,15,56,220,225
146 .byte 102,15,56,220,233
147 movups -8(%rsi),%xmm1
149 .byte 102,15,56,220,208
150 prefetcht0 15(%r12,%rbx,1)
151 prefetcht0 15(%r13,%rbx,1)
152 .byte 102,15,56,220,216
153 prefetcht0 15(%r14,%rbx,1)
154 prefetcht0 15(%r15,%rbx,1)
155 .byte 102,15,56,220,224
156 .byte 102,15,56,220,232
157 movups 128-120(%rsi),%xmm0
160 .byte 102,15,56,220,209
161 pcmpgtd %xmm12,%xmm11
162 movdqu -120(%rsi),%xmm12
163 .byte 102,15,56,220,217
165 movdqa %xmm10,32(%rsp)
166 .byte 102,15,56,220,225
167 .byte 102,15,56,220,233
168 movups 144-120(%rsi),%xmm1
172 .byte 102,15,56,220,208
173 .byte 102,15,56,220,216
174 .byte 102,15,56,220,224
175 .byte 102,15,56,220,232
176 movups 160-120(%rsi),%xmm0
180 .byte 102,15,56,220,209
181 .byte 102,15,56,220,217
182 .byte 102,15,56,220,225
183 .byte 102,15,56,220,233
184 movups 176-120(%rsi),%xmm1
186 .byte 102,15,56,220,208
187 .byte 102,15,56,220,216
188 .byte 102,15,56,220,224
189 .byte 102,15,56,220,232
190 movups 192-120(%rsi),%xmm0
194 .byte 102,15,56,220,209
195 .byte 102,15,56,220,217
196 .byte 102,15,56,220,225
197 .byte 102,15,56,220,233
198 movups 208-120(%rsi),%xmm1
200 .byte 102,15,56,220,208
201 .byte 102,15,56,220,216
202 .byte 102,15,56,220,224
203 .byte 102,15,56,220,232
204 movups 224-120(%rsi),%xmm0
209 .byte 102,15,56,220,209
210 .byte 102,15,56,220,217
211 .byte 102,15,56,220,225
212 .byte 102,15,56,220,233
213 movdqu (%r8,%rbx,1),%xmm6
214 movdqu 16-120(%rsi),%xmm1
216 .byte 102,15,56,221,208
217 movdqu (%r9,%rbx,1),%xmm7
219 .byte 102,15,56,221,216
220 movdqu (%r10,%rbx,1),%xmm8
222 .byte 102,15,56,221,224
223 movdqu (%r11,%rbx,1),%xmm9
225 .byte 102,15,56,221,232
226 movdqu 32-120(%rsi),%xmm0
229 movups %xmm2,-16(%r12,%rbx,1)
231 movups %xmm3,-16(%r13,%rbx,1)
233 movups %xmm4,-16(%r14,%rbx,1)
235 movups %xmm5,-16(%r15,%rbx,1)
255 jnz .Lenc4x_loop_grande
267 .size aesni_multi_cbc_encrypt,.-aesni_multi_cbc_encrypt
269 .globl aesni_multi_cbc_decrypt
270 .type aesni_multi_cbc_decrypt,@function
272 aesni_multi_cbc_decrypt:
275 movl OPENSSL_ia32cap_P+4(%rip),%ecx
276 testl $268435456,%ecx
277 jnz _avx_cbc_dec_shortcut
312 movdqu -56(%rdi),%xmm6
321 movdqu -16(%rdi),%xmm7
330 movdqu 24(%rdi),%xmm8
339 movdqu 64(%rdi),%xmm9
345 movups 16-120(%rsi),%xmm1
346 movups 32-120(%rsi),%xmm0
347 movl 240-120(%rsi),%eax
356 movdqa 32(%rsp),%xmm10
367 .byte 102,15,56,222,209
368 prefetcht0 31(%r8,%rbx,1)
369 prefetcht0 31(%r9,%rbx,1)
370 .byte 102,15,56,222,217
371 prefetcht0 31(%r10,%rbx,1)
372 prefetcht0 31(%r11,%rbx,1)
373 .byte 102,15,56,222,225
374 .byte 102,15,56,222,233
375 movups 48-120(%rsi),%xmm1
377 .byte 102,15,56,222,208
378 .byte 102,15,56,222,216
379 .byte 102,15,56,222,224
382 .byte 102,15,56,222,232
383 movups -56(%rsi),%xmm0
385 .byte 102,15,56,222,209
386 .byte 102,15,56,222,217
387 .byte 102,15,56,222,225
390 .byte 102,15,56,222,233
391 movups -40(%rsi),%xmm1
393 .byte 102,15,56,222,208
394 .byte 102,15,56,222,216
395 .byte 102,15,56,222,224
398 .byte 102,15,56,222,232
399 movups -24(%rsi),%xmm0
401 .byte 102,15,56,222,209
402 .byte 102,15,56,222,217
403 .byte 102,15,56,222,225
406 .byte 102,15,56,222,233
407 movups -8(%rsi),%xmm1
409 .byte 102,15,56,222,208
410 prefetcht0 15(%r12,%rbx,1)
411 prefetcht0 15(%r13,%rbx,1)
412 .byte 102,15,56,222,216
413 prefetcht0 15(%r14,%rbx,1)
414 prefetcht0 15(%r15,%rbx,1)
415 .byte 102,15,56,222,224
416 .byte 102,15,56,222,232
417 movups 128-120(%rsi),%xmm0
420 .byte 102,15,56,222,209
421 pcmpgtd %xmm12,%xmm11
422 movdqu -120(%rsi),%xmm12
423 .byte 102,15,56,222,217
425 movdqa %xmm10,32(%rsp)
426 .byte 102,15,56,222,225
427 .byte 102,15,56,222,233
428 movups 144-120(%rsi),%xmm1
432 .byte 102,15,56,222,208
433 .byte 102,15,56,222,216
434 .byte 102,15,56,222,224
435 .byte 102,15,56,222,232
436 movups 160-120(%rsi),%xmm0
440 .byte 102,15,56,222,209
441 .byte 102,15,56,222,217
442 .byte 102,15,56,222,225
443 .byte 102,15,56,222,233
444 movups 176-120(%rsi),%xmm1
446 .byte 102,15,56,222,208
447 .byte 102,15,56,222,216
448 .byte 102,15,56,222,224
449 .byte 102,15,56,222,232
450 movups 192-120(%rsi),%xmm0
454 .byte 102,15,56,222,209
455 .byte 102,15,56,222,217
456 .byte 102,15,56,222,225
457 .byte 102,15,56,222,233
458 movups 208-120(%rsi),%xmm1
460 .byte 102,15,56,222,208
461 .byte 102,15,56,222,216
462 .byte 102,15,56,222,224
463 .byte 102,15,56,222,232
464 movups 224-120(%rsi),%xmm0
469 .byte 102,15,56,222,209
470 .byte 102,15,56,222,217
471 .byte 102,15,56,222,225
474 .byte 102,15,56,222,233
475 movdqu 16-120(%rsi),%xmm1
478 movdqu 32-120(%rsi),%xmm0
480 .byte 102,15,56,223,214
481 .byte 102,15,56,223,223
482 movdqu -16(%r8,%rbx,1),%xmm6
483 movdqu -16(%r9,%rbx,1),%xmm7
484 .byte 102,65,15,56,223,224
485 .byte 102,65,15,56,223,233
486 movdqu -16(%r10,%rbx,1),%xmm8
487 movdqu -16(%r11,%rbx,1),%xmm9
489 movups %xmm2,-16(%r12,%rbx,1)
490 movdqu (%r8,%rbx,1),%xmm2
491 movups %xmm3,-16(%r13,%rbx,1)
492 movdqu (%r9,%rbx,1),%xmm3
494 movups %xmm4,-16(%r14,%rbx,1)
495 movdqu (%r10,%rbx,1),%xmm4
497 movups %xmm5,-16(%r15,%rbx,1)
498 movdqu (%r11,%rbx,1),%xmm5
510 jnz .Ldec4x_loop_grande
522 .size aesni_multi_cbc_decrypt,.-aesni_multi_cbc_decrypt
523 .type aesni_multi_cbc_encrypt_avx,@function
525 aesni_multi_cbc_encrypt_avx:
526 _avx_cbc_enc_shortcut:
548 vmovdqu (%rsi),%xmm15
562 vmovdqu -136(%rdi),%xmm2
573 vmovdqu -96(%rdi),%xmm3
584 vmovdqu -56(%rdi),%xmm4
595 vmovdqu -16(%rdi),%xmm5
606 vmovdqu 24(%rdi),%xmm6
617 vmovdqu 64(%rdi),%xmm7
628 vmovdqu 104(%rdi),%xmm8
639 vmovdqu 144(%rdi),%xmm9
647 vmovups 16-120(%rsi),%xmm1
648 vmovups 32-120(%rsi),%xmm0
649 movl 240-120(%rsi),%eax
651 vpxor (%r8),%xmm15,%xmm10
653 vpxor (%r9),%xmm15,%xmm11
654 vpxor (%r10),%xmm15,%xmm12
655 vpxor (%r11),%xmm15,%xmm13
656 vpxor %xmm10,%xmm2,%xmm2
657 vpxor (%r12),%xmm15,%xmm10
658 vpxor %xmm11,%xmm3,%xmm3
659 vpxor (%r13),%xmm15,%xmm11
660 vpxor %xmm12,%xmm4,%xmm4
661 vpxor (%r14),%xmm15,%xmm12
662 vpxor %xmm13,%xmm5,%xmm5
663 vpxor (%r15),%xmm15,%xmm13
664 vpxor %xmm10,%xmm6,%xmm6
666 vpxor %xmm11,%xmm7,%xmm7
667 vpxor %xmm12,%xmm8,%xmm8
668 vpxor %xmm13,%xmm9,%xmm9
673 vaesenc %xmm1,%xmm2,%xmm2
675 vaesenc %xmm1,%xmm3,%xmm3
677 vaesenc %xmm1,%xmm4,%xmm4
678 vaesenc %xmm1,%xmm5,%xmm5
679 leaq (%r8,%rbx,1),%rbx
681 vaesenc %xmm1,%xmm6,%xmm6
683 vaesenc %xmm1,%xmm7,%xmm7
685 vaesenc %xmm1,%xmm8,%xmm8
686 vpxor 16(%r8),%xmm15,%xmm10
688 vaesenc %xmm1,%xmm9,%xmm9
689 vmovups -72(%rsi),%xmm1
690 leaq 16(%r8,%rbx,1),%r8
691 vmovdqu %xmm10,0(%rbp)
692 vaesenc %xmm0,%xmm2,%xmm2
695 vaesenc %xmm0,%xmm3,%xmm3
697 vaesenc %xmm0,%xmm4,%xmm4
698 vaesenc %xmm0,%xmm5,%xmm5
699 leaq (%r9,%rbx,1),%rbx
701 vaesenc %xmm0,%xmm6,%xmm6
703 vaesenc %xmm0,%xmm7,%xmm7
705 vaesenc %xmm0,%xmm8,%xmm8
706 vpxor 16(%r9),%xmm15,%xmm11
708 vaesenc %xmm0,%xmm9,%xmm9
709 vmovups -56(%rsi),%xmm0
710 leaq 16(%r9,%rbx,1),%r9
711 vmovdqu %xmm11,16(%rbp)
712 vaesenc %xmm1,%xmm2,%xmm2
714 movq 64+16(%rsp),%rbx
715 vaesenc %xmm1,%xmm3,%xmm3
717 vaesenc %xmm1,%xmm4,%xmm4
719 vaesenc %xmm1,%xmm5,%xmm5
720 leaq (%r10,%rbx,1),%rbx
722 vaesenc %xmm1,%xmm6,%xmm6
724 vaesenc %xmm1,%xmm7,%xmm7
726 vaesenc %xmm1,%xmm8,%xmm8
727 vpxor 16(%r10),%xmm15,%xmm12
728 movq %rbx,64+16(%rsp)
729 vaesenc %xmm1,%xmm9,%xmm9
730 vmovups -40(%rsi),%xmm1
731 leaq 16(%r10,%rbx,1),%r10
732 vmovdqu %xmm12,32(%rbp)
733 vaesenc %xmm0,%xmm2,%xmm2
734 cmpl 32+12(%rsp),%ecx
735 movq 64+24(%rsp),%rbx
736 vaesenc %xmm0,%xmm3,%xmm3
738 vaesenc %xmm0,%xmm4,%xmm4
740 vaesenc %xmm0,%xmm5,%xmm5
741 leaq (%r11,%rbx,1),%rbx
743 vaesenc %xmm0,%xmm6,%xmm6
745 vaesenc %xmm0,%xmm7,%xmm7
747 vaesenc %xmm0,%xmm8,%xmm8
748 vpxor 16(%r11),%xmm15,%xmm13
749 movq %rbx,64+24(%rsp)
750 vaesenc %xmm0,%xmm9,%xmm9
751 vmovups -24(%rsi),%xmm0
752 leaq 16(%r11,%rbx,1),%r11
753 vmovdqu %xmm13,48(%rbp)
754 vaesenc %xmm1,%xmm2,%xmm2
755 cmpl 32+16(%rsp),%ecx
756 movq 64+32(%rsp),%rbx
757 vaesenc %xmm1,%xmm3,%xmm3
759 vaesenc %xmm1,%xmm4,%xmm4
761 vaesenc %xmm1,%xmm5,%xmm5
762 leaq (%r12,%rbx,1),%rbx
764 vaesenc %xmm1,%xmm6,%xmm6
766 vaesenc %xmm1,%xmm7,%xmm7
768 vaesenc %xmm1,%xmm8,%xmm8
769 vpxor 16(%r12),%xmm15,%xmm10
770 movq %rbx,64+32(%rsp)
771 vaesenc %xmm1,%xmm9,%xmm9
772 vmovups -8(%rsi),%xmm1
773 leaq 16(%r12,%rbx,1),%r12
774 vaesenc %xmm0,%xmm2,%xmm2
775 cmpl 32+20(%rsp),%ecx
776 movq 64+40(%rsp),%rbx
777 vaesenc %xmm0,%xmm3,%xmm3
779 vaesenc %xmm0,%xmm4,%xmm4
781 vaesenc %xmm0,%xmm5,%xmm5
782 leaq (%rbx,%r13,1),%rbx
784 vaesenc %xmm0,%xmm6,%xmm6
786 vaesenc %xmm0,%xmm7,%xmm7
788 vaesenc %xmm0,%xmm8,%xmm8
789 vpxor 16(%r13),%xmm15,%xmm11
790 movq %rbx,64+40(%rsp)
791 vaesenc %xmm0,%xmm9,%xmm9
792 vmovups 8(%rsi),%xmm0
793 leaq 16(%r13,%rbx,1),%r13
794 vaesenc %xmm1,%xmm2,%xmm2
795 cmpl 32+24(%rsp),%ecx
796 movq 64+48(%rsp),%rbx
797 vaesenc %xmm1,%xmm3,%xmm3
799 vaesenc %xmm1,%xmm4,%xmm4
801 vaesenc %xmm1,%xmm5,%xmm5
802 leaq (%r14,%rbx,1),%rbx
804 vaesenc %xmm1,%xmm6,%xmm6
806 vaesenc %xmm1,%xmm7,%xmm7
808 vaesenc %xmm1,%xmm8,%xmm8
809 vpxor 16(%r14),%xmm15,%xmm12
810 movq %rbx,64+48(%rsp)
811 vaesenc %xmm1,%xmm9,%xmm9
812 vmovups 24(%rsi),%xmm1
813 leaq 16(%r14,%rbx,1),%r14
814 vaesenc %xmm0,%xmm2,%xmm2
815 cmpl 32+28(%rsp),%ecx
816 movq 64+56(%rsp),%rbx
817 vaesenc %xmm0,%xmm3,%xmm3
819 vaesenc %xmm0,%xmm4,%xmm4
821 vaesenc %xmm0,%xmm5,%xmm5
822 leaq (%r15,%rbx,1),%rbx
824 vaesenc %xmm0,%xmm6,%xmm6
826 vaesenc %xmm0,%xmm7,%xmm7
828 vaesenc %xmm0,%xmm8,%xmm8
829 vpxor 16(%r15),%xmm15,%xmm13
830 movq %rbx,64+56(%rsp)
831 vaesenc %xmm0,%xmm9,%xmm9
832 vmovups 40(%rsi),%xmm0
833 leaq 16(%r15,%rbx,1),%r15
834 vmovdqu 32(%rsp),%xmm14
840 vaesenc %xmm1,%xmm2,%xmm2
841 vaesenc %xmm1,%xmm3,%xmm3
842 vaesenc %xmm1,%xmm4,%xmm4
843 vaesenc %xmm1,%xmm5,%xmm5
844 vaesenc %xmm1,%xmm6,%xmm6
845 vaesenc %xmm1,%xmm7,%xmm7
846 vaesenc %xmm1,%xmm8,%xmm8
847 vaesenc %xmm1,%xmm9,%xmm9
848 vmovups 176-120(%rsi),%xmm1
850 vaesenc %xmm0,%xmm2,%xmm2
851 vaesenc %xmm0,%xmm3,%xmm3
852 vaesenc %xmm0,%xmm4,%xmm4
853 vaesenc %xmm0,%xmm5,%xmm5
854 vaesenc %xmm0,%xmm6,%xmm6
855 vaesenc %xmm0,%xmm7,%xmm7
856 vaesenc %xmm0,%xmm8,%xmm8
857 vaesenc %xmm0,%xmm9,%xmm9
858 vmovups 192-120(%rsi),%xmm0
861 vaesenc %xmm1,%xmm2,%xmm2
862 vaesenc %xmm1,%xmm3,%xmm3
863 vaesenc %xmm1,%xmm4,%xmm4
864 vaesenc %xmm1,%xmm5,%xmm5
865 vaesenc %xmm1,%xmm6,%xmm6
866 vaesenc %xmm1,%xmm7,%xmm7
867 vaesenc %xmm1,%xmm8,%xmm8
868 vaesenc %xmm1,%xmm9,%xmm9
869 vmovups 208-120(%rsi),%xmm1
871 vaesenc %xmm0,%xmm2,%xmm2
872 vaesenc %xmm0,%xmm3,%xmm3
873 vaesenc %xmm0,%xmm4,%xmm4
874 vaesenc %xmm0,%xmm5,%xmm5
875 vaesenc %xmm0,%xmm6,%xmm6
876 vaesenc %xmm0,%xmm7,%xmm7
877 vaesenc %xmm0,%xmm8,%xmm8
878 vaesenc %xmm0,%xmm9,%xmm9
879 vmovups 224-120(%rsi),%xmm0
882 vaesenc %xmm1,%xmm2,%xmm2
883 vpxor %xmm15,%xmm15,%xmm15
884 vaesenc %xmm1,%xmm3,%xmm3
885 vaesenc %xmm1,%xmm4,%xmm4
886 vpcmpgtd %xmm15,%xmm14,%xmm15
887 vaesenc %xmm1,%xmm5,%xmm5
888 vaesenc %xmm1,%xmm6,%xmm6
889 vpaddd %xmm14,%xmm15,%xmm15
890 vmovdqu 48(%rsp),%xmm14
891 vaesenc %xmm1,%xmm7,%xmm7
893 vaesenc %xmm1,%xmm8,%xmm8
894 vaesenc %xmm1,%xmm9,%xmm9
895 vmovups 16-120(%rsi),%xmm1
897 vaesenclast %xmm0,%xmm2,%xmm2
898 vmovdqa %xmm15,32(%rsp)
899 vpxor %xmm15,%xmm15,%xmm15
900 vaesenclast %xmm0,%xmm3,%xmm3
901 vaesenclast %xmm0,%xmm4,%xmm4
902 vpcmpgtd %xmm15,%xmm14,%xmm15
903 vaesenclast %xmm0,%xmm5,%xmm5
904 vaesenclast %xmm0,%xmm6,%xmm6
905 vpaddd %xmm15,%xmm14,%xmm14
906 vmovdqu -120(%rsi),%xmm15
907 vaesenclast %xmm0,%xmm7,%xmm7
908 vaesenclast %xmm0,%xmm8,%xmm8
909 vmovdqa %xmm14,48(%rsp)
910 vaesenclast %xmm0,%xmm9,%xmm9
911 vmovups 32-120(%rsi),%xmm0
913 vmovups %xmm2,-16(%r8)
915 vpxor 0(%rbp),%xmm2,%xmm2
916 vmovups %xmm3,-16(%r9)
918 vpxor 16(%rbp),%xmm3,%xmm3
919 vmovups %xmm4,-16(%r10)
921 vpxor 32(%rbp),%xmm4,%xmm4
922 vmovups %xmm5,-16(%r11)
924 vpxor 48(%rbp),%xmm5,%xmm5
925 vmovups %xmm6,-16(%r12)
927 vpxor %xmm10,%xmm6,%xmm6
928 vmovups %xmm7,-16(%r13)
930 vpxor %xmm11,%xmm7,%xmm7
931 vmovups %xmm8,-16(%r14)
933 vpxor %xmm12,%xmm8,%xmm8
934 vmovups %xmm9,-16(%r15)
936 vpxor %xmm13,%xmm9,%xmm9
958 .size aesni_multi_cbc_encrypt_avx,.-aesni_multi_cbc_encrypt_avx
960 .type aesni_multi_cbc_decrypt_avx,@function
962 aesni_multi_cbc_decrypt_avx:
963 _avx_cbc_dec_shortcut:
987 vmovdqu (%rsi),%xmm15
1001 vmovdqu -136(%rdi),%xmm2
1006 vmovdqu %xmm2,192(%rsp)
1007 movl -104(%rdi),%ecx
1010 movq -112(%rdi),%rbp
1013 vmovdqu -96(%rdi),%xmm3
1018 vmovdqu %xmm3,208(%rsp)
1025 vmovdqu -56(%rdi),%xmm4
1030 vmovdqu %xmm4,224(%rsp)
1037 vmovdqu -16(%rdi),%xmm5
1042 vmovdqu %xmm5,240(%rsp)
1049 vmovdqu 24(%rdi),%xmm6
1054 vmovdqu %xmm6,256(%rsp)
1061 vmovdqu 64(%rdi),%xmm7
1066 vmovdqu %xmm7,272(%rsp)
1073 vmovdqu 104(%rdi),%xmm8
1078 vmovdqu %xmm8,288(%rsp)
1085 vmovdqu 144(%rdi),%xmm9
1090 vmovdqu %xmm9,304(%rsp)
1094 vmovups 16-120(%rsi),%xmm1
1095 vmovups 32-120(%rsi),%xmm0
1096 movl 240-120(%rsi),%eax
1097 leaq 192+128(%rsp),%rbp
1101 vmovdqu (%r10),%xmm4
1102 vmovdqu (%r11),%xmm5
1103 vmovdqu (%r12),%xmm6
1104 vmovdqu (%r13),%xmm7
1105 vmovdqu (%r14),%xmm8
1106 vmovdqu (%r15),%xmm9
1107 vmovdqu %xmm2,0(%rbp)
1108 vpxor %xmm15,%xmm2,%xmm2
1109 vmovdqu %xmm3,16(%rbp)
1110 vpxor %xmm15,%xmm3,%xmm3
1111 vmovdqu %xmm4,32(%rbp)
1112 vpxor %xmm15,%xmm4,%xmm4
1113 vmovdqu %xmm5,48(%rbp)
1114 vpxor %xmm15,%xmm5,%xmm5
1115 vmovdqu %xmm6,64(%rbp)
1116 vpxor %xmm15,%xmm6,%xmm6
1117 vmovdqu %xmm7,80(%rbp)
1118 vpxor %xmm15,%xmm7,%xmm7
1119 vmovdqu %xmm8,96(%rbp)
1120 vpxor %xmm15,%xmm8,%xmm8
1121 vmovdqu %xmm9,112(%rbp)
1122 vpxor %xmm15,%xmm9,%xmm9
1129 vaesdec %xmm1,%xmm2,%xmm2
1130 cmpl 32+0(%rsp),%ecx
1131 vaesdec %xmm1,%xmm3,%xmm3
1133 vaesdec %xmm1,%xmm4,%xmm4
1134 vaesdec %xmm1,%xmm5,%xmm5
1135 leaq (%r8,%rbx,1),%rbx
1137 vaesdec %xmm1,%xmm6,%xmm6
1139 vaesdec %xmm1,%xmm7,%xmm7
1141 vaesdec %xmm1,%xmm8,%xmm8
1142 vmovdqu 16(%r8),%xmm10
1143 movq %rbx,64+0(%rsp)
1144 vaesdec %xmm1,%xmm9,%xmm9
1145 vmovups -72(%rsi),%xmm1
1146 leaq 16(%r8,%rbx,1),%r8
1147 vmovdqu %xmm10,128(%rsp)
1148 vaesdec %xmm0,%xmm2,%xmm2
1149 cmpl 32+4(%rsp),%ecx
1150 movq 64+8(%rsp),%rbx
1151 vaesdec %xmm0,%xmm3,%xmm3
1153 vaesdec %xmm0,%xmm4,%xmm4
1154 vaesdec %xmm0,%xmm5,%xmm5
1155 leaq (%r9,%rbx,1),%rbx
1157 vaesdec %xmm0,%xmm6,%xmm6
1159 vaesdec %xmm0,%xmm7,%xmm7
1161 vaesdec %xmm0,%xmm8,%xmm8
1162 vmovdqu 16(%r9),%xmm11
1163 movq %rbx,64+8(%rsp)
1164 vaesdec %xmm0,%xmm9,%xmm9
1165 vmovups -56(%rsi),%xmm0
1166 leaq 16(%r9,%rbx,1),%r9
1167 vmovdqu %xmm11,144(%rsp)
1168 vaesdec %xmm1,%xmm2,%xmm2
1169 cmpl 32+8(%rsp),%ecx
1170 movq 64+16(%rsp),%rbx
1171 vaesdec %xmm1,%xmm3,%xmm3
1173 vaesdec %xmm1,%xmm4,%xmm4
1175 vaesdec %xmm1,%xmm5,%xmm5
1176 leaq (%r10,%rbx,1),%rbx
1178 vaesdec %xmm1,%xmm6,%xmm6
1180 vaesdec %xmm1,%xmm7,%xmm7
1182 vaesdec %xmm1,%xmm8,%xmm8
1183 vmovdqu 16(%r10),%xmm12
1184 movq %rbx,64+16(%rsp)
1185 vaesdec %xmm1,%xmm9,%xmm9
1186 vmovups -40(%rsi),%xmm1
1187 leaq 16(%r10,%rbx,1),%r10
1188 vmovdqu %xmm12,160(%rsp)
1189 vaesdec %xmm0,%xmm2,%xmm2
1190 cmpl 32+12(%rsp),%ecx
1191 movq 64+24(%rsp),%rbx
1192 vaesdec %xmm0,%xmm3,%xmm3
1194 vaesdec %xmm0,%xmm4,%xmm4
1196 vaesdec %xmm0,%xmm5,%xmm5
1197 leaq (%r11,%rbx,1),%rbx
1199 vaesdec %xmm0,%xmm6,%xmm6
1201 vaesdec %xmm0,%xmm7,%xmm7
1203 vaesdec %xmm0,%xmm8,%xmm8
1204 vmovdqu 16(%r11),%xmm13
1205 movq %rbx,64+24(%rsp)
1206 vaesdec %xmm0,%xmm9,%xmm9
1207 vmovups -24(%rsi),%xmm0
1208 leaq 16(%r11,%rbx,1),%r11
1209 vmovdqu %xmm13,176(%rsp)
1210 vaesdec %xmm1,%xmm2,%xmm2
1211 cmpl 32+16(%rsp),%ecx
1212 movq 64+32(%rsp),%rbx
1213 vaesdec %xmm1,%xmm3,%xmm3
1215 vaesdec %xmm1,%xmm4,%xmm4
1217 vaesdec %xmm1,%xmm5,%xmm5
1218 leaq (%r12,%rbx,1),%rbx
1220 vaesdec %xmm1,%xmm6,%xmm6
1222 vaesdec %xmm1,%xmm7,%xmm7
1224 vaesdec %xmm1,%xmm8,%xmm8
1225 vmovdqu 16(%r12),%xmm10
1226 movq %rbx,64+32(%rsp)
1227 vaesdec %xmm1,%xmm9,%xmm9
1228 vmovups -8(%rsi),%xmm1
1229 leaq 16(%r12,%rbx,1),%r12
1230 vaesdec %xmm0,%xmm2,%xmm2
1231 cmpl 32+20(%rsp),%ecx
1232 movq 64+40(%rsp),%rbx
1233 vaesdec %xmm0,%xmm3,%xmm3
1235 vaesdec %xmm0,%xmm4,%xmm4
1237 vaesdec %xmm0,%xmm5,%xmm5
1238 leaq (%rbx,%r13,1),%rbx
1240 vaesdec %xmm0,%xmm6,%xmm6
1242 vaesdec %xmm0,%xmm7,%xmm7
1244 vaesdec %xmm0,%xmm8,%xmm8
1245 vmovdqu 16(%r13),%xmm11
1246 movq %rbx,64+40(%rsp)
1247 vaesdec %xmm0,%xmm9,%xmm9
1248 vmovups 8(%rsi),%xmm0
1249 leaq 16(%r13,%rbx,1),%r13
1250 vaesdec %xmm1,%xmm2,%xmm2
1251 cmpl 32+24(%rsp),%ecx
1252 movq 64+48(%rsp),%rbx
1253 vaesdec %xmm1,%xmm3,%xmm3
1255 vaesdec %xmm1,%xmm4,%xmm4
1257 vaesdec %xmm1,%xmm5,%xmm5
1258 leaq (%r14,%rbx,1),%rbx
1260 vaesdec %xmm1,%xmm6,%xmm6
1262 vaesdec %xmm1,%xmm7,%xmm7
1264 vaesdec %xmm1,%xmm8,%xmm8
1265 vmovdqu 16(%r14),%xmm12
1266 movq %rbx,64+48(%rsp)
1267 vaesdec %xmm1,%xmm9,%xmm9
1268 vmovups 24(%rsi),%xmm1
1269 leaq 16(%r14,%rbx,1),%r14
1270 vaesdec %xmm0,%xmm2,%xmm2
1271 cmpl 32+28(%rsp),%ecx
1272 movq 64+56(%rsp),%rbx
1273 vaesdec %xmm0,%xmm3,%xmm3
1275 vaesdec %xmm0,%xmm4,%xmm4
1277 vaesdec %xmm0,%xmm5,%xmm5
1278 leaq (%r15,%rbx,1),%rbx
1280 vaesdec %xmm0,%xmm6,%xmm6
1282 vaesdec %xmm0,%xmm7,%xmm7
1284 vaesdec %xmm0,%xmm8,%xmm8
1285 vmovdqu 16(%r15),%xmm13
1286 movq %rbx,64+56(%rsp)
1287 vaesdec %xmm0,%xmm9,%xmm9
1288 vmovups 40(%rsi),%xmm0
1289 leaq 16(%r15,%rbx,1),%r15
1290 vmovdqu 32(%rsp),%xmm14
1296 vaesdec %xmm1,%xmm2,%xmm2
1297 vaesdec %xmm1,%xmm3,%xmm3
1298 vaesdec %xmm1,%xmm4,%xmm4
1299 vaesdec %xmm1,%xmm5,%xmm5
1300 vaesdec %xmm1,%xmm6,%xmm6
1301 vaesdec %xmm1,%xmm7,%xmm7
1302 vaesdec %xmm1,%xmm8,%xmm8
1303 vaesdec %xmm1,%xmm9,%xmm9
1304 vmovups 176-120(%rsi),%xmm1
1306 vaesdec %xmm0,%xmm2,%xmm2
1307 vaesdec %xmm0,%xmm3,%xmm3
1308 vaesdec %xmm0,%xmm4,%xmm4
1309 vaesdec %xmm0,%xmm5,%xmm5
1310 vaesdec %xmm0,%xmm6,%xmm6
1311 vaesdec %xmm0,%xmm7,%xmm7
1312 vaesdec %xmm0,%xmm8,%xmm8
1313 vaesdec %xmm0,%xmm9,%xmm9
1314 vmovups 192-120(%rsi),%xmm0
1317 vaesdec %xmm1,%xmm2,%xmm2
1318 vaesdec %xmm1,%xmm3,%xmm3
1319 vaesdec %xmm1,%xmm4,%xmm4
1320 vaesdec %xmm1,%xmm5,%xmm5
1321 vaesdec %xmm1,%xmm6,%xmm6
1322 vaesdec %xmm1,%xmm7,%xmm7
1323 vaesdec %xmm1,%xmm8,%xmm8
1324 vaesdec %xmm1,%xmm9,%xmm9
1325 vmovups 208-120(%rsi),%xmm1
1327 vaesdec %xmm0,%xmm2,%xmm2
1328 vaesdec %xmm0,%xmm3,%xmm3
1329 vaesdec %xmm0,%xmm4,%xmm4
1330 vaesdec %xmm0,%xmm5,%xmm5
1331 vaesdec %xmm0,%xmm6,%xmm6
1332 vaesdec %xmm0,%xmm7,%xmm7
1333 vaesdec %xmm0,%xmm8,%xmm8
1334 vaesdec %xmm0,%xmm9,%xmm9
1335 vmovups 224-120(%rsi),%xmm0
1338 vaesdec %xmm1,%xmm2,%xmm2
1339 vpxor %xmm15,%xmm15,%xmm15
1340 vaesdec %xmm1,%xmm3,%xmm3
1341 vaesdec %xmm1,%xmm4,%xmm4
1342 vpcmpgtd %xmm15,%xmm14,%xmm15
1343 vaesdec %xmm1,%xmm5,%xmm5
1344 vaesdec %xmm1,%xmm6,%xmm6
1345 vpaddd %xmm14,%xmm15,%xmm15
1346 vmovdqu 48(%rsp),%xmm14
1347 vaesdec %xmm1,%xmm7,%xmm7
1349 vaesdec %xmm1,%xmm8,%xmm8
1350 vaesdec %xmm1,%xmm9,%xmm9
1351 vmovups 16-120(%rsi),%xmm1
1353 vaesdeclast %xmm0,%xmm2,%xmm2
1354 vmovdqa %xmm15,32(%rsp)
1355 vpxor %xmm15,%xmm15,%xmm15
1356 vaesdeclast %xmm0,%xmm3,%xmm3
1357 vpxor 0(%rbp),%xmm2,%xmm2
1358 vaesdeclast %xmm0,%xmm4,%xmm4
1359 vpxor 16(%rbp),%xmm3,%xmm3
1360 vpcmpgtd %xmm15,%xmm14,%xmm15
1361 vaesdeclast %xmm0,%xmm5,%xmm5
1362 vpxor 32(%rbp),%xmm4,%xmm4
1363 vaesdeclast %xmm0,%xmm6,%xmm6
1364 vpxor 48(%rbp),%xmm5,%xmm5
1365 vpaddd %xmm15,%xmm14,%xmm14
1366 vmovdqu -120(%rsi),%xmm15
1367 vaesdeclast %xmm0,%xmm7,%xmm7
1368 vpxor 64(%rbp),%xmm6,%xmm6
1369 vaesdeclast %xmm0,%xmm8,%xmm8
1370 vpxor 80(%rbp),%xmm7,%xmm7
1371 vmovdqa %xmm14,48(%rsp)
1372 vaesdeclast %xmm0,%xmm9,%xmm9
1373 vpxor 96(%rbp),%xmm8,%xmm8
1374 vmovups 32-120(%rsi),%xmm0
1376 vmovups %xmm2,-16(%r8)
1378 vmovdqu 128+0(%rsp),%xmm2
1379 vpxor 112(%rbp),%xmm9,%xmm9
1380 vmovups %xmm3,-16(%r9)
1382 vmovdqu %xmm2,0(%rbp)
1383 vpxor %xmm15,%xmm2,%xmm2
1384 vmovdqu 128+16(%rsp),%xmm3
1385 vmovups %xmm4,-16(%r10)
1387 vmovdqu %xmm3,16(%rbp)
1388 vpxor %xmm15,%xmm3,%xmm3
1389 vmovdqu 128+32(%rsp),%xmm4
1390 vmovups %xmm5,-16(%r11)
1392 vmovdqu %xmm4,32(%rbp)
1393 vpxor %xmm15,%xmm4,%xmm4
1394 vmovdqu 128+48(%rsp),%xmm5
1395 vmovups %xmm6,-16(%r12)
1397 vmovdqu %xmm5,48(%rbp)
1398 vpxor %xmm15,%xmm5,%xmm5
1399 vmovdqu %xmm10,64(%rbp)
1400 vpxor %xmm10,%xmm15,%xmm6
1401 vmovups %xmm7,-16(%r13)
1403 vmovdqu %xmm11,80(%rbp)
1404 vpxor %xmm11,%xmm15,%xmm7
1405 vmovups %xmm8,-16(%r14)
1407 vmovdqu %xmm12,96(%rbp)
1408 vpxor %xmm12,%xmm15,%xmm8
1409 vmovups %xmm9,-16(%r15)
1411 vmovdqu %xmm13,112(%rbp)
1412 vpxor %xmm13,%xmm15,%xmm9
1435 .size aesni_multi_cbc_decrypt_avx,.-aesni_multi_cbc_decrypt_avx
1436 .section .note.GNU-stack,"",%progbits