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

Side by Side Diff: third_party/boringssl/mac-x86_64/crypto/aes/aesni-x86_64.S

Issue 1128293004: Revert of Roll src/third_party/boringssl/src 68de407:de12d6c (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Thanks Rietveld, Thietveld. Created 5 years, 7 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
OLDNEW
1 #if defined(__x86_64__) 1 #if defined(__x86_64__)
2 .text 2 .text
3 3
4 .globl _aesni_encrypt 4 .globl _aesni_encrypt
5 .private_extern _aesni_encrypt 5 .private_extern _aesni_encrypt
6 6
7 .p2align 4 7 .p2align 4
8 _aesni_encrypt: 8 _aesni_encrypt:
9 movups (%rdi),%xmm2 9 movups (%rdi),%xmm2
10 movl 240(%rdx),%eax 10 movl 240(%rdx),%eax
11 movups (%rdx),%xmm0 11 movups (%rdx),%xmm0
12 movups 16(%rdx),%xmm1 12 movups 16(%rdx),%xmm1
13 leaq 32(%rdx),%rdx 13 leaq 32(%rdx),%rdx
14 xorps %xmm0,%xmm2 14 xorps %xmm0,%xmm2
15 L$oop_enc1_1: 15 L$oop_enc1_1:
16 .byte 102,15,56,220,209 16 .byte 102,15,56,220,209
17 decl %eax 17 decl %eax
18 movups (%rdx),%xmm1 18 movups (%rdx),%xmm1
19 leaq 16(%rdx),%rdx 19 leaq 16(%rdx),%rdx
20 jnz L$oop_enc1_1 20 jnz L$oop_enc1_1
21 .byte 102,15,56,221,209 21 .byte 102,15,56,221,209
22 pxor %xmm0,%xmm0
23 pxor %xmm1,%xmm1
24 movups %xmm2,(%rsi) 22 movups %xmm2,(%rsi)
25 pxor %xmm2,%xmm2
26 .byte 0xf3,0xc3 23 .byte 0xf3,0xc3
27 24
28 25
29 .globl _aesni_decrypt 26 .globl _aesni_decrypt
30 .private_extern _aesni_decrypt 27 .private_extern _aesni_decrypt
31 28
32 .p2align 4 29 .p2align 4
33 _aesni_decrypt: 30 _aesni_decrypt:
34 movups (%rdi),%xmm2 31 movups (%rdi),%xmm2
35 movl 240(%rdx),%eax 32 movl 240(%rdx),%eax
36 movups (%rdx),%xmm0 33 movups (%rdx),%xmm0
37 movups 16(%rdx),%xmm1 34 movups 16(%rdx),%xmm1
38 leaq 32(%rdx),%rdx 35 leaq 32(%rdx),%rdx
39 xorps %xmm0,%xmm2 36 xorps %xmm0,%xmm2
40 L$oop_dec1_2: 37 L$oop_dec1_2:
41 .byte 102,15,56,222,209 38 .byte 102,15,56,222,209
42 decl %eax 39 decl %eax
43 movups (%rdx),%xmm1 40 movups (%rdx),%xmm1
44 leaq 16(%rdx),%rdx 41 leaq 16(%rdx),%rdx
45 jnz L$oop_dec1_2 42 jnz L$oop_dec1_2
46 .byte 102,15,56,223,209 43 .byte 102,15,56,223,209
47 pxor %xmm0,%xmm0
48 pxor %xmm1,%xmm1
49 movups %xmm2,(%rsi) 44 movups %xmm2,(%rsi)
50 pxor %xmm2,%xmm2
51 .byte 0xf3,0xc3 45 .byte 0xf3,0xc3
52 46
53 47
54 .p2align 4 48 .p2align 4
55 _aesni_encrypt2: 49 _aesni_encrypt2:
56 movups (%rcx),%xmm0 50 movups (%rcx),%xmm0
57 shll $4,%eax 51 shll $4,%eax
58 movups 16(%rcx),%xmm1 52 movups 16(%rcx),%xmm1
59 xorps %xmm0,%xmm2 53 xorps %xmm0,%xmm2
60 xorps %xmm0,%xmm3 54 xorps %xmm0,%xmm3
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 pxor %xmm0,%xmm3 260 pxor %xmm0,%xmm3
267 pxor %xmm0,%xmm4 261 pxor %xmm0,%xmm4
268 .byte 102,15,56,220,209 262 .byte 102,15,56,220,209
269 leaq 32(%rcx,%rax,1),%rcx 263 leaq 32(%rcx,%rax,1),%rcx
270 negq %rax 264 negq %rax
271 .byte 102,15,56,220,217 265 .byte 102,15,56,220,217
272 pxor %xmm0,%xmm5 266 pxor %xmm0,%xmm5
273 pxor %xmm0,%xmm6 267 pxor %xmm0,%xmm6
274 .byte 102,15,56,220,225 268 .byte 102,15,56,220,225
275 pxor %xmm0,%xmm7 269 pxor %xmm0,%xmm7
276 movups (%rcx,%rax,1),%xmm0
277 addq $16,%rax 270 addq $16,%rax
271 .byte 102,15,56,220,233
272 .byte 102,15,56,220,241
273 .byte 102,15,56,220,249
274 movups -16(%rcx,%rax,1),%xmm0
278 jmp L$enc_loop6_enter 275 jmp L$enc_loop6_enter
279 .p2align 4 276 .p2align 4
280 L$enc_loop6: 277 L$enc_loop6:
281 .byte 102,15,56,220,209 278 .byte 102,15,56,220,209
282 .byte 102,15,56,220,217 279 .byte 102,15,56,220,217
283 .byte 102,15,56,220,225 280 .byte 102,15,56,220,225
284 L$enc_loop6_enter:
285 .byte 102,15,56,220,233 281 .byte 102,15,56,220,233
286 .byte 102,15,56,220,241 282 .byte 102,15,56,220,241
287 .byte 102,15,56,220,249 283 .byte 102,15,56,220,249
284 L$enc_loop6_enter:
288 movups (%rcx,%rax,1),%xmm1 285 movups (%rcx,%rax,1),%xmm1
289 addq $32,%rax 286 addq $32,%rax
290 .byte 102,15,56,220,208 287 .byte 102,15,56,220,208
291 .byte 102,15,56,220,216 288 .byte 102,15,56,220,216
292 .byte 102,15,56,220,224 289 .byte 102,15,56,220,224
293 .byte 102,15,56,220,232 290 .byte 102,15,56,220,232
294 .byte 102,15,56,220,240 291 .byte 102,15,56,220,240
295 .byte 102,15,56,220,248 292 .byte 102,15,56,220,248
296 movups -16(%rcx,%rax,1),%xmm0 293 movups -16(%rcx,%rax,1),%xmm0
297 jnz L$enc_loop6 294 jnz L$enc_loop6
(...skipping 22 matching lines...) Expand all
320 pxor %xmm0,%xmm3 317 pxor %xmm0,%xmm3
321 pxor %xmm0,%xmm4 318 pxor %xmm0,%xmm4
322 .byte 102,15,56,222,209 319 .byte 102,15,56,222,209
323 leaq 32(%rcx,%rax,1),%rcx 320 leaq 32(%rcx,%rax,1),%rcx
324 negq %rax 321 negq %rax
325 .byte 102,15,56,222,217 322 .byte 102,15,56,222,217
326 pxor %xmm0,%xmm5 323 pxor %xmm0,%xmm5
327 pxor %xmm0,%xmm6 324 pxor %xmm0,%xmm6
328 .byte 102,15,56,222,225 325 .byte 102,15,56,222,225
329 pxor %xmm0,%xmm7 326 pxor %xmm0,%xmm7
330 movups (%rcx,%rax,1),%xmm0
331 addq $16,%rax 327 addq $16,%rax
328 .byte 102,15,56,222,233
329 .byte 102,15,56,222,241
330 .byte 102,15,56,222,249
331 movups -16(%rcx,%rax,1),%xmm0
332 jmp L$dec_loop6_enter 332 jmp L$dec_loop6_enter
333 .p2align 4 333 .p2align 4
334 L$dec_loop6: 334 L$dec_loop6:
335 .byte 102,15,56,222,209 335 .byte 102,15,56,222,209
336 .byte 102,15,56,222,217 336 .byte 102,15,56,222,217
337 .byte 102,15,56,222,225 337 .byte 102,15,56,222,225
338 L$dec_loop6_enter:
339 .byte 102,15,56,222,233 338 .byte 102,15,56,222,233
340 .byte 102,15,56,222,241 339 .byte 102,15,56,222,241
341 .byte 102,15,56,222,249 340 .byte 102,15,56,222,249
341 L$dec_loop6_enter:
342 movups (%rcx,%rax,1),%xmm1 342 movups (%rcx,%rax,1),%xmm1
343 addq $32,%rax 343 addq $32,%rax
344 .byte 102,15,56,222,208 344 .byte 102,15,56,222,208
345 .byte 102,15,56,222,216 345 .byte 102,15,56,222,216
346 .byte 102,15,56,222,224 346 .byte 102,15,56,222,224
347 .byte 102,15,56,222,232 347 .byte 102,15,56,222,232
348 .byte 102,15,56,222,240 348 .byte 102,15,56,222,240
349 .byte 102,15,56,222,248 349 .byte 102,15,56,222,248
350 movups -16(%rcx,%rax,1),%xmm0 350 movups -16(%rcx,%rax,1),%xmm0
351 jnz L$dec_loop6 351 jnz L$dec_loop6
(...skipping 19 matching lines...) Expand all
371 shll $4,%eax 371 shll $4,%eax
372 movups 16(%rcx),%xmm1 372 movups 16(%rcx),%xmm1
373 xorps %xmm0,%xmm2 373 xorps %xmm0,%xmm2
374 xorps %xmm0,%xmm3 374 xorps %xmm0,%xmm3
375 pxor %xmm0,%xmm4 375 pxor %xmm0,%xmm4
376 pxor %xmm0,%xmm5 376 pxor %xmm0,%xmm5
377 pxor %xmm0,%xmm6 377 pxor %xmm0,%xmm6
378 leaq 32(%rcx,%rax,1),%rcx 378 leaq 32(%rcx,%rax,1),%rcx
379 negq %rax 379 negq %rax
380 .byte 102,15,56,220,209 380 .byte 102,15,56,220,209
381 addq $16,%rax
381 pxor %xmm0,%xmm7 382 pxor %xmm0,%xmm7
383 .byte 102,15,56,220,217
382 pxor %xmm0,%xmm8 384 pxor %xmm0,%xmm8
383 .byte 102,15,56,220,217
384 pxor %xmm0,%xmm9 385 pxor %xmm0,%xmm9
385 » movups» (%rcx,%rax,1),%xmm0 386 .byte» 102,15,56,220,225
386 » addq» $16,%rax 387 .byte» 102,15,56,220,233
387 » jmp» L$enc_loop8_inner 388 .byte» 102,15,56,220,241
389 .byte» 102,15,56,220,249
390 .byte» 102,68,15,56,220,193
391 .byte» 102,68,15,56,220,201
392 » movups» -16(%rcx,%rax,1),%xmm0
393 » jmp» L$enc_loop8_enter
388 .p2align 4 394 .p2align 4
389 L$enc_loop8: 395 L$enc_loop8:
390 .byte 102,15,56,220,209 396 .byte 102,15,56,220,209
391 .byte 102,15,56,220,217 397 .byte 102,15,56,220,217
392 L$enc_loop8_inner:
393 .byte 102,15,56,220,225 398 .byte 102,15,56,220,225
394 .byte 102,15,56,220,233 399 .byte 102,15,56,220,233
395 .byte 102,15,56,220,241 400 .byte 102,15,56,220,241
396 .byte 102,15,56,220,249 401 .byte 102,15,56,220,249
397 .byte 102,68,15,56,220,193 402 .byte 102,68,15,56,220,193
398 .byte 102,68,15,56,220,201 403 .byte 102,68,15,56,220,201
399 L$enc_loop8_enter: 404 L$enc_loop8_enter:
400 movups (%rcx,%rax,1),%xmm1 405 movups (%rcx,%rax,1),%xmm1
401 addq $32,%rax 406 addq $32,%rax
402 .byte 102,15,56,220,208 407 .byte 102,15,56,220,208
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 shll $4,%eax 440 shll $4,%eax
436 movups 16(%rcx),%xmm1 441 movups 16(%rcx),%xmm1
437 xorps %xmm0,%xmm2 442 xorps %xmm0,%xmm2
438 xorps %xmm0,%xmm3 443 xorps %xmm0,%xmm3
439 pxor %xmm0,%xmm4 444 pxor %xmm0,%xmm4
440 pxor %xmm0,%xmm5 445 pxor %xmm0,%xmm5
441 pxor %xmm0,%xmm6 446 pxor %xmm0,%xmm6
442 leaq 32(%rcx,%rax,1),%rcx 447 leaq 32(%rcx,%rax,1),%rcx
443 negq %rax 448 negq %rax
444 .byte 102,15,56,222,209 449 .byte 102,15,56,222,209
450 addq $16,%rax
445 pxor %xmm0,%xmm7 451 pxor %xmm0,%xmm7
452 .byte 102,15,56,222,217
446 pxor %xmm0,%xmm8 453 pxor %xmm0,%xmm8
447 .byte 102,15,56,222,217
448 pxor %xmm0,%xmm9 454 pxor %xmm0,%xmm9
449 » movups» (%rcx,%rax,1),%xmm0 455 .byte» 102,15,56,222,225
450 » addq» $16,%rax 456 .byte» 102,15,56,222,233
451 » jmp» L$dec_loop8_inner 457 .byte» 102,15,56,222,241
458 .byte» 102,15,56,222,249
459 .byte» 102,68,15,56,222,193
460 .byte» 102,68,15,56,222,201
461 » movups» -16(%rcx,%rax,1),%xmm0
462 » jmp» L$dec_loop8_enter
452 .p2align 4 463 .p2align 4
453 L$dec_loop8: 464 L$dec_loop8:
454 .byte 102,15,56,222,209 465 .byte 102,15,56,222,209
455 .byte 102,15,56,222,217 466 .byte 102,15,56,222,217
456 L$dec_loop8_inner:
457 .byte 102,15,56,222,225 467 .byte 102,15,56,222,225
458 .byte 102,15,56,222,233 468 .byte 102,15,56,222,233
459 .byte 102,15,56,222,241 469 .byte 102,15,56,222,241
460 .byte 102,15,56,222,249 470 .byte 102,15,56,222,249
461 .byte 102,68,15,56,222,193 471 .byte 102,68,15,56,222,193
462 .byte 102,68,15,56,222,201 472 .byte 102,68,15,56,222,201
463 L$dec_loop8_enter: 473 L$dec_loop8_enter:
464 movups (%rcx,%rax,1),%xmm1 474 movups (%rcx,%rax,1),%xmm1
465 addq $32,%rax 475 addq $32,%rax
466 .byte 102,15,56,222,208 476 .byte 102,15,56,222,208
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
574 cmpq $64,%rdx 584 cmpq $64,%rdx
575 jb L$ecb_enc_three 585 jb L$ecb_enc_three
576 movups 48(%rdi),%xmm5 586 movups 48(%rdi),%xmm5
577 je L$ecb_enc_four 587 je L$ecb_enc_four
578 movups 64(%rdi),%xmm6 588 movups 64(%rdi),%xmm6
579 cmpq $96,%rdx 589 cmpq $96,%rdx
580 jb L$ecb_enc_five 590 jb L$ecb_enc_five
581 movups 80(%rdi),%xmm7 591 movups 80(%rdi),%xmm7
582 je L$ecb_enc_six 592 je L$ecb_enc_six
583 movdqu 96(%rdi),%xmm8 593 movdqu 96(%rdi),%xmm8
584 xorps %xmm9,%xmm9
585 call _aesni_encrypt8 594 call _aesni_encrypt8
586 movups %xmm2,(%rsi) 595 movups %xmm2,(%rsi)
587 movups %xmm3,16(%rsi) 596 movups %xmm3,16(%rsi)
588 movups %xmm4,32(%rsi) 597 movups %xmm4,32(%rsi)
589 movups %xmm5,48(%rsi) 598 movups %xmm5,48(%rsi)
590 movups %xmm6,64(%rsi) 599 movups %xmm6,64(%rsi)
591 movups %xmm7,80(%rsi) 600 movups %xmm7,80(%rsi)
592 movups %xmm8,96(%rsi) 601 movups %xmm8,96(%rsi)
593 jmp L$ecb_ret 602 jmp L$ecb_ret
594 .p2align 4 603 .p2align 4
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
688 leaq 128(%rdi),%rdi 697 leaq 128(%rdi),%rdi
689 L$ecb_dec_loop8_enter: 698 L$ecb_dec_loop8_enter:
690 699
691 call _aesni_decrypt8 700 call _aesni_decrypt8
692 701
693 movups (%r11),%xmm0 702 movups (%r11),%xmm0
694 subq $128,%rdx 703 subq $128,%rdx
695 jnc L$ecb_dec_loop8 704 jnc L$ecb_dec_loop8
696 705
697 movups %xmm2,(%rsi) 706 movups %xmm2,(%rsi)
698 pxor %xmm2,%xmm2
699 movq %r11,%rcx 707 movq %r11,%rcx
700 movups %xmm3,16(%rsi) 708 movups %xmm3,16(%rsi)
701 pxor %xmm3,%xmm3
702 movl %r10d,%eax 709 movl %r10d,%eax
703 movups %xmm4,32(%rsi) 710 movups %xmm4,32(%rsi)
704 pxor %xmm4,%xmm4
705 movups %xmm5,48(%rsi) 711 movups %xmm5,48(%rsi)
706 pxor %xmm5,%xmm5
707 movups %xmm6,64(%rsi) 712 movups %xmm6,64(%rsi)
708 pxor %xmm6,%xmm6
709 movups %xmm7,80(%rsi) 713 movups %xmm7,80(%rsi)
710 pxor %xmm7,%xmm7
711 movups %xmm8,96(%rsi) 714 movups %xmm8,96(%rsi)
712 pxor %xmm8,%xmm8
713 movups %xmm9,112(%rsi) 715 movups %xmm9,112(%rsi)
714 pxor %xmm9,%xmm9
715 leaq 128(%rsi),%rsi 716 leaq 128(%rsi),%rsi
716 addq $128,%rdx 717 addq $128,%rdx
717 jz L$ecb_ret 718 jz L$ecb_ret
718 719
719 L$ecb_dec_tail: 720 L$ecb_dec_tail:
720 movups (%rdi),%xmm2 721 movups (%rdi),%xmm2
721 cmpq $32,%rdx 722 cmpq $32,%rdx
722 jb L$ecb_dec_one 723 jb L$ecb_dec_one
723 movups 16(%rdi),%xmm3 724 movups 16(%rdi),%xmm3
724 je L$ecb_dec_two 725 je L$ecb_dec_two
725 movups 32(%rdi),%xmm4 726 movups 32(%rdi),%xmm4
726 cmpq $64,%rdx 727 cmpq $64,%rdx
727 jb L$ecb_dec_three 728 jb L$ecb_dec_three
728 movups 48(%rdi),%xmm5 729 movups 48(%rdi),%xmm5
729 je L$ecb_dec_four 730 je L$ecb_dec_four
730 movups 64(%rdi),%xmm6 731 movups 64(%rdi),%xmm6
731 cmpq $96,%rdx 732 cmpq $96,%rdx
732 jb L$ecb_dec_five 733 jb L$ecb_dec_five
733 movups 80(%rdi),%xmm7 734 movups 80(%rdi),%xmm7
734 je L$ecb_dec_six 735 je L$ecb_dec_six
735 movups 96(%rdi),%xmm8 736 movups 96(%rdi),%xmm8
736 movups (%rcx),%xmm0 737 movups (%rcx),%xmm0
737 xorps %xmm9,%xmm9
738 call _aesni_decrypt8 738 call _aesni_decrypt8
739 movups %xmm2,(%rsi) 739 movups %xmm2,(%rsi)
740 pxor %xmm2,%xmm2
741 movups %xmm3,16(%rsi) 740 movups %xmm3,16(%rsi)
742 pxor %xmm3,%xmm3
743 movups %xmm4,32(%rsi) 741 movups %xmm4,32(%rsi)
744 pxor %xmm4,%xmm4
745 movups %xmm5,48(%rsi) 742 movups %xmm5,48(%rsi)
746 pxor %xmm5,%xmm5
747 movups %xmm6,64(%rsi) 743 movups %xmm6,64(%rsi)
748 pxor %xmm6,%xmm6
749 movups %xmm7,80(%rsi) 744 movups %xmm7,80(%rsi)
750 pxor %xmm7,%xmm7
751 movups %xmm8,96(%rsi) 745 movups %xmm8,96(%rsi)
752 pxor %xmm8,%xmm8
753 pxor %xmm9,%xmm9
754 jmp L$ecb_ret 746 jmp L$ecb_ret
755 .p2align 4 747 .p2align 4
756 L$ecb_dec_one: 748 L$ecb_dec_one:
757 movups (%rcx),%xmm0 749 movups (%rcx),%xmm0
758 movups 16(%rcx),%xmm1 750 movups 16(%rcx),%xmm1
759 leaq 32(%rcx),%rcx 751 leaq 32(%rcx),%rcx
760 xorps %xmm0,%xmm2 752 xorps %xmm0,%xmm2
761 L$oop_dec1_4: 753 L$oop_dec1_4:
762 .byte 102,15,56,222,209 754 .byte 102,15,56,222,209
763 decl %eax 755 decl %eax
764 movups (%rcx),%xmm1 756 movups (%rcx),%xmm1
765 leaq 16(%rcx),%rcx 757 leaq 16(%rcx),%rcx
766 jnz L$oop_dec1_4 758 jnz L$oop_dec1_4
767 .byte 102,15,56,223,209 759 .byte 102,15,56,223,209
768 movups %xmm2,(%rsi) 760 movups %xmm2,(%rsi)
769 pxor %xmm2,%xmm2
770 jmp L$ecb_ret 761 jmp L$ecb_ret
771 .p2align 4 762 .p2align 4
772 L$ecb_dec_two: 763 L$ecb_dec_two:
773 call _aesni_decrypt2 764 call _aesni_decrypt2
774 movups %xmm2,(%rsi) 765 movups %xmm2,(%rsi)
775 pxor %xmm2,%xmm2
776 movups %xmm3,16(%rsi) 766 movups %xmm3,16(%rsi)
777 pxor %xmm3,%xmm3
778 jmp L$ecb_ret 767 jmp L$ecb_ret
779 .p2align 4 768 .p2align 4
780 L$ecb_dec_three: 769 L$ecb_dec_three:
781 call _aesni_decrypt3 770 call _aesni_decrypt3
782 movups %xmm2,(%rsi) 771 movups %xmm2,(%rsi)
783 pxor %xmm2,%xmm2
784 movups %xmm3,16(%rsi) 772 movups %xmm3,16(%rsi)
785 pxor %xmm3,%xmm3
786 movups %xmm4,32(%rsi) 773 movups %xmm4,32(%rsi)
787 pxor %xmm4,%xmm4
788 jmp L$ecb_ret 774 jmp L$ecb_ret
789 .p2align 4 775 .p2align 4
790 L$ecb_dec_four: 776 L$ecb_dec_four:
791 call _aesni_decrypt4 777 call _aesni_decrypt4
792 movups %xmm2,(%rsi) 778 movups %xmm2,(%rsi)
793 pxor %xmm2,%xmm2
794 movups %xmm3,16(%rsi) 779 movups %xmm3,16(%rsi)
795 pxor %xmm3,%xmm3
796 movups %xmm4,32(%rsi) 780 movups %xmm4,32(%rsi)
797 pxor %xmm4,%xmm4
798 movups %xmm5,48(%rsi) 781 movups %xmm5,48(%rsi)
799 pxor %xmm5,%xmm5
800 jmp L$ecb_ret 782 jmp L$ecb_ret
801 .p2align 4 783 .p2align 4
802 L$ecb_dec_five: 784 L$ecb_dec_five:
803 xorps %xmm7,%xmm7 785 xorps %xmm7,%xmm7
804 call _aesni_decrypt6 786 call _aesni_decrypt6
805 movups %xmm2,(%rsi) 787 movups %xmm2,(%rsi)
806 pxor %xmm2,%xmm2
807 movups %xmm3,16(%rsi) 788 movups %xmm3,16(%rsi)
808 pxor %xmm3,%xmm3
809 movups %xmm4,32(%rsi) 789 movups %xmm4,32(%rsi)
810 pxor %xmm4,%xmm4
811 movups %xmm5,48(%rsi) 790 movups %xmm5,48(%rsi)
812 pxor %xmm5,%xmm5
813 movups %xmm6,64(%rsi) 791 movups %xmm6,64(%rsi)
814 pxor %xmm6,%xmm6
815 pxor %xmm7,%xmm7
816 jmp L$ecb_ret 792 jmp L$ecb_ret
817 .p2align 4 793 .p2align 4
818 L$ecb_dec_six: 794 L$ecb_dec_six:
819 call _aesni_decrypt6 795 call _aesni_decrypt6
820 movups %xmm2,(%rsi) 796 movups %xmm2,(%rsi)
821 pxor %xmm2,%xmm2
822 movups %xmm3,16(%rsi) 797 movups %xmm3,16(%rsi)
823 pxor %xmm3,%xmm3
824 movups %xmm4,32(%rsi) 798 movups %xmm4,32(%rsi)
825 pxor %xmm4,%xmm4
826 movups %xmm5,48(%rsi) 799 movups %xmm5,48(%rsi)
827 pxor %xmm5,%xmm5
828 movups %xmm6,64(%rsi) 800 movups %xmm6,64(%rsi)
829 pxor %xmm6,%xmm6
830 movups %xmm7,80(%rsi) 801 movups %xmm7,80(%rsi)
831 pxor %xmm7,%xmm7
832 802
833 L$ecb_ret: 803 L$ecb_ret:
834 xorps %xmm0,%xmm0
835 pxor %xmm1,%xmm1
836 .byte 0xf3,0xc3 804 .byte 0xf3,0xc3
837 805
838 .globl _aesni_ccm64_encrypt_blocks 806 .globl _aesni_ccm64_encrypt_blocks
839 .private_extern _aesni_ccm64_encrypt_blocks 807 .private_extern _aesni_ccm64_encrypt_blocks
840 808
841 .p2align 4 809 .p2align 4
842 _aesni_ccm64_encrypt_blocks: 810 _aesni_ccm64_encrypt_blocks:
843 movl 240(%rcx),%eax 811 movl 240(%rcx),%eax
844 movdqu (%r8),%xmm6 812 movdqu (%r8),%xmm6
845 movdqa L$increment64(%rip),%xmm9 813 movdqa L$increment64(%rip),%xmm9
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
883 .byte 102,15,56,221,216 851 .byte 102,15,56,221,216
884 852
885 leaq 16(%rdi),%rdi 853 leaq 16(%rdi),%rdi
886 xorps %xmm2,%xmm8 854 xorps %xmm2,%xmm8
887 movdqa %xmm6,%xmm2 855 movdqa %xmm6,%xmm2
888 movups %xmm8,(%rsi) 856 movups %xmm8,(%rsi)
889 .byte 102,15,56,0,215 857 .byte 102,15,56,0,215
890 leaq 16(%rsi),%rsi 858 leaq 16(%rsi),%rsi
891 jnz L$ccm64_enc_outer 859 jnz L$ccm64_enc_outer
892 860
893 pxor %xmm0,%xmm0
894 pxor %xmm1,%xmm1
895 pxor %xmm2,%xmm2
896 movups %xmm3,(%r9) 861 movups %xmm3,(%r9)
897 pxor %xmm3,%xmm3
898 pxor %xmm8,%xmm8
899 pxor %xmm6,%xmm6
900 .byte 0xf3,0xc3 862 .byte 0xf3,0xc3
901 863
902 .globl _aesni_ccm64_decrypt_blocks 864 .globl _aesni_ccm64_decrypt_blocks
903 .private_extern _aesni_ccm64_decrypt_blocks 865 .private_extern _aesni_ccm64_decrypt_blocks
904 866
905 .p2align 4 867 .p2align 4
906 _aesni_ccm64_decrypt_blocks: 868 _aesni_ccm64_decrypt_blocks:
907 movl 240(%rcx),%eax 869 movl 240(%rcx),%eax
908 movups (%r8),%xmm6 870 movups (%r8),%xmm6
909 movdqu (%r9),%xmm3 871 movdqu (%r9),%xmm3
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
981 xorps %xmm0,%xmm8 943 xorps %xmm0,%xmm8
982 leaq 32(%r11),%r11 944 leaq 32(%r11),%r11
983 xorps %xmm8,%xmm3 945 xorps %xmm8,%xmm3
984 L$oop_enc1_6: 946 L$oop_enc1_6:
985 .byte 102,15,56,220,217 947 .byte 102,15,56,220,217
986 decl %eax 948 decl %eax
987 movups (%r11),%xmm1 949 movups (%r11),%xmm1
988 leaq 16(%r11),%r11 950 leaq 16(%r11),%r11
989 jnz L$oop_enc1_6 951 jnz L$oop_enc1_6
990 .byte 102,15,56,221,217 952 .byte 102,15,56,221,217
991 pxor %xmm0,%xmm0
992 pxor %xmm1,%xmm1
993 pxor %xmm2,%xmm2
994 movups %xmm3,(%r9) 953 movups %xmm3,(%r9)
995 pxor %xmm3,%xmm3
996 pxor %xmm8,%xmm8
997 pxor %xmm6,%xmm6
998 .byte 0xf3,0xc3 954 .byte 0xf3,0xc3
999 955
1000 .globl _aesni_ctr32_encrypt_blocks 956 .globl _aesni_ctr32_encrypt_blocks
1001 .private_extern _aesni_ctr32_encrypt_blocks 957 .private_extern _aesni_ctr32_encrypt_blocks
1002 958
1003 .p2align 4 959 .p2align 4
1004 _aesni_ctr32_encrypt_blocks: 960 _aesni_ctr32_encrypt_blocks:
1005 cmpq $1,%rdx
1006 jne L$ctr32_bulk
1007
1008
1009
1010 movups (%r8),%xmm2
1011 movups (%rdi),%xmm3
1012 movl 240(%rcx),%edx
1013 movups (%rcx),%xmm0
1014 movups 16(%rcx),%xmm1
1015 leaq 32(%rcx),%rcx
1016 xorps %xmm0,%xmm2
1017 L$oop_enc1_7:
1018 .byte 102,15,56,220,209
1019 decl %edx
1020 movups (%rcx),%xmm1
1021 leaq 16(%rcx),%rcx
1022 jnz L$oop_enc1_7
1023 .byte 102,15,56,221,209
1024 pxor %xmm0,%xmm0
1025 pxor %xmm1,%xmm1
1026 xorps %xmm3,%xmm2
1027 pxor %xmm3,%xmm3
1028 movups %xmm2,(%rsi)
1029 xorps %xmm2,%xmm2
1030 jmp L$ctr32_epilogue
1031
1032 .p2align 4
1033 L$ctr32_bulk:
1034 leaq (%rsp),%rax 961 leaq (%rsp),%rax
1035 pushq %rbp 962 pushq %rbp
1036 subq $128,%rsp 963 subq $128,%rsp
1037 andq $-16,%rsp 964 andq $-16,%rsp
1038 leaq -8(%rax),%rbp 965 leaq -8(%rax),%rbp
1039 966
1040 967 » cmpq» $1,%rdx
1041 968 » je» L$ctr32_one_shortcut
1042 969
1043 movdqu (%r8),%xmm2 970 movdqu (%r8),%xmm2
1044 movdqu (%rcx),%xmm0 971 movdqu (%rcx),%xmm0
1045 movl 12(%r8),%r8d 972 movl 12(%r8),%r8d
1046 pxor %xmm0,%xmm2 973 pxor %xmm0,%xmm2
1047 movl 12(%rcx),%r11d 974 movl 12(%rcx),%r11d
1048 movdqa %xmm2,0(%rsp) 975 movdqa %xmm2,0(%rsp)
1049 bswapl %r8d 976 bswapl %r8d
1050 movdqa %xmm2,%xmm3 977 movdqa %xmm2,%xmm3
1051 movdqa %xmm2,%xmm4 978 movdqa %xmm2,%xmm4
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
1422 leaq 128(%rsi),%rsi 1349 leaq 128(%rsi),%rsi
1423 1350
1424 subq $8,%rdx 1351 subq $8,%rdx
1425 jnc L$ctr32_loop8 1352 jnc L$ctr32_loop8
1426 1353
1427 addq $8,%rdx 1354 addq $8,%rdx
1428 jz L$ctr32_done 1355 jz L$ctr32_done
1429 leaq -128(%rcx),%rcx 1356 leaq -128(%rcx),%rcx
1430 1357
1431 L$ctr32_tail: 1358 L$ctr32_tail:
1432
1433
1434 leaq 16(%rcx),%rcx 1359 leaq 16(%rcx),%rcx
1435 cmpq $4,%rdx 1360 cmpq $4,%rdx
1436 jb L$ctr32_loop3 1361 jb L$ctr32_loop3
1437 je L$ctr32_loop4 1362 je L$ctr32_loop4
1438 1363
1439
1440 shll $4,%eax 1364 shll $4,%eax
1441 movdqa 96(%rsp),%xmm8 1365 movdqa 96(%rsp),%xmm8
1442 pxor %xmm9,%xmm9 1366 pxor %xmm9,%xmm9
1443 1367
1444 movups 16(%rcx),%xmm0 1368 movups 16(%rcx),%xmm0
1445 .byte 102,15,56,220,209 1369 .byte 102,15,56,220,209
1446 .byte 102,15,56,220,217 1370 .byte 102,15,56,220,217
1447 leaq 32-16(%rcx,%rax,1),%rcx 1371 leaq 32-16(%rcx,%rax,1),%rcx
1448 negq %rax 1372 negq %rax
1449 .byte 102,15,56,220,225 1373 .byte 102,15,56,220,225
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
1532 jb L$ctr32_done 1456 jb L$ctr32_done
1533 1457
1534 movups 16(%rdi),%xmm11 1458 movups 16(%rdi),%xmm11
1535 xorps %xmm11,%xmm3 1459 xorps %xmm11,%xmm3
1536 movups %xmm3,16(%rsi) 1460 movups %xmm3,16(%rsi)
1537 je L$ctr32_done 1461 je L$ctr32_done
1538 1462
1539 movups 32(%rdi),%xmm12 1463 movups 32(%rdi),%xmm12
1540 xorps %xmm12,%xmm4 1464 xorps %xmm12,%xmm4
1541 movups %xmm4,32(%rsi) 1465 movups %xmm4,32(%rsi)
1466 jmp L$ctr32_done
1542 1467
1468 .p2align 4
1469 L$ctr32_one_shortcut:
1470 movups (%r8),%xmm2
1471 movups (%rdi),%xmm10
1472 movl 240(%rcx),%eax
1473 movups (%rcx),%xmm0
1474 movups 16(%rcx),%xmm1
1475 leaq 32(%rcx),%rcx
1476 xorps %xmm0,%xmm2
1477 L$oop_enc1_7:
1478 .byte 102,15,56,220,209
1479 decl %eax
1480 movups (%rcx),%xmm1
1481 leaq 16(%rcx),%rcx
1482 jnz L$oop_enc1_7
1483 .byte 102,15,56,221,209
1484 xorps %xmm10,%xmm2
1485 movups %xmm2,(%rsi)
1486 jmp L$ctr32_done
1487
1488 .p2align 4
1543 L$ctr32_done: 1489 L$ctr32_done:
1544 xorps %xmm0,%xmm0
1545 xorl %r11d,%r11d
1546 pxor %xmm1,%xmm1
1547 pxor %xmm2,%xmm2
1548 pxor %xmm3,%xmm3
1549 pxor %xmm4,%xmm4
1550 pxor %xmm5,%xmm5
1551 pxor %xmm6,%xmm6
1552 pxor %xmm7,%xmm7
1553 movaps %xmm0,0(%rsp)
1554 pxor %xmm8,%xmm8
1555 movaps %xmm0,16(%rsp)
1556 pxor %xmm9,%xmm9
1557 movaps %xmm0,32(%rsp)
1558 pxor %xmm10,%xmm10
1559 movaps %xmm0,48(%rsp)
1560 pxor %xmm11,%xmm11
1561 movaps %xmm0,64(%rsp)
1562 pxor %xmm12,%xmm12
1563 movaps %xmm0,80(%rsp)
1564 pxor %xmm13,%xmm13
1565 movaps %xmm0,96(%rsp)
1566 pxor %xmm14,%xmm14
1567 movaps %xmm0,112(%rsp)
1568 pxor %xmm15,%xmm15
1569 leaq (%rbp),%rsp 1490 leaq (%rbp),%rsp
1570 popq %rbp 1491 popq %rbp
1571 L$ctr32_epilogue: 1492 L$ctr32_epilogue:
1572 .byte 0xf3,0xc3 1493 .byte 0xf3,0xc3
1573 1494
1574 .globl _aesni_xts_encrypt 1495 .globl _aesni_xts_encrypt
1575 .private_extern _aesni_xts_encrypt 1496 .private_extern _aesni_xts_encrypt
1576 1497
1577 .p2align 4 1498 .p2align 4
1578 _aesni_xts_encrypt: 1499 _aesni_xts_encrypt:
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
1830 movups %xmm7,-16(%rsi) 1751 movups %xmm7,-16(%rsi)
1831 subq $96,%rdx 1752 subq $96,%rdx
1832 jnc L$xts_enc_grandloop 1753 jnc L$xts_enc_grandloop
1833 1754
1834 movl $16+96,%eax 1755 movl $16+96,%eax
1835 subl %r10d,%eax 1756 subl %r10d,%eax
1836 movq %r11,%rcx 1757 movq %r11,%rcx
1837 shrl $4,%eax 1758 shrl $4,%eax
1838 1759
1839 L$xts_enc_short: 1760 L$xts_enc_short:
1840
1841 movl %eax,%r10d 1761 movl %eax,%r10d
1842 pxor %xmm0,%xmm10 1762 pxor %xmm0,%xmm10
1843 addq $96,%rdx 1763 addq $96,%rdx
1844 jz L$xts_enc_done 1764 jz L$xts_enc_done
1845 1765
1846 pxor %xmm0,%xmm11 1766 pxor %xmm0,%xmm11
1847 cmpq $32,%rdx 1767 cmpq $32,%rdx
1848 jb L$xts_enc_one 1768 jb L$xts_enc_one
1849 pxor %xmm0,%xmm12 1769 pxor %xmm0,%xmm12
1850 je L$xts_enc_two 1770 je L$xts_enc_two
1851 1771
1852 pxor %xmm0,%xmm13 1772 pxor %xmm0,%xmm13
1853 cmpq $64,%rdx 1773 cmpq $64,%rdx
1854 jb L$xts_enc_three 1774 jb L$xts_enc_three
1855 pxor %xmm0,%xmm14 1775 pxor %xmm0,%xmm14
1856 je L$xts_enc_four 1776 je L$xts_enc_four
1857 1777
1858 movdqu (%rdi),%xmm2 1778 movdqu (%rdi),%xmm2
1859 movdqu 16(%rdi),%xmm3 1779 movdqu 16(%rdi),%xmm3
1860 movdqu 32(%rdi),%xmm4 1780 movdqu 32(%rdi),%xmm4
1861 pxor %xmm10,%xmm2 1781 pxor %xmm10,%xmm2
1862 movdqu 48(%rdi),%xmm5 1782 movdqu 48(%rdi),%xmm5
1863 pxor %xmm11,%xmm3 1783 pxor %xmm11,%xmm3
1864 movdqu 64(%rdi),%xmm6 1784 movdqu 64(%rdi),%xmm6
1865 leaq 80(%rdi),%rdi 1785 leaq 80(%rdi),%rdi
1866 pxor %xmm12,%xmm4 1786 pxor %xmm12,%xmm4
1867 pxor %xmm13,%xmm5 1787 pxor %xmm13,%xmm5
1868 pxor %xmm14,%xmm6 1788 pxor %xmm14,%xmm6
1869 pxor %xmm7,%xmm7
1870 1789
1871 call _aesni_encrypt6 1790 call _aesni_encrypt6
1872 1791
1873 xorps %xmm10,%xmm2 1792 xorps %xmm10,%xmm2
1874 movdqa %xmm15,%xmm10 1793 movdqa %xmm15,%xmm10
1875 xorps %xmm11,%xmm3 1794 xorps %xmm11,%xmm3
1876 xorps %xmm12,%xmm4 1795 xorps %xmm12,%xmm4
1877 movdqu %xmm2,(%rsi) 1796 movdqu %xmm2,(%rsi)
1878 xorps %xmm13,%xmm5 1797 xorps %xmm13,%xmm5
1879 movdqu %xmm3,16(%rsi) 1798 movdqu %xmm3,16(%rsi)
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
2002 .byte 102,15,56,220,209 1921 .byte 102,15,56,220,209
2003 decl %eax 1922 decl %eax
2004 movups (%rcx),%xmm1 1923 movups (%rcx),%xmm1
2005 leaq 16(%rcx),%rcx 1924 leaq 16(%rcx),%rcx
2006 jnz L$oop_enc1_10 1925 jnz L$oop_enc1_10
2007 .byte 102,15,56,221,209 1926 .byte 102,15,56,221,209
2008 xorps %xmm10,%xmm2 1927 xorps %xmm10,%xmm2
2009 movups %xmm2,-16(%rsi) 1928 movups %xmm2,-16(%rsi)
2010 1929
2011 L$xts_enc_ret: 1930 L$xts_enc_ret:
2012 xorps %xmm0,%xmm0
2013 pxor %xmm1,%xmm1
2014 pxor %xmm2,%xmm2
2015 pxor %xmm3,%xmm3
2016 pxor %xmm4,%xmm4
2017 pxor %xmm5,%xmm5
2018 pxor %xmm6,%xmm6
2019 pxor %xmm7,%xmm7
2020 movaps %xmm0,0(%rsp)
2021 pxor %xmm8,%xmm8
2022 movaps %xmm0,16(%rsp)
2023 pxor %xmm9,%xmm9
2024 movaps %xmm0,32(%rsp)
2025 pxor %xmm10,%xmm10
2026 movaps %xmm0,48(%rsp)
2027 pxor %xmm11,%xmm11
2028 movaps %xmm0,64(%rsp)
2029 pxor %xmm12,%xmm12
2030 movaps %xmm0,80(%rsp)
2031 pxor %xmm13,%xmm13
2032 movaps %xmm0,96(%rsp)
2033 pxor %xmm14,%xmm14
2034 pxor %xmm15,%xmm15
2035 leaq (%rbp),%rsp 1931 leaq (%rbp),%rsp
2036 popq %rbp 1932 popq %rbp
2037 L$xts_enc_epilogue: 1933 L$xts_enc_epilogue:
2038 .byte 0xf3,0xc3 1934 .byte 0xf3,0xc3
2039 1935
2040 .globl _aesni_xts_decrypt 1936 .globl _aesni_xts_decrypt
2041 .private_extern _aesni_xts_decrypt 1937 .private_extern _aesni_xts_decrypt
2042 1938
2043 .p2align 4 1939 .p2align 4
2044 _aesni_xts_decrypt: 1940 _aesni_xts_decrypt:
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
2302 movups %xmm7,-16(%rsi) 2198 movups %xmm7,-16(%rsi)
2303 subq $96,%rdx 2199 subq $96,%rdx
2304 jnc L$xts_dec_grandloop 2200 jnc L$xts_dec_grandloop
2305 2201
2306 movl $16+96,%eax 2202 movl $16+96,%eax
2307 subl %r10d,%eax 2203 subl %r10d,%eax
2308 movq %r11,%rcx 2204 movq %r11,%rcx
2309 shrl $4,%eax 2205 shrl $4,%eax
2310 2206
2311 L$xts_dec_short: 2207 L$xts_dec_short:
2312
2313 movl %eax,%r10d 2208 movl %eax,%r10d
2314 pxor %xmm0,%xmm10 2209 pxor %xmm0,%xmm10
2315 pxor %xmm0,%xmm11 2210 pxor %xmm0,%xmm11
2316 addq $96,%rdx 2211 addq $96,%rdx
2317 jz L$xts_dec_done 2212 jz L$xts_dec_done
2318 2213
2319 pxor %xmm0,%xmm12 2214 pxor %xmm0,%xmm12
2320 cmpq $32,%rdx 2215 cmpq $32,%rdx
2321 jb L$xts_dec_one 2216 jb L$xts_dec_one
2322 pxor %xmm0,%xmm13 2217 pxor %xmm0,%xmm13
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
2505 .byte 102,15,56,222,209 2400 .byte 102,15,56,222,209
2506 decl %eax 2401 decl %eax
2507 movups (%rcx),%xmm1 2402 movups (%rcx),%xmm1
2508 leaq 16(%rcx),%rcx 2403 leaq 16(%rcx),%rcx
2509 jnz L$oop_dec1_14 2404 jnz L$oop_dec1_14
2510 .byte 102,15,56,223,209 2405 .byte 102,15,56,223,209
2511 xorps %xmm10,%xmm2 2406 xorps %xmm10,%xmm2
2512 movups %xmm2,(%rsi) 2407 movups %xmm2,(%rsi)
2513 2408
2514 L$xts_dec_ret: 2409 L$xts_dec_ret:
2515 xorps %xmm0,%xmm0
2516 pxor %xmm1,%xmm1
2517 pxor %xmm2,%xmm2
2518 pxor %xmm3,%xmm3
2519 pxor %xmm4,%xmm4
2520 pxor %xmm5,%xmm5
2521 pxor %xmm6,%xmm6
2522 pxor %xmm7,%xmm7
2523 movaps %xmm0,0(%rsp)
2524 pxor %xmm8,%xmm8
2525 movaps %xmm0,16(%rsp)
2526 pxor %xmm9,%xmm9
2527 movaps %xmm0,32(%rsp)
2528 pxor %xmm10,%xmm10
2529 movaps %xmm0,48(%rsp)
2530 pxor %xmm11,%xmm11
2531 movaps %xmm0,64(%rsp)
2532 pxor %xmm12,%xmm12
2533 movaps %xmm0,80(%rsp)
2534 pxor %xmm13,%xmm13
2535 movaps %xmm0,96(%rsp)
2536 pxor %xmm14,%xmm14
2537 pxor %xmm15,%xmm15
2538 leaq (%rbp),%rsp 2410 leaq (%rbp),%rsp
2539 popq %rbp 2411 popq %rbp
2540 L$xts_dec_epilogue: 2412 L$xts_dec_epilogue:
2541 .byte 0xf3,0xc3 2413 .byte 0xf3,0xc3
2542 2414
2543 .globl _aesni_cbc_encrypt 2415 .globl _aesni_cbc_encrypt
2544 .private_extern _aesni_cbc_encrypt 2416 .private_extern _aesni_cbc_encrypt
2545 2417
2546 .p2align 4 2418 .p2align 4
2547 _aesni_cbc_encrypt: 2419 _aesni_cbc_encrypt:
(...skipping 29 matching lines...) Expand all
2577 jnz L$oop_enc1_15 2449 jnz L$oop_enc1_15
2578 .byte 102,15,56,221,209 2450 .byte 102,15,56,221,209
2579 movl %r10d,%eax 2451 movl %r10d,%eax
2580 movq %r11,%rcx 2452 movq %r11,%rcx
2581 movups %xmm2,0(%rsi) 2453 movups %xmm2,0(%rsi)
2582 leaq 16(%rsi),%rsi 2454 leaq 16(%rsi),%rsi
2583 subq $16,%rdx 2455 subq $16,%rdx
2584 jnc L$cbc_enc_loop 2456 jnc L$cbc_enc_loop
2585 addq $16,%rdx 2457 addq $16,%rdx
2586 jnz L$cbc_enc_tail 2458 jnz L$cbc_enc_tail
2587 pxor %xmm0,%xmm0
2588 pxor %xmm1,%xmm1
2589 movups %xmm2,(%r8) 2459 movups %xmm2,(%r8)
2590 pxor %xmm2,%xmm2
2591 pxor %xmm3,%xmm3
2592 jmp L$cbc_ret 2460 jmp L$cbc_ret
2593 2461
2594 L$cbc_enc_tail: 2462 L$cbc_enc_tail:
2595 movq %rdx,%rcx 2463 movq %rdx,%rcx
2596 xchgq %rdi,%rsi 2464 xchgq %rdi,%rsi
2597 .long 0x9066A4F3 2465 .long 0x9066A4F3
2598 movl $16,%ecx 2466 movl $16,%ecx
2599 subq %rdx,%rcx 2467 subq %rdx,%rcx
2600 xorl %eax,%eax 2468 xorl %eax,%eax
2601 .long 0x9066AAF3 2469 .long 0x9066AAF3
2602 leaq -16(%rdi),%rdi 2470 leaq -16(%rdi),%rdi
2603 movl %r10d,%eax 2471 movl %r10d,%eax
2604 movq %rdi,%rsi 2472 movq %rdi,%rsi
2605 movq %r11,%rcx 2473 movq %r11,%rcx
2606 xorq %rdx,%rdx 2474 xorq %rdx,%rdx
2607 jmp L$cbc_enc_loop 2475 jmp L$cbc_enc_loop
2608 2476
2609 .p2align 4 2477 .p2align 4
2610 L$cbc_decrypt: 2478 L$cbc_decrypt:
2611 cmpq $16,%rdx
2612 jne L$cbc_decrypt_bulk
2613
2614
2615
2616 movdqu (%rdi),%xmm2
2617 movdqu (%r8),%xmm3
2618 movdqa %xmm2,%xmm4
2619 movups (%rcx),%xmm0
2620 movups 16(%rcx),%xmm1
2621 leaq 32(%rcx),%rcx
2622 xorps %xmm0,%xmm2
2623 L$oop_dec1_16:
2624 .byte 102,15,56,222,209
2625 decl %r10d
2626 movups (%rcx),%xmm1
2627 leaq 16(%rcx),%rcx
2628 jnz L$oop_dec1_16
2629 .byte 102,15,56,223,209
2630 pxor %xmm0,%xmm0
2631 pxor %xmm1,%xmm1
2632 movdqu %xmm4,(%r8)
2633 xorps %xmm3,%xmm2
2634 pxor %xmm3,%xmm3
2635 movups %xmm2,(%rsi)
2636 pxor %xmm2,%xmm2
2637 jmp L$cbc_ret
2638 .p2align 4
2639 L$cbc_decrypt_bulk:
2640 leaq (%rsp),%rax 2479 leaq (%rsp),%rax
2641 pushq %rbp 2480 pushq %rbp
2642 subq $16,%rsp 2481 subq $16,%rsp
2643 andq $-16,%rsp 2482 andq $-16,%rsp
2644 leaq -8(%rax),%rbp 2483 leaq -8(%rax),%rbp
2645 movups (%r8),%xmm10 2484 movups (%r8),%xmm10
2646 movl %r10d,%eax 2485 movl %r10d,%eax
2647 cmpq $80,%rdx 2486 cmpq $80,%rdx
2648 jbe L$cbc_dec_tail 2487 jbe L$cbc_dec_tail
2649 2488
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
2866 movdqa %xmm1,%xmm7 2705 movdqa %xmm1,%xmm7
2867 movups %xmm8,96(%rsi) 2706 movups %xmm8,96(%rsi)
2868 leaq 112(%rsi),%rsi 2707 leaq 112(%rsi),%rsi
2869 2708
2870 subq $128,%rdx 2709 subq $128,%rdx
2871 ja L$cbc_dec_loop8 2710 ja L$cbc_dec_loop8
2872 2711
2873 movaps %xmm9,%xmm2 2712 movaps %xmm9,%xmm2
2874 leaq -112(%rcx),%rcx 2713 leaq -112(%rcx),%rcx
2875 addq $112,%rdx 2714 addq $112,%rdx
2876 » jle» L$cbc_dec_clear_tail_collected 2715 » jle» L$cbc_dec_tail_collected
2877 movups %xmm9,(%rsi) 2716 movups %xmm9,(%rsi)
2878 leaq 16(%rsi),%rsi 2717 leaq 16(%rsi),%rsi
2879 cmpq $80,%rdx 2718 cmpq $80,%rdx
2880 jbe L$cbc_dec_tail 2719 jbe L$cbc_dec_tail
2881 2720
2882 movaps %xmm11,%xmm2 2721 movaps %xmm11,%xmm2
2883 L$cbc_dec_six_or_seven: 2722 L$cbc_dec_six_or_seven:
2884 cmpq $96,%rdx 2723 cmpq $96,%rdx
2885 ja L$cbc_dec_seven 2724 ja L$cbc_dec_seven
2886 2725
2887 movaps %xmm7,%xmm8 2726 movaps %xmm7,%xmm8
2888 call _aesni_decrypt6 2727 call _aesni_decrypt6
2889 pxor %xmm10,%xmm2 2728 pxor %xmm10,%xmm2
2890 movaps %xmm8,%xmm10 2729 movaps %xmm8,%xmm10
2891 pxor %xmm11,%xmm3 2730 pxor %xmm11,%xmm3
2892 movdqu %xmm2,(%rsi) 2731 movdqu %xmm2,(%rsi)
2893 pxor %xmm12,%xmm4 2732 pxor %xmm12,%xmm4
2894 movdqu %xmm3,16(%rsi) 2733 movdqu %xmm3,16(%rsi)
2895 pxor %xmm3,%xmm3
2896 pxor %xmm13,%xmm5 2734 pxor %xmm13,%xmm5
2897 movdqu %xmm4,32(%rsi) 2735 movdqu %xmm4,32(%rsi)
2898 pxor %xmm4,%xmm4
2899 pxor %xmm14,%xmm6 2736 pxor %xmm14,%xmm6
2900 movdqu %xmm5,48(%rsi) 2737 movdqu %xmm5,48(%rsi)
2901 pxor %xmm5,%xmm5
2902 pxor %xmm15,%xmm7 2738 pxor %xmm15,%xmm7
2903 movdqu %xmm6,64(%rsi) 2739 movdqu %xmm6,64(%rsi)
2904 pxor %xmm6,%xmm6
2905 leaq 80(%rsi),%rsi 2740 leaq 80(%rsi),%rsi
2906 movdqa %xmm7,%xmm2 2741 movdqa %xmm7,%xmm2
2907 pxor %xmm7,%xmm7
2908 jmp L$cbc_dec_tail_collected 2742 jmp L$cbc_dec_tail_collected
2909 2743
2910 .p2align 4 2744 .p2align 4
2911 L$cbc_dec_seven: 2745 L$cbc_dec_seven:
2912 movups 96(%rdi),%xmm8 2746 movups 96(%rdi),%xmm8
2913 xorps %xmm9,%xmm9 2747 xorps %xmm9,%xmm9
2914 call _aesni_decrypt8 2748 call _aesni_decrypt8
2915 movups 80(%rdi),%xmm9 2749 movups 80(%rdi),%xmm9
2916 pxor %xmm10,%xmm2 2750 pxor %xmm10,%xmm2
2917 movups 96(%rdi),%xmm10 2751 movups 96(%rdi),%xmm10
2918 pxor %xmm11,%xmm3 2752 pxor %xmm11,%xmm3
2919 movdqu %xmm2,(%rsi) 2753 movdqu %xmm2,(%rsi)
2920 pxor %xmm12,%xmm4 2754 pxor %xmm12,%xmm4
2921 movdqu %xmm3,16(%rsi) 2755 movdqu %xmm3,16(%rsi)
2922 pxor %xmm3,%xmm3
2923 pxor %xmm13,%xmm5 2756 pxor %xmm13,%xmm5
2924 movdqu %xmm4,32(%rsi) 2757 movdqu %xmm4,32(%rsi)
2925 pxor %xmm4,%xmm4
2926 pxor %xmm14,%xmm6 2758 pxor %xmm14,%xmm6
2927 movdqu %xmm5,48(%rsi) 2759 movdqu %xmm5,48(%rsi)
2928 pxor %xmm5,%xmm5
2929 pxor %xmm15,%xmm7 2760 pxor %xmm15,%xmm7
2930 movdqu %xmm6,64(%rsi) 2761 movdqu %xmm6,64(%rsi)
2931 pxor %xmm6,%xmm6
2932 pxor %xmm9,%xmm8 2762 pxor %xmm9,%xmm8
2933 movdqu %xmm7,80(%rsi) 2763 movdqu %xmm7,80(%rsi)
2934 pxor %xmm7,%xmm7
2935 leaq 96(%rsi),%rsi 2764 leaq 96(%rsi),%rsi
2936 movdqa %xmm8,%xmm2 2765 movdqa %xmm8,%xmm2
2937 pxor %xmm8,%xmm8
2938 pxor %xmm9,%xmm9
2939 jmp L$cbc_dec_tail_collected 2766 jmp L$cbc_dec_tail_collected
2940 2767
2941 .p2align 4 2768 .p2align 4
2942 L$cbc_dec_loop6: 2769 L$cbc_dec_loop6:
2943 movups %xmm7,(%rsi) 2770 movups %xmm7,(%rsi)
2944 leaq 16(%rsi),%rsi 2771 leaq 16(%rsi),%rsi
2945 movdqu 0(%rdi),%xmm2 2772 movdqu 0(%rdi),%xmm2
2946 movdqu 16(%rdi),%xmm3 2773 movdqu 16(%rdi),%xmm3
2947 movdqa %xmm2,%xmm11 2774 movdqa %xmm2,%xmm11
2948 movdqu 32(%rdi),%xmm4 2775 movdqu 32(%rdi),%xmm4
(...skipping 23 matching lines...) Expand all
2972 movdqu %xmm5,48(%rsi) 2799 movdqu %xmm5,48(%rsi)
2973 pxor %xmm15,%xmm7 2800 pxor %xmm15,%xmm7
2974 movl %r10d,%eax 2801 movl %r10d,%eax
2975 movdqu %xmm6,64(%rsi) 2802 movdqu %xmm6,64(%rsi)
2976 leaq 80(%rsi),%rsi 2803 leaq 80(%rsi),%rsi
2977 subq $96,%rdx 2804 subq $96,%rdx
2978 ja L$cbc_dec_loop6 2805 ja L$cbc_dec_loop6
2979 2806
2980 movdqa %xmm7,%xmm2 2807 movdqa %xmm7,%xmm2
2981 addq $80,%rdx 2808 addq $80,%rdx
2982 » jle» L$cbc_dec_clear_tail_collected 2809 » jle» L$cbc_dec_tail_collected
2983 movups %xmm7,(%rsi) 2810 movups %xmm7,(%rsi)
2984 leaq 16(%rsi),%rsi 2811 leaq 16(%rsi),%rsi
2985 2812
2986 L$cbc_dec_tail: 2813 L$cbc_dec_tail:
2987 movups (%rdi),%xmm2 2814 movups (%rdi),%xmm2
2988 subq $16,%rdx 2815 subq $16,%rdx
2989 jbe L$cbc_dec_one 2816 jbe L$cbc_dec_one
2990 2817
2991 movups 16(%rdi),%xmm3 2818 movups 16(%rdi),%xmm3
2992 movaps %xmm2,%xmm11 2819 movaps %xmm2,%xmm11
(...skipping 14 matching lines...) Expand all
3007 movaps %xmm5,%xmm14 2834 movaps %xmm5,%xmm14
3008 movaps %xmm6,%xmm15 2835 movaps %xmm6,%xmm15
3009 xorps %xmm7,%xmm7 2836 xorps %xmm7,%xmm7
3010 call _aesni_decrypt6 2837 call _aesni_decrypt6
3011 pxor %xmm10,%xmm2 2838 pxor %xmm10,%xmm2
3012 movaps %xmm15,%xmm10 2839 movaps %xmm15,%xmm10
3013 pxor %xmm11,%xmm3 2840 pxor %xmm11,%xmm3
3014 movdqu %xmm2,(%rsi) 2841 movdqu %xmm2,(%rsi)
3015 pxor %xmm12,%xmm4 2842 pxor %xmm12,%xmm4
3016 movdqu %xmm3,16(%rsi) 2843 movdqu %xmm3,16(%rsi)
3017 pxor %xmm3,%xmm3
3018 pxor %xmm13,%xmm5 2844 pxor %xmm13,%xmm5
3019 movdqu %xmm4,32(%rsi) 2845 movdqu %xmm4,32(%rsi)
3020 pxor %xmm4,%xmm4
3021 pxor %xmm14,%xmm6 2846 pxor %xmm14,%xmm6
3022 movdqu %xmm5,48(%rsi) 2847 movdqu %xmm5,48(%rsi)
3023 pxor %xmm5,%xmm5
3024 leaq 64(%rsi),%rsi 2848 leaq 64(%rsi),%rsi
3025 movdqa %xmm6,%xmm2 2849 movdqa %xmm6,%xmm2
3026 pxor %xmm6,%xmm6
3027 pxor %xmm7,%xmm7
3028 subq $16,%rdx 2850 subq $16,%rdx
3029 jmp L$cbc_dec_tail_collected 2851 jmp L$cbc_dec_tail_collected
3030 2852
3031 .p2align 4 2853 .p2align 4
3032 L$cbc_dec_one: 2854 L$cbc_dec_one:
3033 movaps %xmm2,%xmm11 2855 movaps %xmm2,%xmm11
3034 movups (%rcx),%xmm0 2856 movups (%rcx),%xmm0
3035 movups 16(%rcx),%xmm1 2857 movups 16(%rcx),%xmm1
3036 leaq 32(%rcx),%rcx 2858 leaq 32(%rcx),%rcx
3037 xorps %xmm0,%xmm2 2859 xorps %xmm0,%xmm2
3038 L$oop_dec1_17: 2860 L$oop_dec1_16:
3039 .byte 102,15,56,222,209 2861 .byte 102,15,56,222,209
3040 decl %eax 2862 decl %eax
3041 movups (%rcx),%xmm1 2863 movups (%rcx),%xmm1
3042 leaq 16(%rcx),%rcx 2864 leaq 16(%rcx),%rcx
3043 » jnz» L$oop_dec1_17 2865 » jnz» L$oop_dec1_16
3044 .byte 102,15,56,223,209 2866 .byte 102,15,56,223,209
3045 xorps %xmm10,%xmm2 2867 xorps %xmm10,%xmm2
3046 movaps %xmm11,%xmm10 2868 movaps %xmm11,%xmm10
3047 jmp L$cbc_dec_tail_collected 2869 jmp L$cbc_dec_tail_collected
3048 .p2align 4 2870 .p2align 4
3049 L$cbc_dec_two: 2871 L$cbc_dec_two:
3050 movaps %xmm3,%xmm12 2872 movaps %xmm3,%xmm12
3051 call _aesni_decrypt2 2873 call _aesni_decrypt2
3052 pxor %xmm10,%xmm2 2874 pxor %xmm10,%xmm2
3053 movaps %xmm12,%xmm10 2875 movaps %xmm12,%xmm10
3054 pxor %xmm11,%xmm3 2876 pxor %xmm11,%xmm3
3055 movdqu %xmm2,(%rsi) 2877 movdqu %xmm2,(%rsi)
3056 movdqa %xmm3,%xmm2 2878 movdqa %xmm3,%xmm2
3057 pxor %xmm3,%xmm3
3058 leaq 16(%rsi),%rsi 2879 leaq 16(%rsi),%rsi
3059 jmp L$cbc_dec_tail_collected 2880 jmp L$cbc_dec_tail_collected
3060 .p2align 4 2881 .p2align 4
3061 L$cbc_dec_three: 2882 L$cbc_dec_three:
3062 movaps %xmm4,%xmm13 2883 movaps %xmm4,%xmm13
3063 call _aesni_decrypt3 2884 call _aesni_decrypt3
3064 pxor %xmm10,%xmm2 2885 pxor %xmm10,%xmm2
3065 movaps %xmm13,%xmm10 2886 movaps %xmm13,%xmm10
3066 pxor %xmm11,%xmm3 2887 pxor %xmm11,%xmm3
3067 movdqu %xmm2,(%rsi) 2888 movdqu %xmm2,(%rsi)
3068 pxor %xmm12,%xmm4 2889 pxor %xmm12,%xmm4
3069 movdqu %xmm3,16(%rsi) 2890 movdqu %xmm3,16(%rsi)
3070 pxor %xmm3,%xmm3
3071 movdqa %xmm4,%xmm2 2891 movdqa %xmm4,%xmm2
3072 pxor %xmm4,%xmm4
3073 leaq 32(%rsi),%rsi 2892 leaq 32(%rsi),%rsi
3074 jmp L$cbc_dec_tail_collected 2893 jmp L$cbc_dec_tail_collected
3075 .p2align 4 2894 .p2align 4
3076 L$cbc_dec_four: 2895 L$cbc_dec_four:
3077 movaps %xmm5,%xmm14 2896 movaps %xmm5,%xmm14
3078 call _aesni_decrypt4 2897 call _aesni_decrypt4
3079 pxor %xmm10,%xmm2 2898 pxor %xmm10,%xmm2
3080 movaps %xmm14,%xmm10 2899 movaps %xmm14,%xmm10
3081 pxor %xmm11,%xmm3 2900 pxor %xmm11,%xmm3
3082 movdqu %xmm2,(%rsi) 2901 movdqu %xmm2,(%rsi)
3083 pxor %xmm12,%xmm4 2902 pxor %xmm12,%xmm4
3084 movdqu %xmm3,16(%rsi) 2903 movdqu %xmm3,16(%rsi)
3085 pxor %xmm3,%xmm3
3086 pxor %xmm13,%xmm5 2904 pxor %xmm13,%xmm5
3087 movdqu %xmm4,32(%rsi) 2905 movdqu %xmm4,32(%rsi)
3088 pxor %xmm4,%xmm4
3089 movdqa %xmm5,%xmm2 2906 movdqa %xmm5,%xmm2
3090 pxor %xmm5,%xmm5
3091 leaq 48(%rsi),%rsi 2907 leaq 48(%rsi),%rsi
3092 jmp L$cbc_dec_tail_collected 2908 jmp L$cbc_dec_tail_collected
3093 2909
3094 .p2align 4 2910 .p2align 4
3095 L$cbc_dec_clear_tail_collected:
3096 pxor %xmm3,%xmm3
3097 pxor %xmm4,%xmm4
3098 pxor %xmm5,%xmm5
3099 pxor %xmm6,%xmm6
3100 pxor %xmm7,%xmm7
3101 pxor %xmm8,%xmm8
3102 pxor %xmm9,%xmm9
3103 L$cbc_dec_tail_collected: 2911 L$cbc_dec_tail_collected:
3104 movups %xmm10,(%r8) 2912 movups %xmm10,(%r8)
3105 andq $15,%rdx 2913 andq $15,%rdx
3106 jnz L$cbc_dec_tail_partial 2914 jnz L$cbc_dec_tail_partial
3107 movups %xmm2,(%rsi) 2915 movups %xmm2,(%rsi)
3108 pxor %xmm2,%xmm2
3109 jmp L$cbc_dec_ret 2916 jmp L$cbc_dec_ret
3110 .p2align 4 2917 .p2align 4
3111 L$cbc_dec_tail_partial: 2918 L$cbc_dec_tail_partial:
3112 movaps %xmm2,(%rsp) 2919 movaps %xmm2,(%rsp)
3113 pxor %xmm2,%xmm2
3114 movq $16,%rcx 2920 movq $16,%rcx
3115 movq %rsi,%rdi 2921 movq %rsi,%rdi
3116 subq %rdx,%rcx 2922 subq %rdx,%rcx
3117 leaq (%rsp),%rsi 2923 leaq (%rsp),%rsi
3118 .long 0x9066A4F3 2924 .long 0x9066A4F3
3119 movdqa %xmm2,(%rsp)
3120 2925
3121 L$cbc_dec_ret: 2926 L$cbc_dec_ret:
3122 xorps %xmm0,%xmm0
3123 pxor %xmm1,%xmm1
3124 leaq (%rbp),%rsp 2927 leaq (%rbp),%rsp
3125 popq %rbp 2928 popq %rbp
3126 L$cbc_ret: 2929 L$cbc_ret:
3127 .byte 0xf3,0xc3 2930 .byte 0xf3,0xc3
3128 2931
3129 .globl _aesni_set_decrypt_key 2932 .globl _aesni_set_decrypt_key
3130 .private_extern _aesni_set_decrypt_key 2933 .private_extern _aesni_set_decrypt_key
3131 2934
3132 .p2align 4 2935 .p2align 4
3133 _aesni_set_decrypt_key: 2936 _aesni_set_decrypt_key:
(...skipping 18 matching lines...) Expand all
3152 .byte 102,15,56,219,201 2955 .byte 102,15,56,219,201
3153 leaq 16(%rdx),%rdx 2956 leaq 16(%rdx),%rdx
3154 leaq -16(%rdi),%rdi 2957 leaq -16(%rdi),%rdi
3155 movups %xmm0,16(%rdi) 2958 movups %xmm0,16(%rdi)
3156 movups %xmm1,-16(%rdx) 2959 movups %xmm1,-16(%rdx)
3157 cmpq %rdx,%rdi 2960 cmpq %rdx,%rdi
3158 ja L$dec_key_inverse 2961 ja L$dec_key_inverse
3159 2962
3160 movups (%rdx),%xmm0 2963 movups (%rdx),%xmm0
3161 .byte 102,15,56,219,192 2964 .byte 102,15,56,219,192
3162 pxor %xmm1,%xmm1
3163 movups %xmm0,(%rdi) 2965 movups %xmm0,(%rdi)
3164 pxor %xmm0,%xmm0
3165 L$dec_key_ret: 2966 L$dec_key_ret:
3166 addq $8,%rsp 2967 addq $8,%rsp
3167 .byte 0xf3,0xc3 2968 .byte 0xf3,0xc3
3168 L$SEH_end_set_decrypt_key: 2969 L$SEH_end_set_decrypt_key:
3169 2970
3170 .globl _aesni_set_encrypt_key 2971 .globl _aesni_set_encrypt_key
3171 .private_extern _aesni_set_encrypt_key 2972 .private_extern _aesni_set_encrypt_key
3172 2973
3173 .p2align 4 2974 .p2align 4
3174 _aesni_set_encrypt_key: 2975 _aesni_set_encrypt_key:
3175 __aesni_set_encrypt_key: 2976 __aesni_set_encrypt_key:
3176 .byte 0x48,0x83,0xEC,0x08 2977 .byte 0x48,0x83,0xEC,0x08
3177 movq $-1,%rax 2978 movq $-1,%rax
3178 testq %rdi,%rdi 2979 testq %rdi,%rdi
3179 jz L$enc_key_ret 2980 jz L$enc_key_ret
3180 testq %rdx,%rdx 2981 testq %rdx,%rdx
3181 jz L$enc_key_ret 2982 jz L$enc_key_ret
3182 2983
3183 movl $268437504,%r10d
3184 movups (%rdi),%xmm0 2984 movups (%rdi),%xmm0
3185 xorps %xmm4,%xmm4 2985 xorps %xmm4,%xmm4
3186 andl _OPENSSL_ia32cap_P+4(%rip),%r10d
3187 leaq 16(%rdx),%rax 2986 leaq 16(%rdx),%rax
3188 cmpl $256,%esi 2987 cmpl $256,%esi
3189 je L$14rounds 2988 je L$14rounds
3190 cmpl $192,%esi 2989 cmpl $192,%esi
3191 je L$12rounds 2990 je L$12rounds
3192 cmpl $128,%esi 2991 cmpl $128,%esi
3193 jne L$bad_keybits 2992 jne L$bad_keybits
3194 2993
3195 L$10rounds: 2994 L$10rounds:
3196 movl $9,%esi 2995 movl $9,%esi
3197 cmpl $268435456,%r10d
3198 je L$10rounds_alt
3199
3200 movups %xmm0,(%rdx) 2996 movups %xmm0,(%rdx)
3201 .byte 102,15,58,223,200,1 2997 .byte 102,15,58,223,200,1
3202 call L$key_expansion_128_cold 2998 call L$key_expansion_128_cold
3203 .byte 102,15,58,223,200,2 2999 .byte 102,15,58,223,200,2
3204 call L$key_expansion_128 3000 call L$key_expansion_128
3205 .byte 102,15,58,223,200,4 3001 .byte 102,15,58,223,200,4
3206 call L$key_expansion_128 3002 call L$key_expansion_128
3207 .byte 102,15,58,223,200,8 3003 .byte 102,15,58,223,200,8
3208 call L$key_expansion_128 3004 call L$key_expansion_128
3209 .byte 102,15,58,223,200,16 3005 .byte 102,15,58,223,200,16
3210 call L$key_expansion_128 3006 call L$key_expansion_128
3211 .byte 102,15,58,223,200,32 3007 .byte 102,15,58,223,200,32
3212 call L$key_expansion_128 3008 call L$key_expansion_128
3213 .byte 102,15,58,223,200,64 3009 .byte 102,15,58,223,200,64
3214 call L$key_expansion_128 3010 call L$key_expansion_128
3215 .byte 102,15,58,223,200,128 3011 .byte 102,15,58,223,200,128
3216 call L$key_expansion_128 3012 call L$key_expansion_128
3217 .byte 102,15,58,223,200,27 3013 .byte 102,15,58,223,200,27
3218 call L$key_expansion_128 3014 call L$key_expansion_128
3219 .byte 102,15,58,223,200,54 3015 .byte 102,15,58,223,200,54
3220 call L$key_expansion_128 3016 call L$key_expansion_128
3221 movups %xmm0,(%rax) 3017 movups %xmm0,(%rax)
3222 movl %esi,80(%rax) 3018 movl %esi,80(%rax)
3223 xorl %eax,%eax 3019 xorl %eax,%eax
3224 jmp L$enc_key_ret 3020 jmp L$enc_key_ret
3225 3021
3226 .p2align 4 3022 .p2align 4
3227 L$10rounds_alt:
3228 movdqa L$key_rotate(%rip),%xmm5
3229 movl $8,%r10d
3230 movdqa L$key_rcon1(%rip),%xmm4
3231 movdqa %xmm0,%xmm2
3232 movdqu %xmm0,(%rdx)
3233 jmp L$oop_key128
3234
3235 .p2align 4
3236 L$oop_key128:
3237 .byte 102,15,56,0,197
3238 .byte 102,15,56,221,196
3239 pslld $1,%xmm4
3240 leaq 16(%rax),%rax
3241
3242 movdqa %xmm2,%xmm3
3243 pslldq $4,%xmm2
3244 pxor %xmm2,%xmm3
3245 pslldq $4,%xmm2
3246 pxor %xmm2,%xmm3
3247 pslldq $4,%xmm2
3248 pxor %xmm3,%xmm2
3249
3250 pxor %xmm2,%xmm0
3251 movdqu %xmm0,-16(%rax)
3252 movdqa %xmm0,%xmm2
3253
3254 decl %r10d
3255 jnz L$oop_key128
3256
3257 movdqa L$key_rcon1b(%rip),%xmm4
3258
3259 .byte 102,15,56,0,197
3260 .byte 102,15,56,221,196
3261 pslld $1,%xmm4
3262
3263 movdqa %xmm2,%xmm3
3264 pslldq $4,%xmm2
3265 pxor %xmm2,%xmm3
3266 pslldq $4,%xmm2
3267 pxor %xmm2,%xmm3
3268 pslldq $4,%xmm2
3269 pxor %xmm3,%xmm2
3270
3271 pxor %xmm2,%xmm0
3272 movdqu %xmm0,(%rax)
3273
3274 movdqa %xmm0,%xmm2
3275 .byte 102,15,56,0,197
3276 .byte 102,15,56,221,196
3277
3278 movdqa %xmm2,%xmm3
3279 pslldq $4,%xmm2
3280 pxor %xmm2,%xmm3
3281 pslldq $4,%xmm2
3282 pxor %xmm2,%xmm3
3283 pslldq $4,%xmm2
3284 pxor %xmm3,%xmm2
3285
3286 pxor %xmm2,%xmm0
3287 movdqu %xmm0,16(%rax)
3288
3289 movl %esi,96(%rax)
3290 xorl %eax,%eax
3291 jmp L$enc_key_ret
3292
3293 .p2align 4
3294 L$12rounds: 3023 L$12rounds:
3295 movq 16(%rdi),%xmm2 3024 movq 16(%rdi),%xmm2
3296 movl $11,%esi 3025 movl $11,%esi
3297 cmpl $268435456,%r10d
3298 je L$12rounds_alt
3299
3300 movups %xmm0,(%rdx) 3026 movups %xmm0,(%rdx)
3301 .byte 102,15,58,223,202,1 3027 .byte 102,15,58,223,202,1
3302 call L$key_expansion_192a_cold 3028 call L$key_expansion_192a_cold
3303 .byte 102,15,58,223,202,2 3029 .byte 102,15,58,223,202,2
3304 call L$key_expansion_192b 3030 call L$key_expansion_192b
3305 .byte 102,15,58,223,202,4 3031 .byte 102,15,58,223,202,4
3306 call L$key_expansion_192a 3032 call L$key_expansion_192a
3307 .byte 102,15,58,223,202,8 3033 .byte 102,15,58,223,202,8
3308 call L$key_expansion_192b 3034 call L$key_expansion_192b
3309 .byte 102,15,58,223,202,16 3035 .byte 102,15,58,223,202,16
3310 call L$key_expansion_192a 3036 call L$key_expansion_192a
3311 .byte 102,15,58,223,202,32 3037 .byte 102,15,58,223,202,32
3312 call L$key_expansion_192b 3038 call L$key_expansion_192b
3313 .byte 102,15,58,223,202,64 3039 .byte 102,15,58,223,202,64
3314 call L$key_expansion_192a 3040 call L$key_expansion_192a
3315 .byte 102,15,58,223,202,128 3041 .byte 102,15,58,223,202,128
3316 call L$key_expansion_192b 3042 call L$key_expansion_192b
3317 movups %xmm0,(%rax) 3043 movups %xmm0,(%rax)
3318 movl %esi,48(%rax) 3044 movl %esi,48(%rax)
3319 xorq %rax,%rax 3045 xorq %rax,%rax
3320 jmp L$enc_key_ret 3046 jmp L$enc_key_ret
3321 3047
3322 .p2align 4 3048 .p2align 4
3323 L$12rounds_alt:
3324 movdqa L$key_rotate192(%rip),%xmm5
3325 movdqa L$key_rcon1(%rip),%xmm4
3326 movl $8,%r10d
3327 movdqu %xmm0,(%rdx)
3328 jmp L$oop_key192
3329
3330 .p2align 4
3331 L$oop_key192:
3332 movq %xmm2,0(%rax)
3333 movdqa %xmm2,%xmm1
3334 .byte 102,15,56,0,213
3335 .byte 102,15,56,221,212
3336 pslld $1,%xmm4
3337 leaq 24(%rax),%rax
3338
3339 movdqa %xmm0,%xmm3
3340 pslldq $4,%xmm0
3341 pxor %xmm0,%xmm3
3342 pslldq $4,%xmm0
3343 pxor %xmm0,%xmm3
3344 pslldq $4,%xmm0
3345 pxor %xmm3,%xmm0
3346
3347 pshufd $255,%xmm0,%xmm3
3348 pxor %xmm1,%xmm3
3349 pslldq $4,%xmm1
3350 pxor %xmm1,%xmm3
3351
3352 pxor %xmm2,%xmm0
3353 pxor %xmm3,%xmm2
3354 movdqu %xmm0,-16(%rax)
3355
3356 decl %r10d
3357 jnz L$oop_key192
3358
3359 movl %esi,32(%rax)
3360 xorl %eax,%eax
3361 jmp L$enc_key_ret
3362
3363 .p2align 4
3364 L$14rounds: 3049 L$14rounds:
3365 movups 16(%rdi),%xmm2 3050 movups 16(%rdi),%xmm2
3366 movl $13,%esi 3051 movl $13,%esi
3367 leaq 16(%rax),%rax 3052 leaq 16(%rax),%rax
3368 cmpl $268435456,%r10d
3369 je L$14rounds_alt
3370
3371 movups %xmm0,(%rdx) 3053 movups %xmm0,(%rdx)
3372 movups %xmm2,16(%rdx) 3054 movups %xmm2,16(%rdx)
3373 .byte 102,15,58,223,202,1 3055 .byte 102,15,58,223,202,1
3374 call L$key_expansion_256a_cold 3056 call L$key_expansion_256a_cold
3375 .byte 102,15,58,223,200,1 3057 .byte 102,15,58,223,200,1
3376 call L$key_expansion_256b 3058 call L$key_expansion_256b
3377 .byte 102,15,58,223,202,2 3059 .byte 102,15,58,223,202,2
3378 call L$key_expansion_256a 3060 call L$key_expansion_256a
3379 .byte 102,15,58,223,200,2 3061 .byte 102,15,58,223,200,2
3380 call L$key_expansion_256b 3062 call L$key_expansion_256b
(...skipping 14 matching lines...) Expand all
3395 .byte 102,15,58,223,200,32 3077 .byte 102,15,58,223,200,32
3396 call L$key_expansion_256b 3078 call L$key_expansion_256b
3397 .byte 102,15,58,223,202,64 3079 .byte 102,15,58,223,202,64
3398 call L$key_expansion_256a 3080 call L$key_expansion_256a
3399 movups %xmm0,(%rax) 3081 movups %xmm0,(%rax)
3400 movl %esi,16(%rax) 3082 movl %esi,16(%rax)
3401 xorq %rax,%rax 3083 xorq %rax,%rax
3402 jmp L$enc_key_ret 3084 jmp L$enc_key_ret
3403 3085
3404 .p2align 4 3086 .p2align 4
3405 L$14rounds_alt:
3406 movdqa L$key_rotate(%rip),%xmm5
3407 movdqa L$key_rcon1(%rip),%xmm4
3408 movl $7,%r10d
3409 movdqu %xmm0,0(%rdx)
3410 movdqa %xmm2,%xmm1
3411 movdqu %xmm2,16(%rdx)
3412 jmp L$oop_key256
3413
3414 .p2align 4
3415 L$oop_key256:
3416 .byte 102,15,56,0,213
3417 .byte 102,15,56,221,212
3418
3419 movdqa %xmm0,%xmm3
3420 pslldq $4,%xmm0
3421 pxor %xmm0,%xmm3
3422 pslldq $4,%xmm0
3423 pxor %xmm0,%xmm3
3424 pslldq $4,%xmm0
3425 pxor %xmm3,%xmm0
3426 pslld $1,%xmm4
3427
3428 pxor %xmm2,%xmm0
3429 movdqu %xmm0,(%rax)
3430
3431 decl %r10d
3432 jz L$done_key256
3433
3434 pshufd $255,%xmm0,%xmm2
3435 pxor %xmm3,%xmm3
3436 .byte 102,15,56,221,211
3437
3438 movdqa %xmm1,%xmm3
3439 pslldq $4,%xmm1
3440 pxor %xmm1,%xmm3
3441 pslldq $4,%xmm1
3442 pxor %xmm1,%xmm3
3443 pslldq $4,%xmm1
3444 pxor %xmm3,%xmm1
3445
3446 pxor %xmm1,%xmm2
3447 movdqu %xmm2,16(%rax)
3448 leaq 32(%rax),%rax
3449 movdqa %xmm2,%xmm1
3450
3451 jmp L$oop_key256
3452
3453 L$done_key256:
3454 movl %esi,16(%rax)
3455 xorl %eax,%eax
3456 jmp L$enc_key_ret
3457
3458 .p2align 4
3459 L$bad_keybits: 3087 L$bad_keybits:
3460 movq $-2,%rax 3088 movq $-2,%rax
3461 L$enc_key_ret: 3089 L$enc_key_ret:
3462 pxor %xmm0,%xmm0
3463 pxor %xmm1,%xmm1
3464 pxor %xmm2,%xmm2
3465 pxor %xmm3,%xmm3
3466 pxor %xmm4,%xmm4
3467 pxor %xmm5,%xmm5
3468 addq $8,%rsp 3090 addq $8,%rsp
3469 .byte 0xf3,0xc3 3091 .byte 0xf3,0xc3
3470 L$SEH_end_set_encrypt_key: 3092 L$SEH_end_set_encrypt_key:
3471 3093
3472 .p2align 4 3094 .p2align 4
3473 L$key_expansion_128: 3095 L$key_expansion_128:
3474 movups %xmm0,(%rax) 3096 movups %xmm0,(%rax)
3475 leaq 16(%rax),%rax 3097 leaq 16(%rax),%rax
3476 L$key_expansion_128_cold: 3098 L$key_expansion_128_cold:
3477 shufps $16,%xmm0,%xmm4 3099 shufps $16,%xmm0,%xmm4
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
3543 L$bswap_mask: 3165 L$bswap_mask:
3544 .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 3166 .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
3545 L$increment32: 3167 L$increment32:
3546 .long 6,6,6,0 3168 .long 6,6,6,0
3547 L$increment64: 3169 L$increment64:
3548 .long 1,0,0,0 3170 .long 1,0,0,0
3549 L$xts_magic: 3171 L$xts_magic:
3550 .long 0x87,0,1,0 3172 .long 0x87,0,1,0
3551 L$increment1: 3173 L$increment1:
3552 .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 3174 .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
3553 L$key_rotate:
3554 .long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d
3555 L$key_rotate192:
3556 .long 0x04070605,0x04070605,0x04070605,0x04070605
3557 L$key_rcon1:
3558 .long 1,1,1,1
3559 L$key_rcon1b:
3560 .long 0x1b,0x1b,0x1b,0x1b
3561 3175
3562 .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 3176 .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
3563 .p2align 6 3177 .p2align 6
3564 #endif 3178 #endif
OLDNEW
« no previous file with comments | « third_party/boringssl/mac-x86/crypto/aes/aesni-x86.S ('k') | third_party/boringssl/update_gypi_and_asm.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698