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 ***
40 .file "devel/perlasm/aesni-x86.s"
45 L_aesni_encrypt_begin
:
56 .byte 102,15,56,220,209
61 .byte 102,15,56,221,209
67 L_aesni_decrypt_begin
:
78 .byte 102,15,56,222,209
83 .byte 102,15,56,223,209
97 .byte 102,15,56,220,209
98 .byte 102,15,56,220,217
100 .byte 102,15,56,220,225
101 movups
16(%edx
),%xmm1
102 .byte 102,15,56,220,208
103 .byte 102,15,56,220,216
105 .byte 102,15,56,220,224
108 .byte 102,15,56,220,209
109 .byte 102,15,56,220,217
110 .byte 102,15,56,220,225
111 .byte 102,15,56,221,208
112 .byte 102,15,56,221,216
113 .byte 102,15,56,221,224
119 movups
16(%edx
),%xmm1
126 .byte 102,15,56,222,209
127 .byte 102,15,56,222,217
129 .byte 102,15,56,222,225
130 movups
16(%edx
),%xmm1
131 .byte 102,15,56,222,208
132 .byte 102,15,56,222,216
134 .byte 102,15,56,222,224
137 .byte 102,15,56,222,209
138 .byte 102,15,56,222,217
139 .byte 102,15,56,222,225
140 .byte 102,15,56,223,208
141 .byte 102,15,56,223,216
142 .byte 102,15,56,223,224
147 movups
16(%edx
),%xmm1
156 .byte 102,15,56,220,209
157 .byte 102,15,56,220,217
159 .byte 102,15,56,220,225
160 .byte 102,15,56,220,233
161 movups
16(%edx
),%xmm1
162 .byte 102,15,56,220,208
163 .byte 102,15,56,220,216
165 .byte 102,15,56,220,224
166 .byte 102,15,56,220,232
169 .byte 102,15,56,220,209
170 .byte 102,15,56,220,217
171 .byte 102,15,56,220,225
172 .byte 102,15,56,220,233
173 .byte 102,15,56,221,208
174 .byte 102,15,56,221,216
175 .byte 102,15,56,221,224
176 .byte 102,15,56,221,232
181 movups
16(%edx
),%xmm1
190 .byte 102,15,56,222,209
191 .byte 102,15,56,222,217
193 .byte 102,15,56,222,225
194 .byte 102,15,56,222,233
195 movups
16(%edx
),%xmm1
196 .byte 102,15,56,222,208
197 .byte 102,15,56,222,216
199 .byte 102,15,56,222,224
200 .byte 102,15,56,222,232
203 .byte 102,15,56,222,209
204 .byte 102,15,56,222,217
205 .byte 102,15,56,222,225
206 .byte 102,15,56,222,233
207 .byte 102,15,56,223,208
208 .byte 102,15,56,223,216
209 .byte 102,15,56,223,224
210 .byte 102,15,56,223,232
216 movups
16(%edx
),%xmm1
220 .byte 102,15,56,220,209
222 .byte 102,15,56,220,217
225 .byte 102,15,56,220,225
227 .byte 102,15,56,220,233
229 .byte 102,15,56,220,241
231 .byte 102,15,56,220,249
232 jmp L_aesni_encrypt6_enter
235 .byte 102,15,56,220,209
236 .byte 102,15,56,220,217
238 .byte 102,15,56,220,225
239 .byte 102,15,56,220,233
240 .byte 102,15,56,220,241
241 .byte 102,15,56,220,249
243 L_aesni_encrypt6_enter
:
244 movups
16(%edx
),%xmm1
245 .byte 102,15,56,220,208
246 .byte 102,15,56,220,216
248 .byte 102,15,56,220,224
249 .byte 102,15,56,220,232
250 .byte 102,15,56,220,240
251 .byte 102,15,56,220,248
254 .byte 102,15,56,220,209
255 .byte 102,15,56,220,217
256 .byte 102,15,56,220,225
257 .byte 102,15,56,220,233
258 .byte 102,15,56,220,241
259 .byte 102,15,56,220,249
260 .byte 102,15,56,221,208
261 .byte 102,15,56,221,216
262 .byte 102,15,56,221,224
263 .byte 102,15,56,221,232
264 .byte 102,15,56,221,240
265 .byte 102,15,56,221,248
271 movups
16(%edx
),%xmm1
275 .byte 102,15,56,222,209
277 .byte 102,15,56,222,217
280 .byte 102,15,56,222,225
282 .byte 102,15,56,222,233
284 .byte 102,15,56,222,241
286 .byte 102,15,56,222,249
287 jmp L_aesni_decrypt6_enter
290 .byte 102,15,56,222,209
291 .byte 102,15,56,222,217
293 .byte 102,15,56,222,225
294 .byte 102,15,56,222,233
295 .byte 102,15,56,222,241
296 .byte 102,15,56,222,249
298 L_aesni_decrypt6_enter
:
299 movups
16(%edx
),%xmm1
300 .byte 102,15,56,222,208
301 .byte 102,15,56,222,216
303 .byte 102,15,56,222,224
304 .byte 102,15,56,222,232
305 .byte 102,15,56,222,240
306 .byte 102,15,56,222,248
309 .byte 102,15,56,222,209
310 .byte 102,15,56,222,217
311 .byte 102,15,56,222,225
312 .byte 102,15,56,222,233
313 .byte 102,15,56,222,241
314 .byte 102,15,56,222,249
315 .byte 102,15,56,223,208
316 .byte 102,15,56,223,216
317 .byte 102,15,56,223,224
318 .byte 102,15,56,223,232
319 .byte 102,15,56,223,240
320 .byte 102,15,56,223,248
322 .globl _aesni_ecb_encrypt
325 L_aesni_ecb_encrypt_begin
:
345 movdqu
16(%esi
),%xmm3
346 movdqu
32(%esi
),%xmm4
347 movdqu
48(%esi
),%xmm5
348 movdqu
64(%esi
),%xmm6
349 movdqu
80(%esi
),%xmm7
352 jmp L011ecb_enc_loop6_enter
357 movups
%xmm3
,16(%edi
)
358 movdqu
16(%esi
),%xmm3
359 movups
%xmm4
,32(%edi
)
360 movdqu
32(%esi
),%xmm4
361 movups
%xmm5
,48(%edi
)
362 movdqu
48(%esi
),%xmm5
363 movups
%xmm6
,64(%edi
)
364 movdqu
64(%esi
),%xmm6
365 movups
%xmm7
,80(%edi
)
367 movdqu
80(%esi
),%xmm7
369 L011ecb_enc_loop6_enter
:
370 call __aesni_encrypt6
374 jnc L012ecb_enc_loop6
376 movups
%xmm3
,16(%edi
)
377 movups
%xmm4
,32(%edi
)
378 movups
%xmm5
,48(%edi
)
379 movups
%xmm6
,64(%edi
)
380 movups
%xmm7
,80(%edi
)
388 movups
16(%esi
),%xmm3
390 movups
32(%esi
),%xmm4
393 movups
48(%esi
),%xmm5
395 movups
64(%esi
),%xmm6
397 call __aesni_encrypt6
399 movups
%xmm3
,16(%edi
)
400 movups
%xmm4
,32(%edi
)
401 movups
%xmm5
,48(%edi
)
402 movups
%xmm6
,64(%edi
)
407 movups
16(%edx
),%xmm1
411 .byte 102,15,56,220,209
416 .byte 102,15,56,221,209
422 call __aesni_encrypt3
424 movups
%xmm3
,16(%edi
)
428 call __aesni_encrypt3
430 movups
%xmm3
,16(%edi
)
431 movups
%xmm4
,32(%edi
)
435 call __aesni_encrypt4
437 movups
%xmm3
,16(%edi
)
438 movups
%xmm4
,32(%edi
)
439 movups
%xmm5
,48(%edi
)
448 movdqu
16(%esi
),%xmm3
449 movdqu
32(%esi
),%xmm4
450 movdqu
48(%esi
),%xmm5
451 movdqu
64(%esi
),%xmm6
452 movdqu
80(%esi
),%xmm7
455 jmp L019ecb_dec_loop6_enter
460 movups
%xmm3
,16(%edi
)
461 movdqu
16(%esi
),%xmm3
462 movups
%xmm4
,32(%edi
)
463 movdqu
32(%esi
),%xmm4
464 movups
%xmm5
,48(%edi
)
465 movdqu
48(%esi
),%xmm5
466 movups
%xmm6
,64(%edi
)
467 movdqu
64(%esi
),%xmm6
468 movups
%xmm7
,80(%edi
)
470 movdqu
80(%esi
),%xmm7
472 L019ecb_dec_loop6_enter
:
473 call __aesni_decrypt6
477 jnc L020ecb_dec_loop6
479 movups
%xmm3
,16(%edi
)
480 movups
%xmm4
,32(%edi
)
481 movups
%xmm5
,48(%edi
)
482 movups
%xmm6
,64(%edi
)
483 movups
%xmm7
,80(%edi
)
491 movups
16(%esi
),%xmm3
493 movups
32(%esi
),%xmm4
496 movups
48(%esi
),%xmm5
498 movups
64(%esi
),%xmm6
500 call __aesni_decrypt6
502 movups
%xmm3
,16(%edi
)
503 movups
%xmm4
,32(%edi
)
504 movups
%xmm5
,48(%edi
)
505 movups
%xmm6
,64(%edi
)
510 movups
16(%edx
),%xmm1
514 .byte 102,15,56,222,209
519 .byte 102,15,56,223,209
525 call __aesni_decrypt3
527 movups
%xmm3
,16(%edi
)
531 call __aesni_decrypt3
533 movups
%xmm3
,16(%edi
)
534 movups
%xmm4
,32(%edi
)
538 call __aesni_decrypt4
540 movups
%xmm3
,16(%edi
)
541 movups
%xmm4
,32(%edi
)
542 movups
%xmm5
,48(%edi
)
549 .globl _aesni_ccm64_encrypt_blocks
551 _aesni_ccm64_encrypt_blocks
:
552 L_aesni_ccm64_encrypt_blocks_begin
:
570 movl $
202182159,(%esp
)
571 movl $
134810123,4(%esp
)
572 movl $
67438087,8(%esp
)
585 .byte 102,15,56,0,253
591 movups
16(%ebp
),%xmm1
597 .byte 102,15,56,220,209
599 .byte 102,15,56,220,217
600 movups
16(%edx
),%xmm1
601 .byte 102,15,56,220,208
603 .byte 102,15,56,220,216
605 jnz L027ccm64_enc2_loop
606 .byte 102,15,56,220,209
607 .byte 102,15,56,220,217
609 .byte 102,15,56,221,208
610 .byte 102,15,56,221,216
617 .byte 102,15,56,0,213
618 jnz L026ccm64_enc_outer
627 .globl _aesni_ccm64_decrypt_blocks
629 _aesni_ccm64_decrypt_blocks
:
630 L_aesni_ccm64_decrypt_blocks_begin
:
648 movl $
202182159,(%esp
)
649 movl $
134810123,4(%esp
)
650 movl $
67438087,8(%esp
)
662 .byte 102,15,56,0,253
664 movups
16(%edx
),%xmm1
668 .byte 102,15,56,220,209
673 .byte 102,15,56,221,209
677 jmp L029ccm64_dec_outer
685 .byte 102,15,56,0,213
687 jz L030ccm64_dec_break
690 movups
16(%ebp
),%xmm1
697 .byte 102,15,56,220,209
699 .byte 102,15,56,220,217
700 movups
16(%edx
),%xmm1
701 .byte 102,15,56,220,208
703 .byte 102,15,56,220,216
705 jnz L031ccm64_dec2_loop
708 .byte 102,15,56,220,209
709 .byte 102,15,56,220,217
711 .byte 102,15,56,221,208
712 .byte 102,15,56,221,216
713 jmp L029ccm64_dec_outer
718 movups
16(%edx
),%xmm1
723 .byte 102,15,56,220,217
728 .byte 102,15,56,221,217
737 .globl _aesni_ctr32_encrypt_blocks
739 _aesni_ctr32_encrypt_blocks
:
740 L_aesni_ctr32_encrypt_blocks_begin
:
755 je L033ctr32_one_shortcut
757 movl $
202182159,(%esp
)
758 movl $
134810123,4(%esp
)
759 movl $
67438087,8(%esp
)
767 .byte 102,15,58,22,251,3
768 .byte 102,15,58,34,253,3
774 .byte 102,15,58,34,203,0
776 .byte 102,15,58,34,197,0
778 .byte 102,15,58,34,203,1
780 .byte 102,15,58,34,197,1
782 .byte 102,15,58,34,203,2
784 .byte 102,15,58,34,197,2
785 movdqa
%xmm1
,48(%esp
)
786 .byte 102,15,56,0,202
787 movdqa
%xmm0
,64(%esp
)
788 .byte 102,15,56,0,194
789 pshufd $
192,%xmm1
,%xmm2
790 pshufd $
128,%xmm1
,%xmm3
793 movdqa
%xmm7
,32(%esp
)
801 pshufd $
64,%xmm1
,%xmm4
802 movdqa
32(%esp
),%xmm1
803 pshufd $
192,%xmm0
,%xmm5
805 pshufd $
128,%xmm0
,%xmm6
807 pshufd $
64,%xmm0
,%xmm7
813 movups
16(%ebp
),%xmm1
818 .byte 102,15,56,220,209
820 .byte 102,15,56,220,217
822 .byte 102,15,56,220,225
824 .byte 102,15,56,220,233
826 .byte 102,15,56,220,241
828 .byte 102,15,56,220,249
829 call L_aesni_encrypt6_enter
831 movups
16(%esi
),%xmm0
833 movups
32(%esi
),%xmm1
836 movdqa
16(%esp
),%xmm0
838 movdqa
48(%esp
),%xmm1
839 movups
%xmm3
,16(%edi
)
840 movups
%xmm4
,32(%edi
)
844 movups
48(%esi
),%xmm3
845 movups
64(%esi
),%xmm4
847 movups
80(%esi
),%xmm3
849 movdqa
%xmm1
,48(%esp
)
850 .byte 102,15,56,0,202
852 movups
%xmm5
,48(%edi
)
854 movdqa
%xmm0
,64(%esp
)
855 .byte 102,15,56,0,194
856 movups
%xmm6
,64(%edi
)
857 pshufd $
192,%xmm1
,%xmm2
858 movups
%xmm7
,80(%edi
)
861 pshufd $
128,%xmm1
,%xmm3
868 movdqa
32(%esp
),%xmm7
873 pshufd $
64,%xmm1
,%xmm4
876 pshufd $
192,%xmm0
,%xmm5
880 pshufd $
128,%xmm0
,%xmm6
884 call __aesni_encrypt6
886 movups
16(%esi
),%xmm0
888 movups
32(%esi
),%xmm1
890 movups
48(%esi
),%xmm0
892 movups
64(%esi
),%xmm1
896 movups
%xmm3
,16(%edi
)
897 movups
%xmm4
,32(%edi
)
898 movups
%xmm5
,48(%edi
)
899 movups
%xmm6
,64(%edi
)
902 L033ctr32_one_shortcut
:
907 movups
16(%edx
),%xmm1
911 .byte 102,15,56,220,209
916 .byte 102,15,56,221,209
923 call __aesni_encrypt3
925 movups
16(%esi
),%xmm6
929 movups
%xmm3
,16(%edi
)
933 call __aesni_encrypt3
935 movups
16(%esi
),%xmm6
937 movups
32(%esi
),%xmm7
941 movups
%xmm3
,16(%edi
)
942 movups
%xmm4
,32(%edi
)
946 call __aesni_encrypt4
948 movups
16(%esi
),%xmm7
949 movups
32(%esi
),%xmm1
951 movups
48(%esi
),%xmm0
955 movups
%xmm3
,16(%edi
)
957 movups
%xmm4
,32(%edi
)
958 movups
%xmm5
,48(%edi
)
966 .globl _aesni_xts_encrypt
969 L_aesni_xts_encrypt_begin
:
979 movups
16(%edx
),%xmm1
983 .byte 102,15,56,220,209
988 .byte 102,15,56,221,209
1005 movdqa
96(%esp
),%xmm3
1011 jc L043xts_enc_short
1014 jmp L044xts_enc_loop6
1017 pshufd $
19,%xmm0
,%xmm2
1024 pshufd $
19,%xmm0
,%xmm2
1026 movdqa
%xmm1
,16(%esp
)
1031 pshufd $
19,%xmm0
,%xmm2
1033 movdqa
%xmm1
,32(%esp
)
1038 pshufd $
19,%xmm0
,%xmm2
1040 movdqa
%xmm1
,48(%esp
)
1045 pshufd $
19,%xmm0
,%xmm7
1046 movdqa
%xmm1
,64(%esp
)
1052 movdqu
16(%esi
),%xmm3
1054 movdqu
32(%esi
),%xmm4
1056 movdqu
48(%esi
),%xmm5
1058 movdqu
64(%esi
),%xmm6
1060 movdqu
80(%esi
),%xmm1
1064 movdqa
%xmm7
,80(%esp
)
1066 movups
16(%ebp
),%xmm1
1069 .byte 102,15,56,220,209
1071 .byte 102,15,56,220,217
1074 .byte 102,15,56,220,225
1076 .byte 102,15,56,220,233
1078 .byte 102,15,56,220,241
1080 .byte 102,15,56,220,249
1081 call L_aesni_encrypt6_enter
1082 movdqa
80(%esp
),%xmm1
1086 xorps
16(%esp
),%xmm3
1088 xorps
32(%esp
),%xmm4
1089 movups
%xmm3
,16(%edi
)
1090 xorps
48(%esp
),%xmm5
1091 movups
%xmm4
,32(%edi
)
1092 xorps
64(%esp
),%xmm6
1093 movups
%xmm5
,48(%edi
)
1095 movups
%xmm6
,64(%edi
)
1096 pshufd $
19,%xmm0
,%xmm2
1097 movups
%xmm7
,80(%edi
)
1099 movdqa
96(%esp
),%xmm3
1107 jnc L044xts_enc_loop6
1108 leal
1(,%ecx
,2),%ecx
1113 jz L045xts_enc_done6x
1117 pshufd $
19,%xmm0
,%xmm2
1124 pshufd $
19,%xmm0
,%xmm2
1132 jb L048xts_enc_three
1133 pshufd $
19,%xmm0
,%xmm2
1141 movdqa
%xmm6
,16(%esp
)
1143 movdqa
%xmm7
,32(%esp
)
1144 pshufd $
19,%xmm0
,%xmm7
1145 movdqa
%xmm1
,48(%esp
)
1150 movdqu
16(%esi
),%xmm3
1151 movdqu
32(%esi
),%xmm4
1153 movdqu
48(%esi
),%xmm5
1155 movdqu
64(%esi
),%xmm6
1159 movdqa
%xmm7
,64(%esp
)
1161 call __aesni_encrypt6
1162 movaps
64(%esp
),%xmm1
1164 xorps
16(%esp
),%xmm3
1165 xorps
32(%esp
),%xmm4
1167 xorps
48(%esp
),%xmm5
1168 movups
%xmm3
,16(%edi
)
1170 movups
%xmm4
,32(%edi
)
1171 movups
%xmm5
,48(%edi
)
1172 movups
%xmm6
,64(%edi
)
1174 jmp L050xts_enc_done
1181 movups
16(%edx
),%xmm1
1185 .byte 102,15,56,220,209
1190 .byte 102,15,56,221,209
1195 jmp L050xts_enc_done
1200 movups
16(%esi
),%xmm3
1205 call __aesni_encrypt3
1209 movups
%xmm3
,16(%edi
)
1212 jmp L050xts_enc_done
1217 movups
16(%esi
),%xmm3
1218 movups
32(%esi
),%xmm4
1223 call __aesni_encrypt3
1228 movups
%xmm3
,16(%edi
)
1229 movups
%xmm4
,32(%edi
)
1232 jmp L050xts_enc_done
1237 movups
16(%esi
),%xmm3
1238 movups
32(%esi
),%xmm4
1240 movups
48(%esi
),%xmm5
1242 xorps
16(%esp
),%xmm3
1245 call __aesni_encrypt4
1247 xorps
16(%esp
),%xmm3
1251 movups
%xmm3
,16(%edi
)
1252 movups
%xmm4
,32(%edi
)
1253 movups
%xmm5
,48(%edi
)
1256 jmp L050xts_enc_done
1264 jmp L053xts_enc_steal
1273 pshufd $
19,%xmm0
,%xmm5
1279 movzbl
-16(%edi
),%edx
1285 jnz L053xts_enc_steal
1289 movups
-16(%edi
),%xmm2
1292 movups
16(%edx
),%xmm1
1296 .byte 102,15,56,220,209
1300 jnz L054enc1_loop_10
1301 .byte 102,15,56,221,209
1303 movups
%xmm2
,-16(%edi
)
1311 .globl _aesni_xts_decrypt
1314 L_aesni_xts_decrypt_begin
:
1324 movups
16(%edx
),%xmm1
1328 .byte 102,15,56,220,209
1332 jnz L055enc1_loop_11
1333 .byte 102,15,56,221,209
1357 movdqa
96(%esp
),%xmm3
1361 jc L056xts_dec_short
1364 jmp L057xts_dec_loop6
1367 pshufd $
19,%xmm0
,%xmm2
1374 pshufd $
19,%xmm0
,%xmm2
1376 movdqa
%xmm1
,16(%esp
)
1381 pshufd $
19,%xmm0
,%xmm2
1383 movdqa
%xmm1
,32(%esp
)
1388 pshufd $
19,%xmm0
,%xmm2
1390 movdqa
%xmm1
,48(%esp
)
1395 pshufd $
19,%xmm0
,%xmm7
1396 movdqa
%xmm1
,64(%esp
)
1402 movdqu
16(%esi
),%xmm3
1404 movdqu
32(%esi
),%xmm4
1406 movdqu
48(%esi
),%xmm5
1408 movdqu
64(%esi
),%xmm6
1410 movdqu
80(%esi
),%xmm1
1414 movdqa
%xmm7
,80(%esp
)
1416 movups
16(%ebp
),%xmm1
1419 .byte 102,15,56,222,209
1421 .byte 102,15,56,222,217
1424 .byte 102,15,56,222,225
1426 .byte 102,15,56,222,233
1428 .byte 102,15,56,222,241
1430 .byte 102,15,56,222,249
1431 call L_aesni_decrypt6_enter
1432 movdqa
80(%esp
),%xmm1
1436 xorps
16(%esp
),%xmm3
1438 xorps
32(%esp
),%xmm4
1439 movups
%xmm3
,16(%edi
)
1440 xorps
48(%esp
),%xmm5
1441 movups
%xmm4
,32(%edi
)
1442 xorps
64(%esp
),%xmm6
1443 movups
%xmm5
,48(%edi
)
1445 movups
%xmm6
,64(%edi
)
1446 pshufd $
19,%xmm0
,%xmm2
1447 movups
%xmm7
,80(%edi
)
1449 movdqa
96(%esp
),%xmm3
1457 jnc L057xts_dec_loop6
1458 leal
1(,%ecx
,2),%ecx
1463 jz L058xts_dec_done6x
1467 pshufd $
19,%xmm0
,%xmm2
1474 pshufd $
19,%xmm0
,%xmm2
1482 jb L061xts_dec_three
1483 pshufd $
19,%xmm0
,%xmm2
1491 movdqa
%xmm6
,16(%esp
)
1493 movdqa
%xmm7
,32(%esp
)
1494 pshufd $
19,%xmm0
,%xmm7
1495 movdqa
%xmm1
,48(%esp
)
1500 movdqu
16(%esi
),%xmm3
1501 movdqu
32(%esi
),%xmm4
1503 movdqu
48(%esi
),%xmm5
1505 movdqu
64(%esi
),%xmm6
1509 movdqa
%xmm7
,64(%esp
)
1511 call __aesni_decrypt6
1512 movaps
64(%esp
),%xmm1
1514 xorps
16(%esp
),%xmm3
1515 xorps
32(%esp
),%xmm4
1517 xorps
48(%esp
),%xmm5
1518 movups
%xmm3
,16(%edi
)
1520 movups
%xmm4
,32(%edi
)
1521 movups
%xmm5
,48(%edi
)
1522 movups
%xmm6
,64(%edi
)
1524 jmp L063xts_dec_done
1531 movups
16(%edx
),%xmm1
1535 .byte 102,15,56,222,209
1539 jnz L064dec1_loop_12
1540 .byte 102,15,56,223,209
1545 jmp L063xts_dec_done
1550 movups
16(%esi
),%xmm3
1554 call __aesni_decrypt3
1558 movups
%xmm3
,16(%edi
)
1561 jmp L063xts_dec_done
1566 movups
16(%esi
),%xmm3
1567 movups
32(%esi
),%xmm4
1572 call __aesni_decrypt3
1577 movups
%xmm3
,16(%edi
)
1578 movups
%xmm4
,32(%edi
)
1581 jmp L063xts_dec_done
1586 movups
16(%esi
),%xmm3
1587 movups
32(%esi
),%xmm4
1589 movups
48(%esi
),%xmm5
1591 xorps
16(%esp
),%xmm3
1594 call __aesni_decrypt4
1596 xorps
16(%esp
),%xmm3
1600 movups
%xmm3
,16(%edi
)
1601 movups
%xmm4
,32(%edi
)
1602 movups
%xmm5
,48(%edi
)
1605 jmp L063xts_dec_done
1612 jmp L066xts_dec_only_one_more
1621 pshufd $
19,%xmm0
,%xmm2
1623 movdqa
96(%esp
),%xmm3
1628 L066xts_dec_only_one_more
:
1629 pshufd $
19,%xmm0
,%xmm5
1639 movups
16(%edx
),%xmm1
1643 .byte 102,15,56,222,209
1647 jnz L067dec1_loop_13
1648 .byte 102,15,56,223,209
1652 movzbl
16(%esi
),%ecx
1659 jnz L068xts_dec_steal
1666 movups
16(%edx
),%xmm1
1670 .byte 102,15,56,222,209
1674 jnz L069dec1_loop_14
1675 .byte 102,15,56,223,209
1685 .globl _aesni_cbc_encrypt
1688 L_aesni_cbc_encrypt_begin
:
1715 jmp L073cbc_enc_loop
1721 movups
16(%edx
),%xmm1
1726 .byte 102,15,56,220,209
1730 jnz L074enc1_loop_15
1731 .byte 102,15,56,221,209
1737 jnc L073cbc_enc_loop
1739 jnz L072cbc_enc_tail
1753 jmp L073cbc_enc_loop
1757 jbe L076cbc_dec_tail
1760 jmp L077cbc_dec_loop6_enter
1766 L077cbc_dec_loop6_enter
:
1768 movdqu
16(%esi
),%xmm3
1769 movdqu
32(%esi
),%xmm4
1770 movdqu
48(%esi
),%xmm5
1771 movdqu
64(%esi
),%xmm6
1772 movdqu
80(%esi
),%xmm7
1773 call __aesni_decrypt6
1775 movups
16(%esi
),%xmm0
1778 movups
32(%esi
),%xmm1
1780 movups
48(%esi
),%xmm0
1782 movups
64(%esi
),%xmm1
1784 movups
80(%esi
),%xmm0
1787 movups
%xmm3
,16(%edi
)
1789 movups
%xmm4
,32(%edi
)
1791 movups
%xmm5
,48(%edi
)
1793 movups
%xmm6
,64(%edi
)
1796 ja L078cbc_dec_loop6
1800 jle L079cbc_dec_tail_collected
1808 movups
16(%esi
),%xmm3
1812 movups
32(%esi
),%xmm4
1814 jbe L082cbc_dec_three
1815 movups
48(%esi
),%xmm5
1817 jbe L083cbc_dec_four
1818 movups
64(%esi
),%xmm6
1822 call __aesni_decrypt6
1824 movups
16(%esi
),%xmm0
1827 movups
32(%esi
),%xmm1
1829 movups
48(%esi
),%xmm0
1831 movups
64(%esi
),%xmm7
1834 movups
%xmm3
,16(%edi
)
1835 movups
%xmm4
,32(%edi
)
1836 movups
%xmm5
,48(%edi
)
1840 jmp L079cbc_dec_tail_collected
1844 movups
16(%edx
),%xmm1
1848 .byte 102,15,56,222,209
1852 jnz L084dec1_loop_16
1853 .byte 102,15,56,223,209
1857 jmp L079cbc_dec_tail_collected
1861 call __aesni_decrypt3
1869 jmp L079cbc_dec_tail_collected
1872 call __aesni_decrypt3
1878 movups
%xmm3
,16(%edi
)
1880 movups
32(%esi
),%xmm7
1882 jmp L079cbc_dec_tail_collected
1885 call __aesni_decrypt4
1886 movups
16(%esi
),%xmm1
1887 movups
32(%esi
),%xmm0
1889 movups
48(%esi
),%xmm7
1893 movups
%xmm3
,16(%edi
)
1895 movups
%xmm4
,32(%edi
)
1899 L079cbc_dec_tail_collected
:
1901 jnz L085cbc_dec_tail_partial
1905 L085cbc_dec_tail_partial
:
1922 __aesni_set_encrypt_key
:
1939 movups
%xmm0
,-16(%edx
)
1940 .byte 102,15,58,223,200,1
1941 call L091key_128_cold
1942 .byte 102,15,58,223,200,2
1944 .byte 102,15,58,223,200,4
1946 .byte 102,15,58,223,200,8
1948 .byte 102,15,58,223,200,16
1950 .byte 102,15,58,223,200,32
1952 .byte 102,15,58,223,200,64
1954 .byte 102,15,58,223,200,128
1956 .byte 102,15,58,223,200,27
1958 .byte 102,15,58,223,200,54
1969 shufps $
16,%xmm0
,%xmm4
1971 shufps $
140,%xmm0
,%xmm4
1973 shufps $
255,%xmm1
,%xmm1
1980 movups
%xmm0
,-16(%edx
)
1981 .byte 102,15,58,223,202,1
1982 call L093key_192a_cold
1983 .byte 102,15,58,223,202,2
1985 .byte 102,15,58,223,202,4
1987 .byte 102,15,58,223,202,8
1989 .byte 102,15,58,223,202,16
1991 .byte 102,15,58,223,202,32
1993 .byte 102,15,58,223,202,64
1995 .byte 102,15,58,223,202,128
2009 shufps $
16,%xmm0
,%xmm4
2012 shufps $
140,%xmm0
,%xmm4
2015 pshufd $
85,%xmm1
,%xmm1
2018 pshufd $
255,%xmm0
,%xmm3
2024 shufps $
68,%xmm0
,%xmm5
2026 shufps $
78,%xmm2
,%xmm3
2027 movups
%xmm3
,16(%edx
)
2029 jmp L096key_192b_warm
2032 movups
16(%eax
),%xmm2
2035 movups
%xmm0
,-32(%edx
)
2036 movups
%xmm2
,-16(%edx
)
2037 .byte 102,15,58,223,202,1
2038 call L097key_256a_cold
2039 .byte 102,15,58,223,200,1
2041 .byte 102,15,58,223,202,2
2043 .byte 102,15,58,223,200,2
2045 .byte 102,15,58,223,202,4
2047 .byte 102,15,58,223,200,4
2049 .byte 102,15,58,223,202,8
2051 .byte 102,15,58,223,200,8
2053 .byte 102,15,58,223,202,16
2055 .byte 102,15,58,223,200,16
2057 .byte 102,15,58,223,202,32
2059 .byte 102,15,58,223,200,32
2061 .byte 102,15,58,223,202,64
2072 shufps $
16,%xmm0
,%xmm4
2074 shufps $
140,%xmm0
,%xmm4
2076 shufps $
255,%xmm1
,%xmm1
2083 shufps $
16,%xmm2
,%xmm4
2085 shufps $
140,%xmm2
,%xmm4
2087 shufps $
170,%xmm1
,%xmm1
2098 .globl _aesni_set_encrypt_key
2100 _aesni_set_encrypt_key
:
2101 L_aesni_set_encrypt_key_begin
:
2105 call __aesni_set_encrypt_key
2107 .globl _aesni_set_decrypt_key
2109 _aesni_set_decrypt_key
:
2110 L_aesni_set_decrypt_key_begin
:
2114 call __aesni_set_encrypt_key
2119 leal
16(%edx
,%ecx
,1),%eax
2126 L101dec_key_inverse
:
2129 .byte 102,15,56,219,192
2130 .byte 102,15,56,219,201
2133 movups
%xmm0
,16(%eax
)
2134 movups
%xmm1
,-16(%edx
)
2136 ja L101dec_key_inverse
2138 .byte 102,15,56,219,192
2143 .byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69
2144 .byte 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83
2145 .byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
2146 .byte 115,108,46,111,114,103,62,0