2 # Copyright (c) 2011-2012, Andy Polyakov <appro@openssl.org>
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions
9 # * Redistributions of source code must retain copyright notices,
10 # this list of conditions and the following disclaimer.
12 # * Redistributions in binary form must reproduce the above
13 # copyright notice, this list of conditions and the following
14 # disclaimer in the documentation and/or other materials
15 # provided with the distribution.
17 # * Neither the name of the Andy Polyakov nor the names of its
18 # copyright holder and contributors may be used to endorse or
19 # promote products derived from this software without specific
20 # prior written permission.
22 # ALTERNATIVELY, provided that this notice is retained in full, this
23 # product may be distributed under the terms of the GNU General Public
24 # License (GPL), in which case the provisions of the GPL apply INSTEAD OF
27 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS
28 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
29 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
30 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
31 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
32 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
33 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
34 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
35 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
36 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
37 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
39 # *** This file is auto-generated ***
42 .file "devel/perlasm/aesni-x86.s"
47 L_aesni_encrypt_begin:
58 .byte 102,15,56,220,209
63 .byte 102,15,56,221,209
69 L_aesni_decrypt_begin:
80 .byte 102,15,56,222,209
85 .byte 102,15,56,223,209
99 .byte 102,15,56,220,209
100 .byte 102,15,56,220,217
102 .byte 102,15,56,220,225
103 movups 16(%edx),%xmm1
104 .byte 102,15,56,220,208
105 .byte 102,15,56,220,216
107 .byte 102,15,56,220,224
110 .byte 102,15,56,220,209
111 .byte 102,15,56,220,217
112 .byte 102,15,56,220,225
113 .byte 102,15,56,221,208
114 .byte 102,15,56,221,216
115 .byte 102,15,56,221,224
121 movups 16(%edx),%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(%edx),%xmm1
133 .byte 102,15,56,222,208
134 .byte 102,15,56,222,216
136 .byte 102,15,56,222,224
139 .byte 102,15,56,222,209
140 .byte 102,15,56,222,217
141 .byte 102,15,56,222,225
142 .byte 102,15,56,223,208
143 .byte 102,15,56,223,216
144 .byte 102,15,56,223,224
149 movups 16(%edx),%xmm1
158 .byte 102,15,56,220,209
159 .byte 102,15,56,220,217
161 .byte 102,15,56,220,225
162 .byte 102,15,56,220,233
163 movups 16(%edx),%xmm1
164 .byte 102,15,56,220,208
165 .byte 102,15,56,220,216
167 .byte 102,15,56,220,224
168 .byte 102,15,56,220,232
171 .byte 102,15,56,220,209
172 .byte 102,15,56,220,217
173 .byte 102,15,56,220,225
174 .byte 102,15,56,220,233
175 .byte 102,15,56,221,208
176 .byte 102,15,56,221,216
177 .byte 102,15,56,221,224
178 .byte 102,15,56,221,232
183 movups 16(%edx),%xmm1
192 .byte 102,15,56,222,209
193 .byte 102,15,56,222,217
195 .byte 102,15,56,222,225
196 .byte 102,15,56,222,233
197 movups 16(%edx),%xmm1
198 .byte 102,15,56,222,208
199 .byte 102,15,56,222,216
201 .byte 102,15,56,222,224
202 .byte 102,15,56,222,232
205 .byte 102,15,56,222,209
206 .byte 102,15,56,222,217
207 .byte 102,15,56,222,225
208 .byte 102,15,56,222,233
209 .byte 102,15,56,223,208
210 .byte 102,15,56,223,216
211 .byte 102,15,56,223,224
212 .byte 102,15,56,223,232
218 movups 16(%edx),%xmm1
222 .byte 102,15,56,220,209
224 .byte 102,15,56,220,217
227 .byte 102,15,56,220,225
229 .byte 102,15,56,220,233
231 .byte 102,15,56,220,241
233 .byte 102,15,56,220,249
234 jmp L_aesni_encrypt6_enter
237 .byte 102,15,56,220,209
238 .byte 102,15,56,220,217
240 .byte 102,15,56,220,225
241 .byte 102,15,56,220,233
242 .byte 102,15,56,220,241
243 .byte 102,15,56,220,249
245 L_aesni_encrypt6_enter:
246 movups 16(%edx),%xmm1
247 .byte 102,15,56,220,208
248 .byte 102,15,56,220,216
250 .byte 102,15,56,220,224
251 .byte 102,15,56,220,232
252 .byte 102,15,56,220,240
253 .byte 102,15,56,220,248
256 .byte 102,15,56,220,209
257 .byte 102,15,56,220,217
258 .byte 102,15,56,220,225
259 .byte 102,15,56,220,233
260 .byte 102,15,56,220,241
261 .byte 102,15,56,220,249
262 .byte 102,15,56,221,208
263 .byte 102,15,56,221,216
264 .byte 102,15,56,221,224
265 .byte 102,15,56,221,232
266 .byte 102,15,56,221,240
267 .byte 102,15,56,221,248
273 movups 16(%edx),%xmm1
277 .byte 102,15,56,222,209
279 .byte 102,15,56,222,217
282 .byte 102,15,56,222,225
284 .byte 102,15,56,222,233
286 .byte 102,15,56,222,241
288 .byte 102,15,56,222,249
289 jmp L_aesni_decrypt6_enter
292 .byte 102,15,56,222,209
293 .byte 102,15,56,222,217
295 .byte 102,15,56,222,225
296 .byte 102,15,56,222,233
297 .byte 102,15,56,222,241
298 .byte 102,15,56,222,249
300 L_aesni_decrypt6_enter:
301 movups 16(%edx),%xmm1
302 .byte 102,15,56,222,208
303 .byte 102,15,56,222,216
305 .byte 102,15,56,222,224
306 .byte 102,15,56,222,232
307 .byte 102,15,56,222,240
308 .byte 102,15,56,222,248
311 .byte 102,15,56,222,209
312 .byte 102,15,56,222,217
313 .byte 102,15,56,222,225
314 .byte 102,15,56,222,233
315 .byte 102,15,56,222,241
316 .byte 102,15,56,222,249
317 .byte 102,15,56,223,208
318 .byte 102,15,56,223,216
319 .byte 102,15,56,223,224
320 .byte 102,15,56,223,232
321 .byte 102,15,56,223,240
322 .byte 102,15,56,223,248
324 .globl _aesni_ecb_encrypt
327 L_aesni_ecb_encrypt_begin:
347 movdqu 16(%esi),%xmm3
348 movdqu 32(%esi),%xmm4
349 movdqu 48(%esi),%xmm5
350 movdqu 64(%esi),%xmm6
351 movdqu 80(%esi),%xmm7
354 jmp L011ecb_enc_loop6_enter
359 movups %xmm3,16(%edi)
360 movdqu 16(%esi),%xmm3
361 movups %xmm4,32(%edi)
362 movdqu 32(%esi),%xmm4
363 movups %xmm5,48(%edi)
364 movdqu 48(%esi),%xmm5
365 movups %xmm6,64(%edi)
366 movdqu 64(%esi),%xmm6
367 movups %xmm7,80(%edi)
369 movdqu 80(%esi),%xmm7
371 L011ecb_enc_loop6_enter:
372 call __aesni_encrypt6
376 jnc L012ecb_enc_loop6
378 movups %xmm3,16(%edi)
379 movups %xmm4,32(%edi)
380 movups %xmm5,48(%edi)
381 movups %xmm6,64(%edi)
382 movups %xmm7,80(%edi)
390 movups 16(%esi),%xmm3
392 movups 32(%esi),%xmm4
395 movups 48(%esi),%xmm5
397 movups 64(%esi),%xmm6
399 call __aesni_encrypt6
401 movups %xmm3,16(%edi)
402 movups %xmm4,32(%edi)
403 movups %xmm5,48(%edi)
404 movups %xmm6,64(%edi)
409 movups 16(%edx),%xmm1
413 .byte 102,15,56,220,209
418 .byte 102,15,56,221,209
424 call __aesni_encrypt3
426 movups %xmm3,16(%edi)
430 call __aesni_encrypt3
432 movups %xmm3,16(%edi)
433 movups %xmm4,32(%edi)
437 call __aesni_encrypt4
439 movups %xmm3,16(%edi)
440 movups %xmm4,32(%edi)
441 movups %xmm5,48(%edi)
450 movdqu 16(%esi),%xmm3
451 movdqu 32(%esi),%xmm4
452 movdqu 48(%esi),%xmm5
453 movdqu 64(%esi),%xmm6
454 movdqu 80(%esi),%xmm7
457 jmp L019ecb_dec_loop6_enter
462 movups %xmm3,16(%edi)
463 movdqu 16(%esi),%xmm3
464 movups %xmm4,32(%edi)
465 movdqu 32(%esi),%xmm4
466 movups %xmm5,48(%edi)
467 movdqu 48(%esi),%xmm5
468 movups %xmm6,64(%edi)
469 movdqu 64(%esi),%xmm6
470 movups %xmm7,80(%edi)
472 movdqu 80(%esi),%xmm7
474 L019ecb_dec_loop6_enter:
475 call __aesni_decrypt6
479 jnc L020ecb_dec_loop6
481 movups %xmm3,16(%edi)
482 movups %xmm4,32(%edi)
483 movups %xmm5,48(%edi)
484 movups %xmm6,64(%edi)
485 movups %xmm7,80(%edi)
493 movups 16(%esi),%xmm3
495 movups 32(%esi),%xmm4
498 movups 48(%esi),%xmm5
500 movups 64(%esi),%xmm6
502 call __aesni_decrypt6
504 movups %xmm3,16(%edi)
505 movups %xmm4,32(%edi)
506 movups %xmm5,48(%edi)
507 movups %xmm6,64(%edi)
512 movups 16(%edx),%xmm1
516 .byte 102,15,56,222,209
521 .byte 102,15,56,223,209
527 call __aesni_decrypt3
529 movups %xmm3,16(%edi)
533 call __aesni_decrypt3
535 movups %xmm3,16(%edi)
536 movups %xmm4,32(%edi)
540 call __aesni_decrypt4
542 movups %xmm3,16(%edi)
543 movups %xmm4,32(%edi)
544 movups %xmm5,48(%edi)
551 .globl _aesni_ccm64_encrypt_blocks
553 _aesni_ccm64_encrypt_blocks:
554 L_aesni_ccm64_encrypt_blocks_begin:
572 movl $202182159,(%esp)
573 movl $134810123,4(%esp)
574 movl $67438087,8(%esp)
587 .byte 102,15,56,0,253
593 movups 16(%ebp),%xmm1
599 .byte 102,15,56,220,209
601 .byte 102,15,56,220,217
602 movups 16(%edx),%xmm1
603 .byte 102,15,56,220,208
605 .byte 102,15,56,220,216
607 jnz L027ccm64_enc2_loop
608 .byte 102,15,56,220,209
609 .byte 102,15,56,220,217
611 .byte 102,15,56,221,208
612 .byte 102,15,56,221,216
619 .byte 102,15,56,0,213
620 jnz L026ccm64_enc_outer
629 .globl _aesni_ccm64_decrypt_blocks
631 _aesni_ccm64_decrypt_blocks:
632 L_aesni_ccm64_decrypt_blocks_begin:
650 movl $202182159,(%esp)
651 movl $134810123,4(%esp)
652 movl $67438087,8(%esp)
664 .byte 102,15,56,0,253
666 movups 16(%edx),%xmm1
670 .byte 102,15,56,220,209
675 .byte 102,15,56,221,209
679 jmp L029ccm64_dec_outer
687 .byte 102,15,56,0,213
689 jz L030ccm64_dec_break
692 movups 16(%ebp),%xmm1
699 .byte 102,15,56,220,209
701 .byte 102,15,56,220,217
702 movups 16(%edx),%xmm1
703 .byte 102,15,56,220,208
705 .byte 102,15,56,220,216
707 jnz L031ccm64_dec2_loop
710 .byte 102,15,56,220,209
711 .byte 102,15,56,220,217
713 .byte 102,15,56,221,208
714 .byte 102,15,56,221,216
715 jmp L029ccm64_dec_outer
720 movups 16(%edx),%xmm1
725 .byte 102,15,56,220,217
730 .byte 102,15,56,221,217
739 .globl _aesni_ctr32_encrypt_blocks
741 _aesni_ctr32_encrypt_blocks:
742 L_aesni_ctr32_encrypt_blocks_begin:
757 je L033ctr32_one_shortcut
759 movl $202182159,(%esp)
760 movl $134810123,4(%esp)
761 movl $67438087,8(%esp)
769 .byte 102,15,58,22,251,3
770 .byte 102,15,58,34,253,3
776 .byte 102,15,58,34,203,0
778 .byte 102,15,58,34,197,0
780 .byte 102,15,58,34,203,1
782 .byte 102,15,58,34,197,1
784 .byte 102,15,58,34,203,2
786 .byte 102,15,58,34,197,2
787 movdqa %xmm1,48(%esp)
788 .byte 102,15,56,0,202
789 movdqa %xmm0,64(%esp)
790 .byte 102,15,56,0,194
791 pshufd $192,%xmm1,%xmm2
792 pshufd $128,%xmm1,%xmm3
795 movdqa %xmm7,32(%esp)
803 pshufd $64,%xmm1,%xmm4
804 movdqa 32(%esp),%xmm1
805 pshufd $192,%xmm0,%xmm5
807 pshufd $128,%xmm0,%xmm6
809 pshufd $64,%xmm0,%xmm7
815 movups 16(%ebp),%xmm1
820 .byte 102,15,56,220,209
822 .byte 102,15,56,220,217
824 .byte 102,15,56,220,225
826 .byte 102,15,56,220,233
828 .byte 102,15,56,220,241
830 .byte 102,15,56,220,249
831 call L_aesni_encrypt6_enter
833 movups 16(%esi),%xmm0
835 movups 32(%esi),%xmm1
838 movdqa 16(%esp),%xmm0
840 movdqa 48(%esp),%xmm1
841 movups %xmm3,16(%edi)
842 movups %xmm4,32(%edi)
846 movups 48(%esi),%xmm3
847 movups 64(%esi),%xmm4
849 movups 80(%esi),%xmm3
851 movdqa %xmm1,48(%esp)
852 .byte 102,15,56,0,202
854 movups %xmm5,48(%edi)
856 movdqa %xmm0,64(%esp)
857 .byte 102,15,56,0,194
858 movups %xmm6,64(%edi)
859 pshufd $192,%xmm1,%xmm2
860 movups %xmm7,80(%edi)
863 pshufd $128,%xmm1,%xmm3
870 movdqa 32(%esp),%xmm7
875 pshufd $64,%xmm1,%xmm4
878 pshufd $192,%xmm0,%xmm5
882 pshufd $128,%xmm0,%xmm6
886 call __aesni_encrypt6
888 movups 16(%esi),%xmm0
890 movups 32(%esi),%xmm1
892 movups 48(%esi),%xmm0
894 movups 64(%esi),%xmm1
898 movups %xmm3,16(%edi)
899 movups %xmm4,32(%edi)
900 movups %xmm5,48(%edi)
901 movups %xmm6,64(%edi)
904 L033ctr32_one_shortcut:
909 movups 16(%edx),%xmm1
913 .byte 102,15,56,220,209
918 .byte 102,15,56,221,209
925 call __aesni_encrypt3
927 movups 16(%esi),%xmm6
931 movups %xmm3,16(%edi)
935 call __aesni_encrypt3
937 movups 16(%esi),%xmm6
939 movups 32(%esi),%xmm7
943 movups %xmm3,16(%edi)
944 movups %xmm4,32(%edi)
948 call __aesni_encrypt4
950 movups 16(%esi),%xmm7
951 movups 32(%esi),%xmm1
953 movups 48(%esi),%xmm0
957 movups %xmm3,16(%edi)
959 movups %xmm4,32(%edi)
960 movups %xmm5,48(%edi)
968 .globl _aesni_xts_encrypt
971 L_aesni_xts_encrypt_begin:
981 movups 16(%edx),%xmm1
985 .byte 102,15,56,220,209
990 .byte 102,15,56,221,209
1007 movdqa 96(%esp),%xmm3
1013 jc L043xts_enc_short
1016 jmp L044xts_enc_loop6
1019 pshufd $19,%xmm0,%xmm2
1026 pshufd $19,%xmm0,%xmm2
1028 movdqa %xmm1,16(%esp)
1033 pshufd $19,%xmm0,%xmm2
1035 movdqa %xmm1,32(%esp)
1040 pshufd $19,%xmm0,%xmm2
1042 movdqa %xmm1,48(%esp)
1047 pshufd $19,%xmm0,%xmm7
1048 movdqa %xmm1,64(%esp)
1054 movdqu 16(%esi),%xmm3
1056 movdqu 32(%esi),%xmm4
1058 movdqu 48(%esi),%xmm5
1060 movdqu 64(%esi),%xmm6
1062 movdqu 80(%esi),%xmm1
1066 movdqa %xmm7,80(%esp)
1068 movups 16(%ebp),%xmm1
1071 .byte 102,15,56,220,209
1073 .byte 102,15,56,220,217
1076 .byte 102,15,56,220,225
1078 .byte 102,15,56,220,233
1080 .byte 102,15,56,220,241
1082 .byte 102,15,56,220,249
1083 call L_aesni_encrypt6_enter
1084 movdqa 80(%esp),%xmm1
1088 xorps 16(%esp),%xmm3
1090 xorps 32(%esp),%xmm4
1091 movups %xmm3,16(%edi)
1092 xorps 48(%esp),%xmm5
1093 movups %xmm4,32(%edi)
1094 xorps 64(%esp),%xmm6
1095 movups %xmm5,48(%edi)
1097 movups %xmm6,64(%edi)
1098 pshufd $19,%xmm0,%xmm2
1099 movups %xmm7,80(%edi)
1101 movdqa 96(%esp),%xmm3
1109 jnc L044xts_enc_loop6
1110 leal 1(,%ecx,2),%ecx
1115 jz L045xts_enc_done6x
1119 pshufd $19,%xmm0,%xmm2
1126 pshufd $19,%xmm0,%xmm2
1134 jb L048xts_enc_three
1135 pshufd $19,%xmm0,%xmm2
1143 movdqa %xmm6,16(%esp)
1145 movdqa %xmm7,32(%esp)
1146 pshufd $19,%xmm0,%xmm7
1147 movdqa %xmm1,48(%esp)
1152 movdqu 16(%esi),%xmm3
1153 movdqu 32(%esi),%xmm4
1155 movdqu 48(%esi),%xmm5
1157 movdqu 64(%esi),%xmm6
1161 movdqa %xmm7,64(%esp)
1163 call __aesni_encrypt6
1164 movaps 64(%esp),%xmm1
1166 xorps 16(%esp),%xmm3
1167 xorps 32(%esp),%xmm4
1169 xorps 48(%esp),%xmm5
1170 movups %xmm3,16(%edi)
1172 movups %xmm4,32(%edi)
1173 movups %xmm5,48(%edi)
1174 movups %xmm6,64(%edi)
1176 jmp L050xts_enc_done
1183 movups 16(%edx),%xmm1
1187 .byte 102,15,56,220,209
1192 .byte 102,15,56,221,209
1197 jmp L050xts_enc_done
1202 movups 16(%esi),%xmm3
1207 call __aesni_encrypt3
1211 movups %xmm3,16(%edi)
1214 jmp L050xts_enc_done
1219 movups 16(%esi),%xmm3
1220 movups 32(%esi),%xmm4
1225 call __aesni_encrypt3
1230 movups %xmm3,16(%edi)
1231 movups %xmm4,32(%edi)
1234 jmp L050xts_enc_done
1239 movups 16(%esi),%xmm3
1240 movups 32(%esi),%xmm4
1242 movups 48(%esi),%xmm5
1244 xorps 16(%esp),%xmm3
1247 call __aesni_encrypt4
1249 xorps 16(%esp),%xmm3
1253 movups %xmm3,16(%edi)
1254 movups %xmm4,32(%edi)
1255 movups %xmm5,48(%edi)
1258 jmp L050xts_enc_done
1266 jmp L053xts_enc_steal
1275 pshufd $19,%xmm0,%xmm5
1281 movzbl -16(%edi),%edx
1287 jnz L053xts_enc_steal
1291 movups -16(%edi),%xmm2
1294 movups 16(%edx),%xmm1
1298 .byte 102,15,56,220,209
1302 jnz L054enc1_loop_10
1303 .byte 102,15,56,221,209
1305 movups %xmm2,-16(%edi)
1313 .globl _aesni_xts_decrypt
1316 L_aesni_xts_decrypt_begin:
1326 movups 16(%edx),%xmm1
1330 .byte 102,15,56,220,209
1334 jnz L055enc1_loop_11
1335 .byte 102,15,56,221,209
1359 movdqa 96(%esp),%xmm3
1363 jc L056xts_dec_short
1366 jmp L057xts_dec_loop6
1369 pshufd $19,%xmm0,%xmm2
1376 pshufd $19,%xmm0,%xmm2
1378 movdqa %xmm1,16(%esp)
1383 pshufd $19,%xmm0,%xmm2
1385 movdqa %xmm1,32(%esp)
1390 pshufd $19,%xmm0,%xmm2
1392 movdqa %xmm1,48(%esp)
1397 pshufd $19,%xmm0,%xmm7
1398 movdqa %xmm1,64(%esp)
1404 movdqu 16(%esi),%xmm3
1406 movdqu 32(%esi),%xmm4
1408 movdqu 48(%esi),%xmm5
1410 movdqu 64(%esi),%xmm6
1412 movdqu 80(%esi),%xmm1
1416 movdqa %xmm7,80(%esp)
1418 movups 16(%ebp),%xmm1
1421 .byte 102,15,56,222,209
1423 .byte 102,15,56,222,217
1426 .byte 102,15,56,222,225
1428 .byte 102,15,56,222,233
1430 .byte 102,15,56,222,241
1432 .byte 102,15,56,222,249
1433 call L_aesni_decrypt6_enter
1434 movdqa 80(%esp),%xmm1
1438 xorps 16(%esp),%xmm3
1440 xorps 32(%esp),%xmm4
1441 movups %xmm3,16(%edi)
1442 xorps 48(%esp),%xmm5
1443 movups %xmm4,32(%edi)
1444 xorps 64(%esp),%xmm6
1445 movups %xmm5,48(%edi)
1447 movups %xmm6,64(%edi)
1448 pshufd $19,%xmm0,%xmm2
1449 movups %xmm7,80(%edi)
1451 movdqa 96(%esp),%xmm3
1459 jnc L057xts_dec_loop6
1460 leal 1(,%ecx,2),%ecx
1465 jz L058xts_dec_done6x
1469 pshufd $19,%xmm0,%xmm2
1476 pshufd $19,%xmm0,%xmm2
1484 jb L061xts_dec_three
1485 pshufd $19,%xmm0,%xmm2
1493 movdqa %xmm6,16(%esp)
1495 movdqa %xmm7,32(%esp)
1496 pshufd $19,%xmm0,%xmm7
1497 movdqa %xmm1,48(%esp)
1502 movdqu 16(%esi),%xmm3
1503 movdqu 32(%esi),%xmm4
1505 movdqu 48(%esi),%xmm5
1507 movdqu 64(%esi),%xmm6
1511 movdqa %xmm7,64(%esp)
1513 call __aesni_decrypt6
1514 movaps 64(%esp),%xmm1
1516 xorps 16(%esp),%xmm3
1517 xorps 32(%esp),%xmm4
1519 xorps 48(%esp),%xmm5
1520 movups %xmm3,16(%edi)
1522 movups %xmm4,32(%edi)
1523 movups %xmm5,48(%edi)
1524 movups %xmm6,64(%edi)
1526 jmp L063xts_dec_done
1533 movups 16(%edx),%xmm1
1537 .byte 102,15,56,222,209
1541 jnz L064dec1_loop_12
1542 .byte 102,15,56,223,209
1547 jmp L063xts_dec_done
1552 movups 16(%esi),%xmm3
1556 call __aesni_decrypt3
1560 movups %xmm3,16(%edi)
1563 jmp L063xts_dec_done
1568 movups 16(%esi),%xmm3
1569 movups 32(%esi),%xmm4
1574 call __aesni_decrypt3
1579 movups %xmm3,16(%edi)
1580 movups %xmm4,32(%edi)
1583 jmp L063xts_dec_done
1588 movups 16(%esi),%xmm3
1589 movups 32(%esi),%xmm4
1591 movups 48(%esi),%xmm5
1593 xorps 16(%esp),%xmm3
1596 call __aesni_decrypt4
1598 xorps 16(%esp),%xmm3
1602 movups %xmm3,16(%edi)
1603 movups %xmm4,32(%edi)
1604 movups %xmm5,48(%edi)
1607 jmp L063xts_dec_done
1614 jmp L066xts_dec_only_one_more
1623 pshufd $19,%xmm0,%xmm2
1625 movdqa 96(%esp),%xmm3
1630 L066xts_dec_only_one_more:
1631 pshufd $19,%xmm0,%xmm5
1641 movups 16(%edx),%xmm1
1645 .byte 102,15,56,222,209
1649 jnz L067dec1_loop_13
1650 .byte 102,15,56,223,209
1654 movzbl 16(%esi),%ecx
1661 jnz L068xts_dec_steal
1668 movups 16(%edx),%xmm1
1672 .byte 102,15,56,222,209
1676 jnz L069dec1_loop_14
1677 .byte 102,15,56,223,209
1687 .globl _aesni_cbc_encrypt
1690 L_aesni_cbc_encrypt_begin:
1717 jmp L073cbc_enc_loop
1723 movups 16(%edx),%xmm1
1728 .byte 102,15,56,220,209
1732 jnz L074enc1_loop_15
1733 .byte 102,15,56,221,209
1739 jnc L073cbc_enc_loop
1741 jnz L072cbc_enc_tail
1755 jmp L073cbc_enc_loop
1759 jbe L076cbc_dec_tail
1762 jmp L077cbc_dec_loop6_enter
1768 L077cbc_dec_loop6_enter:
1770 movdqu 16(%esi),%xmm3
1771 movdqu 32(%esi),%xmm4
1772 movdqu 48(%esi),%xmm5
1773 movdqu 64(%esi),%xmm6
1774 movdqu 80(%esi),%xmm7
1775 call __aesni_decrypt6
1777 movups 16(%esi),%xmm0
1780 movups 32(%esi),%xmm1
1782 movups 48(%esi),%xmm0
1784 movups 64(%esi),%xmm1
1786 movups 80(%esi),%xmm0
1789 movups %xmm3,16(%edi)
1791 movups %xmm4,32(%edi)
1793 movups %xmm5,48(%edi)
1795 movups %xmm6,64(%edi)
1798 ja L078cbc_dec_loop6
1802 jle L079cbc_dec_tail_collected
1810 movups 16(%esi),%xmm3
1814 movups 32(%esi),%xmm4
1816 jbe L082cbc_dec_three
1817 movups 48(%esi),%xmm5
1819 jbe L083cbc_dec_four
1820 movups 64(%esi),%xmm6
1824 call __aesni_decrypt6
1826 movups 16(%esi),%xmm0
1829 movups 32(%esi),%xmm1
1831 movups 48(%esi),%xmm0
1833 movups 64(%esi),%xmm7
1836 movups %xmm3,16(%edi)
1837 movups %xmm4,32(%edi)
1838 movups %xmm5,48(%edi)
1842 jmp L079cbc_dec_tail_collected
1846 movups 16(%edx),%xmm1
1850 .byte 102,15,56,222,209
1854 jnz L084dec1_loop_16
1855 .byte 102,15,56,223,209
1859 jmp L079cbc_dec_tail_collected
1863 call __aesni_decrypt3
1871 jmp L079cbc_dec_tail_collected
1874 call __aesni_decrypt3
1880 movups %xmm3,16(%edi)
1882 movups 32(%esi),%xmm7
1884 jmp L079cbc_dec_tail_collected
1887 call __aesni_decrypt4
1888 movups 16(%esi),%xmm1
1889 movups 32(%esi),%xmm0
1891 movups 48(%esi),%xmm7
1895 movups %xmm3,16(%edi)
1897 movups %xmm4,32(%edi)
1901 L079cbc_dec_tail_collected:
1903 jnz L085cbc_dec_tail_partial
1907 L085cbc_dec_tail_partial:
1924 __aesni_set_encrypt_key:
1941 movups %xmm0,-16(%edx)
1942 .byte 102,15,58,223,200,1
1943 call L091key_128_cold
1944 .byte 102,15,58,223,200,2
1946 .byte 102,15,58,223,200,4
1948 .byte 102,15,58,223,200,8
1950 .byte 102,15,58,223,200,16
1952 .byte 102,15,58,223,200,32
1954 .byte 102,15,58,223,200,64
1956 .byte 102,15,58,223,200,128
1958 .byte 102,15,58,223,200,27
1960 .byte 102,15,58,223,200,54
1971 shufps $16,%xmm0,%xmm4
1973 shufps $140,%xmm0,%xmm4
1975 shufps $255,%xmm1,%xmm1
1982 movups %xmm0,-16(%edx)
1983 .byte 102,15,58,223,202,1
1984 call L093key_192a_cold
1985 .byte 102,15,58,223,202,2
1987 .byte 102,15,58,223,202,4
1989 .byte 102,15,58,223,202,8
1991 .byte 102,15,58,223,202,16
1993 .byte 102,15,58,223,202,32
1995 .byte 102,15,58,223,202,64
1997 .byte 102,15,58,223,202,128
2011 shufps $16,%xmm0,%xmm4
2014 shufps $140,%xmm0,%xmm4
2017 pshufd $85,%xmm1,%xmm1
2020 pshufd $255,%xmm0,%xmm3
2026 shufps $68,%xmm0,%xmm5
2028 shufps $78,%xmm2,%xmm3
2029 movups %xmm3,16(%edx)
2031 jmp L096key_192b_warm
2034 movups 16(%eax),%xmm2
2037 movups %xmm0,-32(%edx)
2038 movups %xmm2,-16(%edx)
2039 .byte 102,15,58,223,202,1
2040 call L097key_256a_cold
2041 .byte 102,15,58,223,200,1
2043 .byte 102,15,58,223,202,2
2045 .byte 102,15,58,223,200,2
2047 .byte 102,15,58,223,202,4
2049 .byte 102,15,58,223,200,4
2051 .byte 102,15,58,223,202,8
2053 .byte 102,15,58,223,200,8
2055 .byte 102,15,58,223,202,16
2057 .byte 102,15,58,223,200,16
2059 .byte 102,15,58,223,202,32
2061 .byte 102,15,58,223,200,32
2063 .byte 102,15,58,223,202,64
2074 shufps $16,%xmm0,%xmm4
2076 shufps $140,%xmm0,%xmm4
2078 shufps $255,%xmm1,%xmm1
2085 shufps $16,%xmm2,%xmm4
2087 shufps $140,%xmm2,%xmm4
2089 shufps $170,%xmm1,%xmm1
2100 .globl _aesni_set_encrypt_key
2102 _aesni_set_encrypt_key:
2103 L_aesni_set_encrypt_key_begin:
2107 call __aesni_set_encrypt_key
2109 .globl _aesni_set_decrypt_key
2111 _aesni_set_decrypt_key:
2112 L_aesni_set_decrypt_key_begin:
2116 call __aesni_set_encrypt_key
2121 leal 16(%edx,%ecx,1),%eax
2128 L101dec_key_inverse:
2131 .byte 102,15,56,219,192
2132 .byte 102,15,56,219,201
2135 movups %xmm0,16(%eax)
2136 movups %xmm1,-16(%edx)
2138 ja L101dec_key_inverse
2140 .byte 102,15,56,219,192
2145 .byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69
2146 .byte 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83
2147 .byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
2148 .byte 115,108,46,111,114,103,62,0