1 # Copyright (c) 2011-2013, 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 ***
40 .file "devel/perlasm/aesni-x86.s"
43 .type aesni_encrypt,@function
46 .L_aesni_encrypt_begin:
57 .byte 102,15,56,220,209
62 .byte 102,15,56,221,209
65 .size aesni_encrypt,.-.L_aesni_encrypt_begin
67 .type aesni_decrypt,@function
70 .L_aesni_decrypt_begin:
81 .byte 102,15,56,222,209
86 .byte 102,15,56,223,209
89 .size aesni_decrypt,.-.L_aesni_decrypt_begin
90 .type _aesni_encrypt3,@function
102 .byte 102,15,56,220,209
103 .byte 102,15,56,220,217
105 .byte 102,15,56,220,225
106 movups 16(%edx),%xmm1
107 .byte 102,15,56,220,208
108 .byte 102,15,56,220,216
110 .byte 102,15,56,220,224
113 .byte 102,15,56,220,209
114 .byte 102,15,56,220,217
115 .byte 102,15,56,220,225
116 .byte 102,15,56,221,208
117 .byte 102,15,56,221,216
118 .byte 102,15,56,221,224
120 .size _aesni_encrypt3,.-_aesni_encrypt3
121 .type _aesni_decrypt3,@function
126 movups 16(%edx),%xmm1
133 .byte 102,15,56,222,209
134 .byte 102,15,56,222,217
136 .byte 102,15,56,222,225
137 movups 16(%edx),%xmm1
138 .byte 102,15,56,222,208
139 .byte 102,15,56,222,216
141 .byte 102,15,56,222,224
144 .byte 102,15,56,222,209
145 .byte 102,15,56,222,217
146 .byte 102,15,56,222,225
147 .byte 102,15,56,223,208
148 .byte 102,15,56,223,216
149 .byte 102,15,56,223,224
151 .size _aesni_decrypt3,.-_aesni_decrypt3
152 .type _aesni_encrypt4,@function
156 movups 16(%edx),%xmm1
165 .byte 102,15,56,220,209
166 .byte 102,15,56,220,217
168 .byte 102,15,56,220,225
169 .byte 102,15,56,220,233
170 movups 16(%edx),%xmm1
171 .byte 102,15,56,220,208
172 .byte 102,15,56,220,216
174 .byte 102,15,56,220,224
175 .byte 102,15,56,220,232
178 .byte 102,15,56,220,209
179 .byte 102,15,56,220,217
180 .byte 102,15,56,220,225
181 .byte 102,15,56,220,233
182 .byte 102,15,56,221,208
183 .byte 102,15,56,221,216
184 .byte 102,15,56,221,224
185 .byte 102,15,56,221,232
187 .size _aesni_encrypt4,.-_aesni_encrypt4
188 .type _aesni_decrypt4,@function
192 movups 16(%edx),%xmm1
201 .byte 102,15,56,222,209
202 .byte 102,15,56,222,217
204 .byte 102,15,56,222,225
205 .byte 102,15,56,222,233
206 movups 16(%edx),%xmm1
207 .byte 102,15,56,222,208
208 .byte 102,15,56,222,216
210 .byte 102,15,56,222,224
211 .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(%edx),%xmm1
233 .byte 102,15,56,220,209
235 .byte 102,15,56,220,217
238 .byte 102,15,56,220,225
240 .byte 102,15,56,220,233
242 .byte 102,15,56,220,241
244 .byte 102,15,56,220,249
245 jmp .L_aesni_encrypt6_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 .L_aesni_encrypt6_enter:
257 movups 16(%edx),%xmm1
258 .byte 102,15,56,220,208
259 .byte 102,15,56,220,216
261 .byte 102,15,56,220,224
262 .byte 102,15,56,220,232
263 .byte 102,15,56,220,240
264 .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(%edx),%xmm1
290 .byte 102,15,56,222,209
292 .byte 102,15,56,222,217
295 .byte 102,15,56,222,225
297 .byte 102,15,56,222,233
299 .byte 102,15,56,222,241
301 .byte 102,15,56,222,249
302 jmp .L_aesni_decrypt6_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 .L_aesni_decrypt6_enter:
314 movups 16(%edx),%xmm1
315 .byte 102,15,56,222,208
316 .byte 102,15,56,222,216
318 .byte 102,15,56,222,224
319 .byte 102,15,56,222,232
320 .byte 102,15,56,222,240
321 .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 .globl aesni_ecb_encrypt
339 .type aesni_ecb_encrypt,@function
342 .L_aesni_ecb_encrypt_begin:
362 movdqu 16(%esi),%xmm3
363 movdqu 32(%esi),%xmm4
364 movdqu 48(%esi),%xmm5
365 movdqu 64(%esi),%xmm6
366 movdqu 80(%esi),%xmm7
369 jmp .L011ecb_enc_loop6_enter
374 movups %xmm3,16(%edi)
375 movdqu 16(%esi),%xmm3
376 movups %xmm4,32(%edi)
377 movdqu 32(%esi),%xmm4
378 movups %xmm5,48(%edi)
379 movdqu 48(%esi),%xmm5
380 movups %xmm6,64(%edi)
381 movdqu 64(%esi),%xmm6
382 movups %xmm7,80(%edi)
384 movdqu 80(%esi),%xmm7
386 .L011ecb_enc_loop6_enter:
391 jnc .L012ecb_enc_loop6
393 movups %xmm3,16(%edi)
394 movups %xmm4,32(%edi)
395 movups %xmm5,48(%edi)
396 movups %xmm6,64(%edi)
397 movups %xmm7,80(%edi)
405 movups 16(%esi),%xmm3
407 movups 32(%esi),%xmm4
409 jb .L015ecb_enc_three
410 movups 48(%esi),%xmm5
412 movups 64(%esi),%xmm6
416 movups %xmm3,16(%edi)
417 movups %xmm4,32(%edi)
418 movups %xmm5,48(%edi)
419 movups %xmm6,64(%edi)
424 movups 16(%edx),%xmm1
428 .byte 102,15,56,220,209
433 .byte 102,15,56,221,209
441 movups %xmm3,16(%edi)
447 movups %xmm3,16(%edi)
448 movups %xmm4,32(%edi)
454 movups %xmm3,16(%edi)
455 movups %xmm4,32(%edi)
456 movups %xmm5,48(%edi)
465 movdqu 16(%esi),%xmm3
466 movdqu 32(%esi),%xmm4
467 movdqu 48(%esi),%xmm5
468 movdqu 64(%esi),%xmm6
469 movdqu 80(%esi),%xmm7
472 jmp .L019ecb_dec_loop6_enter
477 movups %xmm3,16(%edi)
478 movdqu 16(%esi),%xmm3
479 movups %xmm4,32(%edi)
480 movdqu 32(%esi),%xmm4
481 movups %xmm5,48(%edi)
482 movdqu 48(%esi),%xmm5
483 movups %xmm6,64(%edi)
484 movdqu 64(%esi),%xmm6
485 movups %xmm7,80(%edi)
487 movdqu 80(%esi),%xmm7
489 .L019ecb_dec_loop6_enter:
494 jnc .L020ecb_dec_loop6
496 movups %xmm3,16(%edi)
497 movups %xmm4,32(%edi)
498 movups %xmm5,48(%edi)
499 movups %xmm6,64(%edi)
500 movups %xmm7,80(%edi)
508 movups 16(%esi),%xmm3
510 movups 32(%esi),%xmm4
512 jb .L023ecb_dec_three
513 movups 48(%esi),%xmm5
515 movups 64(%esi),%xmm6
519 movups %xmm3,16(%edi)
520 movups %xmm4,32(%edi)
521 movups %xmm5,48(%edi)
522 movups %xmm6,64(%edi)
527 movups 16(%edx),%xmm1
531 .byte 102,15,56,222,209
536 .byte 102,15,56,223,209
544 movups %xmm3,16(%edi)
550 movups %xmm3,16(%edi)
551 movups %xmm4,32(%edi)
557 movups %xmm3,16(%edi)
558 movups %xmm4,32(%edi)
559 movups %xmm5,48(%edi)
566 .size aesni_ecb_encrypt,.-.L_aesni_ecb_encrypt_begin
567 .globl aesni_ccm64_encrypt_blocks
568 .type aesni_ccm64_encrypt_blocks,@function
570 aesni_ccm64_encrypt_blocks:
571 .L_aesni_ccm64_encrypt_blocks_begin:
589 movl $202182159,(%esp)
590 movl $134810123,4(%esp)
591 movl $67438087,8(%esp)
604 .byte 102,15,56,0,253
605 .L026ccm64_enc_outer:
610 movups 16(%ebp),%xmm1
615 .L027ccm64_enc2_loop:
616 .byte 102,15,56,220,209
618 .byte 102,15,56,220,217
619 movups 16(%edx),%xmm1
620 .byte 102,15,56,220,208
622 .byte 102,15,56,220,216
624 jnz .L027ccm64_enc2_loop
625 .byte 102,15,56,220,209
626 .byte 102,15,56,220,217
628 .byte 102,15,56,221,208
629 .byte 102,15,56,221,216
636 .byte 102,15,56,0,213
637 jnz .L026ccm64_enc_outer
646 .size aesni_ccm64_encrypt_blocks,.-.L_aesni_ccm64_encrypt_blocks_begin
647 .globl aesni_ccm64_decrypt_blocks
648 .type aesni_ccm64_decrypt_blocks,@function
650 aesni_ccm64_decrypt_blocks:
651 .L_aesni_ccm64_decrypt_blocks_begin:
669 movl $202182159,(%esp)
670 movl $134810123,4(%esp)
671 movl $67438087,8(%esp)
683 .byte 102,15,56,0,253
685 movups 16(%edx),%xmm1
689 .byte 102,15,56,220,209
694 .byte 102,15,56,221,209
698 jmp .L029ccm64_dec_outer
700 .L029ccm64_dec_outer:
706 .byte 102,15,56,0,213
708 jz .L030ccm64_dec_break
711 movups 16(%ebp),%xmm1
717 .L031ccm64_dec2_loop:
718 .byte 102,15,56,220,209
720 .byte 102,15,56,220,217
721 movups 16(%edx),%xmm1
722 .byte 102,15,56,220,208
724 .byte 102,15,56,220,216
726 jnz .L031ccm64_dec2_loop
729 .byte 102,15,56,220,209
730 .byte 102,15,56,220,217
732 .byte 102,15,56,221,208
733 .byte 102,15,56,221,216
734 jmp .L029ccm64_dec_outer
736 .L030ccm64_dec_break:
739 movups 16(%edx),%xmm1
744 .byte 102,15,56,220,217
749 .byte 102,15,56,221,217
758 .size aesni_ccm64_decrypt_blocks,.-.L_aesni_ccm64_decrypt_blocks_begin
759 .globl aesni_ctr32_encrypt_blocks
760 .type aesni_ctr32_encrypt_blocks,@function
762 aesni_ctr32_encrypt_blocks:
763 .L_aesni_ctr32_encrypt_blocks_begin:
778 je .L033ctr32_one_shortcut
780 movl $202182159,(%esp)
781 movl $134810123,4(%esp)
782 movl $67438087,8(%esp)
790 .byte 102,15,58,22,251,3
791 .byte 102,15,58,34,253,3
797 .byte 102,15,58,34,203,0
799 .byte 102,15,58,34,197,0
801 .byte 102,15,58,34,203,1
803 .byte 102,15,58,34,197,1
805 .byte 102,15,58,34,203,2
807 .byte 102,15,58,34,197,2
808 movdqa %xmm1,48(%esp)
809 .byte 102,15,56,0,202
810 movdqa %xmm0,64(%esp)
811 .byte 102,15,56,0,194
812 pshufd $192,%xmm1,%xmm2
813 pshufd $128,%xmm1,%xmm3
816 movdqa %xmm7,32(%esp)
824 pshufd $64,%xmm1,%xmm4
825 movdqa 32(%esp),%xmm1
826 pshufd $192,%xmm0,%xmm5
828 pshufd $128,%xmm0,%xmm6
830 pshufd $64,%xmm0,%xmm7
836 movups 16(%ebp),%xmm1
841 .byte 102,15,56,220,209
843 .byte 102,15,56,220,217
845 .byte 102,15,56,220,225
847 .byte 102,15,56,220,233
849 .byte 102,15,56,220,241
851 .byte 102,15,56,220,249
852 call .L_aesni_encrypt6_enter
854 movups 16(%esi),%xmm0
856 movups 32(%esi),%xmm1
859 movdqa 16(%esp),%xmm0
861 movdqa 48(%esp),%xmm1
862 movups %xmm3,16(%edi)
863 movups %xmm4,32(%edi)
867 movups 48(%esi),%xmm3
868 movups 64(%esi),%xmm4
870 movups 80(%esi),%xmm3
872 movdqa %xmm1,48(%esp)
873 .byte 102,15,56,0,202
875 movups %xmm5,48(%edi)
877 movdqa %xmm0,64(%esp)
878 .byte 102,15,56,0,194
879 movups %xmm6,64(%edi)
880 pshufd $192,%xmm1,%xmm2
881 movups %xmm7,80(%edi)
884 pshufd $128,%xmm1,%xmm3
891 movdqa 32(%esp),%xmm7
896 pshufd $64,%xmm1,%xmm4
899 pshufd $192,%xmm0,%xmm5
903 pshufd $128,%xmm0,%xmm6
909 movups 16(%esi),%xmm0
911 movups 32(%esi),%xmm1
913 movups 48(%esi),%xmm0
915 movups 64(%esi),%xmm1
919 movups %xmm3,16(%edi)
920 movups %xmm4,32(%edi)
921 movups %xmm5,48(%edi)
922 movups %xmm6,64(%edi)
925 .L033ctr32_one_shortcut:
930 movups 16(%edx),%xmm1
934 .byte 102,15,56,220,209
939 .byte 102,15,56,221,209
948 movups 16(%esi),%xmm6
952 movups %xmm3,16(%edi)
958 movups 16(%esi),%xmm6
960 movups 32(%esi),%xmm7
964 movups %xmm3,16(%edi)
965 movups %xmm4,32(%edi)
971 movups 16(%esi),%xmm7
972 movups 32(%esi),%xmm1
974 movups 48(%esi),%xmm0
978 movups %xmm3,16(%edi)
980 movups %xmm4,32(%edi)
981 movups %xmm5,48(%edi)
989 .size aesni_ctr32_encrypt_blocks,.-.L_aesni_ctr32_encrypt_blocks_begin
990 .globl aesni_xts_encrypt
991 .type aesni_xts_encrypt,@function
994 .L_aesni_xts_encrypt_begin:
1004 movups 16(%edx),%xmm1
1008 .byte 102,15,56,220,209
1012 jnz .L042enc1_loop_8
1013 .byte 102,15,56,221,209
1030 movdqa 96(%esp),%xmm3
1036 jc .L043xts_enc_short
1039 jmp .L044xts_enc_loop6
1042 pshufd $19,%xmm0,%xmm2
1049 pshufd $19,%xmm0,%xmm2
1051 movdqa %xmm1,16(%esp)
1056 pshufd $19,%xmm0,%xmm2
1058 movdqa %xmm1,32(%esp)
1063 pshufd $19,%xmm0,%xmm2
1065 movdqa %xmm1,48(%esp)
1070 pshufd $19,%xmm0,%xmm7
1071 movdqa %xmm1,64(%esp)
1077 movdqu 16(%esi),%xmm3
1079 movdqu 32(%esi),%xmm4
1081 movdqu 48(%esi),%xmm5
1083 movdqu 64(%esi),%xmm6
1085 movdqu 80(%esi),%xmm1
1089 movdqa %xmm7,80(%esp)
1091 movups 16(%ebp),%xmm1
1094 .byte 102,15,56,220,209
1096 .byte 102,15,56,220,217
1099 .byte 102,15,56,220,225
1101 .byte 102,15,56,220,233
1103 .byte 102,15,56,220,241
1105 .byte 102,15,56,220,249
1106 call .L_aesni_encrypt6_enter
1107 movdqa 80(%esp),%xmm1
1111 xorps 16(%esp),%xmm3
1113 xorps 32(%esp),%xmm4
1114 movups %xmm3,16(%edi)
1115 xorps 48(%esp),%xmm5
1116 movups %xmm4,32(%edi)
1117 xorps 64(%esp),%xmm6
1118 movups %xmm5,48(%edi)
1120 movups %xmm6,64(%edi)
1121 pshufd $19,%xmm0,%xmm2
1122 movups %xmm7,80(%edi)
1124 movdqa 96(%esp),%xmm3
1132 jnc .L044xts_enc_loop6
1133 leal 1(,%ecx,2),%ecx
1138 jz .L045xts_enc_done6x
1142 pshufd $19,%xmm0,%xmm2
1149 pshufd $19,%xmm0,%xmm2
1157 jb .L048xts_enc_three
1158 pshufd $19,%xmm0,%xmm2
1166 movdqa %xmm6,16(%esp)
1167 je .L049xts_enc_four
1168 movdqa %xmm7,32(%esp)
1169 pshufd $19,%xmm0,%xmm7
1170 movdqa %xmm1,48(%esp)
1175 movdqu 16(%esi),%xmm3
1176 movdqu 32(%esi),%xmm4
1178 movdqu 48(%esi),%xmm5
1180 movdqu 64(%esi),%xmm6
1184 movdqa %xmm7,64(%esp)
1186 call _aesni_encrypt6
1187 movaps 64(%esp),%xmm1
1189 xorps 16(%esp),%xmm3
1190 xorps 32(%esp),%xmm4
1192 xorps 48(%esp),%xmm5
1193 movups %xmm3,16(%edi)
1195 movups %xmm4,32(%edi)
1196 movups %xmm5,48(%edi)
1197 movups %xmm6,64(%edi)
1199 jmp .L050xts_enc_done
1206 movups 16(%edx),%xmm1
1210 .byte 102,15,56,220,209
1214 jnz .L051enc1_loop_9
1215 .byte 102,15,56,221,209
1220 jmp .L050xts_enc_done
1225 movups 16(%esi),%xmm3
1230 call _aesni_encrypt3
1234 movups %xmm3,16(%edi)
1237 jmp .L050xts_enc_done
1242 movups 16(%esi),%xmm3
1243 movups 32(%esi),%xmm4
1248 call _aesni_encrypt3
1253 movups %xmm3,16(%edi)
1254 movups %xmm4,32(%edi)
1257 jmp .L050xts_enc_done
1262 movups 16(%esi),%xmm3
1263 movups 32(%esi),%xmm4
1265 movups 48(%esi),%xmm5
1267 xorps 16(%esp),%xmm3
1270 call _aesni_encrypt4
1272 xorps 16(%esp),%xmm3
1276 movups %xmm3,16(%edi)
1277 movups %xmm4,32(%edi)
1278 movups %xmm5,48(%edi)
1281 jmp .L050xts_enc_done
1283 .L045xts_enc_done6x:
1289 jmp .L053xts_enc_steal
1298 pshufd $19,%xmm0,%xmm5
1304 movzbl -16(%edi),%edx
1310 jnz .L053xts_enc_steal
1314 movups -16(%edi),%xmm2
1317 movups 16(%edx),%xmm1
1321 .byte 102,15,56,220,209
1325 jnz .L054enc1_loop_10
1326 .byte 102,15,56,221,209
1328 movups %xmm2,-16(%edi)
1336 .size aesni_xts_encrypt,.-.L_aesni_xts_encrypt_begin
1337 .globl aesni_xts_decrypt
1338 .type aesni_xts_decrypt,@function
1341 .L_aesni_xts_decrypt_begin:
1351 movups 16(%edx),%xmm1
1355 .byte 102,15,56,220,209
1359 jnz .L055enc1_loop_11
1360 .byte 102,15,56,221,209
1384 movdqa 96(%esp),%xmm3
1388 jc .L056xts_dec_short
1391 jmp .L057xts_dec_loop6
1394 pshufd $19,%xmm0,%xmm2
1401 pshufd $19,%xmm0,%xmm2
1403 movdqa %xmm1,16(%esp)
1408 pshufd $19,%xmm0,%xmm2
1410 movdqa %xmm1,32(%esp)
1415 pshufd $19,%xmm0,%xmm2
1417 movdqa %xmm1,48(%esp)
1422 pshufd $19,%xmm0,%xmm7
1423 movdqa %xmm1,64(%esp)
1429 movdqu 16(%esi),%xmm3
1431 movdqu 32(%esi),%xmm4
1433 movdqu 48(%esi),%xmm5
1435 movdqu 64(%esi),%xmm6
1437 movdqu 80(%esi),%xmm1
1441 movdqa %xmm7,80(%esp)
1443 movups 16(%ebp),%xmm1
1446 .byte 102,15,56,222,209
1448 .byte 102,15,56,222,217
1451 .byte 102,15,56,222,225
1453 .byte 102,15,56,222,233
1455 .byte 102,15,56,222,241
1457 .byte 102,15,56,222,249
1458 call .L_aesni_decrypt6_enter
1459 movdqa 80(%esp),%xmm1
1463 xorps 16(%esp),%xmm3
1465 xorps 32(%esp),%xmm4
1466 movups %xmm3,16(%edi)
1467 xorps 48(%esp),%xmm5
1468 movups %xmm4,32(%edi)
1469 xorps 64(%esp),%xmm6
1470 movups %xmm5,48(%edi)
1472 movups %xmm6,64(%edi)
1473 pshufd $19,%xmm0,%xmm2
1474 movups %xmm7,80(%edi)
1476 movdqa 96(%esp),%xmm3
1484 jnc .L057xts_dec_loop6
1485 leal 1(,%ecx,2),%ecx
1490 jz .L058xts_dec_done6x
1494 pshufd $19,%xmm0,%xmm2
1501 pshufd $19,%xmm0,%xmm2
1509 jb .L061xts_dec_three
1510 pshufd $19,%xmm0,%xmm2
1518 movdqa %xmm6,16(%esp)
1519 je .L062xts_dec_four
1520 movdqa %xmm7,32(%esp)
1521 pshufd $19,%xmm0,%xmm7
1522 movdqa %xmm1,48(%esp)
1527 movdqu 16(%esi),%xmm3
1528 movdqu 32(%esi),%xmm4
1530 movdqu 48(%esi),%xmm5
1532 movdqu 64(%esi),%xmm6
1536 movdqa %xmm7,64(%esp)
1538 call _aesni_decrypt6
1539 movaps 64(%esp),%xmm1
1541 xorps 16(%esp),%xmm3
1542 xorps 32(%esp),%xmm4
1544 xorps 48(%esp),%xmm5
1545 movups %xmm3,16(%edi)
1547 movups %xmm4,32(%edi)
1548 movups %xmm5,48(%edi)
1549 movups %xmm6,64(%edi)
1551 jmp .L063xts_dec_done
1558 movups 16(%edx),%xmm1
1562 .byte 102,15,56,222,209
1566 jnz .L064dec1_loop_12
1567 .byte 102,15,56,223,209
1572 jmp .L063xts_dec_done
1577 movups 16(%esi),%xmm3
1581 call _aesni_decrypt3
1585 movups %xmm3,16(%edi)
1588 jmp .L063xts_dec_done
1593 movups 16(%esi),%xmm3
1594 movups 32(%esi),%xmm4
1599 call _aesni_decrypt3
1604 movups %xmm3,16(%edi)
1605 movups %xmm4,32(%edi)
1608 jmp .L063xts_dec_done
1613 movups 16(%esi),%xmm3
1614 movups 32(%esi),%xmm4
1616 movups 48(%esi),%xmm5
1618 xorps 16(%esp),%xmm3
1621 call _aesni_decrypt4
1623 xorps 16(%esp),%xmm3
1627 movups %xmm3,16(%edi)
1628 movups %xmm4,32(%edi)
1629 movups %xmm5,48(%edi)
1632 jmp .L063xts_dec_done
1634 .L058xts_dec_done6x:
1639 jmp .L066xts_dec_only_one_more
1648 pshufd $19,%xmm0,%xmm2
1650 movdqa 96(%esp),%xmm3
1655 .L066xts_dec_only_one_more:
1656 pshufd $19,%xmm0,%xmm5
1666 movups 16(%edx),%xmm1
1670 .byte 102,15,56,222,209
1674 jnz .L067dec1_loop_13
1675 .byte 102,15,56,223,209
1679 movzbl 16(%esi),%ecx
1686 jnz .L068xts_dec_steal
1693 movups 16(%edx),%xmm1
1697 .byte 102,15,56,222,209
1701 jnz .L069dec1_loop_14
1702 .byte 102,15,56,223,209
1712 .size aesni_xts_decrypt,.-.L_aesni_xts_decrypt_begin
1713 .globl aesni_cbc_encrypt
1714 .type aesni_cbc_encrypt,@function
1717 .L_aesni_cbc_encrypt_begin:
1742 jb .L072cbc_enc_tail
1744 jmp .L073cbc_enc_loop
1750 movups 16(%edx),%xmm1
1755 .byte 102,15,56,220,209
1759 jnz .L074enc1_loop_15
1760 .byte 102,15,56,221,209
1766 jnc .L073cbc_enc_loop
1768 jnz .L072cbc_enc_tail
1782 jmp .L073cbc_enc_loop
1786 jbe .L076cbc_dec_tail
1789 jmp .L077cbc_dec_loop6_enter
1795 .L077cbc_dec_loop6_enter:
1797 movdqu 16(%esi),%xmm3
1798 movdqu 32(%esi),%xmm4
1799 movdqu 48(%esi),%xmm5
1800 movdqu 64(%esi),%xmm6
1801 movdqu 80(%esi),%xmm7
1802 call _aesni_decrypt6
1804 movups 16(%esi),%xmm0
1807 movups 32(%esi),%xmm1
1809 movups 48(%esi),%xmm0
1811 movups 64(%esi),%xmm1
1813 movups 80(%esi),%xmm0
1816 movups %xmm3,16(%edi)
1818 movups %xmm4,32(%edi)
1820 movups %xmm5,48(%edi)
1822 movups %xmm6,64(%edi)
1825 ja .L078cbc_dec_loop6
1829 jle .L079cbc_dec_tail_collected
1836 jbe .L080cbc_dec_one
1837 movups 16(%esi),%xmm3
1840 jbe .L081cbc_dec_two
1841 movups 32(%esi),%xmm4
1843 jbe .L082cbc_dec_three
1844 movups 48(%esi),%xmm5
1846 jbe .L083cbc_dec_four
1847 movups 64(%esi),%xmm6
1851 call _aesni_decrypt6
1853 movups 16(%esi),%xmm0
1856 movups 32(%esi),%xmm1
1858 movups 48(%esi),%xmm0
1860 movups 64(%esi),%xmm7
1863 movups %xmm3,16(%edi)
1864 movups %xmm4,32(%edi)
1865 movups %xmm5,48(%edi)
1869 jmp .L079cbc_dec_tail_collected
1873 movups 16(%edx),%xmm1
1877 .byte 102,15,56,222,209
1881 jnz .L084dec1_loop_16
1882 .byte 102,15,56,223,209
1886 jmp .L079cbc_dec_tail_collected
1890 call _aesni_decrypt3
1898 jmp .L079cbc_dec_tail_collected
1901 call _aesni_decrypt3
1907 movups %xmm3,16(%edi)
1909 movups 32(%esi),%xmm7
1911 jmp .L079cbc_dec_tail_collected
1914 call _aesni_decrypt4
1915 movups 16(%esi),%xmm1
1916 movups 32(%esi),%xmm0
1918 movups 48(%esi),%xmm7
1922 movups %xmm3,16(%edi)
1924 movups %xmm4,32(%edi)
1928 .L079cbc_dec_tail_collected:
1930 jnz .L085cbc_dec_tail_partial
1934 .L085cbc_dec_tail_partial:
1950 .size aesni_cbc_encrypt,.-.L_aesni_cbc_encrypt_begin
1951 .type _aesni_set_encrypt_key,@function
1953 _aesni_set_encrypt_key:
1966 jne .L089bad_keybits
1970 movups %xmm0,-16(%edx)
1971 .byte 102,15,58,223,200,1
1972 call .L091key_128_cold
1973 .byte 102,15,58,223,200,2
1975 .byte 102,15,58,223,200,4
1977 .byte 102,15,58,223,200,8
1979 .byte 102,15,58,223,200,16
1981 .byte 102,15,58,223,200,32
1983 .byte 102,15,58,223,200,64
1985 .byte 102,15,58,223,200,128
1987 .byte 102,15,58,223,200,27
1989 .byte 102,15,58,223,200,54
2000 shufps $16,%xmm0,%xmm4
2002 shufps $140,%xmm0,%xmm4
2004 shufps $255,%xmm1,%xmm1
2011 movups %xmm0,-16(%edx)
2012 .byte 102,15,58,223,202,1
2013 call .L093key_192a_cold
2014 .byte 102,15,58,223,202,2
2016 .byte 102,15,58,223,202,4
2018 .byte 102,15,58,223,202,8
2020 .byte 102,15,58,223,202,16
2022 .byte 102,15,58,223,202,32
2024 .byte 102,15,58,223,202,64
2026 .byte 102,15,58,223,202,128
2040 shufps $16,%xmm0,%xmm4
2043 shufps $140,%xmm0,%xmm4
2046 pshufd $85,%xmm1,%xmm1
2049 pshufd $255,%xmm0,%xmm3
2055 shufps $68,%xmm0,%xmm5
2057 shufps $78,%xmm2,%xmm3
2058 movups %xmm3,16(%edx)
2060 jmp .L096key_192b_warm
2063 movups 16(%eax),%xmm2
2066 movups %xmm0,-32(%edx)
2067 movups %xmm2,-16(%edx)
2068 .byte 102,15,58,223,202,1
2069 call .L097key_256a_cold
2070 .byte 102,15,58,223,200,1
2072 .byte 102,15,58,223,202,2
2074 .byte 102,15,58,223,200,2
2076 .byte 102,15,58,223,202,4
2078 .byte 102,15,58,223,200,4
2080 .byte 102,15,58,223,202,8
2082 .byte 102,15,58,223,200,8
2084 .byte 102,15,58,223,202,16
2086 .byte 102,15,58,223,200,16
2088 .byte 102,15,58,223,202,32
2090 .byte 102,15,58,223,200,32
2092 .byte 102,15,58,223,202,64
2103 shufps $16,%xmm0,%xmm4
2105 shufps $140,%xmm0,%xmm4
2107 shufps $255,%xmm1,%xmm1
2114 shufps $16,%xmm2,%xmm4
2116 shufps $140,%xmm2,%xmm4
2118 shufps $170,%xmm1,%xmm1
2129 .size _aesni_set_encrypt_key,.-_aesni_set_encrypt_key
2130 .globl aesni_set_encrypt_key
2131 .type aesni_set_encrypt_key,@function
2133 aesni_set_encrypt_key:
2134 .L_aesni_set_encrypt_key_begin:
2138 call _aesni_set_encrypt_key
2140 .size aesni_set_encrypt_key,.-.L_aesni_set_encrypt_key_begin
2141 .globl aesni_set_decrypt_key
2142 .type aesni_set_decrypt_key,@function
2144 aesni_set_decrypt_key:
2145 .L_aesni_set_decrypt_key_begin:
2149 call _aesni_set_encrypt_key
2153 jnz .L100dec_key_ret
2154 leal 16(%edx,%ecx,1),%eax
2161 .L101dec_key_inverse:
2164 .byte 102,15,56,219,192
2165 .byte 102,15,56,219,201
2168 movups %xmm0,16(%eax)
2169 movups %xmm1,-16(%edx)
2171 ja .L101dec_key_inverse
2173 .byte 102,15,56,219,192
2178 .size aesni_set_decrypt_key,.-.L_aesni_set_decrypt_key_begin
2179 .byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69
2180 .byte 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83
2181 .byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
2182 .byte 115,108,46,111,114,103,62,0
2184 .section .note.GNU-stack,"",%progbits