1 # Copyright (c) 2011-2012, Andy Polyakov <appro@openssl.org>
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions
8 # * Redistributions of source code must retain copyright notices,
9 # this list of conditions and the following disclaimer.
11 # * Redistributions in binary form must reproduce the above
12 # copyright notice, this list of conditions and the following
13 # disclaimer in the documentation and/or other materials
14 # provided with the distribution.
16 # * Neither the name of the Andy Polyakov nor the names of its
17 # copyright holder and contributors may be used to endorse or
18 # promote products derived from this software without specific
19 # prior written permission.
21 # ALTERNATIVELY, provided that this notice is retained in full, this
22 # product may be distributed under the terms of the GNU General Public
23 # License (GPL), in which case the provisions of the GPL apply INSTEAD OF
26 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS
27 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
28 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
29 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
30 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
31 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
32 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
33 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
34 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
35 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38 # *** This file is auto-generated ***
42 .type aesni_encrypt,@function
52 .byte 102,15,56,220,209
57 .byte 102,15,56,221,209
60 .size aesni_encrypt,.-aesni_encrypt
63 .type aesni_decrypt,@function
73 .byte 102,15,56,222,209
78 .byte 102,15,56,223,209
81 .size aesni_decrypt, .-aesni_decrypt
82 .type _aesni_encrypt3,@function
95 .byte 102,15,56,220,209
96 .byte 102,15,56,220,217
98 .byte 102,15,56,220,225
100 .byte 102,15,56,220,208
101 .byte 102,15,56,220,216
103 .byte 102,15,56,220,224
107 .byte 102,15,56,220,209
108 .byte 102,15,56,220,217
109 .byte 102,15,56,220,225
110 .byte 102,15,56,221,208
111 .byte 102,15,56,221,216
112 .byte 102,15,56,221,224
114 .size _aesni_encrypt3,.-_aesni_encrypt3
115 .type _aesni_decrypt3,@function
120 movups 16(%rcx),%xmm1
128 .byte 102,15,56,222,209
129 .byte 102,15,56,222,217
131 .byte 102,15,56,222,225
132 movups 16(%rcx),%xmm1
133 .byte 102,15,56,222,208
134 .byte 102,15,56,222,216
136 .byte 102,15,56,222,224
140 .byte 102,15,56,222,209
141 .byte 102,15,56,222,217
142 .byte 102,15,56,222,225
143 .byte 102,15,56,223,208
144 .byte 102,15,56,223,216
145 .byte 102,15,56,223,224
147 .size _aesni_decrypt3,.-_aesni_decrypt3
148 .type _aesni_encrypt4,@function
153 movups 16(%rcx),%xmm1
162 .byte 102,15,56,220,209
163 .byte 102,15,56,220,217
165 .byte 102,15,56,220,225
166 .byte 102,15,56,220,233
167 movups 16(%rcx),%xmm1
168 .byte 102,15,56,220,208
169 .byte 102,15,56,220,216
171 .byte 102,15,56,220,224
172 .byte 102,15,56,220,232
176 .byte 102,15,56,220,209
177 .byte 102,15,56,220,217
178 .byte 102,15,56,220,225
179 .byte 102,15,56,220,233
180 .byte 102,15,56,221,208
181 .byte 102,15,56,221,216
182 .byte 102,15,56,221,224
183 .byte 102,15,56,221,232
185 .size _aesni_encrypt4,.-_aesni_encrypt4
186 .type _aesni_decrypt4,@function
191 movups 16(%rcx),%xmm1
200 .byte 102,15,56,222,209
201 .byte 102,15,56,222,217
203 .byte 102,15,56,222,225
204 .byte 102,15,56,222,233
205 movups 16(%rcx),%xmm1
206 .byte 102,15,56,222,208
207 .byte 102,15,56,222,216
209 .byte 102,15,56,222,224
210 .byte 102,15,56,222,232
214 .byte 102,15,56,222,209
215 .byte 102,15,56,222,217
216 .byte 102,15,56,222,225
217 .byte 102,15,56,222,233
218 .byte 102,15,56,223,208
219 .byte 102,15,56,223,216
220 .byte 102,15,56,223,224
221 .byte 102,15,56,223,232
223 .size _aesni_decrypt4,.-_aesni_decrypt4
224 .type _aesni_encrypt6,@function
229 movups 16(%rcx),%xmm1
233 .byte 102,15,56,220,209
235 .byte 102,15,56,220,217
237 .byte 102,15,56,220,225
239 .byte 102,15,56,220,233
242 .byte 102,15,56,220,241
244 .byte 102,15,56,220,249
245 jmp .Lenc_loop6_enter
248 .byte 102,15,56,220,209
249 .byte 102,15,56,220,217
251 .byte 102,15,56,220,225
252 .byte 102,15,56,220,233
253 .byte 102,15,56,220,241
254 .byte 102,15,56,220,249
256 movups 16(%rcx),%xmm1
257 .byte 102,15,56,220,208
258 .byte 102,15,56,220,216
260 .byte 102,15,56,220,224
261 .byte 102,15,56,220,232
262 .byte 102,15,56,220,240
263 .byte 102,15,56,220,248
267 .byte 102,15,56,220,209
268 .byte 102,15,56,220,217
269 .byte 102,15,56,220,225
270 .byte 102,15,56,220,233
271 .byte 102,15,56,220,241
272 .byte 102,15,56,220,249
273 .byte 102,15,56,221,208
274 .byte 102,15,56,221,216
275 .byte 102,15,56,221,224
276 .byte 102,15,56,221,232
277 .byte 102,15,56,221,240
278 .byte 102,15,56,221,248
280 .size _aesni_encrypt6,.-_aesni_encrypt6
281 .type _aesni_decrypt6,@function
286 movups 16(%rcx),%xmm1
290 .byte 102,15,56,222,209
292 .byte 102,15,56,222,217
294 .byte 102,15,56,222,225
296 .byte 102,15,56,222,233
299 .byte 102,15,56,222,241
301 .byte 102,15,56,222,249
302 jmp .Ldec_loop6_enter
305 .byte 102,15,56,222,209
306 .byte 102,15,56,222,217
308 .byte 102,15,56,222,225
309 .byte 102,15,56,222,233
310 .byte 102,15,56,222,241
311 .byte 102,15,56,222,249
313 movups 16(%rcx),%xmm1
314 .byte 102,15,56,222,208
315 .byte 102,15,56,222,216
317 .byte 102,15,56,222,224
318 .byte 102,15,56,222,232
319 .byte 102,15,56,222,240
320 .byte 102,15,56,222,248
324 .byte 102,15,56,222,209
325 .byte 102,15,56,222,217
326 .byte 102,15,56,222,225
327 .byte 102,15,56,222,233
328 .byte 102,15,56,222,241
329 .byte 102,15,56,222,249
330 .byte 102,15,56,223,208
331 .byte 102,15,56,223,216
332 .byte 102,15,56,223,224
333 .byte 102,15,56,223,232
334 .byte 102,15,56,223,240
335 .byte 102,15,56,223,248
337 .size _aesni_decrypt6,.-_aesni_decrypt6
338 .type _aesni_encrypt8,@function
343 movups 16(%rcx),%xmm1
347 .byte 102,15,56,220,209
349 .byte 102,15,56,220,217
351 .byte 102,15,56,220,225
353 .byte 102,15,56,220,233
356 .byte 102,15,56,220,241
358 .byte 102,15,56,220,249
361 .byte 102,68,15,56,220,193
362 .byte 102,68,15,56,220,201
363 movups 16(%rcx),%xmm1
364 jmp .Lenc_loop8_enter
367 .byte 102,15,56,220,209
368 .byte 102,15,56,220,217
370 .byte 102,15,56,220,225
371 .byte 102,15,56,220,233
372 .byte 102,15,56,220,241
373 .byte 102,15,56,220,249
374 .byte 102,68,15,56,220,193
375 .byte 102,68,15,56,220,201
376 movups 16(%rcx),%xmm1
378 .byte 102,15,56,220,208
379 .byte 102,15,56,220,216
381 .byte 102,15,56,220,224
382 .byte 102,15,56,220,232
383 .byte 102,15,56,220,240
384 .byte 102,15,56,220,248
385 .byte 102,68,15,56,220,192
386 .byte 102,68,15,56,220,200
390 .byte 102,15,56,220,209
391 .byte 102,15,56,220,217
392 .byte 102,15,56,220,225
393 .byte 102,15,56,220,233
394 .byte 102,15,56,220,241
395 .byte 102,15,56,220,249
396 .byte 102,68,15,56,220,193
397 .byte 102,68,15,56,220,201
398 .byte 102,15,56,221,208
399 .byte 102,15,56,221,216
400 .byte 102,15,56,221,224
401 .byte 102,15,56,221,232
402 .byte 102,15,56,221,240
403 .byte 102,15,56,221,248
404 .byte 102,68,15,56,221,192
405 .byte 102,68,15,56,221,200
407 .size _aesni_encrypt8,.-_aesni_encrypt8
408 .type _aesni_decrypt8,@function
413 movups 16(%rcx),%xmm1
417 .byte 102,15,56,222,209
419 .byte 102,15,56,222,217
421 .byte 102,15,56,222,225
423 .byte 102,15,56,222,233
426 .byte 102,15,56,222,241
428 .byte 102,15,56,222,249
431 .byte 102,68,15,56,222,193
432 .byte 102,68,15,56,222,201
433 movups 16(%rcx),%xmm1
434 jmp .Ldec_loop8_enter
437 .byte 102,15,56,222,209
438 .byte 102,15,56,222,217
440 .byte 102,15,56,222,225
441 .byte 102,15,56,222,233
442 .byte 102,15,56,222,241
443 .byte 102,15,56,222,249
444 .byte 102,68,15,56,222,193
445 .byte 102,68,15,56,222,201
446 movups 16(%rcx),%xmm1
448 .byte 102,15,56,222,208
449 .byte 102,15,56,222,216
451 .byte 102,15,56,222,224
452 .byte 102,15,56,222,232
453 .byte 102,15,56,222,240
454 .byte 102,15,56,222,248
455 .byte 102,68,15,56,222,192
456 .byte 102,68,15,56,222,200
460 .byte 102,15,56,222,209
461 .byte 102,15,56,222,217
462 .byte 102,15,56,222,225
463 .byte 102,15,56,222,233
464 .byte 102,15,56,222,241
465 .byte 102,15,56,222,249
466 .byte 102,68,15,56,222,193
467 .byte 102,68,15,56,222,201
468 .byte 102,15,56,223,208
469 .byte 102,15,56,223,216
470 .byte 102,15,56,223,224
471 .byte 102,15,56,223,232
472 .byte 102,15,56,223,240
473 .byte 102,15,56,223,248
474 .byte 102,68,15,56,223,192
475 .byte 102,68,15,56,223,200
477 .size _aesni_decrypt8,.-_aesni_decrypt8
478 .globl aesni_ecb_encrypt
479 .type aesni_ecb_encrypt,@function
496 movdqu 16(%rdi),%xmm3
497 movdqu 32(%rdi),%xmm4
498 movdqu 48(%rdi),%xmm5
499 movdqu 64(%rdi),%xmm6
500 movdqu 80(%rdi),%xmm7
501 movdqu 96(%rdi),%xmm8
502 movdqu 112(%rdi),%xmm9
505 jmp .Lecb_enc_loop8_enter
512 movups %xmm3,16(%rsi)
513 movdqu 16(%rdi),%xmm3
514 movups %xmm4,32(%rsi)
515 movdqu 32(%rdi),%xmm4
516 movups %xmm5,48(%rsi)
517 movdqu 48(%rdi),%xmm5
518 movups %xmm6,64(%rsi)
519 movdqu 64(%rdi),%xmm6
520 movups %xmm7,80(%rsi)
521 movdqu 80(%rdi),%xmm7
522 movups %xmm8,96(%rsi)
523 movdqu 96(%rdi),%xmm8
524 movups %xmm9,112(%rsi)
526 movdqu 112(%rdi),%xmm9
528 .Lecb_enc_loop8_enter:
537 movups %xmm3,16(%rsi)
539 movups %xmm4,32(%rsi)
540 movups %xmm5,48(%rsi)
541 movups %xmm6,64(%rsi)
542 movups %xmm7,80(%rsi)
543 movups %xmm8,96(%rsi)
544 movups %xmm9,112(%rsi)
553 movups 16(%rdi),%xmm3
555 movups 32(%rdi),%xmm4
558 movups 48(%rdi),%xmm5
560 movups 64(%rdi),%xmm6
563 movups 80(%rdi),%xmm7
565 movdqu 96(%rdi),%xmm8
568 movups %xmm3,16(%rsi)
569 movups %xmm4,32(%rsi)
570 movups %xmm5,48(%rsi)
571 movups %xmm6,64(%rsi)
572 movups %xmm7,80(%rsi)
573 movups %xmm8,96(%rsi)
578 movups 16(%rcx),%xmm1
582 .byte 102,15,56,220,209
587 .byte 102,15,56,221,209
595 movups %xmm3,16(%rsi)
601 movups %xmm3,16(%rsi)
602 movups %xmm4,32(%rsi)
608 movups %xmm3,16(%rsi)
609 movups %xmm4,32(%rsi)
610 movups %xmm5,48(%rsi)
617 movups %xmm3,16(%rsi)
618 movups %xmm4,32(%rsi)
619 movups %xmm5,48(%rsi)
620 movups %xmm6,64(%rsi)
626 movups %xmm3,16(%rsi)
627 movups %xmm4,32(%rsi)
628 movups %xmm5,48(%rsi)
629 movups %xmm6,64(%rsi)
630 movups %xmm7,80(%rsi)
639 movdqu 16(%rdi),%xmm3
640 movdqu 32(%rdi),%xmm4
641 movdqu 48(%rdi),%xmm5
642 movdqu 64(%rdi),%xmm6
643 movdqu 80(%rdi),%xmm7
644 movdqu 96(%rdi),%xmm8
645 movdqu 112(%rdi),%xmm9
648 jmp .Lecb_dec_loop8_enter
655 movups %xmm3,16(%rsi)
656 movdqu 16(%rdi),%xmm3
657 movups %xmm4,32(%rsi)
658 movdqu 32(%rdi),%xmm4
659 movups %xmm5,48(%rsi)
660 movdqu 48(%rdi),%xmm5
661 movups %xmm6,64(%rsi)
662 movdqu 64(%rdi),%xmm6
663 movups %xmm7,80(%rsi)
664 movdqu 80(%rdi),%xmm7
665 movups %xmm8,96(%rsi)
666 movdqu 96(%rdi),%xmm8
667 movups %xmm9,112(%rsi)
669 movdqu 112(%rdi),%xmm9
671 .Lecb_dec_loop8_enter:
681 movups %xmm3,16(%rsi)
683 movups %xmm4,32(%rsi)
684 movups %xmm5,48(%rsi)
685 movups %xmm6,64(%rsi)
686 movups %xmm7,80(%rsi)
687 movups %xmm8,96(%rsi)
688 movups %xmm9,112(%rsi)
697 movups 16(%rdi),%xmm3
699 movups 32(%rdi),%xmm4
702 movups 48(%rdi),%xmm5
704 movups 64(%rdi),%xmm6
707 movups 80(%rdi),%xmm7
709 movups 96(%rdi),%xmm8
713 movups %xmm3,16(%rsi)
714 movups %xmm4,32(%rsi)
715 movups %xmm5,48(%rsi)
716 movups %xmm6,64(%rsi)
717 movups %xmm7,80(%rsi)
718 movups %xmm8,96(%rsi)
723 movups 16(%rcx),%xmm1
727 .byte 102,15,56,222,209
732 .byte 102,15,56,223,209
740 movups %xmm3,16(%rsi)
746 movups %xmm3,16(%rsi)
747 movups %xmm4,32(%rsi)
753 movups %xmm3,16(%rsi)
754 movups %xmm4,32(%rsi)
755 movups %xmm5,48(%rsi)
762 movups %xmm3,16(%rsi)
763 movups %xmm4,32(%rsi)
764 movups %xmm5,48(%rsi)
765 movups %xmm6,64(%rsi)
771 movups %xmm3,16(%rsi)
772 movups %xmm4,32(%rsi)
773 movups %xmm5,48(%rsi)
774 movups %xmm6,64(%rsi)
775 movups %xmm7,80(%rsi)
779 .size aesni_ecb_encrypt,.-aesni_ecb_encrypt
780 .globl aesni_ccm64_encrypt_blocks
781 .type aesni_ccm64_encrypt_blocks,@function
783 aesni_ccm64_encrypt_blocks:
786 movdqa .Lincrement64(%rip),%xmm6
787 movdqa .Lbswap_mask(%rip),%xmm7
794 .byte 102,68,15,56,0,207
795 jmp .Lccm64_enc_outer
803 movups 16(%r11),%xmm1
810 .byte 102,15,56,220,209
812 .byte 102,15,56,220,217
813 movups 16(%rcx),%xmm1
814 .byte 102,15,56,220,208
816 .byte 102,15,56,220,216
818 jnz .Lccm64_enc2_loop
819 .byte 102,15,56,220,209
820 .byte 102,15,56,220,217
822 .byte 102,15,56,221,208
823 .byte 102,15,56,221,216
831 .byte 102,15,56,0,215
832 jnz .Lccm64_enc_outer
836 .size aesni_ccm64_encrypt_blocks,.-aesni_ccm64_encrypt_blocks
837 .globl aesni_ccm64_decrypt_blocks
838 .type aesni_ccm64_decrypt_blocks,@function
840 aesni_ccm64_decrypt_blocks:
844 movdqa .Lincrement64(%rip),%xmm6
845 movdqa .Lbswap_mask(%rip),%xmm7
850 .byte 102,68,15,56,0,207
852 movups 16(%rcx),%xmm1
856 .byte 102,15,56,220,209
861 .byte 102,15,56,221,209
865 jmp .Lccm64_dec_outer
873 .byte 102,15,56,0,215
880 movups 16(%r11),%xmm1
888 .byte 102,15,56,220,209
890 .byte 102,15,56,220,217
891 movups 16(%rcx),%xmm1
892 .byte 102,15,56,220,208
894 .byte 102,15,56,220,216
896 jnz .Lccm64_dec2_loop
899 .byte 102,15,56,220,209
900 .byte 102,15,56,220,217
902 .byte 102,15,56,221,208
903 .byte 102,15,56,221,216
904 jmp .Lccm64_dec_outer
910 movups 16(%r11),%xmm1
915 .byte 102,15,56,220,217
920 .byte 102,15,56,221,217
923 .size aesni_ccm64_decrypt_blocks,.-aesni_ccm64_decrypt_blocks
924 .globl aesni_ctr32_encrypt_blocks
925 .type aesni_ctr32_encrypt_blocks,@function
927 aesni_ctr32_encrypt_blocks:
935 je .Lctr32_one_shortcut
947 movdqa %xmm2,64(%rsp)
948 movdqa %xmm2,80(%rsp)
949 movdqa %xmm2,96(%rsp)
950 movdqa %xmm2,112(%rsp)
960 .byte 102,65,15,58,34,217,3
962 movdqa %xmm3,16(%rsp)
963 .byte 102,65,15,58,34,226,3
966 movdqa %xmm4,32(%rsp)
969 .byte 102,65,15,58,34,233,3
971 movdqa %xmm5,48(%rsp)
973 movl %r10d,64+12(%rsp)
978 movl %r9d,80+12(%rsp)
981 movl %r10d,96+12(%rsp)
984 movl %r9d,112+12(%rsp)
986 movups 16(%rcx),%xmm1
988 movdqa 64(%rsp),%xmm6
989 movdqa 80(%rsp),%xmm7
1001 movdqa 96(%rsp),%xmm8
1002 .byte 102,15,56,220,209
1004 movdqa 112(%rsp),%xmm9
1005 .byte 102,15,56,220,217
1007 movups 32-128(%rcx),%xmm0
1008 .byte 102,15,56,220,225
1010 .byte 102,15,56,220,233
1011 movl %r9d,0+12(%rsp)
1013 .byte 102,15,56,220,241
1014 .byte 102,15,56,220,249
1015 .byte 102,68,15,56,220,193
1016 .byte 102,68,15,56,220,201
1017 movups 48-128(%rcx),%xmm1
1018 .byte 102,15,56,220,208
1019 .byte 102,15,56,220,216
1021 .byte 102,15,56,220,224
1023 .byte 102,15,56,220,232
1024 movl %r9d,16+12(%rsp)
1026 .byte 102,15,56,220,240
1027 .byte 102,15,56,220,248
1028 .byte 102,68,15,56,220,192
1029 .byte 102,68,15,56,220,200
1030 movups 64-128(%rcx),%xmm0
1031 .byte 102,15,56,220,209
1032 .byte 102,15,56,220,217
1034 .byte 102,15,56,220,225
1036 .byte 102,15,56,220,233
1037 movl %r9d,32+12(%rsp)
1039 .byte 102,15,56,220,241
1040 .byte 102,15,56,220,249
1041 .byte 102,68,15,56,220,193
1042 .byte 102,68,15,56,220,201
1043 movups 80-128(%rcx),%xmm1
1044 .byte 102,15,56,220,208
1045 .byte 102,15,56,220,216
1047 .byte 102,15,56,220,224
1049 .byte 102,15,56,220,232
1050 movl %r9d,48+12(%rsp)
1052 .byte 102,15,56,220,240
1053 .byte 102,15,56,220,248
1054 .byte 102,68,15,56,220,192
1055 .byte 102,68,15,56,220,200
1056 movups 96-128(%rcx),%xmm0
1057 .byte 102,15,56,220,209
1058 .byte 102,15,56,220,217
1060 .byte 102,15,56,220,225
1062 .byte 102,15,56,220,233
1063 movl %r9d,64+12(%rsp)
1065 .byte 102,15,56,220,241
1066 .byte 102,15,56,220,249
1067 .byte 102,68,15,56,220,193
1068 .byte 102,68,15,56,220,201
1069 movups 112-128(%rcx),%xmm1
1070 .byte 102,15,56,220,208
1071 .byte 102,15,56,220,216
1073 .byte 102,15,56,220,224
1075 .byte 102,15,56,220,232
1076 movl %r9d,80+12(%rsp)
1078 .byte 102,15,56,220,240
1079 .byte 102,15,56,220,248
1080 .byte 102,68,15,56,220,192
1081 .byte 102,68,15,56,220,200
1082 movups 128-128(%rcx),%xmm0
1083 .byte 102,15,56,220,209
1084 .byte 102,15,56,220,217
1086 .byte 102,15,56,220,225
1088 .byte 102,15,56,220,233
1089 movl %r9d,96+12(%rsp)
1091 .byte 102,15,56,220,241
1092 .byte 102,15,56,220,249
1093 .byte 102,68,15,56,220,193
1094 .byte 102,68,15,56,220,201
1095 movups 144-128(%rcx),%xmm1
1096 .byte 102,15,56,220,208
1097 .byte 102,15,56,220,216
1099 .byte 102,15,56,220,224
1101 .byte 102,15,56,220,232
1102 movl %r9d,112+12(%rsp)
1103 .byte 102,15,56,220,240
1104 .byte 102,15,56,220,248
1105 .byte 102,68,15,56,220,192
1106 movdqu 0(%rdi),%xmm10
1107 .byte 102,68,15,56,220,200
1108 movups 160-128(%rcx),%xmm0
1113 .byte 102,15,56,220,209
1114 .byte 102,15,56,220,217
1115 .byte 102,15,56,220,225
1116 .byte 102,15,56,220,233
1117 .byte 102,15,56,220,241
1118 .byte 102,15,56,220,249
1119 .byte 102,68,15,56,220,193
1120 .byte 102,68,15,56,220,201
1121 movups 176-128(%rcx),%xmm1
1123 .byte 102,15,56,220,208
1124 .byte 102,15,56,220,216
1125 .byte 102,15,56,220,224
1126 .byte 102,15,56,220,232
1127 .byte 102,15,56,220,240
1128 .byte 102,15,56,220,248
1129 .byte 102,68,15,56,220,192
1130 .byte 102,68,15,56,220,200
1131 movups 192-128(%rcx),%xmm0
1134 .byte 102,15,56,220,209
1135 .byte 102,15,56,220,217
1136 .byte 102,15,56,220,225
1137 .byte 102,15,56,220,233
1138 .byte 102,15,56,220,241
1139 .byte 102,15,56,220,249
1140 .byte 102,68,15,56,220,193
1141 .byte 102,68,15,56,220,201
1142 movups 208-128(%rcx),%xmm1
1144 .byte 102,15,56,220,208
1145 .byte 102,15,56,220,216
1146 .byte 102,15,56,220,224
1147 .byte 102,15,56,220,232
1148 .byte 102,15,56,220,240
1149 .byte 102,15,56,220,248
1150 .byte 102,68,15,56,220,192
1151 .byte 102,68,15,56,220,200
1152 movups 224-128(%rcx),%xmm0
1155 movdqu 16(%rdi),%xmm11
1157 movdqu 32(%rdi),%xmm12
1159 movdqu 48(%rdi),%xmm13
1161 movdqu 64(%rdi),%xmm14
1163 movdqu 80(%rdi),%xmm15
1165 .byte 102,15,56,220,209
1167 .byte 102,15,56,220,217
1168 .byte 102,15,56,220,225
1169 .byte 102,15,56,220,233
1170 .byte 102,15,56,220,241
1171 .byte 102,15,56,220,249
1172 .byte 102,68,15,56,220,193
1173 .byte 102,68,15,56,220,201
1174 movdqu 96(%rdi),%xmm1
1176 .byte 102,65,15,56,221,210
1178 movdqu 112(%rdi),%xmm10
1180 .byte 102,65,15,56,221,219
1182 movdqa 0(%rsp),%xmm11
1183 .byte 102,65,15,56,221,228
1184 movdqa 16(%rsp),%xmm12
1185 .byte 102,65,15,56,221,237
1186 movdqa 32(%rsp),%xmm13
1187 .byte 102,65,15,56,221,246
1188 movdqa 48(%rsp),%xmm14
1189 .byte 102,65,15,56,221,255
1190 movdqa 64(%rsp),%xmm15
1191 .byte 102,68,15,56,221,193
1192 movdqa 80(%rsp),%xmm0
1193 .byte 102,69,15,56,221,202
1194 movups 16-128(%rcx),%xmm1
1198 movups %xmm3,16(%rsi)
1200 movups %xmm4,32(%rsi)
1202 movups %xmm5,48(%rsi)
1204 movups %xmm6,64(%rsi)
1206 movups %xmm7,80(%rsi)
1208 movups %xmm8,96(%rsi)
1209 movups %xmm9,112(%rsi)
1217 leaq -128(%rcx),%rcx
1225 movdqa 96(%rsp),%xmm8
1228 movups 16(%rcx),%xmm0
1229 .byte 102,15,56,220,209
1231 .byte 102,15,56,220,217
1233 .byte 102,15,56,220,225
1235 .byte 102,15,56,220,233
1236 movups (%rdi),%xmm10
1237 .byte 102,15,56,220,241
1238 movups 16(%rdi),%xmm11
1239 .byte 102,15,56,220,249
1240 movups 32(%rdi),%xmm12
1241 .byte 102,68,15,56,220,193
1242 movups 16(%rcx),%xmm1
1244 call .Lenc_loop8_enter
1246 movdqu 48(%rdi),%xmm13
1248 movdqu 64(%rdi),%xmm10
1252 movdqu %xmm3,16(%rsi)
1254 movdqu %xmm4,32(%rsi)
1256 movdqu %xmm5,48(%rsi)
1257 movdqu %xmm6,64(%rsi)
1261 movups 80(%rdi),%xmm11
1263 movups %xmm7,80(%rsi)
1266 movups 96(%rdi),%xmm12
1268 movups %xmm8,96(%rsi)
1273 .byte 102,15,56,220,209
1275 .byte 102,15,56,220,217
1276 .byte 102,15,56,220,225
1277 .byte 102,15,56,220,233
1281 .byte 102,15,56,221,209
1282 movups (%rdi),%xmm10
1283 .byte 102,15,56,221,217
1284 movups 16(%rdi),%xmm11
1285 .byte 102,15,56,221,225
1286 movups 32(%rdi),%xmm12
1287 .byte 102,15,56,221,233
1288 movups 48(%rdi),%xmm13
1293 movups %xmm3,16(%rsi)
1295 movdqu %xmm4,32(%rsi)
1297 movdqu %xmm5,48(%rsi)
1302 .byte 102,15,56,220,209
1304 .byte 102,15,56,220,217
1305 .byte 102,15,56,220,225
1309 .byte 102,15,56,221,209
1310 .byte 102,15,56,221,217
1311 .byte 102,15,56,221,225
1313 movups (%rdi),%xmm10
1319 movups 16(%rdi),%xmm11
1321 movups %xmm3,16(%rsi)
1324 movups 32(%rdi),%xmm12
1326 movups %xmm4,32(%rsi)
1330 .Lctr32_one_shortcut:
1332 movups (%rdi),%xmm10
1335 movups 16(%rcx),%xmm1
1339 .byte 102,15,56,220,209
1344 .byte 102,15,56,221,209
1355 .size aesni_ctr32_encrypt_blocks,.-aesni_ctr32_encrypt_blocks
1356 .globl aesni_xts_encrypt
1357 .type aesni_xts_encrypt,@function
1367 movl 240(%rcx),%r10d
1369 movups 16(%r8),%xmm1
1373 .byte 102,68,15,56,220,249
1378 .byte 102,68,15,56,221,249
1386 movups 16(%rcx,%r10,1),%xmm1
1389 movdqa .Lxts_magic(%rip),%xmm8
1390 pshufd $95,%xmm15,%xmm9
1394 movdqa %xmm15,%xmm10
1402 movdqa %xmm15,%xmm11
1410 movdqa %xmm15,%xmm12
1418 movdqa %xmm15,%xmm13
1424 movdqa %xmm15,%xmm14
1430 movaps %xmm1,96(%rsp)
1437 movups 16(%r11),%xmm1
1439 leaq .Lxts_magic(%rip),%r8
1440 jmp .Lxts_enc_grandloop
1443 .Lxts_enc_grandloop:
1444 movdqu 0(%rdi),%xmm2
1446 movdqu 16(%rdi),%xmm3
1448 movdqu 32(%rdi),%xmm4
1450 .byte 102,15,56,220,209
1451 movdqu 48(%rdi),%xmm5
1453 .byte 102,15,56,220,217
1454 movdqu 64(%rdi),%xmm6
1456 .byte 102,15,56,220,225
1457 movdqu 80(%rdi),%xmm7
1459 movdqa 96(%rsp),%xmm9
1461 .byte 102,15,56,220,233
1462 movups 32(%r11),%xmm0
1467 .byte 102,15,56,220,241
1469 movdqa %xmm10,0(%rsp)
1470 .byte 102,15,56,220,249
1471 movups 48(%r11),%xmm1
1473 .byte 102,15,56,220,208
1475 movdqa %xmm11,16(%rsp)
1476 .byte 102,15,56,220,216
1478 movdqa %xmm12,32(%rsp)
1479 .byte 102,15,56,220,224
1481 .byte 102,15,56,220,232
1483 movdqa %xmm14,64(%rsp)
1484 .byte 102,15,56,220,240
1485 movdqa %xmm8,80(%rsp)
1486 .byte 102,15,56,220,248
1487 movups 64(%r11),%xmm0
1489 pshufd $95,%xmm15,%xmm9
1493 .byte 102,15,56,220,209
1494 .byte 102,15,56,220,217
1495 .byte 102,15,56,220,225
1496 .byte 102,15,56,220,233
1497 .byte 102,15,56,220,241
1498 .byte 102,15,56,220,249
1499 movups 16(%rcx),%xmm1
1502 .byte 102,15,56,220,208
1503 .byte 102,15,56,220,216
1504 .byte 102,15,56,220,224
1505 .byte 102,15,56,220,232
1506 .byte 102,15,56,220,240
1507 .byte 102,15,56,220,248
1515 .byte 102,15,56,220,209
1518 .byte 102,15,56,220,217
1520 movups (%r11),%xmm10
1521 .byte 102,15,56,220,225
1522 .byte 102,15,56,220,233
1524 .byte 102,15,56,220,241
1525 movaps %xmm10,%xmm11
1526 .byte 102,15,56,220,249
1527 movups 16(%rcx),%xmm1
1531 .byte 102,15,56,220,208
1534 .byte 102,15,56,220,216
1537 .byte 102,15,56,220,224
1538 .byte 102,15,56,220,232
1540 .byte 102,15,56,220,240
1541 movaps %xmm11,%xmm12
1542 .byte 102,15,56,220,248
1543 movups 32(%rcx),%xmm0
1547 .byte 102,15,56,220,209
1550 .byte 102,15,56,220,217
1553 .byte 102,15,56,220,225
1554 movdqa %xmm13,48(%rsp)
1555 .byte 102,15,56,220,233
1557 .byte 102,15,56,220,241
1558 movaps %xmm12,%xmm13
1559 .byte 102,15,56,220,249
1560 movups 48(%rcx),%xmm1
1564 .byte 102,15,56,220,208
1567 .byte 102,15,56,220,216
1570 .byte 102,15,56,220,224
1571 .byte 102,15,56,220,232
1573 .byte 102,15,56,220,240
1574 movaps %xmm13,%xmm14
1575 .byte 102,15,56,220,248
1579 .byte 102,15,56,220,209
1582 .byte 102,15,56,220,217
1585 .byte 102,15,56,220,225
1586 .byte 102,15,56,220,233
1589 .byte 102,15,56,220,241
1590 .byte 102,15,56,220,249
1591 movups 16(%r11),%xmm1
1595 .byte 102,15,56,221,84,36,0
1598 .byte 102,15,56,221,92,36,16
1599 .byte 102,15,56,221,100,36,32
1601 .byte 102,15,56,221,108,36,48
1602 .byte 102,15,56,221,116,36,64
1603 .byte 102,15,56,221,124,36,80
1607 movups %xmm2,-96(%rsi)
1608 movups %xmm3,-80(%rsi)
1609 movups %xmm4,-64(%rsi)
1610 movups %xmm5,-48(%rsi)
1611 movups %xmm6,-32(%rsi)
1612 movups %xmm7,-16(%rsi)
1614 jnc .Lxts_enc_grandloop
1616 leal 7(%rax,%rax,1),%eax
1638 movdqu 16(%rdi),%xmm3
1639 movdqu 32(%rdi),%xmm4
1641 movdqu 48(%rdi),%xmm5
1643 movdqu 64(%rdi),%xmm6
1649 call _aesni_encrypt6
1652 movdqa %xmm15,%xmm10
1657 movdqu %xmm3,16(%rsi)
1659 movdqu %xmm4,32(%rsi)
1660 movdqu %xmm5,48(%rsi)
1661 movdqu %xmm6,64(%rsi)
1671 movups 16(%rcx),%xmm1
1675 .byte 102,15,56,220,209
1680 .byte 102,15,56,221,209
1682 movdqa %xmm11,%xmm10
1690 movups 16(%rdi),%xmm3
1695 call _aesni_encrypt3
1698 movdqa %xmm12,%xmm10
1701 movups %xmm3,16(%rsi)
1708 movups 16(%rdi),%xmm3
1709 movups 32(%rdi),%xmm4
1715 call _aesni_encrypt3
1718 movdqa %xmm13,%xmm10
1722 movups %xmm3,16(%rsi)
1723 movups %xmm4,32(%rsi)
1730 movups 16(%rdi),%xmm3
1731 movups 32(%rdi),%xmm4
1733 movups 48(%rdi),%xmm5
1739 call _aesni_encrypt4
1742 movdqa %xmm14,%xmm10
1747 movdqu %xmm3,16(%rsi)
1748 movdqu %xmm4,32(%rsi)
1749 movdqu %xmm5,48(%rsi)
1761 movzbl -16(%rsi),%ecx
1773 movups -16(%rsi),%xmm2
1776 movups 16(%rcx),%xmm1
1780 .byte 102,15,56,220,209
1785 .byte 102,15,56,221,209
1787 movups %xmm2,-16(%rsi)
1794 .size aesni_xts_encrypt,.-aesni_xts_encrypt
1795 .globl aesni_xts_decrypt
1796 .type aesni_xts_decrypt,@function
1806 movl 240(%rcx),%r10d
1808 movups 16(%r8),%xmm1
1812 .byte 102,68,15,56,220,249
1817 .byte 102,68,15,56,221,249
1831 movups 16(%rcx,%r10,1),%xmm1
1834 movdqa .Lxts_magic(%rip),%xmm8
1835 pshufd $95,%xmm15,%xmm9
1839 movdqa %xmm15,%xmm10
1847 movdqa %xmm15,%xmm11
1855 movdqa %xmm15,%xmm12
1863 movdqa %xmm15,%xmm13
1869 movdqa %xmm15,%xmm14
1875 movaps %xmm1,96(%rsp)
1882 movups 16(%r11),%xmm1
1884 leaq .Lxts_magic(%rip),%r8
1885 jmp .Lxts_dec_grandloop
1888 .Lxts_dec_grandloop:
1889 movdqu 0(%rdi),%xmm2
1891 movdqu 16(%rdi),%xmm3
1893 movdqu 32(%rdi),%xmm4
1895 .byte 102,15,56,222,209
1896 movdqu 48(%rdi),%xmm5
1898 .byte 102,15,56,222,217
1899 movdqu 64(%rdi),%xmm6
1901 .byte 102,15,56,222,225
1902 movdqu 80(%rdi),%xmm7
1904 movdqa 96(%rsp),%xmm9
1906 .byte 102,15,56,222,233
1907 movups 32(%r11),%xmm0
1912 .byte 102,15,56,222,241
1914 movdqa %xmm10,0(%rsp)
1915 .byte 102,15,56,222,249
1916 movups 48(%r11),%xmm1
1918 .byte 102,15,56,222,208
1920 movdqa %xmm11,16(%rsp)
1921 .byte 102,15,56,222,216
1923 movdqa %xmm12,32(%rsp)
1924 .byte 102,15,56,222,224
1926 .byte 102,15,56,222,232
1928 movdqa %xmm14,64(%rsp)
1929 .byte 102,15,56,222,240
1930 movdqa %xmm8,80(%rsp)
1931 .byte 102,15,56,222,248
1932 movups 64(%r11),%xmm0
1934 pshufd $95,%xmm15,%xmm9
1938 .byte 102,15,56,222,209
1939 .byte 102,15,56,222,217
1940 .byte 102,15,56,222,225
1941 .byte 102,15,56,222,233
1942 .byte 102,15,56,222,241
1943 .byte 102,15,56,222,249
1944 movups 16(%rcx),%xmm1
1947 .byte 102,15,56,222,208
1948 .byte 102,15,56,222,216
1949 .byte 102,15,56,222,224
1950 .byte 102,15,56,222,232
1951 .byte 102,15,56,222,240
1952 .byte 102,15,56,222,248
1960 .byte 102,15,56,222,209
1963 .byte 102,15,56,222,217
1965 movups (%r11),%xmm10
1966 .byte 102,15,56,222,225
1967 .byte 102,15,56,222,233
1969 .byte 102,15,56,222,241
1970 movaps %xmm10,%xmm11
1971 .byte 102,15,56,222,249
1972 movups 16(%rcx),%xmm1
1976 .byte 102,15,56,222,208
1979 .byte 102,15,56,222,216
1982 .byte 102,15,56,222,224
1983 .byte 102,15,56,222,232
1985 .byte 102,15,56,222,240
1986 movaps %xmm11,%xmm12
1987 .byte 102,15,56,222,248
1988 movups 32(%rcx),%xmm0
1992 .byte 102,15,56,222,209
1995 .byte 102,15,56,222,217
1998 .byte 102,15,56,222,225
1999 movdqa %xmm13,48(%rsp)
2000 .byte 102,15,56,222,233
2002 .byte 102,15,56,222,241
2003 movaps %xmm12,%xmm13
2004 .byte 102,15,56,222,249
2005 movups 48(%rcx),%xmm1
2009 .byte 102,15,56,222,208
2012 .byte 102,15,56,222,216
2015 .byte 102,15,56,222,224
2016 .byte 102,15,56,222,232
2018 .byte 102,15,56,222,240
2019 movaps %xmm13,%xmm14
2020 .byte 102,15,56,222,248
2024 .byte 102,15,56,222,209
2027 .byte 102,15,56,222,217
2030 .byte 102,15,56,222,225
2031 .byte 102,15,56,222,233
2034 .byte 102,15,56,222,241
2035 .byte 102,15,56,222,249
2036 movups 16(%r11),%xmm1
2040 .byte 102,15,56,223,84,36,0
2043 .byte 102,15,56,223,92,36,16
2044 .byte 102,15,56,223,100,36,32
2046 .byte 102,15,56,223,108,36,48
2047 .byte 102,15,56,223,116,36,64
2048 .byte 102,15,56,223,124,36,80
2052 movups %xmm2,-96(%rsi)
2053 movups %xmm3,-80(%rsi)
2054 movups %xmm4,-64(%rsi)
2055 movups %xmm5,-48(%rsi)
2056 movups %xmm6,-32(%rsi)
2057 movups %xmm7,-16(%rsi)
2059 jnc .Lxts_dec_grandloop
2061 leal 7(%rax,%rax,1),%eax
2083 movdqu 16(%rdi),%xmm3
2084 movdqu 32(%rdi),%xmm4
2086 movdqu 48(%rdi),%xmm5
2088 movdqu 64(%rdi),%xmm6
2094 call _aesni_decrypt6
2101 movdqu %xmm3,16(%rsi)
2103 movdqu %xmm4,32(%rsi)
2105 movdqu %xmm5,48(%rsi)
2106 pcmpgtd %xmm15,%xmm14
2107 movdqu %xmm6,64(%rsi)
2109 pshufd $19,%xmm14,%xmm11
2113 movdqa %xmm15,%xmm10
2125 movups 16(%rcx),%xmm1
2129 .byte 102,15,56,222,209
2134 .byte 102,15,56,223,209
2136 movdqa %xmm11,%xmm10
2138 movdqa %xmm12,%xmm11
2145 movups 16(%rdi),%xmm3
2150 call _aesni_decrypt3
2153 movdqa %xmm12,%xmm10
2155 movdqa %xmm13,%xmm11
2157 movups %xmm3,16(%rsi)
2164 movups 16(%rdi),%xmm3
2165 movups 32(%rdi),%xmm4
2171 call _aesni_decrypt3
2174 movdqa %xmm13,%xmm10
2176 movdqa %xmm14,%xmm11
2179 movups %xmm3,16(%rsi)
2180 movups %xmm4,32(%rsi)
2187 movups 16(%rdi),%xmm3
2188 movups 32(%rdi),%xmm4
2190 movups 48(%rdi),%xmm5
2196 call _aesni_decrypt4
2199 movdqa %xmm14,%xmm10
2201 movdqa %xmm15,%xmm11
2205 movdqu %xmm3,16(%rsi)
2206 movdqu %xmm4,32(%rsi)
2207 movdqu %xmm5,48(%rsi)
2223 movups 16(%rcx),%xmm1
2227 .byte 102,15,56,222,209
2232 .byte 102,15,56,223,209
2237 movzbl 16(%rdi),%eax
2253 movups 16(%rcx),%xmm1
2257 .byte 102,15,56,222,209
2262 .byte 102,15,56,223,209
2271 .size aesni_xts_decrypt,.-aesni_xts_decrypt
2272 .globl aesni_cbc_encrypt
2273 .type aesni_cbc_encrypt,@function
2279 movl 240(%rcx),%r10d
2296 movups 16(%rcx),%xmm1
2301 .byte 102,15,56,220,209
2306 .byte 102,15,56,221,209
2309 movups %xmm2,0(%rsi)
2346 movdqu 0(%rdi),%xmm2
2347 movdqu 16(%rdi),%xmm3
2349 movdqu 32(%rdi),%xmm4
2351 movdqu 48(%rdi),%xmm5
2353 movdqu 64(%rdi),%xmm6
2355 movdqu 80(%rdi),%xmm7
2358 jbe .Lcbc_dec_six_or_seven
2362 jmp .Lcbc_dec_loop8_enter
2367 .Lcbc_dec_loop8_enter:
2368 movdqu 96(%rdi),%xmm8
2370 movdqu 112(%rdi),%xmm9
2372 movups 16-112(%rcx),%xmm1
2381 .byte 102,15,56,222,209
2383 movups 32-112(%rcx),%xmm0
2384 .byte 102,15,56,222,217
2385 .byte 102,15,56,222,225
2386 .byte 102,15,56,222,233
2387 .byte 102,15,56,222,241
2388 .byte 102,15,56,222,249
2390 .byte 102,68,15,56,222,193
2392 .byte 102,68,15,56,222,201
2394 movups 48-112(%rcx),%xmm1
2395 .byte 102,15,56,222,208
2396 .byte 102,15,56,222,216
2397 .byte 102,15,56,222,224
2398 .byte 102,15,56,222,232
2399 .byte 102,15,56,222,240
2400 .byte 102,15,56,222,248
2401 .byte 102,68,15,56,222,192
2402 .byte 102,68,15,56,222,200
2403 movups 64-112(%rcx),%xmm0
2404 .byte 102,15,56,222,209
2405 .byte 102,15,56,222,217
2406 .byte 102,15,56,222,225
2407 .byte 102,15,56,222,233
2408 .byte 102,15,56,222,241
2409 .byte 102,15,56,222,249
2410 .byte 102,68,15,56,222,193
2411 .byte 102,68,15,56,222,201
2412 movups 80-112(%rcx),%xmm1
2413 .byte 102,15,56,222,208
2414 .byte 102,15,56,222,216
2415 .byte 102,15,56,222,224
2416 .byte 102,15,56,222,232
2417 .byte 102,15,56,222,240
2418 .byte 102,15,56,222,248
2419 .byte 102,68,15,56,222,192
2420 .byte 102,68,15,56,222,200
2421 movups 96-112(%rcx),%xmm0
2422 .byte 102,15,56,222,209
2423 .byte 102,15,56,222,217
2424 .byte 102,15,56,222,225
2425 .byte 102,15,56,222,233
2426 .byte 102,15,56,222,241
2427 .byte 102,15,56,222,249
2428 .byte 102,68,15,56,222,193
2429 .byte 102,68,15,56,222,201
2430 movups 112-112(%rcx),%xmm1
2431 .byte 102,15,56,222,208
2432 .byte 102,15,56,222,216
2433 .byte 102,15,56,222,224
2434 .byte 102,15,56,222,232
2435 .byte 102,15,56,222,240
2436 .byte 102,15,56,222,248
2437 .byte 102,68,15,56,222,192
2438 .byte 102,68,15,56,222,200
2439 movups 128-112(%rcx),%xmm0
2440 .byte 102,15,56,222,209
2441 .byte 102,15,56,222,217
2442 .byte 102,15,56,222,225
2443 .byte 102,15,56,222,233
2444 .byte 102,15,56,222,241
2445 .byte 102,15,56,222,249
2446 .byte 102,68,15,56,222,193
2447 .byte 102,68,15,56,222,201
2448 movups 144-112(%rcx),%xmm1
2449 .byte 102,15,56,222,208
2450 .byte 102,15,56,222,216
2451 .byte 102,15,56,222,224
2452 .byte 102,15,56,222,232
2453 .byte 102,15,56,222,240
2454 .byte 102,15,56,222,248
2455 .byte 102,68,15,56,222,192
2456 .byte 102,68,15,56,222,200
2457 movups 160-112(%rcx),%xmm0
2460 .byte 102,15,56,222,209
2461 .byte 102,15,56,222,217
2462 .byte 102,15,56,222,225
2463 .byte 102,15,56,222,233
2464 .byte 102,15,56,222,241
2465 .byte 102,15,56,222,249
2466 .byte 102,68,15,56,222,193
2467 .byte 102,68,15,56,222,201
2468 movups 176-112(%rcx),%xmm1
2469 .byte 102,15,56,222,208
2470 .byte 102,15,56,222,216
2471 .byte 102,15,56,222,224
2472 .byte 102,15,56,222,232
2473 .byte 102,15,56,222,240
2474 .byte 102,15,56,222,248
2475 .byte 102,68,15,56,222,192
2476 .byte 102,68,15,56,222,200
2477 movups 192-112(%rcx),%xmm0
2479 .byte 102,15,56,222,209
2480 .byte 102,15,56,222,217
2481 .byte 102,15,56,222,225
2482 .byte 102,15,56,222,233
2483 .byte 102,15,56,222,241
2484 .byte 102,15,56,222,249
2485 .byte 102,68,15,56,222,193
2486 .byte 102,68,15,56,222,201
2487 movups 208-112(%rcx),%xmm1
2488 .byte 102,15,56,222,208
2489 .byte 102,15,56,222,216
2490 .byte 102,15,56,222,224
2491 .byte 102,15,56,222,232
2492 .byte 102,15,56,222,240
2493 .byte 102,15,56,222,248
2494 .byte 102,68,15,56,222,192
2495 .byte 102,68,15,56,222,200
2496 movups 224-112(%rcx),%xmm0
2498 .byte 102,15,56,222,209
2500 .byte 102,15,56,222,217
2502 .byte 102,15,56,222,225
2504 .byte 102,15,56,222,233
2506 .byte 102,15,56,222,241
2508 .byte 102,15,56,222,249
2510 .byte 102,68,15,56,222,193
2511 .byte 102,68,15,56,222,201
2512 movdqu 80(%rdi),%xmm1
2514 .byte 102,65,15,56,223,210
2515 movdqu 96(%rdi),%xmm10
2517 .byte 102,65,15,56,223,219
2519 movdqu 112(%rdi),%xmm0
2521 .byte 102,65,15,56,223,228
2522 movdqu 0(%r11),%xmm11
2523 .byte 102,65,15,56,223,237
2524 movdqu 16(%r11),%xmm12
2525 .byte 102,65,15,56,223,246
2526 movdqu 32(%r11),%xmm13
2527 .byte 102,65,15,56,223,255
2528 movdqu 48(%r11),%xmm14
2529 .byte 102,68,15,56,223,193
2530 movdqu 64(%r11),%xmm15
2531 .byte 102,69,15,56,223,202
2533 movdqu 80(%r11),%xmm1
2534 movups -112(%rcx),%xmm0
2538 movups %xmm3,16(%rsi)
2540 movups %xmm4,32(%rsi)
2542 movups %xmm5,48(%rsi)
2544 movups %xmm6,64(%rsi)
2546 movups %xmm7,80(%rsi)
2548 movups %xmm8,96(%rsi)
2555 leaq -112(%rcx),%rcx
2557 jle .Lcbc_dec_tail_collected
2564 .Lcbc_dec_six_or_seven:
2569 call _aesni_decrypt6
2575 movdqu %xmm3,16(%rsi)
2577 movdqu %xmm4,32(%rsi)
2579 movdqu %xmm5,48(%rsi)
2581 movdqu %xmm6,64(%rsi)
2584 jmp .Lcbc_dec_tail_collected
2588 movups 96(%rdi),%xmm8
2590 call _aesni_decrypt8
2591 movups 80(%rdi),%xmm9
2593 movups 96(%rdi),%xmm10
2597 movdqu %xmm3,16(%rsi)
2599 movdqu %xmm4,32(%rsi)
2601 movdqu %xmm5,48(%rsi)
2603 movdqu %xmm6,64(%rsi)
2605 movdqu %xmm7,80(%rsi)
2608 jmp .Lcbc_dec_tail_collected
2615 movups 16(%rdi),%xmm3
2620 movups 32(%rdi),%xmm4
2625 movups 48(%rdi),%xmm5
2630 movups 64(%rdi),%xmm6
2634 call _aesni_decrypt6
2636 movaps %xmm15,%xmm10
2640 movdqu %xmm3,16(%rsi)
2642 movdqu %xmm4,32(%rsi)
2644 movdqu %xmm5,48(%rsi)
2648 jmp .Lcbc_dec_tail_collected
2654 movups 16(%rcx),%xmm1
2658 .byte 102,15,56,222,209
2663 .byte 102,15,56,223,209
2665 movaps %xmm11,%xmm10
2666 jmp .Lcbc_dec_tail_collected
2671 call _aesni_decrypt3
2673 movaps %xmm12,%xmm10
2678 jmp .Lcbc_dec_tail_collected
2682 call _aesni_decrypt3
2684 movaps %xmm13,%xmm10
2688 movdqu %xmm3,16(%rsi)
2691 jmp .Lcbc_dec_tail_collected
2695 call _aesni_decrypt4
2697 movaps %xmm14,%xmm10
2701 movdqu %xmm3,16(%rsi)
2703 movdqu %xmm4,32(%rsi)
2706 jmp .Lcbc_dec_tail_collected
2709 .Lcbc_dec_tail_collected:
2712 jnz .Lcbc_dec_tail_partial
2716 .Lcbc_dec_tail_partial:
2729 .size aesni_cbc_encrypt,.-aesni_cbc_encrypt
2730 .globl aesni_set_decrypt_key
2731 .type aesni_set_decrypt_key,@function
2733 aesni_set_decrypt_key:
2734 .byte 0x48,0x83,0xEC,0x08
2735 call __aesni_set_encrypt_key
2739 leaq 16(%rdx,%rsi,1),%rdi
2751 .byte 102,15,56,219,192
2752 .byte 102,15,56,219,201
2755 movups %xmm0,16(%rdi)
2756 movups %xmm1,-16(%rdx)
2758 ja .Ldec_key_inverse
2761 .byte 102,15,56,219,192
2766 .LSEH_end_set_decrypt_key:
2767 .size aesni_set_decrypt_key,.-aesni_set_decrypt_key
2768 .globl aesni_set_encrypt_key
2769 .type aesni_set_encrypt_key,@function
2771 aesni_set_encrypt_key:
2772 __aesni_set_encrypt_key:
2773 .byte 0x48,0x83,0xEC,0x08
2793 .byte 102,15,58,223,200,1
2794 call .Lkey_expansion_128_cold
2795 .byte 102,15,58,223,200,2
2796 call .Lkey_expansion_128
2797 .byte 102,15,58,223,200,4
2798 call .Lkey_expansion_128
2799 .byte 102,15,58,223,200,8
2800 call .Lkey_expansion_128
2801 .byte 102,15,58,223,200,16
2802 call .Lkey_expansion_128
2803 .byte 102,15,58,223,200,32
2804 call .Lkey_expansion_128
2805 .byte 102,15,58,223,200,64
2806 call .Lkey_expansion_128
2807 .byte 102,15,58,223,200,128
2808 call .Lkey_expansion_128
2809 .byte 102,15,58,223,200,27
2810 call .Lkey_expansion_128
2811 .byte 102,15,58,223,200,54
2812 call .Lkey_expansion_128
2823 .byte 102,15,58,223,202,1
2824 call .Lkey_expansion_192a_cold
2825 .byte 102,15,58,223,202,2
2826 call .Lkey_expansion_192b
2827 .byte 102,15,58,223,202,4
2828 call .Lkey_expansion_192a
2829 .byte 102,15,58,223,202,8
2830 call .Lkey_expansion_192b
2831 .byte 102,15,58,223,202,16
2832 call .Lkey_expansion_192a
2833 .byte 102,15,58,223,202,32
2834 call .Lkey_expansion_192b
2835 .byte 102,15,58,223,202,64
2836 call .Lkey_expansion_192a
2837 .byte 102,15,58,223,202,128
2838 call .Lkey_expansion_192b
2846 movups 16(%rdi),%xmm2
2850 movups %xmm2,16(%rdx)
2851 .byte 102,15,58,223,202,1
2852 call .Lkey_expansion_256a_cold
2853 .byte 102,15,58,223,200,1
2854 call .Lkey_expansion_256b
2855 .byte 102,15,58,223,202,2
2856 call .Lkey_expansion_256a
2857 .byte 102,15,58,223,200,2
2858 call .Lkey_expansion_256b
2859 .byte 102,15,58,223,202,4
2860 call .Lkey_expansion_256a
2861 .byte 102,15,58,223,200,4
2862 call .Lkey_expansion_256b
2863 .byte 102,15,58,223,202,8
2864 call .Lkey_expansion_256a
2865 .byte 102,15,58,223,200,8
2866 call .Lkey_expansion_256b
2867 .byte 102,15,58,223,202,16
2868 call .Lkey_expansion_256a
2869 .byte 102,15,58,223,200,16
2870 call .Lkey_expansion_256b
2871 .byte 102,15,58,223,202,32
2872 call .Lkey_expansion_256a
2873 .byte 102,15,58,223,200,32
2874 call .Lkey_expansion_256b
2875 .byte 102,15,58,223,202,64
2876 call .Lkey_expansion_256a
2888 .LSEH_end_set_encrypt_key:
2891 .Lkey_expansion_128:
2894 .Lkey_expansion_128_cold:
2895 shufps $16,%xmm0,%xmm4
2897 shufps $140,%xmm0,%xmm4
2899 shufps $255,%xmm1,%xmm1
2904 .Lkey_expansion_192a:
2907 .Lkey_expansion_192a_cold:
2909 .Lkey_expansion_192b_warm:
2910 shufps $16,%xmm0,%xmm4
2913 shufps $140,%xmm0,%xmm4
2916 pshufd $85,%xmm1,%xmm1
2919 pshufd $255,%xmm0,%xmm3
2924 .Lkey_expansion_192b: