Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(566)

Side by Side Diff: openssl/crypto/aes/asm/aesni-x86_64.S

Issue 2072073002: Delete bundled copy of OpenSSL and replace with README. (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/openssl@master
Patch Set: Delete bundled copy of OpenSSL and replace with README. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « openssl/crypto/aes/asm/aesni-x86-mac.S ('k') | openssl/crypto/aes/asm/aesni-x86_64.pl » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 .text
2 .globl aesni_encrypt
3 .type aesni_encrypt,@function
4 .align 16
5 aesni_encrypt:
6 movups (%rdi),%xmm2
7 movl 240(%rdx),%eax
8 movups (%rdx),%xmm0
9 movups 16(%rdx),%xmm1
10 leaq 32(%rdx),%rdx
11 xorps %xmm0,%xmm2
12 .Loop_enc1_1:
13 .byte 102,15,56,220,209
14 decl %eax
15 movups (%rdx),%xmm1
16 leaq 16(%rdx),%rdx
17 jnz .Loop_enc1_1
18 .byte 102,15,56,221,209
19 movups %xmm2,(%rsi)
20 .byte 0xf3,0xc3
21 .size aesni_encrypt,.-aesni_encrypt
22
23 .globl aesni_decrypt
24 .type aesni_decrypt,@function
25 .align 16
26 aesni_decrypt:
27 movups (%rdi),%xmm2
28 movl 240(%rdx),%eax
29 movups (%rdx),%xmm0
30 movups 16(%rdx),%xmm1
31 leaq 32(%rdx),%rdx
32 xorps %xmm0,%xmm2
33 .Loop_dec1_2:
34 .byte 102,15,56,222,209
35 decl %eax
36 movups (%rdx),%xmm1
37 leaq 16(%rdx),%rdx
38 jnz .Loop_dec1_2
39 .byte 102,15,56,223,209
40 movups %xmm2,(%rsi)
41 .byte 0xf3,0xc3
42 .size aesni_decrypt, .-aesni_decrypt
43 .type _aesni_encrypt3,@function
44 .align 16
45 _aesni_encrypt3:
46 movups (%rcx),%xmm0
47 shrl $1,%eax
48 movups 16(%rcx),%xmm1
49 leaq 32(%rcx),%rcx
50 xorps %xmm0,%xmm2
51 xorps %xmm0,%xmm3
52 xorps %xmm0,%xmm4
53 movups (%rcx),%xmm0
54
55 .Lenc_loop3:
56 .byte 102,15,56,220,209
57 .byte 102,15,56,220,217
58 decl %eax
59 .byte 102,15,56,220,225
60 movups 16(%rcx),%xmm1
61 .byte 102,15,56,220,208
62 .byte 102,15,56,220,216
63 leaq 32(%rcx),%rcx
64 .byte 102,15,56,220,224
65 movups (%rcx),%xmm0
66 jnz .Lenc_loop3
67
68 .byte 102,15,56,220,209
69 .byte 102,15,56,220,217
70 .byte 102,15,56,220,225
71 .byte 102,15,56,221,208
72 .byte 102,15,56,221,216
73 .byte 102,15,56,221,224
74 .byte 0xf3,0xc3
75 .size _aesni_encrypt3,.-_aesni_encrypt3
76 .type _aesni_decrypt3,@function
77 .align 16
78 _aesni_decrypt3:
79 movups (%rcx),%xmm0
80 shrl $1,%eax
81 movups 16(%rcx),%xmm1
82 leaq 32(%rcx),%rcx
83 xorps %xmm0,%xmm2
84 xorps %xmm0,%xmm3
85 xorps %xmm0,%xmm4
86 movups (%rcx),%xmm0
87
88 .Ldec_loop3:
89 .byte 102,15,56,222,209
90 .byte 102,15,56,222,217
91 decl %eax
92 .byte 102,15,56,222,225
93 movups 16(%rcx),%xmm1
94 .byte 102,15,56,222,208
95 .byte 102,15,56,222,216
96 leaq 32(%rcx),%rcx
97 .byte 102,15,56,222,224
98 movups (%rcx),%xmm0
99 jnz .Ldec_loop3
100
101 .byte 102,15,56,222,209
102 .byte 102,15,56,222,217
103 .byte 102,15,56,222,225
104 .byte 102,15,56,223,208
105 .byte 102,15,56,223,216
106 .byte 102,15,56,223,224
107 .byte 0xf3,0xc3
108 .size _aesni_decrypt3,.-_aesni_decrypt3
109 .type _aesni_encrypt4,@function
110 .align 16
111 _aesni_encrypt4:
112 movups (%rcx),%xmm0
113 shrl $1,%eax
114 movups 16(%rcx),%xmm1
115 leaq 32(%rcx),%rcx
116 xorps %xmm0,%xmm2
117 xorps %xmm0,%xmm3
118 xorps %xmm0,%xmm4
119 xorps %xmm0,%xmm5
120 movups (%rcx),%xmm0
121
122 .Lenc_loop4:
123 .byte 102,15,56,220,209
124 .byte 102,15,56,220,217
125 decl %eax
126 .byte 102,15,56,220,225
127 .byte 102,15,56,220,233
128 movups 16(%rcx),%xmm1
129 .byte 102,15,56,220,208
130 .byte 102,15,56,220,216
131 leaq 32(%rcx),%rcx
132 .byte 102,15,56,220,224
133 .byte 102,15,56,220,232
134 movups (%rcx),%xmm0
135 jnz .Lenc_loop4
136
137 .byte 102,15,56,220,209
138 .byte 102,15,56,220,217
139 .byte 102,15,56,220,225
140 .byte 102,15,56,220,233
141 .byte 102,15,56,221,208
142 .byte 102,15,56,221,216
143 .byte 102,15,56,221,224
144 .byte 102,15,56,221,232
145 .byte 0xf3,0xc3
146 .size _aesni_encrypt4,.-_aesni_encrypt4
147 .type _aesni_decrypt4,@function
148 .align 16
149 _aesni_decrypt4:
150 movups (%rcx),%xmm0
151 shrl $1,%eax
152 movups 16(%rcx),%xmm1
153 leaq 32(%rcx),%rcx
154 xorps %xmm0,%xmm2
155 xorps %xmm0,%xmm3
156 xorps %xmm0,%xmm4
157 xorps %xmm0,%xmm5
158 movups (%rcx),%xmm0
159
160 .Ldec_loop4:
161 .byte 102,15,56,222,209
162 .byte 102,15,56,222,217
163 decl %eax
164 .byte 102,15,56,222,225
165 .byte 102,15,56,222,233
166 movups 16(%rcx),%xmm1
167 .byte 102,15,56,222,208
168 .byte 102,15,56,222,216
169 leaq 32(%rcx),%rcx
170 .byte 102,15,56,222,224
171 .byte 102,15,56,222,232
172 movups (%rcx),%xmm0
173 jnz .Ldec_loop4
174
175 .byte 102,15,56,222,209
176 .byte 102,15,56,222,217
177 .byte 102,15,56,222,225
178 .byte 102,15,56,222,233
179 .byte 102,15,56,223,208
180 .byte 102,15,56,223,216
181 .byte 102,15,56,223,224
182 .byte 102,15,56,223,232
183 .byte 0xf3,0xc3
184 .size _aesni_decrypt4,.-_aesni_decrypt4
185 .type _aesni_encrypt6,@function
186 .align 16
187 _aesni_encrypt6:
188 movups (%rcx),%xmm0
189 shrl $1,%eax
190 movups 16(%rcx),%xmm1
191 leaq 32(%rcx),%rcx
192 xorps %xmm0,%xmm2
193 pxor %xmm0,%xmm3
194 .byte 102,15,56,220,209
195 pxor %xmm0,%xmm4
196 .byte 102,15,56,220,217
197 pxor %xmm0,%xmm5
198 .byte 102,15,56,220,225
199 pxor %xmm0,%xmm6
200 .byte 102,15,56,220,233
201 pxor %xmm0,%xmm7
202 decl %eax
203 .byte 102,15,56,220,241
204 movups (%rcx),%xmm0
205 .byte 102,15,56,220,249
206 jmp .Lenc_loop6_enter
207 .align 16
208 .Lenc_loop6:
209 .byte 102,15,56,220,209
210 .byte 102,15,56,220,217
211 decl %eax
212 .byte 102,15,56,220,225
213 .byte 102,15,56,220,233
214 .byte 102,15,56,220,241
215 .byte 102,15,56,220,249
216 .Lenc_loop6_enter:
217 movups 16(%rcx),%xmm1
218 .byte 102,15,56,220,208
219 .byte 102,15,56,220,216
220 leaq 32(%rcx),%rcx
221 .byte 102,15,56,220,224
222 .byte 102,15,56,220,232
223 .byte 102,15,56,220,240
224 .byte 102,15,56,220,248
225 movups (%rcx),%xmm0
226 jnz .Lenc_loop6
227
228 .byte 102,15,56,220,209
229 .byte 102,15,56,220,217
230 .byte 102,15,56,220,225
231 .byte 102,15,56,220,233
232 .byte 102,15,56,220,241
233 .byte 102,15,56,220,249
234 .byte 102,15,56,221,208
235 .byte 102,15,56,221,216
236 .byte 102,15,56,221,224
237 .byte 102,15,56,221,232
238 .byte 102,15,56,221,240
239 .byte 102,15,56,221,248
240 .byte 0xf3,0xc3
241 .size _aesni_encrypt6,.-_aesni_encrypt6
242 .type _aesni_decrypt6,@function
243 .align 16
244 _aesni_decrypt6:
245 movups (%rcx),%xmm0
246 shrl $1,%eax
247 movups 16(%rcx),%xmm1
248 leaq 32(%rcx),%rcx
249 xorps %xmm0,%xmm2
250 pxor %xmm0,%xmm3
251 .byte 102,15,56,222,209
252 pxor %xmm0,%xmm4
253 .byte 102,15,56,222,217
254 pxor %xmm0,%xmm5
255 .byte 102,15,56,222,225
256 pxor %xmm0,%xmm6
257 .byte 102,15,56,222,233
258 pxor %xmm0,%xmm7
259 decl %eax
260 .byte 102,15,56,222,241
261 movups (%rcx),%xmm0
262 .byte 102,15,56,222,249
263 jmp .Ldec_loop6_enter
264 .align 16
265 .Ldec_loop6:
266 .byte 102,15,56,222,209
267 .byte 102,15,56,222,217
268 decl %eax
269 .byte 102,15,56,222,225
270 .byte 102,15,56,222,233
271 .byte 102,15,56,222,241
272 .byte 102,15,56,222,249
273 .Ldec_loop6_enter:
274 movups 16(%rcx),%xmm1
275 .byte 102,15,56,222,208
276 .byte 102,15,56,222,216
277 leaq 32(%rcx),%rcx
278 .byte 102,15,56,222,224
279 .byte 102,15,56,222,232
280 .byte 102,15,56,222,240
281 .byte 102,15,56,222,248
282 movups (%rcx),%xmm0
283 jnz .Ldec_loop6
284
285 .byte 102,15,56,222,209
286 .byte 102,15,56,222,217
287 .byte 102,15,56,222,225
288 .byte 102,15,56,222,233
289 .byte 102,15,56,222,241
290 .byte 102,15,56,222,249
291 .byte 102,15,56,223,208
292 .byte 102,15,56,223,216
293 .byte 102,15,56,223,224
294 .byte 102,15,56,223,232
295 .byte 102,15,56,223,240
296 .byte 102,15,56,223,248
297 .byte 0xf3,0xc3
298 .size _aesni_decrypt6,.-_aesni_decrypt6
299 .type _aesni_encrypt8,@function
300 .align 16
301 _aesni_encrypt8:
302 movups (%rcx),%xmm0
303 shrl $1,%eax
304 movups 16(%rcx),%xmm1
305 leaq 32(%rcx),%rcx
306 xorps %xmm0,%xmm2
307 xorps %xmm0,%xmm3
308 .byte 102,15,56,220,209
309 pxor %xmm0,%xmm4
310 .byte 102,15,56,220,217
311 pxor %xmm0,%xmm5
312 .byte 102,15,56,220,225
313 pxor %xmm0,%xmm6
314 .byte 102,15,56,220,233
315 pxor %xmm0,%xmm7
316 decl %eax
317 .byte 102,15,56,220,241
318 pxor %xmm0,%xmm8
319 .byte 102,15,56,220,249
320 pxor %xmm0,%xmm9
321 movups (%rcx),%xmm0
322 .byte 102,68,15,56,220,193
323 .byte 102,68,15,56,220,201
324 movups 16(%rcx),%xmm1
325 jmp .Lenc_loop8_enter
326 .align 16
327 .Lenc_loop8:
328 .byte 102,15,56,220,209
329 .byte 102,15,56,220,217
330 decl %eax
331 .byte 102,15,56,220,225
332 .byte 102,15,56,220,233
333 .byte 102,15,56,220,241
334 .byte 102,15,56,220,249
335 .byte 102,68,15,56,220,193
336 .byte 102,68,15,56,220,201
337 movups 16(%rcx),%xmm1
338 .Lenc_loop8_enter:
339 .byte 102,15,56,220,208
340 .byte 102,15,56,220,216
341 leaq 32(%rcx),%rcx
342 .byte 102,15,56,220,224
343 .byte 102,15,56,220,232
344 .byte 102,15,56,220,240
345 .byte 102,15,56,220,248
346 .byte 102,68,15,56,220,192
347 .byte 102,68,15,56,220,200
348 movups (%rcx),%xmm0
349 jnz .Lenc_loop8
350
351 .byte 102,15,56,220,209
352 .byte 102,15,56,220,217
353 .byte 102,15,56,220,225
354 .byte 102,15,56,220,233
355 .byte 102,15,56,220,241
356 .byte 102,15,56,220,249
357 .byte 102,68,15,56,220,193
358 .byte 102,68,15,56,220,201
359 .byte 102,15,56,221,208
360 .byte 102,15,56,221,216
361 .byte 102,15,56,221,224
362 .byte 102,15,56,221,232
363 .byte 102,15,56,221,240
364 .byte 102,15,56,221,248
365 .byte 102,68,15,56,221,192
366 .byte 102,68,15,56,221,200
367 .byte 0xf3,0xc3
368 .size _aesni_encrypt8,.-_aesni_encrypt8
369 .type _aesni_decrypt8,@function
370 .align 16
371 _aesni_decrypt8:
372 movups (%rcx),%xmm0
373 shrl $1,%eax
374 movups 16(%rcx),%xmm1
375 leaq 32(%rcx),%rcx
376 xorps %xmm0,%xmm2
377 xorps %xmm0,%xmm3
378 .byte 102,15,56,222,209
379 pxor %xmm0,%xmm4
380 .byte 102,15,56,222,217
381 pxor %xmm0,%xmm5
382 .byte 102,15,56,222,225
383 pxor %xmm0,%xmm6
384 .byte 102,15,56,222,233
385 pxor %xmm0,%xmm7
386 decl %eax
387 .byte 102,15,56,222,241
388 pxor %xmm0,%xmm8
389 .byte 102,15,56,222,249
390 pxor %xmm0,%xmm9
391 movups (%rcx),%xmm0
392 .byte 102,68,15,56,222,193
393 .byte 102,68,15,56,222,201
394 movups 16(%rcx),%xmm1
395 jmp .Ldec_loop8_enter
396 .align 16
397 .Ldec_loop8:
398 .byte 102,15,56,222,209
399 .byte 102,15,56,222,217
400 decl %eax
401 .byte 102,15,56,222,225
402 .byte 102,15,56,222,233
403 .byte 102,15,56,222,241
404 .byte 102,15,56,222,249
405 .byte 102,68,15,56,222,193
406 .byte 102,68,15,56,222,201
407 movups 16(%rcx),%xmm1
408 .Ldec_loop8_enter:
409 .byte 102,15,56,222,208
410 .byte 102,15,56,222,216
411 leaq 32(%rcx),%rcx
412 .byte 102,15,56,222,224
413 .byte 102,15,56,222,232
414 .byte 102,15,56,222,240
415 .byte 102,15,56,222,248
416 .byte 102,68,15,56,222,192
417 .byte 102,68,15,56,222,200
418 movups (%rcx),%xmm0
419 jnz .Ldec_loop8
420
421 .byte 102,15,56,222,209
422 .byte 102,15,56,222,217
423 .byte 102,15,56,222,225
424 .byte 102,15,56,222,233
425 .byte 102,15,56,222,241
426 .byte 102,15,56,222,249
427 .byte 102,68,15,56,222,193
428 .byte 102,68,15,56,222,201
429 .byte 102,15,56,223,208
430 .byte 102,15,56,223,216
431 .byte 102,15,56,223,224
432 .byte 102,15,56,223,232
433 .byte 102,15,56,223,240
434 .byte 102,15,56,223,248
435 .byte 102,68,15,56,223,192
436 .byte 102,68,15,56,223,200
437 .byte 0xf3,0xc3
438 .size _aesni_decrypt8,.-_aesni_decrypt8
439 .globl aesni_ecb_encrypt
440 .type aesni_ecb_encrypt,@function
441 .align 16
442 aesni_ecb_encrypt:
443 andq $-16,%rdx
444 jz .Lecb_ret
445
446 movl 240(%rcx),%eax
447 movups (%rcx),%xmm0
448 movq %rcx,%r11
449 movl %eax,%r10d
450 testl %r8d,%r8d
451 jz .Lecb_decrypt
452
453 cmpq $128,%rdx
454 jb .Lecb_enc_tail
455
456 movdqu (%rdi),%xmm2
457 movdqu 16(%rdi),%xmm3
458 movdqu 32(%rdi),%xmm4
459 movdqu 48(%rdi),%xmm5
460 movdqu 64(%rdi),%xmm6
461 movdqu 80(%rdi),%xmm7
462 movdqu 96(%rdi),%xmm8
463 movdqu 112(%rdi),%xmm9
464 leaq 128(%rdi),%rdi
465 subq $128,%rdx
466 jmp .Lecb_enc_loop8_enter
467 .align 16
468 .Lecb_enc_loop8:
469 movups %xmm2,(%rsi)
470 movq %r11,%rcx
471 movdqu (%rdi),%xmm2
472 movl %r10d,%eax
473 movups %xmm3,16(%rsi)
474 movdqu 16(%rdi),%xmm3
475 movups %xmm4,32(%rsi)
476 movdqu 32(%rdi),%xmm4
477 movups %xmm5,48(%rsi)
478 movdqu 48(%rdi),%xmm5
479 movups %xmm6,64(%rsi)
480 movdqu 64(%rdi),%xmm6
481 movups %xmm7,80(%rsi)
482 movdqu 80(%rdi),%xmm7
483 movups %xmm8,96(%rsi)
484 movdqu 96(%rdi),%xmm8
485 movups %xmm9,112(%rsi)
486 leaq 128(%rsi),%rsi
487 movdqu 112(%rdi),%xmm9
488 leaq 128(%rdi),%rdi
489 .Lecb_enc_loop8_enter:
490
491 call _aesni_encrypt8
492
493 subq $128,%rdx
494 jnc .Lecb_enc_loop8
495
496 movups %xmm2,(%rsi)
497 movq %r11,%rcx
498 movups %xmm3,16(%rsi)
499 movl %r10d,%eax
500 movups %xmm4,32(%rsi)
501 movups %xmm5,48(%rsi)
502 movups %xmm6,64(%rsi)
503 movups %xmm7,80(%rsi)
504 movups %xmm8,96(%rsi)
505 movups %xmm9,112(%rsi)
506 leaq 128(%rsi),%rsi
507 addq $128,%rdx
508 jz .Lecb_ret
509
510 .Lecb_enc_tail:
511 movups (%rdi),%xmm2
512 cmpq $32,%rdx
513 jb .Lecb_enc_one
514 movups 16(%rdi),%xmm3
515 je .Lecb_enc_two
516 movups 32(%rdi),%xmm4
517 cmpq $64,%rdx
518 jb .Lecb_enc_three
519 movups 48(%rdi),%xmm5
520 je .Lecb_enc_four
521 movups 64(%rdi),%xmm6
522 cmpq $96,%rdx
523 jb .Lecb_enc_five
524 movups 80(%rdi),%xmm7
525 je .Lecb_enc_six
526 movdqu 96(%rdi),%xmm8
527 call _aesni_encrypt8
528 movups %xmm2,(%rsi)
529 movups %xmm3,16(%rsi)
530 movups %xmm4,32(%rsi)
531 movups %xmm5,48(%rsi)
532 movups %xmm6,64(%rsi)
533 movups %xmm7,80(%rsi)
534 movups %xmm8,96(%rsi)
535 jmp .Lecb_ret
536 .align 16
537 .Lecb_enc_one:
538 movups (%rcx),%xmm0
539 movups 16(%rcx),%xmm1
540 leaq 32(%rcx),%rcx
541 xorps %xmm0,%xmm2
542 .Loop_enc1_3:
543 .byte 102,15,56,220,209
544 decl %eax
545 movups (%rcx),%xmm1
546 leaq 16(%rcx),%rcx
547 jnz .Loop_enc1_3
548 .byte 102,15,56,221,209
549 movups %xmm2,(%rsi)
550 jmp .Lecb_ret
551 .align 16
552 .Lecb_enc_two:
553 xorps %xmm4,%xmm4
554 call _aesni_encrypt3
555 movups %xmm2,(%rsi)
556 movups %xmm3,16(%rsi)
557 jmp .Lecb_ret
558 .align 16
559 .Lecb_enc_three:
560 call _aesni_encrypt3
561 movups %xmm2,(%rsi)
562 movups %xmm3,16(%rsi)
563 movups %xmm4,32(%rsi)
564 jmp .Lecb_ret
565 .align 16
566 .Lecb_enc_four:
567 call _aesni_encrypt4
568 movups %xmm2,(%rsi)
569 movups %xmm3,16(%rsi)
570 movups %xmm4,32(%rsi)
571 movups %xmm5,48(%rsi)
572 jmp .Lecb_ret
573 .align 16
574 .Lecb_enc_five:
575 xorps %xmm7,%xmm7
576 call _aesni_encrypt6
577 movups %xmm2,(%rsi)
578 movups %xmm3,16(%rsi)
579 movups %xmm4,32(%rsi)
580 movups %xmm5,48(%rsi)
581 movups %xmm6,64(%rsi)
582 jmp .Lecb_ret
583 .align 16
584 .Lecb_enc_six:
585 call _aesni_encrypt6
586 movups %xmm2,(%rsi)
587 movups %xmm3,16(%rsi)
588 movups %xmm4,32(%rsi)
589 movups %xmm5,48(%rsi)
590 movups %xmm6,64(%rsi)
591 movups %xmm7,80(%rsi)
592 jmp .Lecb_ret
593
594 .align 16
595 .Lecb_decrypt:
596 cmpq $128,%rdx
597 jb .Lecb_dec_tail
598
599 movdqu (%rdi),%xmm2
600 movdqu 16(%rdi),%xmm3
601 movdqu 32(%rdi),%xmm4
602 movdqu 48(%rdi),%xmm5
603 movdqu 64(%rdi),%xmm6
604 movdqu 80(%rdi),%xmm7
605 movdqu 96(%rdi),%xmm8
606 movdqu 112(%rdi),%xmm9
607 leaq 128(%rdi),%rdi
608 subq $128,%rdx
609 jmp .Lecb_dec_loop8_enter
610 .align 16
611 .Lecb_dec_loop8:
612 movups %xmm2,(%rsi)
613 movq %r11,%rcx
614 movdqu (%rdi),%xmm2
615 movl %r10d,%eax
616 movups %xmm3,16(%rsi)
617 movdqu 16(%rdi),%xmm3
618 movups %xmm4,32(%rsi)
619 movdqu 32(%rdi),%xmm4
620 movups %xmm5,48(%rsi)
621 movdqu 48(%rdi),%xmm5
622 movups %xmm6,64(%rsi)
623 movdqu 64(%rdi),%xmm6
624 movups %xmm7,80(%rsi)
625 movdqu 80(%rdi),%xmm7
626 movups %xmm8,96(%rsi)
627 movdqu 96(%rdi),%xmm8
628 movups %xmm9,112(%rsi)
629 leaq 128(%rsi),%rsi
630 movdqu 112(%rdi),%xmm9
631 leaq 128(%rdi),%rdi
632 .Lecb_dec_loop8_enter:
633
634 call _aesni_decrypt8
635
636 movups (%r11),%xmm0
637 subq $128,%rdx
638 jnc .Lecb_dec_loop8
639
640 movups %xmm2,(%rsi)
641 movq %r11,%rcx
642 movups %xmm3,16(%rsi)
643 movl %r10d,%eax
644 movups %xmm4,32(%rsi)
645 movups %xmm5,48(%rsi)
646 movups %xmm6,64(%rsi)
647 movups %xmm7,80(%rsi)
648 movups %xmm8,96(%rsi)
649 movups %xmm9,112(%rsi)
650 leaq 128(%rsi),%rsi
651 addq $128,%rdx
652 jz .Lecb_ret
653
654 .Lecb_dec_tail:
655 movups (%rdi),%xmm2
656 cmpq $32,%rdx
657 jb .Lecb_dec_one
658 movups 16(%rdi),%xmm3
659 je .Lecb_dec_two
660 movups 32(%rdi),%xmm4
661 cmpq $64,%rdx
662 jb .Lecb_dec_three
663 movups 48(%rdi),%xmm5
664 je .Lecb_dec_four
665 movups 64(%rdi),%xmm6
666 cmpq $96,%rdx
667 jb .Lecb_dec_five
668 movups 80(%rdi),%xmm7
669 je .Lecb_dec_six
670 movups 96(%rdi),%xmm8
671 movups (%rcx),%xmm0
672 call _aesni_decrypt8
673 movups %xmm2,(%rsi)
674 movups %xmm3,16(%rsi)
675 movups %xmm4,32(%rsi)
676 movups %xmm5,48(%rsi)
677 movups %xmm6,64(%rsi)
678 movups %xmm7,80(%rsi)
679 movups %xmm8,96(%rsi)
680 jmp .Lecb_ret
681 .align 16
682 .Lecb_dec_one:
683 movups (%rcx),%xmm0
684 movups 16(%rcx),%xmm1
685 leaq 32(%rcx),%rcx
686 xorps %xmm0,%xmm2
687 .Loop_dec1_4:
688 .byte 102,15,56,222,209
689 decl %eax
690 movups (%rcx),%xmm1
691 leaq 16(%rcx),%rcx
692 jnz .Loop_dec1_4
693 .byte 102,15,56,223,209
694 movups %xmm2,(%rsi)
695 jmp .Lecb_ret
696 .align 16
697 .Lecb_dec_two:
698 xorps %xmm4,%xmm4
699 call _aesni_decrypt3
700 movups %xmm2,(%rsi)
701 movups %xmm3,16(%rsi)
702 jmp .Lecb_ret
703 .align 16
704 .Lecb_dec_three:
705 call _aesni_decrypt3
706 movups %xmm2,(%rsi)
707 movups %xmm3,16(%rsi)
708 movups %xmm4,32(%rsi)
709 jmp .Lecb_ret
710 .align 16
711 .Lecb_dec_four:
712 call _aesni_decrypt4
713 movups %xmm2,(%rsi)
714 movups %xmm3,16(%rsi)
715 movups %xmm4,32(%rsi)
716 movups %xmm5,48(%rsi)
717 jmp .Lecb_ret
718 .align 16
719 .Lecb_dec_five:
720 xorps %xmm7,%xmm7
721 call _aesni_decrypt6
722 movups %xmm2,(%rsi)
723 movups %xmm3,16(%rsi)
724 movups %xmm4,32(%rsi)
725 movups %xmm5,48(%rsi)
726 movups %xmm6,64(%rsi)
727 jmp .Lecb_ret
728 .align 16
729 .Lecb_dec_six:
730 call _aesni_decrypt6
731 movups %xmm2,(%rsi)
732 movups %xmm3,16(%rsi)
733 movups %xmm4,32(%rsi)
734 movups %xmm5,48(%rsi)
735 movups %xmm6,64(%rsi)
736 movups %xmm7,80(%rsi)
737
738 .Lecb_ret:
739 .byte 0xf3,0xc3
740 .size aesni_ecb_encrypt,.-aesni_ecb_encrypt
741 .globl aesni_ccm64_encrypt_blocks
742 .type aesni_ccm64_encrypt_blocks,@function
743 .align 16
744 aesni_ccm64_encrypt_blocks:
745 movl 240(%rcx),%eax
746 movdqu (%r8),%xmm9
747 movdqa .Lincrement64(%rip),%xmm6
748 movdqa .Lbswap_mask(%rip),%xmm7
749
750 shrl $1,%eax
751 leaq 0(%rcx),%r11
752 movdqu (%r9),%xmm3
753 movdqa %xmm9,%xmm2
754 movl %eax,%r10d
755 .byte 102,68,15,56,0,207
756 jmp .Lccm64_enc_outer
757 .align 16
758 .Lccm64_enc_outer:
759 movups (%r11),%xmm0
760 movl %r10d,%eax
761 movups (%rdi),%xmm8
762
763 xorps %xmm0,%xmm2
764 movups 16(%r11),%xmm1
765 xorps %xmm8,%xmm0
766 leaq 32(%r11),%rcx
767 xorps %xmm0,%xmm3
768 movups (%rcx),%xmm0
769
770 .Lccm64_enc2_loop:
771 .byte 102,15,56,220,209
772 decl %eax
773 .byte 102,15,56,220,217
774 movups 16(%rcx),%xmm1
775 .byte 102,15,56,220,208
776 leaq 32(%rcx),%rcx
777 .byte 102,15,56,220,216
778 movups 0(%rcx),%xmm0
779 jnz .Lccm64_enc2_loop
780 .byte 102,15,56,220,209
781 .byte 102,15,56,220,217
782 paddq %xmm6,%xmm9
783 .byte 102,15,56,221,208
784 .byte 102,15,56,221,216
785
786 decq %rdx
787 leaq 16(%rdi),%rdi
788 xorps %xmm2,%xmm8
789 movdqa %xmm9,%xmm2
790 movups %xmm8,(%rsi)
791 leaq 16(%rsi),%rsi
792 .byte 102,15,56,0,215
793 jnz .Lccm64_enc_outer
794
795 movups %xmm3,(%r9)
796 .byte 0xf3,0xc3
797 .size aesni_ccm64_encrypt_blocks,.-aesni_ccm64_encrypt_blocks
798 .globl aesni_ccm64_decrypt_blocks
799 .type aesni_ccm64_decrypt_blocks,@function
800 .align 16
801 aesni_ccm64_decrypt_blocks:
802 movl 240(%rcx),%eax
803 movups (%r8),%xmm9
804 movdqu (%r9),%xmm3
805 movdqa .Lincrement64(%rip),%xmm6
806 movdqa .Lbswap_mask(%rip),%xmm7
807
808 movaps %xmm9,%xmm2
809 movl %eax,%r10d
810 movq %rcx,%r11
811 .byte 102,68,15,56,0,207
812 movups (%rcx),%xmm0
813 movups 16(%rcx),%xmm1
814 leaq 32(%rcx),%rcx
815 xorps %xmm0,%xmm2
816 .Loop_enc1_5:
817 .byte 102,15,56,220,209
818 decl %eax
819 movups (%rcx),%xmm1
820 leaq 16(%rcx),%rcx
821 jnz .Loop_enc1_5
822 .byte 102,15,56,221,209
823 movups (%rdi),%xmm8
824 paddq %xmm6,%xmm9
825 leaq 16(%rdi),%rdi
826 jmp .Lccm64_dec_outer
827 .align 16
828 .Lccm64_dec_outer:
829 xorps %xmm2,%xmm8
830 movdqa %xmm9,%xmm2
831 movl %r10d,%eax
832 movups %xmm8,(%rsi)
833 leaq 16(%rsi),%rsi
834 .byte 102,15,56,0,215
835
836 subq $1,%rdx
837 jz .Lccm64_dec_break
838
839 movups (%r11),%xmm0
840 shrl $1,%eax
841 movups 16(%r11),%xmm1
842 xorps %xmm0,%xmm8
843 leaq 32(%r11),%rcx
844 xorps %xmm0,%xmm2
845 xorps %xmm8,%xmm3
846 movups (%rcx),%xmm0
847
848 .Lccm64_dec2_loop:
849 .byte 102,15,56,220,209
850 decl %eax
851 .byte 102,15,56,220,217
852 movups 16(%rcx),%xmm1
853 .byte 102,15,56,220,208
854 leaq 32(%rcx),%rcx
855 .byte 102,15,56,220,216
856 movups 0(%rcx),%xmm0
857 jnz .Lccm64_dec2_loop
858 movups (%rdi),%xmm8
859 paddq %xmm6,%xmm9
860 .byte 102,15,56,220,209
861 .byte 102,15,56,220,217
862 leaq 16(%rdi),%rdi
863 .byte 102,15,56,221,208
864 .byte 102,15,56,221,216
865 jmp .Lccm64_dec_outer
866
867 .align 16
868 .Lccm64_dec_break:
869
870 movups (%r11),%xmm0
871 movups 16(%r11),%xmm1
872 xorps %xmm0,%xmm8
873 leaq 32(%r11),%r11
874 xorps %xmm8,%xmm3
875 .Loop_enc1_6:
876 .byte 102,15,56,220,217
877 decl %eax
878 movups (%r11),%xmm1
879 leaq 16(%r11),%r11
880 jnz .Loop_enc1_6
881 .byte 102,15,56,221,217
882 movups %xmm3,(%r9)
883 .byte 0xf3,0xc3
884 .size aesni_ccm64_decrypt_blocks,.-aesni_ccm64_decrypt_blocks
885 .globl aesni_ctr32_encrypt_blocks
886 .type aesni_ctr32_encrypt_blocks,@function
887 .align 16
888 aesni_ctr32_encrypt_blocks:
889 cmpq $1,%rdx
890 je .Lctr32_one_shortcut
891
892 movdqu (%r8),%xmm14
893 movdqa .Lbswap_mask(%rip),%xmm15
894 xorl %eax,%eax
895 .byte 102,69,15,58,22,242,3
896 .byte 102,68,15,58,34,240,3
897
898 movl 240(%rcx),%eax
899 bswapl %r10d
900 pxor %xmm12,%xmm12
901 pxor %xmm13,%xmm13
902 .byte 102,69,15,58,34,226,0
903 leaq 3(%r10),%r11
904 .byte 102,69,15,58,34,235,0
905 incl %r10d
906 .byte 102,69,15,58,34,226,1
907 incq %r11
908 .byte 102,69,15,58,34,235,1
909 incl %r10d
910 .byte 102,69,15,58,34,226,2
911 incq %r11
912 .byte 102,69,15,58,34,235,2
913 movdqa %xmm12,-40(%rsp)
914 .byte 102,69,15,56,0,231
915 movdqa %xmm13,-24(%rsp)
916 .byte 102,69,15,56,0,239
917
918 pshufd $192,%xmm12,%xmm2
919 pshufd $128,%xmm12,%xmm3
920 pshufd $64,%xmm12,%xmm4
921 cmpq $6,%rdx
922 jb .Lctr32_tail
923 shrl $1,%eax
924 movq %rcx,%r11
925 movl %eax,%r10d
926 subq $6,%rdx
927 jmp .Lctr32_loop6
928
929 .align 16
930 .Lctr32_loop6:
931 pshufd $192,%xmm13,%xmm5
932 por %xmm14,%xmm2
933 movups (%r11),%xmm0
934 pshufd $128,%xmm13,%xmm6
935 por %xmm14,%xmm3
936 movups 16(%r11),%xmm1
937 pshufd $64,%xmm13,%xmm7
938 por %xmm14,%xmm4
939 por %xmm14,%xmm5
940 xorps %xmm0,%xmm2
941 por %xmm14,%xmm6
942 por %xmm14,%xmm7
943
944
945
946
947 pxor %xmm0,%xmm3
948 .byte 102,15,56,220,209
949 leaq 32(%r11),%rcx
950 pxor %xmm0,%xmm4
951 .byte 102,15,56,220,217
952 movdqa .Lincrement32(%rip),%xmm13
953 pxor %xmm0,%xmm5
954 .byte 102,15,56,220,225
955 movdqa -40(%rsp),%xmm12
956 pxor %xmm0,%xmm6
957 .byte 102,15,56,220,233
958 pxor %xmm0,%xmm7
959 movups (%rcx),%xmm0
960 decl %eax
961 .byte 102,15,56,220,241
962 .byte 102,15,56,220,249
963 jmp .Lctr32_enc_loop6_enter
964 .align 16
965 .Lctr32_enc_loop6:
966 .byte 102,15,56,220,209
967 .byte 102,15,56,220,217
968 decl %eax
969 .byte 102,15,56,220,225
970 .byte 102,15,56,220,233
971 .byte 102,15,56,220,241
972 .byte 102,15,56,220,249
973 .Lctr32_enc_loop6_enter:
974 movups 16(%rcx),%xmm1
975 .byte 102,15,56,220,208
976 .byte 102,15,56,220,216
977 leaq 32(%rcx),%rcx
978 .byte 102,15,56,220,224
979 .byte 102,15,56,220,232
980 .byte 102,15,56,220,240
981 .byte 102,15,56,220,248
982 movups (%rcx),%xmm0
983 jnz .Lctr32_enc_loop6
984
985 .byte 102,15,56,220,209
986 paddd %xmm13,%xmm12
987 .byte 102,15,56,220,217
988 paddd -24(%rsp),%xmm13
989 .byte 102,15,56,220,225
990 movdqa %xmm12,-40(%rsp)
991 .byte 102,15,56,220,233
992 movdqa %xmm13,-24(%rsp)
993 .byte 102,15,56,220,241
994 .byte 102,69,15,56,0,231
995 .byte 102,15,56,220,249
996 .byte 102,69,15,56,0,239
997
998 .byte 102,15,56,221,208
999 movups (%rdi),%xmm8
1000 .byte 102,15,56,221,216
1001 movups 16(%rdi),%xmm9
1002 .byte 102,15,56,221,224
1003 movups 32(%rdi),%xmm10
1004 .byte 102,15,56,221,232
1005 movups 48(%rdi),%xmm11
1006 .byte 102,15,56,221,240
1007 movups 64(%rdi),%xmm1
1008 .byte 102,15,56,221,248
1009 movups 80(%rdi),%xmm0
1010 leaq 96(%rdi),%rdi
1011
1012 xorps %xmm2,%xmm8
1013 pshufd $192,%xmm12,%xmm2
1014 xorps %xmm3,%xmm9
1015 pshufd $128,%xmm12,%xmm3
1016 movups %xmm8,(%rsi)
1017 xorps %xmm4,%xmm10
1018 pshufd $64,%xmm12,%xmm4
1019 movups %xmm9,16(%rsi)
1020 xorps %xmm5,%xmm11
1021 movups %xmm10,32(%rsi)
1022 xorps %xmm6,%xmm1
1023 movups %xmm11,48(%rsi)
1024 xorps %xmm7,%xmm0
1025 movups %xmm1,64(%rsi)
1026 movups %xmm0,80(%rsi)
1027 leaq 96(%rsi),%rsi
1028 movl %r10d,%eax
1029 subq $6,%rdx
1030 jnc .Lctr32_loop6
1031
1032 addq $6,%rdx
1033 jz .Lctr32_done
1034 movq %r11,%rcx
1035 leal 1(%rax,%rax,1),%eax
1036
1037 .Lctr32_tail:
1038 por %xmm14,%xmm2
1039 movups (%rdi),%xmm8
1040 cmpq $2,%rdx
1041 jb .Lctr32_one
1042
1043 por %xmm14,%xmm3
1044 movups 16(%rdi),%xmm9
1045 je .Lctr32_two
1046
1047 pshufd $192,%xmm13,%xmm5
1048 por %xmm14,%xmm4
1049 movups 32(%rdi),%xmm10
1050 cmpq $4,%rdx
1051 jb .Lctr32_three
1052
1053 pshufd $128,%xmm13,%xmm6
1054 por %xmm14,%xmm5
1055 movups 48(%rdi),%xmm11
1056 je .Lctr32_four
1057
1058 por %xmm14,%xmm6
1059 xorps %xmm7,%xmm7
1060
1061 call _aesni_encrypt6
1062
1063 movups 64(%rdi),%xmm1
1064 xorps %xmm2,%xmm8
1065 xorps %xmm3,%xmm9
1066 movups %xmm8,(%rsi)
1067 xorps %xmm4,%xmm10
1068 movups %xmm9,16(%rsi)
1069 xorps %xmm5,%xmm11
1070 movups %xmm10,32(%rsi)
1071 xorps %xmm6,%xmm1
1072 movups %xmm11,48(%rsi)
1073 movups %xmm1,64(%rsi)
1074 jmp .Lctr32_done
1075
1076 .align 16
1077 .Lctr32_one_shortcut:
1078 movups (%r8),%xmm2
1079 movups (%rdi),%xmm8
1080 movl 240(%rcx),%eax
1081 .Lctr32_one:
1082 movups (%rcx),%xmm0
1083 movups 16(%rcx),%xmm1
1084 leaq 32(%rcx),%rcx
1085 xorps %xmm0,%xmm2
1086 .Loop_enc1_7:
1087 .byte 102,15,56,220,209
1088 decl %eax
1089 movups (%rcx),%xmm1
1090 leaq 16(%rcx),%rcx
1091 jnz .Loop_enc1_7
1092 .byte 102,15,56,221,209
1093 xorps %xmm2,%xmm8
1094 movups %xmm8,(%rsi)
1095 jmp .Lctr32_done
1096
1097 .align 16
1098 .Lctr32_two:
1099 xorps %xmm4,%xmm4
1100 call _aesni_encrypt3
1101 xorps %xmm2,%xmm8
1102 xorps %xmm3,%xmm9
1103 movups %xmm8,(%rsi)
1104 movups %xmm9,16(%rsi)
1105 jmp .Lctr32_done
1106
1107 .align 16
1108 .Lctr32_three:
1109 call _aesni_encrypt3
1110 xorps %xmm2,%xmm8
1111 xorps %xmm3,%xmm9
1112 movups %xmm8,(%rsi)
1113 xorps %xmm4,%xmm10
1114 movups %xmm9,16(%rsi)
1115 movups %xmm10,32(%rsi)
1116 jmp .Lctr32_done
1117
1118 .align 16
1119 .Lctr32_four:
1120 call _aesni_encrypt4
1121 xorps %xmm2,%xmm8
1122 xorps %xmm3,%xmm9
1123 movups %xmm8,(%rsi)
1124 xorps %xmm4,%xmm10
1125 movups %xmm9,16(%rsi)
1126 xorps %xmm5,%xmm11
1127 movups %xmm10,32(%rsi)
1128 movups %xmm11,48(%rsi)
1129
1130 .Lctr32_done:
1131 .byte 0xf3,0xc3
1132 .size aesni_ctr32_encrypt_blocks,.-aesni_ctr32_encrypt_blocks
1133 .globl aesni_xts_encrypt
1134 .type aesni_xts_encrypt,@function
1135 .align 16
1136 aesni_xts_encrypt:
1137 leaq -104(%rsp),%rsp
1138 movups (%r9),%xmm15
1139 movl 240(%r8),%eax
1140 movl 240(%rcx),%r10d
1141 movups (%r8),%xmm0
1142 movups 16(%r8),%xmm1
1143 leaq 32(%r8),%r8
1144 xorps %xmm0,%xmm15
1145 .Loop_enc1_8:
1146 .byte 102,68,15,56,220,249
1147 decl %eax
1148 movups (%r8),%xmm1
1149 leaq 16(%r8),%r8
1150 jnz .Loop_enc1_8
1151 .byte 102,68,15,56,221,249
1152 movq %rcx,%r11
1153 movl %r10d,%eax
1154 movq %rdx,%r9
1155 andq $-16,%rdx
1156
1157 movdqa .Lxts_magic(%rip),%xmm8
1158 pxor %xmm14,%xmm14
1159 pcmpgtd %xmm15,%xmm14
1160 pshufd $19,%xmm14,%xmm9
1161 pxor %xmm14,%xmm14
1162 movdqa %xmm15,%xmm10
1163 paddq %xmm15,%xmm15
1164 pand %xmm8,%xmm9
1165 pcmpgtd %xmm15,%xmm14
1166 pxor %xmm9,%xmm15
1167 pshufd $19,%xmm14,%xmm9
1168 pxor %xmm14,%xmm14
1169 movdqa %xmm15,%xmm11
1170 paddq %xmm15,%xmm15
1171 pand %xmm8,%xmm9
1172 pcmpgtd %xmm15,%xmm14
1173 pxor %xmm9,%xmm15
1174 pshufd $19,%xmm14,%xmm9
1175 pxor %xmm14,%xmm14
1176 movdqa %xmm15,%xmm12
1177 paddq %xmm15,%xmm15
1178 pand %xmm8,%xmm9
1179 pcmpgtd %xmm15,%xmm14
1180 pxor %xmm9,%xmm15
1181 pshufd $19,%xmm14,%xmm9
1182 pxor %xmm14,%xmm14
1183 movdqa %xmm15,%xmm13
1184 paddq %xmm15,%xmm15
1185 pand %xmm8,%xmm9
1186 pcmpgtd %xmm15,%xmm14
1187 pxor %xmm9,%xmm15
1188 subq $96,%rdx
1189 jc .Lxts_enc_short
1190
1191 shrl $1,%eax
1192 subl $1,%eax
1193 movl %eax,%r10d
1194 jmp .Lxts_enc_grandloop
1195
1196 .align 16
1197 .Lxts_enc_grandloop:
1198 pshufd $19,%xmm14,%xmm9
1199 movdqa %xmm15,%xmm14
1200 paddq %xmm15,%xmm15
1201 movdqu 0(%rdi),%xmm2
1202 pand %xmm8,%xmm9
1203 movdqu 16(%rdi),%xmm3
1204 pxor %xmm9,%xmm15
1205
1206 movdqu 32(%rdi),%xmm4
1207 pxor %xmm10,%xmm2
1208 movdqu 48(%rdi),%xmm5
1209 pxor %xmm11,%xmm3
1210 movdqu 64(%rdi),%xmm6
1211 pxor %xmm12,%xmm4
1212 movdqu 80(%rdi),%xmm7
1213 leaq 96(%rdi),%rdi
1214 pxor %xmm13,%xmm5
1215 movups (%r11),%xmm0
1216 pxor %xmm14,%xmm6
1217 pxor %xmm15,%xmm7
1218
1219
1220
1221 movups 16(%r11),%xmm1
1222 pxor %xmm0,%xmm2
1223 pxor %xmm0,%xmm3
1224 movdqa %xmm10,0(%rsp)
1225 .byte 102,15,56,220,209
1226 leaq 32(%r11),%rcx
1227 pxor %xmm0,%xmm4
1228 movdqa %xmm11,16(%rsp)
1229 .byte 102,15,56,220,217
1230 pxor %xmm0,%xmm5
1231 movdqa %xmm12,32(%rsp)
1232 .byte 102,15,56,220,225
1233 pxor %xmm0,%xmm6
1234 movdqa %xmm13,48(%rsp)
1235 .byte 102,15,56,220,233
1236 pxor %xmm0,%xmm7
1237 movups (%rcx),%xmm0
1238 decl %eax
1239 movdqa %xmm14,64(%rsp)
1240 .byte 102,15,56,220,241
1241 movdqa %xmm15,80(%rsp)
1242 .byte 102,15,56,220,249
1243 pxor %xmm14,%xmm14
1244 pcmpgtd %xmm15,%xmm14
1245 jmp .Lxts_enc_loop6_enter
1246
1247 .align 16
1248 .Lxts_enc_loop6:
1249 .byte 102,15,56,220,209
1250 .byte 102,15,56,220,217
1251 decl %eax
1252 .byte 102,15,56,220,225
1253 .byte 102,15,56,220,233
1254 .byte 102,15,56,220,241
1255 .byte 102,15,56,220,249
1256 .Lxts_enc_loop6_enter:
1257 movups 16(%rcx),%xmm1
1258 .byte 102,15,56,220,208
1259 .byte 102,15,56,220,216
1260 leaq 32(%rcx),%rcx
1261 .byte 102,15,56,220,224
1262 .byte 102,15,56,220,232
1263 .byte 102,15,56,220,240
1264 .byte 102,15,56,220,248
1265 movups (%rcx),%xmm0
1266 jnz .Lxts_enc_loop6
1267
1268 pshufd $19,%xmm14,%xmm9
1269 pxor %xmm14,%xmm14
1270 paddq %xmm15,%xmm15
1271 .byte 102,15,56,220,209
1272 pand %xmm8,%xmm9
1273 .byte 102,15,56,220,217
1274 pcmpgtd %xmm15,%xmm14
1275 .byte 102,15,56,220,225
1276 pxor %xmm9,%xmm15
1277 .byte 102,15,56,220,233
1278 .byte 102,15,56,220,241
1279 .byte 102,15,56,220,249
1280 movups 16(%rcx),%xmm1
1281
1282 pshufd $19,%xmm14,%xmm9
1283 pxor %xmm14,%xmm14
1284 movdqa %xmm15,%xmm10
1285 paddq %xmm15,%xmm15
1286 .byte 102,15,56,220,208
1287 pand %xmm8,%xmm9
1288 .byte 102,15,56,220,216
1289 pcmpgtd %xmm15,%xmm14
1290 .byte 102,15,56,220,224
1291 pxor %xmm9,%xmm15
1292 .byte 102,15,56,220,232
1293 .byte 102,15,56,220,240
1294 .byte 102,15,56,220,248
1295 movups 32(%rcx),%xmm0
1296
1297 pshufd $19,%xmm14,%xmm9
1298 pxor %xmm14,%xmm14
1299 movdqa %xmm15,%xmm11
1300 paddq %xmm15,%xmm15
1301 .byte 102,15,56,220,209
1302 pand %xmm8,%xmm9
1303 .byte 102,15,56,220,217
1304 pcmpgtd %xmm15,%xmm14
1305 .byte 102,15,56,220,225
1306 pxor %xmm9,%xmm15
1307 .byte 102,15,56,220,233
1308 .byte 102,15,56,220,241
1309 .byte 102,15,56,220,249
1310
1311 pshufd $19,%xmm14,%xmm9
1312 pxor %xmm14,%xmm14
1313 movdqa %xmm15,%xmm12
1314 paddq %xmm15,%xmm15
1315 .byte 102,15,56,221,208
1316 pand %xmm8,%xmm9
1317 .byte 102,15,56,221,216
1318 pcmpgtd %xmm15,%xmm14
1319 .byte 102,15,56,221,224
1320 pxor %xmm9,%xmm15
1321 .byte 102,15,56,221,232
1322 .byte 102,15,56,221,240
1323 .byte 102,15,56,221,248
1324
1325 pshufd $19,%xmm14,%xmm9
1326 pxor %xmm14,%xmm14
1327 movdqa %xmm15,%xmm13
1328 paddq %xmm15,%xmm15
1329 xorps 0(%rsp),%xmm2
1330 pand %xmm8,%xmm9
1331 xorps 16(%rsp),%xmm3
1332 pcmpgtd %xmm15,%xmm14
1333 pxor %xmm9,%xmm15
1334
1335 xorps 32(%rsp),%xmm4
1336 movups %xmm2,0(%rsi)
1337 xorps 48(%rsp),%xmm5
1338 movups %xmm3,16(%rsi)
1339 xorps 64(%rsp),%xmm6
1340 movups %xmm4,32(%rsi)
1341 xorps 80(%rsp),%xmm7
1342 movups %xmm5,48(%rsi)
1343 movl %r10d,%eax
1344 movups %xmm6,64(%rsi)
1345 movups %xmm7,80(%rsi)
1346 leaq 96(%rsi),%rsi
1347 subq $96,%rdx
1348 jnc .Lxts_enc_grandloop
1349
1350 leal 3(%rax,%rax,1),%eax
1351 movq %r11,%rcx
1352 movl %eax,%r10d
1353
1354 .Lxts_enc_short:
1355 addq $96,%rdx
1356 jz .Lxts_enc_done
1357
1358 cmpq $32,%rdx
1359 jb .Lxts_enc_one
1360 je .Lxts_enc_two
1361
1362 cmpq $64,%rdx
1363 jb .Lxts_enc_three
1364 je .Lxts_enc_four
1365
1366 pshufd $19,%xmm14,%xmm9
1367 movdqa %xmm15,%xmm14
1368 paddq %xmm15,%xmm15
1369 movdqu (%rdi),%xmm2
1370 pand %xmm8,%xmm9
1371 movdqu 16(%rdi),%xmm3
1372 pxor %xmm9,%xmm15
1373
1374 movdqu 32(%rdi),%xmm4
1375 pxor %xmm10,%xmm2
1376 movdqu 48(%rdi),%xmm5
1377 pxor %xmm11,%xmm3
1378 movdqu 64(%rdi),%xmm6
1379 leaq 80(%rdi),%rdi
1380 pxor %xmm12,%xmm4
1381 pxor %xmm13,%xmm5
1382 pxor %xmm14,%xmm6
1383
1384 call _aesni_encrypt6
1385
1386 xorps %xmm10,%xmm2
1387 movdqa %xmm15,%xmm10
1388 xorps %xmm11,%xmm3
1389 xorps %xmm12,%xmm4
1390 movdqu %xmm2,(%rsi)
1391 xorps %xmm13,%xmm5
1392 movdqu %xmm3,16(%rsi)
1393 xorps %xmm14,%xmm6
1394 movdqu %xmm4,32(%rsi)
1395 movdqu %xmm5,48(%rsi)
1396 movdqu %xmm6,64(%rsi)
1397 leaq 80(%rsi),%rsi
1398 jmp .Lxts_enc_done
1399
1400 .align 16
1401 .Lxts_enc_one:
1402 movups (%rdi),%xmm2
1403 leaq 16(%rdi),%rdi
1404 xorps %xmm10,%xmm2
1405 movups (%rcx),%xmm0
1406 movups 16(%rcx),%xmm1
1407 leaq 32(%rcx),%rcx
1408 xorps %xmm0,%xmm2
1409 .Loop_enc1_9:
1410 .byte 102,15,56,220,209
1411 decl %eax
1412 movups (%rcx),%xmm1
1413 leaq 16(%rcx),%rcx
1414 jnz .Loop_enc1_9
1415 .byte 102,15,56,221,209
1416 xorps %xmm10,%xmm2
1417 movdqa %xmm11,%xmm10
1418 movups %xmm2,(%rsi)
1419 leaq 16(%rsi),%rsi
1420 jmp .Lxts_enc_done
1421
1422 .align 16
1423 .Lxts_enc_two:
1424 movups (%rdi),%xmm2
1425 movups 16(%rdi),%xmm3
1426 leaq 32(%rdi),%rdi
1427 xorps %xmm10,%xmm2
1428 xorps %xmm11,%xmm3
1429
1430 call _aesni_encrypt3
1431
1432 xorps %xmm10,%xmm2
1433 movdqa %xmm12,%xmm10
1434 xorps %xmm11,%xmm3
1435 movups %xmm2,(%rsi)
1436 movups %xmm3,16(%rsi)
1437 leaq 32(%rsi),%rsi
1438 jmp .Lxts_enc_done
1439
1440 .align 16
1441 .Lxts_enc_three:
1442 movups (%rdi),%xmm2
1443 movups 16(%rdi),%xmm3
1444 movups 32(%rdi),%xmm4
1445 leaq 48(%rdi),%rdi
1446 xorps %xmm10,%xmm2
1447 xorps %xmm11,%xmm3
1448 xorps %xmm12,%xmm4
1449
1450 call _aesni_encrypt3
1451
1452 xorps %xmm10,%xmm2
1453 movdqa %xmm13,%xmm10
1454 xorps %xmm11,%xmm3
1455 xorps %xmm12,%xmm4
1456 movups %xmm2,(%rsi)
1457 movups %xmm3,16(%rsi)
1458 movups %xmm4,32(%rsi)
1459 leaq 48(%rsi),%rsi
1460 jmp .Lxts_enc_done
1461
1462 .align 16
1463 .Lxts_enc_four:
1464 movups (%rdi),%xmm2
1465 movups 16(%rdi),%xmm3
1466 movups 32(%rdi),%xmm4
1467 xorps %xmm10,%xmm2
1468 movups 48(%rdi),%xmm5
1469 leaq 64(%rdi),%rdi
1470 xorps %xmm11,%xmm3
1471 xorps %xmm12,%xmm4
1472 xorps %xmm13,%xmm5
1473
1474 call _aesni_encrypt4
1475
1476 xorps %xmm10,%xmm2
1477 movdqa %xmm15,%xmm10
1478 xorps %xmm11,%xmm3
1479 xorps %xmm12,%xmm4
1480 movups %xmm2,(%rsi)
1481 xorps %xmm13,%xmm5
1482 movups %xmm3,16(%rsi)
1483 movups %xmm4,32(%rsi)
1484 movups %xmm5,48(%rsi)
1485 leaq 64(%rsi),%rsi
1486 jmp .Lxts_enc_done
1487
1488 .align 16
1489 .Lxts_enc_done:
1490 andq $15,%r9
1491 jz .Lxts_enc_ret
1492 movq %r9,%rdx
1493
1494 .Lxts_enc_steal:
1495 movzbl (%rdi),%eax
1496 movzbl -16(%rsi),%ecx
1497 leaq 1(%rdi),%rdi
1498 movb %al,-16(%rsi)
1499 movb %cl,0(%rsi)
1500 leaq 1(%rsi),%rsi
1501 subq $1,%rdx
1502 jnz .Lxts_enc_steal
1503
1504 subq %r9,%rsi
1505 movq %r11,%rcx
1506 movl %r10d,%eax
1507
1508 movups -16(%rsi),%xmm2
1509 xorps %xmm10,%xmm2
1510 movups (%rcx),%xmm0
1511 movups 16(%rcx),%xmm1
1512 leaq 32(%rcx),%rcx
1513 xorps %xmm0,%xmm2
1514 .Loop_enc1_10:
1515 .byte 102,15,56,220,209
1516 decl %eax
1517 movups (%rcx),%xmm1
1518 leaq 16(%rcx),%rcx
1519 jnz .Loop_enc1_10
1520 .byte 102,15,56,221,209
1521 xorps %xmm10,%xmm2
1522 movups %xmm2,-16(%rsi)
1523
1524 .Lxts_enc_ret:
1525 leaq 104(%rsp),%rsp
1526 .Lxts_enc_epilogue:
1527 .byte 0xf3,0xc3
1528 .size aesni_xts_encrypt,.-aesni_xts_encrypt
1529 .globl aesni_xts_decrypt
1530 .type aesni_xts_decrypt,@function
1531 .align 16
1532 aesni_xts_decrypt:
1533 leaq -104(%rsp),%rsp
1534 movups (%r9),%xmm15
1535 movl 240(%r8),%eax
1536 movl 240(%rcx),%r10d
1537 movups (%r8),%xmm0
1538 movups 16(%r8),%xmm1
1539 leaq 32(%r8),%r8
1540 xorps %xmm0,%xmm15
1541 .Loop_enc1_11:
1542 .byte 102,68,15,56,220,249
1543 decl %eax
1544 movups (%r8),%xmm1
1545 leaq 16(%r8),%r8
1546 jnz .Loop_enc1_11
1547 .byte 102,68,15,56,221,249
1548 xorl %eax,%eax
1549 testq $15,%rdx
1550 setnz %al
1551 shlq $4,%rax
1552 subq %rax,%rdx
1553
1554 movq %rcx,%r11
1555 movl %r10d,%eax
1556 movq %rdx,%r9
1557 andq $-16,%rdx
1558
1559 movdqa .Lxts_magic(%rip),%xmm8
1560 pxor %xmm14,%xmm14
1561 pcmpgtd %xmm15,%xmm14
1562 pshufd $19,%xmm14,%xmm9
1563 pxor %xmm14,%xmm14
1564 movdqa %xmm15,%xmm10
1565 paddq %xmm15,%xmm15
1566 pand %xmm8,%xmm9
1567 pcmpgtd %xmm15,%xmm14
1568 pxor %xmm9,%xmm15
1569 pshufd $19,%xmm14,%xmm9
1570 pxor %xmm14,%xmm14
1571 movdqa %xmm15,%xmm11
1572 paddq %xmm15,%xmm15
1573 pand %xmm8,%xmm9
1574 pcmpgtd %xmm15,%xmm14
1575 pxor %xmm9,%xmm15
1576 pshufd $19,%xmm14,%xmm9
1577 pxor %xmm14,%xmm14
1578 movdqa %xmm15,%xmm12
1579 paddq %xmm15,%xmm15
1580 pand %xmm8,%xmm9
1581 pcmpgtd %xmm15,%xmm14
1582 pxor %xmm9,%xmm15
1583 pshufd $19,%xmm14,%xmm9
1584 pxor %xmm14,%xmm14
1585 movdqa %xmm15,%xmm13
1586 paddq %xmm15,%xmm15
1587 pand %xmm8,%xmm9
1588 pcmpgtd %xmm15,%xmm14
1589 pxor %xmm9,%xmm15
1590 subq $96,%rdx
1591 jc .Lxts_dec_short
1592
1593 shrl $1,%eax
1594 subl $1,%eax
1595 movl %eax,%r10d
1596 jmp .Lxts_dec_grandloop
1597
1598 .align 16
1599 .Lxts_dec_grandloop:
1600 pshufd $19,%xmm14,%xmm9
1601 movdqa %xmm15,%xmm14
1602 paddq %xmm15,%xmm15
1603 movdqu 0(%rdi),%xmm2
1604 pand %xmm8,%xmm9
1605 movdqu 16(%rdi),%xmm3
1606 pxor %xmm9,%xmm15
1607
1608 movdqu 32(%rdi),%xmm4
1609 pxor %xmm10,%xmm2
1610 movdqu 48(%rdi),%xmm5
1611 pxor %xmm11,%xmm3
1612 movdqu 64(%rdi),%xmm6
1613 pxor %xmm12,%xmm4
1614 movdqu 80(%rdi),%xmm7
1615 leaq 96(%rdi),%rdi
1616 pxor %xmm13,%xmm5
1617 movups (%r11),%xmm0
1618 pxor %xmm14,%xmm6
1619 pxor %xmm15,%xmm7
1620
1621
1622
1623 movups 16(%r11),%xmm1
1624 pxor %xmm0,%xmm2
1625 pxor %xmm0,%xmm3
1626 movdqa %xmm10,0(%rsp)
1627 .byte 102,15,56,222,209
1628 leaq 32(%r11),%rcx
1629 pxor %xmm0,%xmm4
1630 movdqa %xmm11,16(%rsp)
1631 .byte 102,15,56,222,217
1632 pxor %xmm0,%xmm5
1633 movdqa %xmm12,32(%rsp)
1634 .byte 102,15,56,222,225
1635 pxor %xmm0,%xmm6
1636 movdqa %xmm13,48(%rsp)
1637 .byte 102,15,56,222,233
1638 pxor %xmm0,%xmm7
1639 movups (%rcx),%xmm0
1640 decl %eax
1641 movdqa %xmm14,64(%rsp)
1642 .byte 102,15,56,222,241
1643 movdqa %xmm15,80(%rsp)
1644 .byte 102,15,56,222,249
1645 pxor %xmm14,%xmm14
1646 pcmpgtd %xmm15,%xmm14
1647 jmp .Lxts_dec_loop6_enter
1648
1649 .align 16
1650 .Lxts_dec_loop6:
1651 .byte 102,15,56,222,209
1652 .byte 102,15,56,222,217
1653 decl %eax
1654 .byte 102,15,56,222,225
1655 .byte 102,15,56,222,233
1656 .byte 102,15,56,222,241
1657 .byte 102,15,56,222,249
1658 .Lxts_dec_loop6_enter:
1659 movups 16(%rcx),%xmm1
1660 .byte 102,15,56,222,208
1661 .byte 102,15,56,222,216
1662 leaq 32(%rcx),%rcx
1663 .byte 102,15,56,222,224
1664 .byte 102,15,56,222,232
1665 .byte 102,15,56,222,240
1666 .byte 102,15,56,222,248
1667 movups (%rcx),%xmm0
1668 jnz .Lxts_dec_loop6
1669
1670 pshufd $19,%xmm14,%xmm9
1671 pxor %xmm14,%xmm14
1672 paddq %xmm15,%xmm15
1673 .byte 102,15,56,222,209
1674 pand %xmm8,%xmm9
1675 .byte 102,15,56,222,217
1676 pcmpgtd %xmm15,%xmm14
1677 .byte 102,15,56,222,225
1678 pxor %xmm9,%xmm15
1679 .byte 102,15,56,222,233
1680 .byte 102,15,56,222,241
1681 .byte 102,15,56,222,249
1682 movups 16(%rcx),%xmm1
1683
1684 pshufd $19,%xmm14,%xmm9
1685 pxor %xmm14,%xmm14
1686 movdqa %xmm15,%xmm10
1687 paddq %xmm15,%xmm15
1688 .byte 102,15,56,222,208
1689 pand %xmm8,%xmm9
1690 .byte 102,15,56,222,216
1691 pcmpgtd %xmm15,%xmm14
1692 .byte 102,15,56,222,224
1693 pxor %xmm9,%xmm15
1694 .byte 102,15,56,222,232
1695 .byte 102,15,56,222,240
1696 .byte 102,15,56,222,248
1697 movups 32(%rcx),%xmm0
1698
1699 pshufd $19,%xmm14,%xmm9
1700 pxor %xmm14,%xmm14
1701 movdqa %xmm15,%xmm11
1702 paddq %xmm15,%xmm15
1703 .byte 102,15,56,222,209
1704 pand %xmm8,%xmm9
1705 .byte 102,15,56,222,217
1706 pcmpgtd %xmm15,%xmm14
1707 .byte 102,15,56,222,225
1708 pxor %xmm9,%xmm15
1709 .byte 102,15,56,222,233
1710 .byte 102,15,56,222,241
1711 .byte 102,15,56,222,249
1712
1713 pshufd $19,%xmm14,%xmm9
1714 pxor %xmm14,%xmm14
1715 movdqa %xmm15,%xmm12
1716 paddq %xmm15,%xmm15
1717 .byte 102,15,56,223,208
1718 pand %xmm8,%xmm9
1719 .byte 102,15,56,223,216
1720 pcmpgtd %xmm15,%xmm14
1721 .byte 102,15,56,223,224
1722 pxor %xmm9,%xmm15
1723 .byte 102,15,56,223,232
1724 .byte 102,15,56,223,240
1725 .byte 102,15,56,223,248
1726
1727 pshufd $19,%xmm14,%xmm9
1728 pxor %xmm14,%xmm14
1729 movdqa %xmm15,%xmm13
1730 paddq %xmm15,%xmm15
1731 xorps 0(%rsp),%xmm2
1732 pand %xmm8,%xmm9
1733 xorps 16(%rsp),%xmm3
1734 pcmpgtd %xmm15,%xmm14
1735 pxor %xmm9,%xmm15
1736
1737 xorps 32(%rsp),%xmm4
1738 movups %xmm2,0(%rsi)
1739 xorps 48(%rsp),%xmm5
1740 movups %xmm3,16(%rsi)
1741 xorps 64(%rsp),%xmm6
1742 movups %xmm4,32(%rsi)
1743 xorps 80(%rsp),%xmm7
1744 movups %xmm5,48(%rsi)
1745 movl %r10d,%eax
1746 movups %xmm6,64(%rsi)
1747 movups %xmm7,80(%rsi)
1748 leaq 96(%rsi),%rsi
1749 subq $96,%rdx
1750 jnc .Lxts_dec_grandloop
1751
1752 leal 3(%rax,%rax,1),%eax
1753 movq %r11,%rcx
1754 movl %eax,%r10d
1755
1756 .Lxts_dec_short:
1757 addq $96,%rdx
1758 jz .Lxts_dec_done
1759
1760 cmpq $32,%rdx
1761 jb .Lxts_dec_one
1762 je .Lxts_dec_two
1763
1764 cmpq $64,%rdx
1765 jb .Lxts_dec_three
1766 je .Lxts_dec_four
1767
1768 pshufd $19,%xmm14,%xmm9
1769 movdqa %xmm15,%xmm14
1770 paddq %xmm15,%xmm15
1771 movdqu (%rdi),%xmm2
1772 pand %xmm8,%xmm9
1773 movdqu 16(%rdi),%xmm3
1774 pxor %xmm9,%xmm15
1775
1776 movdqu 32(%rdi),%xmm4
1777 pxor %xmm10,%xmm2
1778 movdqu 48(%rdi),%xmm5
1779 pxor %xmm11,%xmm3
1780 movdqu 64(%rdi),%xmm6
1781 leaq 80(%rdi),%rdi
1782 pxor %xmm12,%xmm4
1783 pxor %xmm13,%xmm5
1784 pxor %xmm14,%xmm6
1785
1786 call _aesni_decrypt6
1787
1788 xorps %xmm10,%xmm2
1789 xorps %xmm11,%xmm3
1790 xorps %xmm12,%xmm4
1791 movdqu %xmm2,(%rsi)
1792 xorps %xmm13,%xmm5
1793 movdqu %xmm3,16(%rsi)
1794 xorps %xmm14,%xmm6
1795 movdqu %xmm4,32(%rsi)
1796 pxor %xmm14,%xmm14
1797 movdqu %xmm5,48(%rsi)
1798 pcmpgtd %xmm15,%xmm14
1799 movdqu %xmm6,64(%rsi)
1800 leaq 80(%rsi),%rsi
1801 pshufd $19,%xmm14,%xmm11
1802 andq $15,%r9
1803 jz .Lxts_dec_ret
1804
1805 movdqa %xmm15,%xmm10
1806 paddq %xmm15,%xmm15
1807 pand %xmm8,%xmm11
1808 pxor %xmm15,%xmm11
1809 jmp .Lxts_dec_done2
1810
1811 .align 16
1812 .Lxts_dec_one:
1813 movups (%rdi),%xmm2
1814 leaq 16(%rdi),%rdi
1815 xorps %xmm10,%xmm2
1816 movups (%rcx),%xmm0
1817 movups 16(%rcx),%xmm1
1818 leaq 32(%rcx),%rcx
1819 xorps %xmm0,%xmm2
1820 .Loop_dec1_12:
1821 .byte 102,15,56,222,209
1822 decl %eax
1823 movups (%rcx),%xmm1
1824 leaq 16(%rcx),%rcx
1825 jnz .Loop_dec1_12
1826 .byte 102,15,56,223,209
1827 xorps %xmm10,%xmm2
1828 movdqa %xmm11,%xmm10
1829 movups %xmm2,(%rsi)
1830 movdqa %xmm12,%xmm11
1831 leaq 16(%rsi),%rsi
1832 jmp .Lxts_dec_done
1833
1834 .align 16
1835 .Lxts_dec_two:
1836 movups (%rdi),%xmm2
1837 movups 16(%rdi),%xmm3
1838 leaq 32(%rdi),%rdi
1839 xorps %xmm10,%xmm2
1840 xorps %xmm11,%xmm3
1841
1842 call _aesni_decrypt3
1843
1844 xorps %xmm10,%xmm2
1845 movdqa %xmm12,%xmm10
1846 xorps %xmm11,%xmm3
1847 movdqa %xmm13,%xmm11
1848 movups %xmm2,(%rsi)
1849 movups %xmm3,16(%rsi)
1850 leaq 32(%rsi),%rsi
1851 jmp .Lxts_dec_done
1852
1853 .align 16
1854 .Lxts_dec_three:
1855 movups (%rdi),%xmm2
1856 movups 16(%rdi),%xmm3
1857 movups 32(%rdi),%xmm4
1858 leaq 48(%rdi),%rdi
1859 xorps %xmm10,%xmm2
1860 xorps %xmm11,%xmm3
1861 xorps %xmm12,%xmm4
1862
1863 call _aesni_decrypt3
1864
1865 xorps %xmm10,%xmm2
1866 movdqa %xmm13,%xmm10
1867 xorps %xmm11,%xmm3
1868 movdqa %xmm15,%xmm11
1869 xorps %xmm12,%xmm4
1870 movups %xmm2,(%rsi)
1871 movups %xmm3,16(%rsi)
1872 movups %xmm4,32(%rsi)
1873 leaq 48(%rsi),%rsi
1874 jmp .Lxts_dec_done
1875
1876 .align 16
1877 .Lxts_dec_four:
1878 pshufd $19,%xmm14,%xmm9
1879 movdqa %xmm15,%xmm14
1880 paddq %xmm15,%xmm15
1881 movups (%rdi),%xmm2
1882 pand %xmm8,%xmm9
1883 movups 16(%rdi),%xmm3
1884 pxor %xmm9,%xmm15
1885
1886 movups 32(%rdi),%xmm4
1887 xorps %xmm10,%xmm2
1888 movups 48(%rdi),%xmm5
1889 leaq 64(%rdi),%rdi
1890 xorps %xmm11,%xmm3
1891 xorps %xmm12,%xmm4
1892 xorps %xmm13,%xmm5
1893
1894 call _aesni_decrypt4
1895
1896 xorps %xmm10,%xmm2
1897 movdqa %xmm14,%xmm10
1898 xorps %xmm11,%xmm3
1899 movdqa %xmm15,%xmm11
1900 xorps %xmm12,%xmm4
1901 movups %xmm2,(%rsi)
1902 xorps %xmm13,%xmm5
1903 movups %xmm3,16(%rsi)
1904 movups %xmm4,32(%rsi)
1905 movups %xmm5,48(%rsi)
1906 leaq 64(%rsi),%rsi
1907 jmp .Lxts_dec_done
1908
1909 .align 16
1910 .Lxts_dec_done:
1911 andq $15,%r9
1912 jz .Lxts_dec_ret
1913 .Lxts_dec_done2:
1914 movq %r9,%rdx
1915 movq %r11,%rcx
1916 movl %r10d,%eax
1917
1918 movups (%rdi),%xmm2
1919 xorps %xmm11,%xmm2
1920 movups (%rcx),%xmm0
1921 movups 16(%rcx),%xmm1
1922 leaq 32(%rcx),%rcx
1923 xorps %xmm0,%xmm2
1924 .Loop_dec1_13:
1925 .byte 102,15,56,222,209
1926 decl %eax
1927 movups (%rcx),%xmm1
1928 leaq 16(%rcx),%rcx
1929 jnz .Loop_dec1_13
1930 .byte 102,15,56,223,209
1931 xorps %xmm11,%xmm2
1932 movups %xmm2,(%rsi)
1933
1934 .Lxts_dec_steal:
1935 movzbl 16(%rdi),%eax
1936 movzbl (%rsi),%ecx
1937 leaq 1(%rdi),%rdi
1938 movb %al,(%rsi)
1939 movb %cl,16(%rsi)
1940 leaq 1(%rsi),%rsi
1941 subq $1,%rdx
1942 jnz .Lxts_dec_steal
1943
1944 subq %r9,%rsi
1945 movq %r11,%rcx
1946 movl %r10d,%eax
1947
1948 movups (%rsi),%xmm2
1949 xorps %xmm10,%xmm2
1950 movups (%rcx),%xmm0
1951 movups 16(%rcx),%xmm1
1952 leaq 32(%rcx),%rcx
1953 xorps %xmm0,%xmm2
1954 .Loop_dec1_14:
1955 .byte 102,15,56,222,209
1956 decl %eax
1957 movups (%rcx),%xmm1
1958 leaq 16(%rcx),%rcx
1959 jnz .Loop_dec1_14
1960 .byte 102,15,56,223,209
1961 xorps %xmm10,%xmm2
1962 movups %xmm2,(%rsi)
1963
1964 .Lxts_dec_ret:
1965 leaq 104(%rsp),%rsp
1966 .Lxts_dec_epilogue:
1967 .byte 0xf3,0xc3
1968 .size aesni_xts_decrypt,.-aesni_xts_decrypt
1969 .globl aesni_cbc_encrypt
1970 .type aesni_cbc_encrypt,@function
1971 .align 16
1972 aesni_cbc_encrypt:
1973 testq %rdx,%rdx
1974 jz .Lcbc_ret
1975
1976 movl 240(%rcx),%r10d
1977 movq %rcx,%r11
1978 testl %r9d,%r9d
1979 jz .Lcbc_decrypt
1980
1981 movups (%r8),%xmm2
1982 movl %r10d,%eax
1983 cmpq $16,%rdx
1984 jb .Lcbc_enc_tail
1985 subq $16,%rdx
1986 jmp .Lcbc_enc_loop
1987 .align 16
1988 .Lcbc_enc_loop:
1989 movups (%rdi),%xmm3
1990 leaq 16(%rdi),%rdi
1991
1992 movups (%rcx),%xmm0
1993 movups 16(%rcx),%xmm1
1994 xorps %xmm0,%xmm3
1995 leaq 32(%rcx),%rcx
1996 xorps %xmm3,%xmm2
1997 .Loop_enc1_15:
1998 .byte 102,15,56,220,209
1999 decl %eax
2000 movups (%rcx),%xmm1
2001 leaq 16(%rcx),%rcx
2002 jnz .Loop_enc1_15
2003 .byte 102,15,56,221,209
2004 movl %r10d,%eax
2005 movq %r11,%rcx
2006 movups %xmm2,0(%rsi)
2007 leaq 16(%rsi),%rsi
2008 subq $16,%rdx
2009 jnc .Lcbc_enc_loop
2010 addq $16,%rdx
2011 jnz .Lcbc_enc_tail
2012 movups %xmm2,(%r8)
2013 jmp .Lcbc_ret
2014
2015 .Lcbc_enc_tail:
2016 movq %rdx,%rcx
2017 xchgq %rdi,%rsi
2018 .long 0x9066A4F3
2019 movl $16,%ecx
2020 subq %rdx,%rcx
2021 xorl %eax,%eax
2022 .long 0x9066AAF3
2023 leaq -16(%rdi),%rdi
2024 movl %r10d,%eax
2025 movq %rdi,%rsi
2026 movq %r11,%rcx
2027 xorq %rdx,%rdx
2028 jmp .Lcbc_enc_loop
2029
2030 .align 16
2031 .Lcbc_decrypt:
2032 movups (%r8),%xmm9
2033 movl %r10d,%eax
2034 cmpq $112,%rdx
2035 jbe .Lcbc_dec_tail
2036 shrl $1,%r10d
2037 subq $112,%rdx
2038 movl %r10d,%eax
2039 movaps %xmm9,-24(%rsp)
2040 jmp .Lcbc_dec_loop8_enter
2041 .align 16
2042 .Lcbc_dec_loop8:
2043 movaps %xmm0,-24(%rsp)
2044 movups %xmm9,(%rsi)
2045 leaq 16(%rsi),%rsi
2046 .Lcbc_dec_loop8_enter:
2047 movups (%rcx),%xmm0
2048 movups (%rdi),%xmm2
2049 movups 16(%rdi),%xmm3
2050 movups 16(%rcx),%xmm1
2051
2052 leaq 32(%rcx),%rcx
2053 movdqu 32(%rdi),%xmm4
2054 xorps %xmm0,%xmm2
2055 movdqu 48(%rdi),%xmm5
2056 xorps %xmm0,%xmm3
2057 movdqu 64(%rdi),%xmm6
2058 .byte 102,15,56,222,209
2059 pxor %xmm0,%xmm4
2060 movdqu 80(%rdi),%xmm7
2061 .byte 102,15,56,222,217
2062 pxor %xmm0,%xmm5
2063 movdqu 96(%rdi),%xmm8
2064 .byte 102,15,56,222,225
2065 pxor %xmm0,%xmm6
2066 movdqu 112(%rdi),%xmm9
2067 .byte 102,15,56,222,233
2068 pxor %xmm0,%xmm7
2069 decl %eax
2070 .byte 102,15,56,222,241
2071 pxor %xmm0,%xmm8
2072 .byte 102,15,56,222,249
2073 pxor %xmm0,%xmm9
2074 movups (%rcx),%xmm0
2075 .byte 102,68,15,56,222,193
2076 .byte 102,68,15,56,222,201
2077 movups 16(%rcx),%xmm1
2078
2079 call .Ldec_loop8_enter
2080
2081 movups (%rdi),%xmm1
2082 movups 16(%rdi),%xmm0
2083 xorps -24(%rsp),%xmm2
2084 xorps %xmm1,%xmm3
2085 movups 32(%rdi),%xmm1
2086 xorps %xmm0,%xmm4
2087 movups 48(%rdi),%xmm0
2088 xorps %xmm1,%xmm5
2089 movups 64(%rdi),%xmm1
2090 xorps %xmm0,%xmm6
2091 movups 80(%rdi),%xmm0
2092 xorps %xmm1,%xmm7
2093 movups 96(%rdi),%xmm1
2094 xorps %xmm0,%xmm8
2095 movups 112(%rdi),%xmm0
2096 xorps %xmm1,%xmm9
2097 movups %xmm2,(%rsi)
2098 movups %xmm3,16(%rsi)
2099 movups %xmm4,32(%rsi)
2100 movups %xmm5,48(%rsi)
2101 movl %r10d,%eax
2102 movups %xmm6,64(%rsi)
2103 movq %r11,%rcx
2104 movups %xmm7,80(%rsi)
2105 leaq 128(%rdi),%rdi
2106 movups %xmm8,96(%rsi)
2107 leaq 112(%rsi),%rsi
2108 subq $128,%rdx
2109 ja .Lcbc_dec_loop8
2110
2111 movaps %xmm9,%xmm2
2112 movaps %xmm0,%xmm9
2113 addq $112,%rdx
2114 jle .Lcbc_dec_tail_collected
2115 movups %xmm2,(%rsi)
2116 leal 1(%r10,%r10,1),%eax
2117 leaq 16(%rsi),%rsi
2118 .Lcbc_dec_tail:
2119 movups (%rdi),%xmm2
2120 movaps %xmm2,%xmm8
2121 cmpq $16,%rdx
2122 jbe .Lcbc_dec_one
2123
2124 movups 16(%rdi),%xmm3
2125 movaps %xmm3,%xmm7
2126 cmpq $32,%rdx
2127 jbe .Lcbc_dec_two
2128
2129 movups 32(%rdi),%xmm4
2130 movaps %xmm4,%xmm6
2131 cmpq $48,%rdx
2132 jbe .Lcbc_dec_three
2133
2134 movups 48(%rdi),%xmm5
2135 cmpq $64,%rdx
2136 jbe .Lcbc_dec_four
2137
2138 movups 64(%rdi),%xmm6
2139 cmpq $80,%rdx
2140 jbe .Lcbc_dec_five
2141
2142 movups 80(%rdi),%xmm7
2143 cmpq $96,%rdx
2144 jbe .Lcbc_dec_six
2145
2146 movups 96(%rdi),%xmm8
2147 movaps %xmm9,-24(%rsp)
2148 call _aesni_decrypt8
2149 movups (%rdi),%xmm1
2150 movups 16(%rdi),%xmm0
2151 xorps -24(%rsp),%xmm2
2152 xorps %xmm1,%xmm3
2153 movups 32(%rdi),%xmm1
2154 xorps %xmm0,%xmm4
2155 movups 48(%rdi),%xmm0
2156 xorps %xmm1,%xmm5
2157 movups 64(%rdi),%xmm1
2158 xorps %xmm0,%xmm6
2159 movups 80(%rdi),%xmm0
2160 xorps %xmm1,%xmm7
2161 movups 96(%rdi),%xmm9
2162 xorps %xmm0,%xmm8
2163 movups %xmm2,(%rsi)
2164 movups %xmm3,16(%rsi)
2165 movups %xmm4,32(%rsi)
2166 movups %xmm5,48(%rsi)
2167 movups %xmm6,64(%rsi)
2168 movups %xmm7,80(%rsi)
2169 leaq 96(%rsi),%rsi
2170 movaps %xmm8,%xmm2
2171 subq $112,%rdx
2172 jmp .Lcbc_dec_tail_collected
2173 .align 16
2174 .Lcbc_dec_one:
2175 movups (%rcx),%xmm0
2176 movups 16(%rcx),%xmm1
2177 leaq 32(%rcx),%rcx
2178 xorps %xmm0,%xmm2
2179 .Loop_dec1_16:
2180 .byte 102,15,56,222,209
2181 decl %eax
2182 movups (%rcx),%xmm1
2183 leaq 16(%rcx),%rcx
2184 jnz .Loop_dec1_16
2185 .byte 102,15,56,223,209
2186 xorps %xmm9,%xmm2
2187 movaps %xmm8,%xmm9
2188 subq $16,%rdx
2189 jmp .Lcbc_dec_tail_collected
2190 .align 16
2191 .Lcbc_dec_two:
2192 xorps %xmm4,%xmm4
2193 call _aesni_decrypt3
2194 xorps %xmm9,%xmm2
2195 xorps %xmm8,%xmm3
2196 movups %xmm2,(%rsi)
2197 movaps %xmm7,%xmm9
2198 movaps %xmm3,%xmm2
2199 leaq 16(%rsi),%rsi
2200 subq $32,%rdx
2201 jmp .Lcbc_dec_tail_collected
2202 .align 16
2203 .Lcbc_dec_three:
2204 call _aesni_decrypt3
2205 xorps %xmm9,%xmm2
2206 xorps %xmm8,%xmm3
2207 movups %xmm2,(%rsi)
2208 xorps %xmm7,%xmm4
2209 movups %xmm3,16(%rsi)
2210 movaps %xmm6,%xmm9
2211 movaps %xmm4,%xmm2
2212 leaq 32(%rsi),%rsi
2213 subq $48,%rdx
2214 jmp .Lcbc_dec_tail_collected
2215 .align 16
2216 .Lcbc_dec_four:
2217 call _aesni_decrypt4
2218 xorps %xmm9,%xmm2
2219 movups 48(%rdi),%xmm9
2220 xorps %xmm8,%xmm3
2221 movups %xmm2,(%rsi)
2222 xorps %xmm7,%xmm4
2223 movups %xmm3,16(%rsi)
2224 xorps %xmm6,%xmm5
2225 movups %xmm4,32(%rsi)
2226 movaps %xmm5,%xmm2
2227 leaq 48(%rsi),%rsi
2228 subq $64,%rdx
2229 jmp .Lcbc_dec_tail_collected
2230 .align 16
2231 .Lcbc_dec_five:
2232 xorps %xmm7,%xmm7
2233 call _aesni_decrypt6
2234 movups 16(%rdi),%xmm1
2235 movups 32(%rdi),%xmm0
2236 xorps %xmm9,%xmm2
2237 xorps %xmm8,%xmm3
2238 xorps %xmm1,%xmm4
2239 movups 48(%rdi),%xmm1
2240 xorps %xmm0,%xmm5
2241 movups 64(%rdi),%xmm9
2242 xorps %xmm1,%xmm6
2243 movups %xmm2,(%rsi)
2244 movups %xmm3,16(%rsi)
2245 movups %xmm4,32(%rsi)
2246 movups %xmm5,48(%rsi)
2247 leaq 64(%rsi),%rsi
2248 movaps %xmm6,%xmm2
2249 subq $80,%rdx
2250 jmp .Lcbc_dec_tail_collected
2251 .align 16
2252 .Lcbc_dec_six:
2253 call _aesni_decrypt6
2254 movups 16(%rdi),%xmm1
2255 movups 32(%rdi),%xmm0
2256 xorps %xmm9,%xmm2
2257 xorps %xmm8,%xmm3
2258 xorps %xmm1,%xmm4
2259 movups 48(%rdi),%xmm1
2260 xorps %xmm0,%xmm5
2261 movups 64(%rdi),%xmm0
2262 xorps %xmm1,%xmm6
2263 movups 80(%rdi),%xmm9
2264 xorps %xmm0,%xmm7
2265 movups %xmm2,(%rsi)
2266 movups %xmm3,16(%rsi)
2267 movups %xmm4,32(%rsi)
2268 movups %xmm5,48(%rsi)
2269 movups %xmm6,64(%rsi)
2270 leaq 80(%rsi),%rsi
2271 movaps %xmm7,%xmm2
2272 subq $96,%rdx
2273 jmp .Lcbc_dec_tail_collected
2274 .align 16
2275 .Lcbc_dec_tail_collected:
2276 andq $15,%rdx
2277 movups %xmm9,(%r8)
2278 jnz .Lcbc_dec_tail_partial
2279 movups %xmm2,(%rsi)
2280 jmp .Lcbc_dec_ret
2281 .align 16
2282 .Lcbc_dec_tail_partial:
2283 movaps %xmm2,-24(%rsp)
2284 movq $16,%rcx
2285 movq %rsi,%rdi
2286 subq %rdx,%rcx
2287 leaq -24(%rsp),%rsi
2288 .long 0x9066A4F3
2289
2290 .Lcbc_dec_ret:
2291 .Lcbc_ret:
2292 .byte 0xf3,0xc3
2293 .size aesni_cbc_encrypt,.-aesni_cbc_encrypt
2294 .globl aesni_set_decrypt_key
2295 .type aesni_set_decrypt_key,@function
2296 .align 16
2297 aesni_set_decrypt_key:
2298 .byte 0x48,0x83,0xEC,0x08
2299 call __aesni_set_encrypt_key
2300 shll $4,%esi
2301 testl %eax,%eax
2302 jnz .Ldec_key_ret
2303 leaq 16(%rdx,%rsi,1),%rdi
2304
2305 movups (%rdx),%xmm0
2306 movups (%rdi),%xmm1
2307 movups %xmm0,(%rdi)
2308 movups %xmm1,(%rdx)
2309 leaq 16(%rdx),%rdx
2310 leaq -16(%rdi),%rdi
2311
2312 .Ldec_key_inverse:
2313 movups (%rdx),%xmm0
2314 movups (%rdi),%xmm1
2315 .byte 102,15,56,219,192
2316 .byte 102,15,56,219,201
2317 leaq 16(%rdx),%rdx
2318 leaq -16(%rdi),%rdi
2319 movups %xmm0,16(%rdi)
2320 movups %xmm1,-16(%rdx)
2321 cmpq %rdx,%rdi
2322 ja .Ldec_key_inverse
2323
2324 movups (%rdx),%xmm0
2325 .byte 102,15,56,219,192
2326 movups %xmm0,(%rdi)
2327 .Ldec_key_ret:
2328 addq $8,%rsp
2329 .byte 0xf3,0xc3
2330 .LSEH_end_set_decrypt_key:
2331 .size aesni_set_decrypt_key,.-aesni_set_decrypt_key
2332 .globl aesni_set_encrypt_key
2333 .type aesni_set_encrypt_key,@function
2334 .align 16
2335 aesni_set_encrypt_key:
2336 __aesni_set_encrypt_key:
2337 .byte 0x48,0x83,0xEC,0x08
2338 movq $-1,%rax
2339 testq %rdi,%rdi
2340 jz .Lenc_key_ret
2341 testq %rdx,%rdx
2342 jz .Lenc_key_ret
2343
2344 movups (%rdi),%xmm0
2345 xorps %xmm4,%xmm4
2346 leaq 16(%rdx),%rax
2347 cmpl $256,%esi
2348 je .L14rounds
2349 cmpl $192,%esi
2350 je .L12rounds
2351 cmpl $128,%esi
2352 jne .Lbad_keybits
2353
2354 .L10rounds:
2355 movl $9,%esi
2356 movups %xmm0,(%rdx)
2357 .byte 102,15,58,223,200,1
2358 call .Lkey_expansion_128_cold
2359 .byte 102,15,58,223,200,2
2360 call .Lkey_expansion_128
2361 .byte 102,15,58,223,200,4
2362 call .Lkey_expansion_128
2363 .byte 102,15,58,223,200,8
2364 call .Lkey_expansion_128
2365 .byte 102,15,58,223,200,16
2366 call .Lkey_expansion_128
2367 .byte 102,15,58,223,200,32
2368 call .Lkey_expansion_128
2369 .byte 102,15,58,223,200,64
2370 call .Lkey_expansion_128
2371 .byte 102,15,58,223,200,128
2372 call .Lkey_expansion_128
2373 .byte 102,15,58,223,200,27
2374 call .Lkey_expansion_128
2375 .byte 102,15,58,223,200,54
2376 call .Lkey_expansion_128
2377 movups %xmm0,(%rax)
2378 movl %esi,80(%rax)
2379 xorl %eax,%eax
2380 jmp .Lenc_key_ret
2381
2382 .align 16
2383 .L12rounds:
2384 movq 16(%rdi),%xmm2
2385 movl $11,%esi
2386 movups %xmm0,(%rdx)
2387 .byte 102,15,58,223,202,1
2388 call .Lkey_expansion_192a_cold
2389 .byte 102,15,58,223,202,2
2390 call .Lkey_expansion_192b
2391 .byte 102,15,58,223,202,4
2392 call .Lkey_expansion_192a
2393 .byte 102,15,58,223,202,8
2394 call .Lkey_expansion_192b
2395 .byte 102,15,58,223,202,16
2396 call .Lkey_expansion_192a
2397 .byte 102,15,58,223,202,32
2398 call .Lkey_expansion_192b
2399 .byte 102,15,58,223,202,64
2400 call .Lkey_expansion_192a
2401 .byte 102,15,58,223,202,128
2402 call .Lkey_expansion_192b
2403 movups %xmm0,(%rax)
2404 movl %esi,48(%rax)
2405 xorq %rax,%rax
2406 jmp .Lenc_key_ret
2407
2408 .align 16
2409 .L14rounds:
2410 movups 16(%rdi),%xmm2
2411 movl $13,%esi
2412 leaq 16(%rax),%rax
2413 movups %xmm0,(%rdx)
2414 movups %xmm2,16(%rdx)
2415 .byte 102,15,58,223,202,1
2416 call .Lkey_expansion_256a_cold
2417 .byte 102,15,58,223,200,1
2418 call .Lkey_expansion_256b
2419 .byte 102,15,58,223,202,2
2420 call .Lkey_expansion_256a
2421 .byte 102,15,58,223,200,2
2422 call .Lkey_expansion_256b
2423 .byte 102,15,58,223,202,4
2424 call .Lkey_expansion_256a
2425 .byte 102,15,58,223,200,4
2426 call .Lkey_expansion_256b
2427 .byte 102,15,58,223,202,8
2428 call .Lkey_expansion_256a
2429 .byte 102,15,58,223,200,8
2430 call .Lkey_expansion_256b
2431 .byte 102,15,58,223,202,16
2432 call .Lkey_expansion_256a
2433 .byte 102,15,58,223,200,16
2434 call .Lkey_expansion_256b
2435 .byte 102,15,58,223,202,32
2436 call .Lkey_expansion_256a
2437 .byte 102,15,58,223,200,32
2438 call .Lkey_expansion_256b
2439 .byte 102,15,58,223,202,64
2440 call .Lkey_expansion_256a
2441 movups %xmm0,(%rax)
2442 movl %esi,16(%rax)
2443 xorq %rax,%rax
2444 jmp .Lenc_key_ret
2445
2446 .align 16
2447 .Lbad_keybits:
2448 movq $-2,%rax
2449 .Lenc_key_ret:
2450 addq $8,%rsp
2451 .byte 0xf3,0xc3
2452 .LSEH_end_set_encrypt_key:
2453
2454 .align 16
2455 .Lkey_expansion_128:
2456 movups %xmm0,(%rax)
2457 leaq 16(%rax),%rax
2458 .Lkey_expansion_128_cold:
2459 shufps $16,%xmm0,%xmm4
2460 xorps %xmm4,%xmm0
2461 shufps $140,%xmm0,%xmm4
2462 xorps %xmm4,%xmm0
2463 shufps $255,%xmm1,%xmm1
2464 xorps %xmm1,%xmm0
2465 .byte 0xf3,0xc3
2466
2467 .align 16
2468 .Lkey_expansion_192a:
2469 movups %xmm0,(%rax)
2470 leaq 16(%rax),%rax
2471 .Lkey_expansion_192a_cold:
2472 movaps %xmm2,%xmm5
2473 .Lkey_expansion_192b_warm:
2474 shufps $16,%xmm0,%xmm4
2475 movdqa %xmm2,%xmm3
2476 xorps %xmm4,%xmm0
2477 shufps $140,%xmm0,%xmm4
2478 pslldq $4,%xmm3
2479 xorps %xmm4,%xmm0
2480 pshufd $85,%xmm1,%xmm1
2481 pxor %xmm3,%xmm2
2482 pxor %xmm1,%xmm0
2483 pshufd $255,%xmm0,%xmm3
2484 pxor %xmm3,%xmm2
2485 .byte 0xf3,0xc3
2486
2487 .align 16
2488 .Lkey_expansion_192b:
2489 movaps %xmm0,%xmm3
2490 shufps $68,%xmm0,%xmm5
2491 movups %xmm5,(%rax)
2492 shufps $78,%xmm2,%xmm3
2493 movups %xmm3,16(%rax)
2494 leaq 32(%rax),%rax
2495 jmp .Lkey_expansion_192b_warm
2496
2497 .align 16
2498 .Lkey_expansion_256a:
2499 movups %xmm2,(%rax)
2500 leaq 16(%rax),%rax
2501 .Lkey_expansion_256a_cold:
2502 shufps $16,%xmm0,%xmm4
2503 xorps %xmm4,%xmm0
2504 shufps $140,%xmm0,%xmm4
2505 xorps %xmm4,%xmm0
2506 shufps $255,%xmm1,%xmm1
2507 xorps %xmm1,%xmm0
2508 .byte 0xf3,0xc3
2509
2510 .align 16
2511 .Lkey_expansion_256b:
2512 movups %xmm0,(%rax)
2513 leaq 16(%rax),%rax
2514
2515 shufps $16,%xmm2,%xmm4
2516 xorps %xmm4,%xmm2
2517 shufps $140,%xmm2,%xmm4
2518 xorps %xmm4,%xmm2
2519 shufps $170,%xmm1,%xmm1
2520 xorps %xmm1,%xmm2
2521 .byte 0xf3,0xc3
2522 .size aesni_set_encrypt_key,.-aesni_set_encrypt_key
2523 .size __aesni_set_encrypt_key,.-__aesni_set_encrypt_key
2524 .align 64
2525 .Lbswap_mask:
2526 .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
2527 .Lincrement32:
2528 .long 6,6,6,0
2529 .Lincrement64:
2530 .long 1,0,0,0
2531 .Lxts_magic:
2532 .long 0x87,0,1,0
2533
2534 .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
2535 .align 64
OLDNEW
« no previous file with comments | « openssl/crypto/aes/asm/aesni-x86-mac.S ('k') | openssl/crypto/aes/asm/aesni-x86_64.pl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698