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 .def aesni_encrypt; .scl 2; .type 32; .endef
52 .byte 102,15,56,220,209
57 .byte 102,15,56,221,209
63 .def aesni_decrypt; .scl 2; .type 32; .endef
73 .byte 102,15,56,222,209
78 .byte 102,15,56,223,209
82 .def _aesni_encrypt3; .scl 3; .type 32; .endef
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
115 .def _aesni_decrypt3; .scl 3; .type 32; .endef
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
148 .def _aesni_encrypt4; .scl 3; .type 32; .endef
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
186 .def _aesni_decrypt4; .scl 3; .type 32; .endef
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
224 .def _aesni_encrypt6; .scl 3; .type 32; .endef
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
281 .def _aesni_decrypt6; .scl 3; .type 32; .endef
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
338 .def _aesni_encrypt8; .scl 3; .type 32; .endef
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
408 .def _aesni_decrypt8; .scl 3; .type 32; .endef
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
478 .globl aesni_ecb_encrypt
479 .def aesni_ecb_encrypt; .scl 2; .type 32; .endef
485 .LSEH_begin_aesni_ecb_encrypt:
506 movdqu
16(%rdi
),%xmm3
507 movdqu
32(%rdi
),%xmm4
508 movdqu
48(%rdi
),%xmm5
509 movdqu
64(%rdi
),%xmm6
510 movdqu
80(%rdi
),%xmm7
511 movdqu
96(%rdi
),%xmm8
512 movdqu
112(%rdi
),%xmm9
515 jmp
.Lecb_enc_loop8_enter
522 movups
%xmm3
,16(%rsi
)
523 movdqu
16(%rdi
),%xmm3
524 movups
%xmm4
,32(%rsi
)
525 movdqu
32(%rdi
),%xmm4
526 movups
%xmm5
,48(%rsi
)
527 movdqu
48(%rdi
),%xmm5
528 movups
%xmm6
,64(%rsi
)
529 movdqu
64(%rdi
),%xmm6
530 movups
%xmm7
,80(%rsi
)
531 movdqu
80(%rdi
),%xmm7
532 movups
%xmm8
,96(%rsi
)
533 movdqu
96(%rdi
),%xmm8
534 movups
%xmm9
,112(%rsi
)
536 movdqu
112(%rdi
),%xmm9
538 .Lecb_enc_loop8_enter:
547 movups
%xmm3
,16(%rsi
)
549 movups
%xmm4
,32(%rsi
)
550 movups
%xmm5
,48(%rsi
)
551 movups
%xmm6
,64(%rsi
)
552 movups
%xmm7
,80(%rsi
)
553 movups
%xmm8
,96(%rsi
)
554 movups
%xmm9
,112(%rsi
)
563 movups
16(%rdi
),%xmm3
565 movups
32(%rdi
),%xmm4
568 movups
48(%rdi
),%xmm5
570 movups
64(%rdi
),%xmm6
573 movups
80(%rdi
),%xmm7
575 movdqu
96(%rdi
),%xmm8
578 movups
%xmm3
,16(%rsi
)
579 movups
%xmm4
,32(%rsi
)
580 movups
%xmm5
,48(%rsi
)
581 movups
%xmm6
,64(%rsi
)
582 movups
%xmm7
,80(%rsi
)
583 movups
%xmm8
,96(%rsi
)
588 movups
16(%rcx
),%xmm1
592 .byte 102,15,56,220,209
597 .byte 102,15,56,221,209
605 movups
%xmm3
,16(%rsi
)
611 movups
%xmm3
,16(%rsi
)
612 movups
%xmm4
,32(%rsi
)
618 movups
%xmm3
,16(%rsi
)
619 movups
%xmm4
,32(%rsi
)
620 movups
%xmm5
,48(%rsi
)
627 movups
%xmm3
,16(%rsi
)
628 movups
%xmm4
,32(%rsi
)
629 movups
%xmm5
,48(%rsi
)
630 movups
%xmm6
,64(%rsi
)
636 movups
%xmm3
,16(%rsi
)
637 movups
%xmm4
,32(%rsi
)
638 movups
%xmm5
,48(%rsi
)
639 movups
%xmm6
,64(%rsi
)
640 movups
%xmm7
,80(%rsi
)
649 movdqu
16(%rdi
),%xmm3
650 movdqu
32(%rdi
),%xmm4
651 movdqu
48(%rdi
),%xmm5
652 movdqu
64(%rdi
),%xmm6
653 movdqu
80(%rdi
),%xmm7
654 movdqu
96(%rdi
),%xmm8
655 movdqu
112(%rdi
),%xmm9
658 jmp
.Lecb_dec_loop8_enter
665 movups
%xmm3
,16(%rsi
)
666 movdqu
16(%rdi
),%xmm3
667 movups
%xmm4
,32(%rsi
)
668 movdqu
32(%rdi
),%xmm4
669 movups
%xmm5
,48(%rsi
)
670 movdqu
48(%rdi
),%xmm5
671 movups
%xmm6
,64(%rsi
)
672 movdqu
64(%rdi
),%xmm6
673 movups
%xmm7
,80(%rsi
)
674 movdqu
80(%rdi
),%xmm7
675 movups
%xmm8
,96(%rsi
)
676 movdqu
96(%rdi
),%xmm8
677 movups
%xmm9
,112(%rsi
)
679 movdqu
112(%rdi
),%xmm9
681 .Lecb_dec_loop8_enter:
691 movups
%xmm3
,16(%rsi
)
693 movups
%xmm4
,32(%rsi
)
694 movups
%xmm5
,48(%rsi
)
695 movups
%xmm6
,64(%rsi
)
696 movups
%xmm7
,80(%rsi
)
697 movups
%xmm8
,96(%rsi
)
698 movups
%xmm9
,112(%rsi
)
707 movups
16(%rdi
),%xmm3
709 movups
32(%rdi
),%xmm4
712 movups
48(%rdi
),%xmm5
714 movups
64(%rdi
),%xmm6
717 movups
80(%rdi
),%xmm7
719 movups
96(%rdi
),%xmm8
723 movups
%xmm3
,16(%rsi
)
724 movups
%xmm4
,32(%rsi
)
725 movups
%xmm5
,48(%rsi
)
726 movups
%xmm6
,64(%rsi
)
727 movups
%xmm7
,80(%rsi
)
728 movups
%xmm8
,96(%rsi
)
733 movups
16(%rcx
),%xmm1
737 .byte 102,15,56,222,209
742 .byte 102,15,56,223,209
750 movups
%xmm3
,16(%rsi
)
756 movups
%xmm3
,16(%rsi
)
757 movups
%xmm4
,32(%rsi
)
763 movups
%xmm3
,16(%rsi
)
764 movups
%xmm4
,32(%rsi
)
765 movups
%xmm5
,48(%rsi
)
772 movups
%xmm3
,16(%rsi
)
773 movups
%xmm4
,32(%rsi
)
774 movups
%xmm5
,48(%rsi
)
775 movups
%xmm6
,64(%rsi
)
781 movups
%xmm3
,16(%rsi
)
782 movups
%xmm4
,32(%rsi
)
783 movups
%xmm5
,48(%rsi
)
784 movups
%xmm6
,64(%rsi
)
785 movups
%xmm7
,80(%rsi
)
791 .LSEH_end_aesni_ecb_encrypt:
792 .globl aesni_ccm64_encrypt_blocks
793 .def aesni_ccm64_encrypt_blocks; .scl 2; .type 32; .endef
795 aesni_ccm64_encrypt_blocks
:
799 .LSEH_begin_aesni_ccm64_encrypt_blocks:
809 movaps
%xmm7
,16(%rsp
)
810 movaps
%xmm8
,32(%rsp
)
811 movaps
%xmm9
,48(%rsp
)
815 movdqa
.Lincrement64(%rip),%xmm6
816 movdqa
.Lbswap_mask(%rip),%xmm7
823 .byte 102,68,15,56,0,207
824 jmp
.Lccm64_enc_outer
832 movups
16(%r11),%xmm1
839 .byte 102,15,56,220,209
841 .byte 102,15,56,220,217
842 movups
16(%rcx
),%xmm1
843 .byte 102,15,56,220,208
845 .byte 102,15,56,220,216
847 jnz
.Lccm64_enc2_loop
848 .byte 102,15,56,220,209
849 .byte 102,15,56,220,217
851 .byte 102,15,56,221,208
852 .byte 102,15,56,221,216
860 .byte 102,15,56,0,215
861 jnz
.Lccm64_enc_outer
865 movaps
16(%rsp
),%xmm7
866 movaps
32(%rsp
),%xmm8
867 movaps
48(%rsp
),%xmm9
873 .LSEH_end_aesni_ccm64_encrypt_blocks:
874 .globl aesni_ccm64_decrypt_blocks
875 .def aesni_ccm64_decrypt_blocks; .scl 2; .type 32; .endef
877 aesni_ccm64_decrypt_blocks
:
881 .LSEH_begin_aesni_ccm64_decrypt_blocks:
891 movaps
%xmm7
,16(%rsp
)
892 movaps
%xmm8
,32(%rsp
)
893 movaps
%xmm9
,48(%rsp
)
898 movdqa
.Lincrement64(%rip),%xmm6
899 movdqa
.Lbswap_mask(%rip),%xmm7
904 .byte 102,68,15,56,0,207
906 movups
16(%rcx
),%xmm1
910 .byte 102,15,56,220,209
915 .byte 102,15,56,221,209
919 jmp
.Lccm64_dec_outer
927 .byte 102,15,56,0,215
934 movups
16(%r11),%xmm1
942 .byte 102,15,56,220,209
944 .byte 102,15,56,220,217
945 movups
16(%rcx
),%xmm1
946 .byte 102,15,56,220,208
948 .byte 102,15,56,220,216
950 jnz
.Lccm64_dec2_loop
953 .byte 102,15,56,220,209
954 .byte 102,15,56,220,217
956 .byte 102,15,56,221,208
957 .byte 102,15,56,221,216
958 jmp
.Lccm64_dec_outer
964 movups
16(%r11),%xmm1
969 .byte 102,15,56,220,217
974 .byte 102,15,56,221,217
977 movaps
16(%rsp
),%xmm7
978 movaps
32(%rsp
),%xmm8
979 movaps
48(%rsp
),%xmm9
985 .LSEH_end_aesni_ccm64_decrypt_blocks:
986 .globl aesni_ctr32_encrypt_blocks
987 .def aesni_ctr32_encrypt_blocks; .scl 2; .type 32; .endef
989 aesni_ctr32_encrypt_blocks
:
993 .LSEH_begin_aesni_ctr32_encrypt_blocks:
1000 leaq
-200(%rsp
),%rsp
1001 movaps
%xmm6
,32(%rsp
)
1002 movaps
%xmm7
,48(%rsp
)
1003 movaps
%xmm8
,64(%rsp
)
1004 movaps
%xmm9
,80(%rsp
)
1005 movaps
%xmm10
,96(%rsp
)
1006 movaps
%xmm11
,112(%rsp
)
1007 movaps
%xmm12
,128(%rsp
)
1008 movaps
%xmm13
,144(%rsp
)
1009 movaps
%xmm14
,160(%rsp
)
1010 movaps
%xmm15
,176(%rsp
)
1013 je
.Lctr32_one_shortcut
1016 movdqa
.Lbswap_mask(%rip),%xmm15
1018 .byte 102,69,15,58,22,242,3
1019 .byte 102,68,15,58,34,240,3
1025 .byte 102,69,15,58,34,226,0
1027 .byte 102,69,15,58,34,235,0
1029 .byte 102,69,15,58,34,226,1
1031 .byte 102,69,15,58,34,235,1
1033 .byte 102,69,15,58,34,226,2
1035 .byte 102,69,15,58,34,235,2
1036 movdqa
%xmm12
,0(%rsp
)
1037 .byte 102,69,15,56,0,231
1038 movdqa
%xmm13
,16(%rsp
)
1039 .byte 102,69,15,56,0,239
1041 pshufd $
192,%xmm12
,%xmm2
1042 pshufd $
128,%xmm12
,%xmm3
1043 pshufd $
64,%xmm12
,%xmm4
1054 pshufd $
192,%xmm13
,%xmm5
1057 pshufd $
128,%xmm13
,%xmm6
1059 movups
16(%r11),%xmm1
1060 pshufd $
64,%xmm13
,%xmm7
1071 .byte 102,15,56,220,209
1074 .byte 102,15,56,220,217
1075 movdqa
.Lincrement32(%rip),%xmm13
1077 .byte 102,15,56,220,225
1078 movdqa
0(%rsp
),%xmm12
1080 .byte 102,15,56,220,233
1084 .byte 102,15,56,220,241
1085 .byte 102,15,56,220,249
1086 jmp
.Lctr32_enc_loop6_enter
1089 .byte 102,15,56,220,209
1090 .byte 102,15,56,220,217
1092 .byte 102,15,56,220,225
1093 .byte 102,15,56,220,233
1094 .byte 102,15,56,220,241
1095 .byte 102,15,56,220,249
1096 .Lctr32_enc_loop6_enter:
1097 movups
16(%rcx
),%xmm1
1098 .byte 102,15,56,220,208
1099 .byte 102,15,56,220,216
1101 .byte 102,15,56,220,224
1102 .byte 102,15,56,220,232
1103 .byte 102,15,56,220,240
1104 .byte 102,15,56,220,248
1106 jnz
.Lctr32_enc_loop6
1108 .byte 102,15,56,220,209
1110 .byte 102,15,56,220,217
1111 paddd
16(%rsp
),%xmm13
1112 .byte 102,15,56,220,225
1113 movdqa
%xmm12
,0(%rsp
)
1114 .byte 102,15,56,220,233
1115 movdqa
%xmm13
,16(%rsp
)
1116 .byte 102,15,56,220,241
1117 .byte 102,69,15,56,0,231
1118 .byte 102,15,56,220,249
1119 .byte 102,69,15,56,0,239
1121 .byte 102,15,56,221,208
1123 .byte 102,15,56,221,216
1124 movups
16(%rdi
),%xmm9
1125 .byte 102,15,56,221,224
1126 movups
32(%rdi
),%xmm10
1127 .byte 102,15,56,221,232
1128 movups
48(%rdi
),%xmm11
1129 .byte 102,15,56,221,240
1130 movups
64(%rdi
),%xmm1
1131 .byte 102,15,56,221,248
1132 movups
80(%rdi
),%xmm0
1136 pshufd $
192,%xmm12
,%xmm2
1138 pshufd $
128,%xmm12
,%xmm3
1141 pshufd $
64,%xmm12
,%xmm4
1142 movups
%xmm9
,16(%rsi
)
1144 movups
%xmm10
,32(%rsi
)
1146 movups
%xmm11
,48(%rsi
)
1148 movups
%xmm1
,64(%rsi
)
1149 movups
%xmm0
,80(%rsi
)
1158 leal
1(%rax
,%rax
,1),%eax
1167 movups
16(%rdi
),%xmm9
1170 pshufd $
192,%xmm13
,%xmm5
1172 movups
32(%rdi
),%xmm10
1176 pshufd $
128,%xmm13
,%xmm6
1178 movups
48(%rdi
),%xmm11
1184 call _aesni_encrypt6
1186 movups
64(%rdi
),%xmm1
1191 movups
%xmm9
,16(%rsi
)
1193 movups
%xmm10
,32(%rsi
)
1195 movups
%xmm11
,48(%rsi
)
1196 movups
%xmm1
,64(%rsi
)
1200 .Lctr32_one_shortcut:
1206 movups
16(%rcx
),%xmm1
1210 .byte 102,15,56,220,209
1215 .byte 102,15,56,221,209
1223 call _aesni_encrypt3
1227 movups
%xmm9
,16(%rsi
)
1232 call _aesni_encrypt3
1237 movups
%xmm9
,16(%rsi
)
1238 movups
%xmm10
,32(%rsi
)
1243 call _aesni_encrypt4
1248 movups
%xmm9
,16(%rsi
)
1250 movups
%xmm10
,32(%rsi
)
1251 movups
%xmm11
,48(%rsi
)
1254 movaps
32(%rsp
),%xmm6
1255 movaps
48(%rsp
),%xmm7
1256 movaps
64(%rsp
),%xmm8
1257 movaps
80(%rsp
),%xmm9
1258 movaps
96(%rsp
),%xmm10
1259 movaps
112(%rsp
),%xmm11
1260 movaps
128(%rsp
),%xmm12
1261 movaps
144(%rsp
),%xmm13
1262 movaps
160(%rsp
),%xmm14
1263 movaps
176(%rsp
),%xmm15
1269 .LSEH_end_aesni_ctr32_encrypt_blocks:
1270 .globl aesni_xts_encrypt
1271 .def aesni_xts_encrypt; .scl 2; .type 32; .endef
1277 .LSEH_begin_aesni_xts_encrypt:
1285 leaq
-264(%rsp
),%rsp
1286 movaps
%xmm6
,96(%rsp
)
1287 movaps
%xmm7
,112(%rsp
)
1288 movaps
%xmm8
,128(%rsp
)
1289 movaps
%xmm9
,144(%rsp
)
1290 movaps
%xmm10
,160(%rsp
)
1291 movaps
%xmm11
,176(%rsp
)
1292 movaps
%xmm12
,192(%rsp
)
1293 movaps
%xmm13
,208(%rsp
)
1294 movaps
%xmm14
,224(%rsp
)
1295 movaps
%xmm15
,240(%rsp
)
1299 movl
240(%rcx
),%r10d
1301 movups
16(%r8),%xmm1
1305 .byte 102,68,15,56,220,249
1310 .byte 102,68,15,56,221,249
1316 movdqa
.Lxts_magic(%rip),%xmm8
1318 pcmpgtd
%xmm15
,%xmm14
1319 pshufd $
19,%xmm14
,%xmm9
1321 movdqa
%xmm15
,%xmm10
1324 pcmpgtd
%xmm15
,%xmm14
1326 pshufd $
19,%xmm14
,%xmm9
1328 movdqa
%xmm15
,%xmm11
1331 pcmpgtd
%xmm15
,%xmm14
1333 pshufd $
19,%xmm14
,%xmm9
1335 movdqa
%xmm15
,%xmm12
1338 pcmpgtd
%xmm15
,%xmm14
1340 pshufd $
19,%xmm14
,%xmm9
1342 movdqa
%xmm15
,%xmm13
1345 pcmpgtd
%xmm15
,%xmm14
1353 jmp
.Lxts_enc_grandloop
1356 .Lxts_enc_grandloop:
1357 pshufd $
19,%xmm14
,%xmm9
1358 movdqa
%xmm15
,%xmm14
1360 movdqu
0(%rdi
),%xmm2
1362 movdqu
16(%rdi
),%xmm3
1365 movdqu
32(%rdi
),%xmm4
1367 movdqu
48(%rdi
),%xmm5
1369 movdqu
64(%rdi
),%xmm6
1371 movdqu
80(%rdi
),%xmm7
1380 movups
16(%r11),%xmm1
1383 movdqa
%xmm10
,0(%rsp
)
1384 .byte 102,15,56,220,209
1387 movdqa
%xmm11
,16(%rsp
)
1388 .byte 102,15,56,220,217
1390 movdqa
%xmm12
,32(%rsp
)
1391 .byte 102,15,56,220,225
1393 movdqa
%xmm13
,48(%rsp
)
1394 .byte 102,15,56,220,233
1398 movdqa
%xmm14
,64(%rsp
)
1399 .byte 102,15,56,220,241
1400 movdqa
%xmm15
,80(%rsp
)
1401 .byte 102,15,56,220,249
1403 pcmpgtd
%xmm15
,%xmm14
1404 jmp
.Lxts_enc_loop6_enter
1408 .byte 102,15,56,220,209
1409 .byte 102,15,56,220,217
1411 .byte 102,15,56,220,225
1412 .byte 102,15,56,220,233
1413 .byte 102,15,56,220,241
1414 .byte 102,15,56,220,249
1415 .Lxts_enc_loop6_enter:
1416 movups
16(%rcx
),%xmm1
1417 .byte 102,15,56,220,208
1418 .byte 102,15,56,220,216
1420 .byte 102,15,56,220,224
1421 .byte 102,15,56,220,232
1422 .byte 102,15,56,220,240
1423 .byte 102,15,56,220,248
1427 pshufd $
19,%xmm14
,%xmm9
1430 .byte 102,15,56,220,209
1432 .byte 102,15,56,220,217
1433 pcmpgtd
%xmm15
,%xmm14
1434 .byte 102,15,56,220,225
1436 .byte 102,15,56,220,233
1437 .byte 102,15,56,220,241
1438 .byte 102,15,56,220,249
1439 movups
16(%rcx
),%xmm1
1441 pshufd $
19,%xmm14
,%xmm9
1443 movdqa
%xmm15
,%xmm10
1445 .byte 102,15,56,220,208
1447 .byte 102,15,56,220,216
1448 pcmpgtd
%xmm15
,%xmm14
1449 .byte 102,15,56,220,224
1451 .byte 102,15,56,220,232
1452 .byte 102,15,56,220,240
1453 .byte 102,15,56,220,248
1454 movups
32(%rcx
),%xmm0
1456 pshufd $
19,%xmm14
,%xmm9
1458 movdqa
%xmm15
,%xmm11
1460 .byte 102,15,56,220,209
1462 .byte 102,15,56,220,217
1463 pcmpgtd
%xmm15
,%xmm14
1464 .byte 102,15,56,220,225
1466 .byte 102,15,56,220,233
1467 .byte 102,15,56,220,241
1468 .byte 102,15,56,220,249
1470 pshufd $
19,%xmm14
,%xmm9
1472 movdqa
%xmm15
,%xmm12
1474 .byte 102,15,56,221,208
1476 .byte 102,15,56,221,216
1477 pcmpgtd
%xmm15
,%xmm14
1478 .byte 102,15,56,221,224
1480 .byte 102,15,56,221,232
1481 .byte 102,15,56,221,240
1482 .byte 102,15,56,221,248
1484 pshufd $
19,%xmm14
,%xmm9
1486 movdqa
%xmm15
,%xmm13
1490 xorps
16(%rsp
),%xmm3
1491 pcmpgtd
%xmm15
,%xmm14
1494 xorps
32(%rsp
),%xmm4
1495 movups
%xmm2
,0(%rsi
)
1496 xorps
48(%rsp
),%xmm5
1497 movups
%xmm3
,16(%rsi
)
1498 xorps
64(%rsp
),%xmm6
1499 movups
%xmm4
,32(%rsi
)
1500 xorps
80(%rsp
),%xmm7
1501 movups
%xmm5
,48(%rsi
)
1503 movups
%xmm6
,64(%rsi
)
1504 movups
%xmm7
,80(%rsi
)
1507 jnc
.Lxts_enc_grandloop
1509 leal
3(%rax
,%rax
,1),%eax
1525 pshufd $
19,%xmm14
,%xmm9
1526 movdqa
%xmm15
,%xmm14
1530 movdqu
16(%rdi
),%xmm3
1533 movdqu
32(%rdi
),%xmm4
1535 movdqu
48(%rdi
),%xmm5
1537 movdqu
64(%rdi
),%xmm6
1543 call _aesni_encrypt6
1546 movdqa
%xmm15
,%xmm10
1551 movdqu
%xmm3
,16(%rsi
)
1553 movdqu
%xmm4
,32(%rsi
)
1554 movdqu
%xmm5
,48(%rsi
)
1555 movdqu
%xmm6
,64(%rsi
)
1565 movups
16(%rcx
),%xmm1
1569 .byte 102,15,56,220,209
1574 .byte 102,15,56,221,209
1576 movdqa
%xmm11
,%xmm10
1584 movups
16(%rdi
),%xmm3
1589 call _aesni_encrypt3
1592 movdqa
%xmm12
,%xmm10
1595 movups
%xmm3
,16(%rsi
)
1602 movups
16(%rdi
),%xmm3
1603 movups
32(%rdi
),%xmm4
1609 call _aesni_encrypt3
1612 movdqa
%xmm13
,%xmm10
1616 movups
%xmm3
,16(%rsi
)
1617 movups
%xmm4
,32(%rsi
)
1624 movups
16(%rdi
),%xmm3
1625 movups
32(%rdi
),%xmm4
1627 movups
48(%rdi
),%xmm5
1633 call _aesni_encrypt4
1636 movdqa
%xmm15
,%xmm10
1641 movups
%xmm3
,16(%rsi
)
1642 movups
%xmm4
,32(%rsi
)
1643 movups
%xmm5
,48(%rsi
)
1655 movzbl
-16(%rsi
),%ecx
1667 movups
-16(%rsi
),%xmm2
1670 movups
16(%rcx
),%xmm1
1674 .byte 102,15,56,220,209
1679 .byte 102,15,56,221,209
1681 movups
%xmm2
,-16(%rsi
)
1684 movaps
96(%rsp
),%xmm6
1685 movaps
112(%rsp
),%xmm7
1686 movaps
128(%rsp
),%xmm8
1687 movaps
144(%rsp
),%xmm9
1688 movaps
160(%rsp
),%xmm10
1689 movaps
176(%rsp
),%xmm11
1690 movaps
192(%rsp
),%xmm12
1691 movaps
208(%rsp
),%xmm13
1692 movaps
224(%rsp
),%xmm14
1693 movaps
240(%rsp
),%xmm15
1699 .LSEH_end_aesni_xts_encrypt:
1700 .globl aesni_xts_decrypt
1701 .def aesni_xts_decrypt; .scl 2; .type 32; .endef
1707 .LSEH_begin_aesni_xts_decrypt:
1715 leaq
-264(%rsp
),%rsp
1716 movaps
%xmm6
,96(%rsp
)
1717 movaps
%xmm7
,112(%rsp
)
1718 movaps
%xmm8
,128(%rsp
)
1719 movaps
%xmm9
,144(%rsp
)
1720 movaps
%xmm10
,160(%rsp
)
1721 movaps
%xmm11
,176(%rsp
)
1722 movaps
%xmm12
,192(%rsp
)
1723 movaps
%xmm13
,208(%rsp
)
1724 movaps
%xmm14
,224(%rsp
)
1725 movaps
%xmm15
,240(%rsp
)
1729 movl
240(%rcx
),%r10d
1731 movups
16(%r8),%xmm1
1735 .byte 102,68,15,56,220,249
1740 .byte 102,68,15,56,221,249
1752 movdqa
.Lxts_magic(%rip),%xmm8
1754 pcmpgtd
%xmm15
,%xmm14
1755 pshufd $
19,%xmm14
,%xmm9
1757 movdqa
%xmm15
,%xmm10
1760 pcmpgtd
%xmm15
,%xmm14
1762 pshufd $
19,%xmm14
,%xmm9
1764 movdqa
%xmm15
,%xmm11
1767 pcmpgtd
%xmm15
,%xmm14
1769 pshufd $
19,%xmm14
,%xmm9
1771 movdqa
%xmm15
,%xmm12
1774 pcmpgtd
%xmm15
,%xmm14
1776 pshufd $
19,%xmm14
,%xmm9
1778 movdqa
%xmm15
,%xmm13
1781 pcmpgtd
%xmm15
,%xmm14
1789 jmp
.Lxts_dec_grandloop
1792 .Lxts_dec_grandloop:
1793 pshufd $
19,%xmm14
,%xmm9
1794 movdqa
%xmm15
,%xmm14
1796 movdqu
0(%rdi
),%xmm2
1798 movdqu
16(%rdi
),%xmm3
1801 movdqu
32(%rdi
),%xmm4
1803 movdqu
48(%rdi
),%xmm5
1805 movdqu
64(%rdi
),%xmm6
1807 movdqu
80(%rdi
),%xmm7
1816 movups
16(%r11),%xmm1
1819 movdqa
%xmm10
,0(%rsp
)
1820 .byte 102,15,56,222,209
1823 movdqa
%xmm11
,16(%rsp
)
1824 .byte 102,15,56,222,217
1826 movdqa
%xmm12
,32(%rsp
)
1827 .byte 102,15,56,222,225
1829 movdqa
%xmm13
,48(%rsp
)
1830 .byte 102,15,56,222,233
1834 movdqa
%xmm14
,64(%rsp
)
1835 .byte 102,15,56,222,241
1836 movdqa
%xmm15
,80(%rsp
)
1837 .byte 102,15,56,222,249
1839 pcmpgtd
%xmm15
,%xmm14
1840 jmp
.Lxts_dec_loop6_enter
1844 .byte 102,15,56,222,209
1845 .byte 102,15,56,222,217
1847 .byte 102,15,56,222,225
1848 .byte 102,15,56,222,233
1849 .byte 102,15,56,222,241
1850 .byte 102,15,56,222,249
1851 .Lxts_dec_loop6_enter:
1852 movups
16(%rcx
),%xmm1
1853 .byte 102,15,56,222,208
1854 .byte 102,15,56,222,216
1856 .byte 102,15,56,222,224
1857 .byte 102,15,56,222,232
1858 .byte 102,15,56,222,240
1859 .byte 102,15,56,222,248
1863 pshufd $
19,%xmm14
,%xmm9
1866 .byte 102,15,56,222,209
1868 .byte 102,15,56,222,217
1869 pcmpgtd
%xmm15
,%xmm14
1870 .byte 102,15,56,222,225
1872 .byte 102,15,56,222,233
1873 .byte 102,15,56,222,241
1874 .byte 102,15,56,222,249
1875 movups
16(%rcx
),%xmm1
1877 pshufd $
19,%xmm14
,%xmm9
1879 movdqa
%xmm15
,%xmm10
1881 .byte 102,15,56,222,208
1883 .byte 102,15,56,222,216
1884 pcmpgtd
%xmm15
,%xmm14
1885 .byte 102,15,56,222,224
1887 .byte 102,15,56,222,232
1888 .byte 102,15,56,222,240
1889 .byte 102,15,56,222,248
1890 movups
32(%rcx
),%xmm0
1892 pshufd $
19,%xmm14
,%xmm9
1894 movdqa
%xmm15
,%xmm11
1896 .byte 102,15,56,222,209
1898 .byte 102,15,56,222,217
1899 pcmpgtd
%xmm15
,%xmm14
1900 .byte 102,15,56,222,225
1902 .byte 102,15,56,222,233
1903 .byte 102,15,56,222,241
1904 .byte 102,15,56,222,249
1906 pshufd $
19,%xmm14
,%xmm9
1908 movdqa
%xmm15
,%xmm12
1910 .byte 102,15,56,223,208
1912 .byte 102,15,56,223,216
1913 pcmpgtd
%xmm15
,%xmm14
1914 .byte 102,15,56,223,224
1916 .byte 102,15,56,223,232
1917 .byte 102,15,56,223,240
1918 .byte 102,15,56,223,248
1920 pshufd $
19,%xmm14
,%xmm9
1922 movdqa
%xmm15
,%xmm13
1926 xorps
16(%rsp
),%xmm3
1927 pcmpgtd
%xmm15
,%xmm14
1930 xorps
32(%rsp
),%xmm4
1931 movups
%xmm2
,0(%rsi
)
1932 xorps
48(%rsp
),%xmm5
1933 movups
%xmm3
,16(%rsi
)
1934 xorps
64(%rsp
),%xmm6
1935 movups
%xmm4
,32(%rsi
)
1936 xorps
80(%rsp
),%xmm7
1937 movups
%xmm5
,48(%rsi
)
1939 movups
%xmm6
,64(%rsi
)
1940 movups
%xmm7
,80(%rsi
)
1943 jnc
.Lxts_dec_grandloop
1945 leal
3(%rax
,%rax
,1),%eax
1961 pshufd $
19,%xmm14
,%xmm9
1962 movdqa
%xmm15
,%xmm14
1966 movdqu
16(%rdi
),%xmm3
1969 movdqu
32(%rdi
),%xmm4
1971 movdqu
48(%rdi
),%xmm5
1973 movdqu
64(%rdi
),%xmm6
1979 call _aesni_decrypt6
1986 movdqu
%xmm3
,16(%rsi
)
1988 movdqu
%xmm4
,32(%rsi
)
1990 movdqu
%xmm5
,48(%rsi
)
1991 pcmpgtd
%xmm15
,%xmm14
1992 movdqu
%xmm6
,64(%rsi
)
1994 pshufd $
19,%xmm14
,%xmm11
1998 movdqa
%xmm15
,%xmm10
2010 movups
16(%rcx
),%xmm1
2014 .byte 102,15,56,222,209
2019 .byte 102,15,56,223,209
2021 movdqa
%xmm11
,%xmm10
2023 movdqa
%xmm12
,%xmm11
2030 movups
16(%rdi
),%xmm3
2035 call _aesni_decrypt3
2038 movdqa
%xmm12
,%xmm10
2040 movdqa
%xmm13
,%xmm11
2042 movups
%xmm3
,16(%rsi
)
2049 movups
16(%rdi
),%xmm3
2050 movups
32(%rdi
),%xmm4
2056 call _aesni_decrypt3
2059 movdqa
%xmm13
,%xmm10
2061 movdqa
%xmm15
,%xmm11
2064 movups
%xmm3
,16(%rsi
)
2065 movups
%xmm4
,32(%rsi
)
2071 pshufd $
19,%xmm14
,%xmm9
2072 movdqa
%xmm15
,%xmm14
2076 movups
16(%rdi
),%xmm3
2079 movups
32(%rdi
),%xmm4
2081 movups
48(%rdi
),%xmm5
2087 call _aesni_decrypt4
2090 movdqa
%xmm14
,%xmm10
2092 movdqa
%xmm15
,%xmm11
2096 movups
%xmm3
,16(%rsi
)
2097 movups
%xmm4
,32(%rsi
)
2098 movups
%xmm5
,48(%rsi
)
2114 movups
16(%rcx
),%xmm1
2118 .byte 102,15,56,222,209
2123 .byte 102,15,56,223,209
2128 movzbl
16(%rdi
),%eax
2144 movups
16(%rcx
),%xmm1
2148 .byte 102,15,56,222,209
2153 .byte 102,15,56,223,209
2158 movaps
96(%rsp
),%xmm6
2159 movaps
112(%rsp
),%xmm7
2160 movaps
128(%rsp
),%xmm8
2161 movaps
144(%rsp
),%xmm9
2162 movaps
160(%rsp
),%xmm10
2163 movaps
176(%rsp
),%xmm11
2164 movaps
192(%rsp
),%xmm12
2165 movaps
208(%rsp
),%xmm13
2166 movaps
224(%rsp
),%xmm14
2167 movaps
240(%rsp
),%xmm15
2173 .LSEH_end_aesni_xts_decrypt:
2174 .globl aesni_cbc_encrypt
2175 .def aesni_cbc_encrypt; .scl 2; .type 32; .endef
2181 .LSEH_begin_aesni_cbc_encrypt:
2192 movl
240(%rcx
),%r10d
2209 movups
16(%rcx
),%xmm1
2214 .byte 102,15,56,220,209
2219 .byte 102,15,56,221,209
2222 movups
%xmm2
,0(%rsi
)
2250 movaps
%xmm7
,16(%rsp
)
2251 movaps
%xmm8
,32(%rsp
)
2252 movaps
%xmm9
,48(%rsp
)
2261 movaps
%xmm9
,64(%rsp
)
2262 jmp
.Lcbc_dec_loop8_enter
2265 movaps
%xmm0
,64(%rsp
)
2268 .Lcbc_dec_loop8_enter:
2271 movups
16(%rdi
),%xmm3
2272 movups
16(%rcx
),%xmm1
2275 movdqu
32(%rdi
),%xmm4
2277 movdqu
48(%rdi
),%xmm5
2279 movdqu
64(%rdi
),%xmm6
2280 .byte 102,15,56,222,209
2282 movdqu
80(%rdi
),%xmm7
2283 .byte 102,15,56,222,217
2285 movdqu
96(%rdi
),%xmm8
2286 .byte 102,15,56,222,225
2288 movdqu
112(%rdi
),%xmm9
2289 .byte 102,15,56,222,233
2292 .byte 102,15,56,222,241
2294 .byte 102,15,56,222,249
2297 .byte 102,68,15,56,222,193
2298 .byte 102,68,15,56,222,201
2299 movups
16(%rcx
),%xmm1
2301 call
.Ldec_loop8_enter
2304 movups
16(%rdi
),%xmm0
2305 xorps
64(%rsp
),%xmm2
2307 movups
32(%rdi
),%xmm1
2309 movups
48(%rdi
),%xmm0
2311 movups
64(%rdi
),%xmm1
2313 movups
80(%rdi
),%xmm0
2315 movups
96(%rdi
),%xmm1
2317 movups
112(%rdi
),%xmm0
2320 movups
%xmm3
,16(%rsi
)
2321 movups
%xmm4
,32(%rsi
)
2322 movups
%xmm5
,48(%rsi
)
2324 movups
%xmm6
,64(%rsi
)
2326 movups
%xmm7
,80(%rsi
)
2328 movups
%xmm8
,96(%rsi
)
2336 jle
.Lcbc_dec_tail_collected
2338 leal
1(%r10,%r10,1),%eax
2346 movups
16(%rdi
),%xmm3
2351 movups
32(%rdi
),%xmm4
2356 movups
48(%rdi
),%xmm5
2360 movups
64(%rdi
),%xmm6
2364 movups
80(%rdi
),%xmm7
2368 movups
96(%rdi
),%xmm8
2369 movaps
%xmm9
,64(%rsp
)
2370 call _aesni_decrypt8
2372 movups
16(%rdi
),%xmm0
2373 xorps
64(%rsp
),%xmm2
2375 movups
32(%rdi
),%xmm1
2377 movups
48(%rdi
),%xmm0
2379 movups
64(%rdi
),%xmm1
2381 movups
80(%rdi
),%xmm0
2383 movups
96(%rdi
),%xmm9
2386 movups
%xmm3
,16(%rsi
)
2387 movups
%xmm4
,32(%rsi
)
2388 movups
%xmm5
,48(%rsi
)
2389 movups
%xmm6
,64(%rsi
)
2390 movups
%xmm7
,80(%rsi
)
2394 jmp
.Lcbc_dec_tail_collected
2398 movups
16(%rcx
),%xmm1
2402 .byte 102,15,56,222,209
2407 .byte 102,15,56,223,209
2411 jmp
.Lcbc_dec_tail_collected
2415 call _aesni_decrypt3
2423 jmp
.Lcbc_dec_tail_collected
2426 call _aesni_decrypt3
2431 movups
%xmm3
,16(%rsi
)
2436 jmp
.Lcbc_dec_tail_collected
2439 call _aesni_decrypt4
2441 movups
48(%rdi
),%xmm9
2445 movups
%xmm3
,16(%rsi
)
2447 movups
%xmm4
,32(%rsi
)
2451 jmp
.Lcbc_dec_tail_collected
2455 call _aesni_decrypt6
2456 movups
16(%rdi
),%xmm1
2457 movups
32(%rdi
),%xmm0
2461 movups
48(%rdi
),%xmm1
2463 movups
64(%rdi
),%xmm9
2466 movups
%xmm3
,16(%rsi
)
2467 movups
%xmm4
,32(%rsi
)
2468 movups
%xmm5
,48(%rsi
)
2472 jmp
.Lcbc_dec_tail_collected
2475 call _aesni_decrypt6
2476 movups
16(%rdi
),%xmm1
2477 movups
32(%rdi
),%xmm0
2481 movups
48(%rdi
),%xmm1
2483 movups
64(%rdi
),%xmm0
2485 movups
80(%rdi
),%xmm9
2488 movups
%xmm3
,16(%rsi
)
2489 movups
%xmm4
,32(%rsi
)
2490 movups
%xmm5
,48(%rsi
)
2491 movups
%xmm6
,64(%rsi
)
2495 jmp
.Lcbc_dec_tail_collected
2497 .Lcbc_dec_tail_collected:
2500 jnz
.Lcbc_dec_tail_partial
2504 .Lcbc_dec_tail_partial:
2505 movaps
%xmm2
,64(%rsp
)
2514 movaps
16(%rsp
),%xmm7
2515 movaps
32(%rsp
),%xmm8
2516 movaps
48(%rsp
),%xmm9
2522 .LSEH_end_aesni_cbc_encrypt:
2523 .globl aesni_set_decrypt_key
2524 .def aesni_set_decrypt_key; .scl 2; .type 32; .endef
2526 aesni_set_decrypt_key
:
2527 .byte 0x48,0x83,0xEC,0x08
2528 call __aesni_set_encrypt_key
2532 leaq
16(%r8,%rdx
,1),%rcx
2544 .byte 102,15,56,219,192
2545 .byte 102,15,56,219,201
2548 movups
%xmm0
,16(%rcx
)
2549 movups
%xmm1
,-16(%r8)
2551 ja
.Ldec_key_inverse
2554 .byte 102,15,56,219,192
2559 .LSEH_end_set_decrypt_key:
2561 .globl aesni_set_encrypt_key
2562 .def aesni_set_encrypt_key; .scl 2; .type 32; .endef
2564 aesni_set_encrypt_key
:
2565 __aesni_set_encrypt_key
:
2566 .byte 0x48,0x83,0xEC,0x08
2586 .byte 102,15,58,223,200,1
2587 call
.Lkey_expansion_128_cold
2588 .byte 102,15,58,223,200,2
2589 call
.Lkey_expansion_128
2590 .byte 102,15,58,223,200,4
2591 call
.Lkey_expansion_128
2592 .byte 102,15,58,223,200,8
2593 call
.Lkey_expansion_128
2594 .byte 102,15,58,223,200,16
2595 call
.Lkey_expansion_128
2596 .byte 102,15,58,223,200,32
2597 call
.Lkey_expansion_128
2598 .byte 102,15,58,223,200,64
2599 call
.Lkey_expansion_128
2600 .byte 102,15,58,223,200,128
2601 call
.Lkey_expansion_128
2602 .byte 102,15,58,223,200,27
2603 call
.Lkey_expansion_128
2604 .byte 102,15,58,223,200,54
2605 call
.Lkey_expansion_128
2616 .byte 102,15,58,223,202,1
2617 call
.Lkey_expansion_192a_cold
2618 .byte 102,15,58,223,202,2
2619 call
.Lkey_expansion_192b
2620 .byte 102,15,58,223,202,4
2621 call
.Lkey_expansion_192a
2622 .byte 102,15,58,223,202,8
2623 call
.Lkey_expansion_192b
2624 .byte 102,15,58,223,202,16
2625 call
.Lkey_expansion_192a
2626 .byte 102,15,58,223,202,32
2627 call
.Lkey_expansion_192b
2628 .byte 102,15,58,223,202,64
2629 call
.Lkey_expansion_192a
2630 .byte 102,15,58,223,202,128
2631 call
.Lkey_expansion_192b
2639 movups
16(%rcx
),%xmm2
2643 movups
%xmm2
,16(%r8)
2644 .byte 102,15,58,223,202,1
2645 call
.Lkey_expansion_256a_cold
2646 .byte 102,15,58,223,200,1
2647 call
.Lkey_expansion_256b
2648 .byte 102,15,58,223,202,2
2649 call
.Lkey_expansion_256a
2650 .byte 102,15,58,223,200,2
2651 call
.Lkey_expansion_256b
2652 .byte 102,15,58,223,202,4
2653 call
.Lkey_expansion_256a
2654 .byte 102,15,58,223,200,4
2655 call
.Lkey_expansion_256b
2656 .byte 102,15,58,223,202,8
2657 call
.Lkey_expansion_256a
2658 .byte 102,15,58,223,200,8
2659 call
.Lkey_expansion_256b
2660 .byte 102,15,58,223,202,16
2661 call
.Lkey_expansion_256a
2662 .byte 102,15,58,223,200,16
2663 call
.Lkey_expansion_256b
2664 .byte 102,15,58,223,202,32
2665 call
.Lkey_expansion_256a
2666 .byte 102,15,58,223,200,32
2667 call
.Lkey_expansion_256b
2668 .byte 102,15,58,223,202,64
2669 call
.Lkey_expansion_256a
2681 .LSEH_end_set_encrypt_key:
2684 .Lkey_expansion_128:
2687 .Lkey_expansion_128_cold:
2688 shufps $
16,%xmm0
,%xmm4
2690 shufps $
140,%xmm0
,%xmm4
2692 shufps $
255,%xmm1
,%xmm1
2697 .Lkey_expansion_192a:
2700 .Lkey_expansion_192a_cold:
2702 .Lkey_expansion_192b_warm:
2703 shufps $
16,%xmm0
,%xmm4
2706 shufps $
140,%xmm0
,%xmm4
2709 pshufd $
85,%xmm1
,%xmm1
2712 pshufd $
255,%xmm0
,%xmm3
2717 .Lkey_expansion_192b:
2719 shufps $
68,%xmm0
,%xmm5
2721 shufps $
78,%xmm2
,%xmm3
2722 movups
%xmm3
,16(%rax
)
2724 jmp
.Lkey_expansion_192b_warm
2727 .Lkey_expansion_256a:
2730 .Lkey_expansion_256a_cold:
2731 shufps $
16,%xmm0
,%xmm4
2733 shufps $
140,%xmm0
,%xmm4
2735 shufps $
255,%xmm1
,%xmm1
2740 .Lkey_expansion_256b:
2744 shufps $
16,%xmm2
,%xmm4
2746 shufps $
140,%xmm2
,%xmm4
2748 shufps $
170,%xmm1
,%xmm1
2755 .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
2763 .byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69,83,45,78,73,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
2766 .def ecb_se_handler; .scl 3; .type 32; .endef
2782 jmp
.Lcommon_seh_tail
2785 .def ccm64_se_handler; .scl 3; .type 32; .endef
2806 leaq
(%rsi
,%r10,1),%r10
2808 jb
.Lcommon_seh_tail
2813 leaq
(%rsi
,%r10,1),%r10
2815 jae
.Lcommon_seh_tail
2823 jmp
.Lcommon_seh_tail
2826 .def ctr32_se_handler; .scl 3; .type 32; .endef
2843 leaq
.Lctr32_body(%rip),%r10
2845 jb
.Lcommon_seh_tail
2849 leaq
.Lctr32_ret(%rip),%r10
2851 jae
.Lcommon_seh_tail
2859 jmp
.Lcommon_seh_tail
2862 .def xts_se_handler; .scl 3; .type 32; .endef
2883 leaq
(%rsi
,%r10,1),%r10
2885 jb
.Lcommon_seh_tail
2890 leaq
(%rsi
,%r10,1),%r10
2892 jae
.Lcommon_seh_tail
2898 leaq
104+160(%rax
),%rax
2900 jmp
.Lcommon_seh_tail
2902 .def cbc_se_handler; .scl 3; .type 32; .endef
2919 leaq
.Lcbc_decrypt(%rip),%r10
2921 jb
.Lcommon_seh_tail
2923 leaq
.Lcbc_decrypt_body(%rip),%r10
2925 jb
.Lrestore_cbc_rax
2927 leaq
.Lcbc_ret(%rip),%r10
2929 jae
.Lcommon_seh_tail
2936 jmp
.Lcommon_seh_tail
2965 call
*__imp_RtlVirtualUnwind
(%rip
)
2983 .rva .LSEH_begin_aesni_ecb_encrypt
2984 .rva .LSEH_end_aesni_ecb_encrypt
2987 .rva .LSEH_begin_aesni_ccm64_encrypt_blocks
2988 .rva .LSEH_end_aesni_ccm64_encrypt_blocks
2989 .rva .LSEH_info_ccm64_enc
2991 .rva .LSEH_begin_aesni_ccm64_decrypt_blocks
2992 .rva .LSEH_end_aesni_ccm64_decrypt_blocks
2993 .rva .LSEH_info_ccm64_dec
2995 .rva .LSEH_begin_aesni_ctr32_encrypt_blocks
2996 .rva .LSEH_end_aesni_ctr32_encrypt_blocks
2997 .rva .LSEH_info_ctr32
2999 .rva .LSEH_begin_aesni_xts_encrypt
3000 .rva .LSEH_end_aesni_xts_encrypt
3001 .rva .LSEH_info_xts_enc
3003 .rva .LSEH_begin_aesni_xts_decrypt
3004 .rva .LSEH_end_aesni_xts_decrypt
3005 .rva .LSEH_info_xts_dec
3006 .rva .LSEH_begin_aesni_cbc_encrypt
3007 .rva .LSEH_end_aesni_cbc_encrypt
3010 .rva aesni_set_decrypt_key
3011 .rva .LSEH_end_set_decrypt_key
3014 .rva aesni_set_encrypt_key
3015 .rva .LSEH_end_set_encrypt_key
3022 .LSEH_info_ccm64_enc:
3024 .rva ccm64_se_handler
3025 .rva .Lccm64_enc_body,.Lccm64_enc_ret
3026 .LSEH_info_ccm64_dec:
3028 .rva ccm64_se_handler
3029 .rva .Lccm64_dec_body,.Lccm64_dec_ret
3032 .rva ctr32_se_handler
3036 .rva .Lxts_enc_body,.Lxts_enc_epilogue
3040 .rva .Lxts_dec_body,.Lxts_dec_epilogue
3045 .byte 0x01,0x04,0x01,0x00
3046 .byte 0x04,0x02,0x00,0x00