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

Side by Side Diff: third_party/boringssl/win-x86_64/crypto/aes/aesni-x86_64.asm

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
« no previous file with comments | « third_party/boringssl/win-x86/crypto/aes/aesni-x86.asm ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 default rel 1 default rel
2 %define XMMWORD 2 %define XMMWORD
3 %define YMMWORD 3 %define YMMWORD
4 %define ZMMWORD 4 %define ZMMWORD
5 section .text code align=64 5 section .text code align=64
6 6
7 EXTERN OPENSSL_ia32cap_P 7 EXTERN OPENSSL_ia32cap_P
8 global aesni_encrypt 8 global aesni_encrypt
9 9
10 ALIGN 16 10 ALIGN 16
11 aesni_encrypt: 11 aesni_encrypt:
12 movups xmm2,XMMWORD[rcx] 12 movups xmm2,XMMWORD[rcx]
13 mov eax,DWORD[240+r8] 13 mov eax,DWORD[240+r8]
14 movups xmm0,XMMWORD[r8] 14 movups xmm0,XMMWORD[r8]
15 movups xmm1,XMMWORD[16+r8] 15 movups xmm1,XMMWORD[16+r8]
16 lea r8,[32+r8] 16 lea r8,[32+r8]
17 xorps xmm2,xmm0 17 xorps xmm2,xmm0
18 $L$oop_enc1_1: 18 $L$oop_enc1_1:
19 DB 102,15,56,220,209 19 DB 102,15,56,220,209
20 dec eax 20 dec eax
21 movups xmm1,XMMWORD[r8] 21 movups xmm1,XMMWORD[r8]
22 lea r8,[16+r8] 22 lea r8,[16+r8]
23 jnz NEAR $L$oop_enc1_1 23 jnz NEAR $L$oop_enc1_1
24 DB 102,15,56,221,209 24 DB 102,15,56,221,209
25 pxor xmm0,xmm0
26 pxor xmm1,xmm1
27 movups XMMWORD[rdx],xmm2 25 movups XMMWORD[rdx],xmm2
28 pxor xmm2,xmm2
29 DB 0F3h,0C3h ;repret 26 DB 0F3h,0C3h ;repret
30 27
31 28
32 global aesni_decrypt 29 global aesni_decrypt
33 30
34 ALIGN 16 31 ALIGN 16
35 aesni_decrypt: 32 aesni_decrypt:
36 movups xmm2,XMMWORD[rcx] 33 movups xmm2,XMMWORD[rcx]
37 mov eax,DWORD[240+r8] 34 mov eax,DWORD[240+r8]
38 movups xmm0,XMMWORD[r8] 35 movups xmm0,XMMWORD[r8]
39 movups xmm1,XMMWORD[16+r8] 36 movups xmm1,XMMWORD[16+r8]
40 lea r8,[32+r8] 37 lea r8,[32+r8]
41 xorps xmm2,xmm0 38 xorps xmm2,xmm0
42 $L$oop_dec1_2: 39 $L$oop_dec1_2:
43 DB 102,15,56,222,209 40 DB 102,15,56,222,209
44 dec eax 41 dec eax
45 movups xmm1,XMMWORD[r8] 42 movups xmm1,XMMWORD[r8]
46 lea r8,[16+r8] 43 lea r8,[16+r8]
47 jnz NEAR $L$oop_dec1_2 44 jnz NEAR $L$oop_dec1_2
48 DB 102,15,56,223,209 45 DB 102,15,56,223,209
49 pxor xmm0,xmm0
50 pxor xmm1,xmm1
51 movups XMMWORD[rdx],xmm2 46 movups XMMWORD[rdx],xmm2
52 pxor xmm2,xmm2
53 DB 0F3h,0C3h ;repret 47 DB 0F3h,0C3h ;repret
54 48
55 49
56 ALIGN 16 50 ALIGN 16
57 _aesni_encrypt2: 51 _aesni_encrypt2:
58 movups xmm0,XMMWORD[rcx] 52 movups xmm0,XMMWORD[rcx]
59 shl eax,4 53 shl eax,4
60 movups xmm1,XMMWORD[16+rcx] 54 movups xmm1,XMMWORD[16+rcx]
61 xorps xmm2,xmm0 55 xorps xmm2,xmm0
62 xorps xmm3,xmm0 56 xorps xmm3,xmm0
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 pxor xmm3,xmm0 262 pxor xmm3,xmm0
269 pxor xmm4,xmm0 263 pxor xmm4,xmm0
270 DB 102,15,56,220,209 264 DB 102,15,56,220,209
271 lea rcx,[32+rax*1+rcx] 265 lea rcx,[32+rax*1+rcx]
272 neg rax 266 neg rax
273 DB 102,15,56,220,217 267 DB 102,15,56,220,217
274 pxor xmm5,xmm0 268 pxor xmm5,xmm0
275 pxor xmm6,xmm0 269 pxor xmm6,xmm0
276 DB 102,15,56,220,225 270 DB 102,15,56,220,225
277 pxor xmm7,xmm0 271 pxor xmm7,xmm0
278 movups xmm0,XMMWORD[rax*1+rcx]
279 add rax,16 272 add rax,16
273 DB 102,15,56,220,233
274 DB 102,15,56,220,241
275 DB 102,15,56,220,249
276 movups xmm0,XMMWORD[((-16))+rax*1+rcx]
280 jmp NEAR $L$enc_loop6_enter 277 jmp NEAR $L$enc_loop6_enter
281 ALIGN 16 278 ALIGN 16
282 $L$enc_loop6: 279 $L$enc_loop6:
283 DB 102,15,56,220,209 280 DB 102,15,56,220,209
284 DB 102,15,56,220,217 281 DB 102,15,56,220,217
285 DB 102,15,56,220,225 282 DB 102,15,56,220,225
286 $L$enc_loop6_enter:
287 DB 102,15,56,220,233 283 DB 102,15,56,220,233
288 DB 102,15,56,220,241 284 DB 102,15,56,220,241
289 DB 102,15,56,220,249 285 DB 102,15,56,220,249
286 $L$enc_loop6_enter:
290 movups xmm1,XMMWORD[rax*1+rcx] 287 movups xmm1,XMMWORD[rax*1+rcx]
291 add rax,32 288 add rax,32
292 DB 102,15,56,220,208 289 DB 102,15,56,220,208
293 DB 102,15,56,220,216 290 DB 102,15,56,220,216
294 DB 102,15,56,220,224 291 DB 102,15,56,220,224
295 DB 102,15,56,220,232 292 DB 102,15,56,220,232
296 DB 102,15,56,220,240 293 DB 102,15,56,220,240
297 DB 102,15,56,220,248 294 DB 102,15,56,220,248
298 movups xmm0,XMMWORD[((-16))+rax*1+rcx] 295 movups xmm0,XMMWORD[((-16))+rax*1+rcx]
299 jnz NEAR $L$enc_loop6 296 jnz NEAR $L$enc_loop6
(...skipping 22 matching lines...) Expand all
322 pxor xmm3,xmm0 319 pxor xmm3,xmm0
323 pxor xmm4,xmm0 320 pxor xmm4,xmm0
324 DB 102,15,56,222,209 321 DB 102,15,56,222,209
325 lea rcx,[32+rax*1+rcx] 322 lea rcx,[32+rax*1+rcx]
326 neg rax 323 neg rax
327 DB 102,15,56,222,217 324 DB 102,15,56,222,217
328 pxor xmm5,xmm0 325 pxor xmm5,xmm0
329 pxor xmm6,xmm0 326 pxor xmm6,xmm0
330 DB 102,15,56,222,225 327 DB 102,15,56,222,225
331 pxor xmm7,xmm0 328 pxor xmm7,xmm0
332 movups xmm0,XMMWORD[rax*1+rcx]
333 add rax,16 329 add rax,16
330 DB 102,15,56,222,233
331 DB 102,15,56,222,241
332 DB 102,15,56,222,249
333 movups xmm0,XMMWORD[((-16))+rax*1+rcx]
334 jmp NEAR $L$dec_loop6_enter 334 jmp NEAR $L$dec_loop6_enter
335 ALIGN 16 335 ALIGN 16
336 $L$dec_loop6: 336 $L$dec_loop6:
337 DB 102,15,56,222,209 337 DB 102,15,56,222,209
338 DB 102,15,56,222,217 338 DB 102,15,56,222,217
339 DB 102,15,56,222,225 339 DB 102,15,56,222,225
340 $L$dec_loop6_enter:
341 DB 102,15,56,222,233 340 DB 102,15,56,222,233
342 DB 102,15,56,222,241 341 DB 102,15,56,222,241
343 DB 102,15,56,222,249 342 DB 102,15,56,222,249
343 $L$dec_loop6_enter:
344 movups xmm1,XMMWORD[rax*1+rcx] 344 movups xmm1,XMMWORD[rax*1+rcx]
345 add rax,32 345 add rax,32
346 DB 102,15,56,222,208 346 DB 102,15,56,222,208
347 DB 102,15,56,222,216 347 DB 102,15,56,222,216
348 DB 102,15,56,222,224 348 DB 102,15,56,222,224
349 DB 102,15,56,222,232 349 DB 102,15,56,222,232
350 DB 102,15,56,222,240 350 DB 102,15,56,222,240
351 DB 102,15,56,222,248 351 DB 102,15,56,222,248
352 movups xmm0,XMMWORD[((-16))+rax*1+rcx] 352 movups xmm0,XMMWORD[((-16))+rax*1+rcx]
353 jnz NEAR $L$dec_loop6 353 jnz NEAR $L$dec_loop6
(...skipping 19 matching lines...) Expand all
373 shl eax,4 373 shl eax,4
374 movups xmm1,XMMWORD[16+rcx] 374 movups xmm1,XMMWORD[16+rcx]
375 xorps xmm2,xmm0 375 xorps xmm2,xmm0
376 xorps xmm3,xmm0 376 xorps xmm3,xmm0
377 pxor xmm4,xmm0 377 pxor xmm4,xmm0
378 pxor xmm5,xmm0 378 pxor xmm5,xmm0
379 pxor xmm6,xmm0 379 pxor xmm6,xmm0
380 lea rcx,[32+rax*1+rcx] 380 lea rcx,[32+rax*1+rcx]
381 neg rax 381 neg rax
382 DB 102,15,56,220,209 382 DB 102,15,56,220,209
383 add rax,16
383 pxor xmm7,xmm0 384 pxor xmm7,xmm0
385 DB 102,15,56,220,217
384 pxor xmm8,xmm0 386 pxor xmm8,xmm0
385 DB 102,15,56,220,217
386 pxor xmm9,xmm0 387 pxor xmm9,xmm0
387 » movups» xmm0,XMMWORD[rax*1+rcx] 388 DB» 102,15,56,220,225
388 » add» rax,16 389 DB» 102,15,56,220,233
389 » jmp» NEAR $L$enc_loop8_inner 390 DB» 102,15,56,220,241
391 DB» 102,15,56,220,249
392 DB» 102,68,15,56,220,193
393 DB» 102,68,15,56,220,201
394 » movups» xmm0,XMMWORD[((-16))+rax*1+rcx]
395 » jmp» NEAR $L$enc_loop8_enter
390 ALIGN 16 396 ALIGN 16
391 $L$enc_loop8: 397 $L$enc_loop8:
392 DB 102,15,56,220,209 398 DB 102,15,56,220,209
393 DB 102,15,56,220,217 399 DB 102,15,56,220,217
394 $L$enc_loop8_inner:
395 DB 102,15,56,220,225 400 DB 102,15,56,220,225
396 DB 102,15,56,220,233 401 DB 102,15,56,220,233
397 DB 102,15,56,220,241 402 DB 102,15,56,220,241
398 DB 102,15,56,220,249 403 DB 102,15,56,220,249
399 DB 102,68,15,56,220,193 404 DB 102,68,15,56,220,193
400 DB 102,68,15,56,220,201 405 DB 102,68,15,56,220,201
401 $L$enc_loop8_enter: 406 $L$enc_loop8_enter:
402 movups xmm1,XMMWORD[rax*1+rcx] 407 movups xmm1,XMMWORD[rax*1+rcx]
403 add rax,32 408 add rax,32
404 DB 102,15,56,220,208 409 DB 102,15,56,220,208
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 shl eax,4 442 shl eax,4
438 movups xmm1,XMMWORD[16+rcx] 443 movups xmm1,XMMWORD[16+rcx]
439 xorps xmm2,xmm0 444 xorps xmm2,xmm0
440 xorps xmm3,xmm0 445 xorps xmm3,xmm0
441 pxor xmm4,xmm0 446 pxor xmm4,xmm0
442 pxor xmm5,xmm0 447 pxor xmm5,xmm0
443 pxor xmm6,xmm0 448 pxor xmm6,xmm0
444 lea rcx,[32+rax*1+rcx] 449 lea rcx,[32+rax*1+rcx]
445 neg rax 450 neg rax
446 DB 102,15,56,222,209 451 DB 102,15,56,222,209
452 add rax,16
447 pxor xmm7,xmm0 453 pxor xmm7,xmm0
454 DB 102,15,56,222,217
448 pxor xmm8,xmm0 455 pxor xmm8,xmm0
449 DB 102,15,56,222,217
450 pxor xmm9,xmm0 456 pxor xmm9,xmm0
451 » movups» xmm0,XMMWORD[rax*1+rcx] 457 DB» 102,15,56,222,225
452 » add» rax,16 458 DB» 102,15,56,222,233
453 » jmp» NEAR $L$dec_loop8_inner 459 DB» 102,15,56,222,241
460 DB» 102,15,56,222,249
461 DB» 102,68,15,56,222,193
462 DB» 102,68,15,56,222,201
463 » movups» xmm0,XMMWORD[((-16))+rax*1+rcx]
464 » jmp» NEAR $L$dec_loop8_enter
454 ALIGN 16 465 ALIGN 16
455 $L$dec_loop8: 466 $L$dec_loop8:
456 DB 102,15,56,222,209 467 DB 102,15,56,222,209
457 DB 102,15,56,222,217 468 DB 102,15,56,222,217
458 $L$dec_loop8_inner:
459 DB 102,15,56,222,225 469 DB 102,15,56,222,225
460 DB 102,15,56,222,233 470 DB 102,15,56,222,233
461 DB 102,15,56,222,241 471 DB 102,15,56,222,241
462 DB 102,15,56,222,249 472 DB 102,15,56,222,249
463 DB 102,68,15,56,222,193 473 DB 102,68,15,56,222,193
464 DB 102,68,15,56,222,201 474 DB 102,68,15,56,222,201
465 $L$dec_loop8_enter: 475 $L$dec_loop8_enter:
466 movups xmm1,XMMWORD[rax*1+rcx] 476 movups xmm1,XMMWORD[rax*1+rcx]
467 add rax,32 477 add rax,32
468 DB 102,15,56,222,208 478 DB 102,15,56,222,208
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
592 cmp rdx,0x40 602 cmp rdx,0x40
593 jb NEAR $L$ecb_enc_three 603 jb NEAR $L$ecb_enc_three
594 movups xmm5,XMMWORD[48+rdi] 604 movups xmm5,XMMWORD[48+rdi]
595 je NEAR $L$ecb_enc_four 605 je NEAR $L$ecb_enc_four
596 movups xmm6,XMMWORD[64+rdi] 606 movups xmm6,XMMWORD[64+rdi]
597 cmp rdx,0x60 607 cmp rdx,0x60
598 jb NEAR $L$ecb_enc_five 608 jb NEAR $L$ecb_enc_five
599 movups xmm7,XMMWORD[80+rdi] 609 movups xmm7,XMMWORD[80+rdi]
600 je NEAR $L$ecb_enc_six 610 je NEAR $L$ecb_enc_six
601 movdqu xmm8,XMMWORD[96+rdi] 611 movdqu xmm8,XMMWORD[96+rdi]
602 xorps xmm9,xmm9
603 call _aesni_encrypt8 612 call _aesni_encrypt8
604 movups XMMWORD[rsi],xmm2 613 movups XMMWORD[rsi],xmm2
605 movups XMMWORD[16+rsi],xmm3 614 movups XMMWORD[16+rsi],xmm3
606 movups XMMWORD[32+rsi],xmm4 615 movups XMMWORD[32+rsi],xmm4
607 movups XMMWORD[48+rsi],xmm5 616 movups XMMWORD[48+rsi],xmm5
608 movups XMMWORD[64+rsi],xmm6 617 movups XMMWORD[64+rsi],xmm6
609 movups XMMWORD[80+rsi],xmm7 618 movups XMMWORD[80+rsi],xmm7
610 movups XMMWORD[96+rsi],xmm8 619 movups XMMWORD[96+rsi],xmm8
611 jmp NEAR $L$ecb_ret 620 jmp NEAR $L$ecb_ret
612 ALIGN 16 621 ALIGN 16
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
706 lea rdi,[128+rdi] 715 lea rdi,[128+rdi]
707 $L$ecb_dec_loop8_enter: 716 $L$ecb_dec_loop8_enter:
708 717
709 call _aesni_decrypt8 718 call _aesni_decrypt8
710 719
711 movups xmm0,XMMWORD[r11] 720 movups xmm0,XMMWORD[r11]
712 sub rdx,0x80 721 sub rdx,0x80
713 jnc NEAR $L$ecb_dec_loop8 722 jnc NEAR $L$ecb_dec_loop8
714 723
715 movups XMMWORD[rsi],xmm2 724 movups XMMWORD[rsi],xmm2
716 pxor xmm2,xmm2
717 mov rcx,r11 725 mov rcx,r11
718 movups XMMWORD[16+rsi],xmm3 726 movups XMMWORD[16+rsi],xmm3
719 pxor xmm3,xmm3
720 mov eax,r10d 727 mov eax,r10d
721 movups XMMWORD[32+rsi],xmm4 728 movups XMMWORD[32+rsi],xmm4
722 pxor xmm4,xmm4
723 movups XMMWORD[48+rsi],xmm5 729 movups XMMWORD[48+rsi],xmm5
724 pxor xmm5,xmm5
725 movups XMMWORD[64+rsi],xmm6 730 movups XMMWORD[64+rsi],xmm6
726 pxor xmm6,xmm6
727 movups XMMWORD[80+rsi],xmm7 731 movups XMMWORD[80+rsi],xmm7
728 pxor xmm7,xmm7
729 movups XMMWORD[96+rsi],xmm8 732 movups XMMWORD[96+rsi],xmm8
730 pxor xmm8,xmm8
731 movups XMMWORD[112+rsi],xmm9 733 movups XMMWORD[112+rsi],xmm9
732 pxor xmm9,xmm9
733 lea rsi,[128+rsi] 734 lea rsi,[128+rsi]
734 add rdx,0x80 735 add rdx,0x80
735 jz NEAR $L$ecb_ret 736 jz NEAR $L$ecb_ret
736 737
737 $L$ecb_dec_tail: 738 $L$ecb_dec_tail:
738 movups xmm2,XMMWORD[rdi] 739 movups xmm2,XMMWORD[rdi]
739 cmp rdx,0x20 740 cmp rdx,0x20
740 jb NEAR $L$ecb_dec_one 741 jb NEAR $L$ecb_dec_one
741 movups xmm3,XMMWORD[16+rdi] 742 movups xmm3,XMMWORD[16+rdi]
742 je NEAR $L$ecb_dec_two 743 je NEAR $L$ecb_dec_two
743 movups xmm4,XMMWORD[32+rdi] 744 movups xmm4,XMMWORD[32+rdi]
744 cmp rdx,0x40 745 cmp rdx,0x40
745 jb NEAR $L$ecb_dec_three 746 jb NEAR $L$ecb_dec_three
746 movups xmm5,XMMWORD[48+rdi] 747 movups xmm5,XMMWORD[48+rdi]
747 je NEAR $L$ecb_dec_four 748 je NEAR $L$ecb_dec_four
748 movups xmm6,XMMWORD[64+rdi] 749 movups xmm6,XMMWORD[64+rdi]
749 cmp rdx,0x60 750 cmp rdx,0x60
750 jb NEAR $L$ecb_dec_five 751 jb NEAR $L$ecb_dec_five
751 movups xmm7,XMMWORD[80+rdi] 752 movups xmm7,XMMWORD[80+rdi]
752 je NEAR $L$ecb_dec_six 753 je NEAR $L$ecb_dec_six
753 movups xmm8,XMMWORD[96+rdi] 754 movups xmm8,XMMWORD[96+rdi]
754 movups xmm0,XMMWORD[rcx] 755 movups xmm0,XMMWORD[rcx]
755 xorps xmm9,xmm9
756 call _aesni_decrypt8 756 call _aesni_decrypt8
757 movups XMMWORD[rsi],xmm2 757 movups XMMWORD[rsi],xmm2
758 pxor xmm2,xmm2
759 movups XMMWORD[16+rsi],xmm3 758 movups XMMWORD[16+rsi],xmm3
760 pxor xmm3,xmm3
761 movups XMMWORD[32+rsi],xmm4 759 movups XMMWORD[32+rsi],xmm4
762 pxor xmm4,xmm4
763 movups XMMWORD[48+rsi],xmm5 760 movups XMMWORD[48+rsi],xmm5
764 pxor xmm5,xmm5
765 movups XMMWORD[64+rsi],xmm6 761 movups XMMWORD[64+rsi],xmm6
766 pxor xmm6,xmm6
767 movups XMMWORD[80+rsi],xmm7 762 movups XMMWORD[80+rsi],xmm7
768 pxor xmm7,xmm7
769 movups XMMWORD[96+rsi],xmm8 763 movups XMMWORD[96+rsi],xmm8
770 pxor xmm8,xmm8
771 pxor xmm9,xmm9
772 jmp NEAR $L$ecb_ret 764 jmp NEAR $L$ecb_ret
773 ALIGN 16 765 ALIGN 16
774 $L$ecb_dec_one: 766 $L$ecb_dec_one:
775 movups xmm0,XMMWORD[rcx] 767 movups xmm0,XMMWORD[rcx]
776 movups xmm1,XMMWORD[16+rcx] 768 movups xmm1,XMMWORD[16+rcx]
777 lea rcx,[32+rcx] 769 lea rcx,[32+rcx]
778 xorps xmm2,xmm0 770 xorps xmm2,xmm0
779 $L$oop_dec1_4: 771 $L$oop_dec1_4:
780 DB 102,15,56,222,209 772 DB 102,15,56,222,209
781 dec eax 773 dec eax
782 movups xmm1,XMMWORD[rcx] 774 movups xmm1,XMMWORD[rcx]
783 lea rcx,[16+rcx] 775 lea rcx,[16+rcx]
784 jnz NEAR $L$oop_dec1_4 776 jnz NEAR $L$oop_dec1_4
785 DB 102,15,56,223,209 777 DB 102,15,56,223,209
786 movups XMMWORD[rsi],xmm2 778 movups XMMWORD[rsi],xmm2
787 pxor xmm2,xmm2
788 jmp NEAR $L$ecb_ret 779 jmp NEAR $L$ecb_ret
789 ALIGN 16 780 ALIGN 16
790 $L$ecb_dec_two: 781 $L$ecb_dec_two:
791 call _aesni_decrypt2 782 call _aesni_decrypt2
792 movups XMMWORD[rsi],xmm2 783 movups XMMWORD[rsi],xmm2
793 pxor xmm2,xmm2
794 movups XMMWORD[16+rsi],xmm3 784 movups XMMWORD[16+rsi],xmm3
795 pxor xmm3,xmm3
796 jmp NEAR $L$ecb_ret 785 jmp NEAR $L$ecb_ret
797 ALIGN 16 786 ALIGN 16
798 $L$ecb_dec_three: 787 $L$ecb_dec_three:
799 call _aesni_decrypt3 788 call _aesni_decrypt3
800 movups XMMWORD[rsi],xmm2 789 movups XMMWORD[rsi],xmm2
801 pxor xmm2,xmm2
802 movups XMMWORD[16+rsi],xmm3 790 movups XMMWORD[16+rsi],xmm3
803 pxor xmm3,xmm3
804 movups XMMWORD[32+rsi],xmm4 791 movups XMMWORD[32+rsi],xmm4
805 pxor xmm4,xmm4
806 jmp NEAR $L$ecb_ret 792 jmp NEAR $L$ecb_ret
807 ALIGN 16 793 ALIGN 16
808 $L$ecb_dec_four: 794 $L$ecb_dec_four:
809 call _aesni_decrypt4 795 call _aesni_decrypt4
810 movups XMMWORD[rsi],xmm2 796 movups XMMWORD[rsi],xmm2
811 pxor xmm2,xmm2
812 movups XMMWORD[16+rsi],xmm3 797 movups XMMWORD[16+rsi],xmm3
813 pxor xmm3,xmm3
814 movups XMMWORD[32+rsi],xmm4 798 movups XMMWORD[32+rsi],xmm4
815 pxor xmm4,xmm4
816 movups XMMWORD[48+rsi],xmm5 799 movups XMMWORD[48+rsi],xmm5
817 pxor xmm5,xmm5
818 jmp NEAR $L$ecb_ret 800 jmp NEAR $L$ecb_ret
819 ALIGN 16 801 ALIGN 16
820 $L$ecb_dec_five: 802 $L$ecb_dec_five:
821 xorps xmm7,xmm7 803 xorps xmm7,xmm7
822 call _aesni_decrypt6 804 call _aesni_decrypt6
823 movups XMMWORD[rsi],xmm2 805 movups XMMWORD[rsi],xmm2
824 pxor xmm2,xmm2
825 movups XMMWORD[16+rsi],xmm3 806 movups XMMWORD[16+rsi],xmm3
826 pxor xmm3,xmm3
827 movups XMMWORD[32+rsi],xmm4 807 movups XMMWORD[32+rsi],xmm4
828 pxor xmm4,xmm4
829 movups XMMWORD[48+rsi],xmm5 808 movups XMMWORD[48+rsi],xmm5
830 pxor xmm5,xmm5
831 movups XMMWORD[64+rsi],xmm6 809 movups XMMWORD[64+rsi],xmm6
832 pxor xmm6,xmm6
833 pxor xmm7,xmm7
834 jmp NEAR $L$ecb_ret 810 jmp NEAR $L$ecb_ret
835 ALIGN 16 811 ALIGN 16
836 $L$ecb_dec_six: 812 $L$ecb_dec_six:
837 call _aesni_decrypt6 813 call _aesni_decrypt6
838 movups XMMWORD[rsi],xmm2 814 movups XMMWORD[rsi],xmm2
839 pxor xmm2,xmm2
840 movups XMMWORD[16+rsi],xmm3 815 movups XMMWORD[16+rsi],xmm3
841 pxor xmm3,xmm3
842 movups XMMWORD[32+rsi],xmm4 816 movups XMMWORD[32+rsi],xmm4
843 pxor xmm4,xmm4
844 movups XMMWORD[48+rsi],xmm5 817 movups XMMWORD[48+rsi],xmm5
845 pxor xmm5,xmm5
846 movups XMMWORD[64+rsi],xmm6 818 movups XMMWORD[64+rsi],xmm6
847 pxor xmm6,xmm6
848 movups XMMWORD[80+rsi],xmm7 819 movups XMMWORD[80+rsi],xmm7
849 pxor xmm7,xmm7
850 820
851 $L$ecb_ret: 821 $L$ecb_ret:
852 xorps xmm0,xmm0
853 pxor xmm1,xmm1
854 movaps xmm6,XMMWORD[rsp] 822 movaps xmm6,XMMWORD[rsp]
855 movaps XMMWORD[rsp],xmm0
856 movaps xmm7,XMMWORD[16+rsp] 823 movaps xmm7,XMMWORD[16+rsp]
857 movaps XMMWORD[16+rsp],xmm0
858 movaps xmm8,XMMWORD[32+rsp] 824 movaps xmm8,XMMWORD[32+rsp]
859 movaps XMMWORD[32+rsp],xmm0
860 movaps xmm9,XMMWORD[48+rsp] 825 movaps xmm9,XMMWORD[48+rsp]
861 movaps XMMWORD[48+rsp],xmm0
862 lea rsp,[88+rsp] 826 lea rsp,[88+rsp]
863 $L$ecb_enc_ret: 827 $L$ecb_enc_ret:
864 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 828 mov rdi,QWORD[8+rsp] ;WIN64 epilogue
865 mov rsi,QWORD[16+rsp] 829 mov rsi,QWORD[16+rsp]
866 DB 0F3h,0C3h ;repret 830 DB 0F3h,0C3h ;repret
867 $L$SEH_end_aesni_ecb_encrypt: 831 $L$SEH_end_aesni_ecb_encrypt:
868 global aesni_ccm64_encrypt_blocks 832 global aesni_ccm64_encrypt_blocks
869 833
870 ALIGN 16 834 ALIGN 16
871 aesni_ccm64_encrypt_blocks: 835 aesni_ccm64_encrypt_blocks:
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
930 DB 102,15,56,221,216 894 DB 102,15,56,221,216
931 895
932 lea rdi,[16+rdi] 896 lea rdi,[16+rdi]
933 xorps xmm8,xmm2 897 xorps xmm8,xmm2
934 movdqa xmm2,xmm6 898 movdqa xmm2,xmm6
935 movups XMMWORD[rsi],xmm8 899 movups XMMWORD[rsi],xmm8
936 DB 102,15,56,0,215 900 DB 102,15,56,0,215
937 lea rsi,[16+rsi] 901 lea rsi,[16+rsi]
938 jnz NEAR $L$ccm64_enc_outer 902 jnz NEAR $L$ccm64_enc_outer
939 903
940 pxor xmm0,xmm0
941 pxor xmm1,xmm1
942 pxor xmm2,xmm2
943 movups XMMWORD[r9],xmm3 904 movups XMMWORD[r9],xmm3
944 pxor xmm3,xmm3
945 pxor xmm8,xmm8
946 pxor xmm6,xmm6
947 movaps xmm6,XMMWORD[rsp] 905 movaps xmm6,XMMWORD[rsp]
948 movaps XMMWORD[rsp],xmm0
949 movaps xmm7,XMMWORD[16+rsp] 906 movaps xmm7,XMMWORD[16+rsp]
950 movaps XMMWORD[16+rsp],xmm0
951 movaps xmm8,XMMWORD[32+rsp] 907 movaps xmm8,XMMWORD[32+rsp]
952 movaps XMMWORD[32+rsp],xmm0
953 movaps xmm9,XMMWORD[48+rsp] 908 movaps xmm9,XMMWORD[48+rsp]
954 movaps XMMWORD[48+rsp],xmm0
955 lea rsp,[88+rsp] 909 lea rsp,[88+rsp]
956 $L$ccm64_enc_ret: 910 $L$ccm64_enc_ret:
957 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 911 mov rdi,QWORD[8+rsp] ;WIN64 epilogue
958 mov rsi,QWORD[16+rsp] 912 mov rsi,QWORD[16+rsp]
959 DB 0F3h,0C3h ;repret 913 DB 0F3h,0C3h ;repret
960 $L$SEH_end_aesni_ccm64_encrypt_blocks: 914 $L$SEH_end_aesni_ccm64_encrypt_blocks:
961 global aesni_ccm64_decrypt_blocks 915 global aesni_ccm64_decrypt_blocks
962 916
963 ALIGN 16 917 ALIGN 16
964 aesni_ccm64_decrypt_blocks: 918 aesni_ccm64_decrypt_blocks:
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
1057 xorps xmm8,xmm0 1011 xorps xmm8,xmm0
1058 lea r11,[32+r11] 1012 lea r11,[32+r11]
1059 xorps xmm3,xmm8 1013 xorps xmm3,xmm8
1060 $L$oop_enc1_6: 1014 $L$oop_enc1_6:
1061 DB 102,15,56,220,217 1015 DB 102,15,56,220,217
1062 dec eax 1016 dec eax
1063 movups xmm1,XMMWORD[r11] 1017 movups xmm1,XMMWORD[r11]
1064 lea r11,[16+r11] 1018 lea r11,[16+r11]
1065 jnz NEAR $L$oop_enc1_6 1019 jnz NEAR $L$oop_enc1_6
1066 DB 102,15,56,221,217 1020 DB 102,15,56,221,217
1067 pxor xmm0,xmm0
1068 pxor xmm1,xmm1
1069 pxor xmm2,xmm2
1070 movups XMMWORD[r9],xmm3 1021 movups XMMWORD[r9],xmm3
1071 pxor xmm3,xmm3
1072 pxor xmm8,xmm8
1073 pxor xmm6,xmm6
1074 movaps xmm6,XMMWORD[rsp] 1022 movaps xmm6,XMMWORD[rsp]
1075 movaps XMMWORD[rsp],xmm0
1076 movaps xmm7,XMMWORD[16+rsp] 1023 movaps xmm7,XMMWORD[16+rsp]
1077 movaps XMMWORD[16+rsp],xmm0
1078 movaps xmm8,XMMWORD[32+rsp] 1024 movaps xmm8,XMMWORD[32+rsp]
1079 movaps XMMWORD[32+rsp],xmm0
1080 movaps xmm9,XMMWORD[48+rsp] 1025 movaps xmm9,XMMWORD[48+rsp]
1081 movaps XMMWORD[48+rsp],xmm0
1082 lea rsp,[88+rsp] 1026 lea rsp,[88+rsp]
1083 $L$ccm64_dec_ret: 1027 $L$ccm64_dec_ret:
1084 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 1028 mov rdi,QWORD[8+rsp] ;WIN64 epilogue
1085 mov rsi,QWORD[16+rsp] 1029 mov rsi,QWORD[16+rsp]
1086 DB 0F3h,0C3h ;repret 1030 DB 0F3h,0C3h ;repret
1087 $L$SEH_end_aesni_ccm64_decrypt_blocks: 1031 $L$SEH_end_aesni_ccm64_decrypt_blocks:
1088 global aesni_ctr32_encrypt_blocks 1032 global aesni_ctr32_encrypt_blocks
1089 1033
1090 ALIGN 16 1034 ALIGN 16
1091 aesni_ctr32_encrypt_blocks: 1035 aesni_ctr32_encrypt_blocks:
1092 mov QWORD[8+rsp],rdi ;WIN64 prologue 1036 mov QWORD[8+rsp],rdi ;WIN64 prologue
1093 mov QWORD[16+rsp],rsi 1037 mov QWORD[16+rsp],rsi
1094 mov rax,rsp 1038 mov rax,rsp
1095 $L$SEH_begin_aesni_ctr32_encrypt_blocks: 1039 $L$SEH_begin_aesni_ctr32_encrypt_blocks:
1096 mov rdi,rcx 1040 mov rdi,rcx
1097 mov rsi,rdx 1041 mov rsi,rdx
1098 mov rdx,r8 1042 mov rdx,r8
1099 mov rcx,r9 1043 mov rcx,r9
1100 mov r8,QWORD[40+rsp] 1044 mov r8,QWORD[40+rsp]
1101 1045
1102 1046
1103 cmp rdx,1
1104 jne NEAR $L$ctr32_bulk
1105
1106
1107
1108 movups xmm2,XMMWORD[r8]
1109 movups xmm3,XMMWORD[rdi]
1110 mov edx,DWORD[240+rcx]
1111 movups xmm0,XMMWORD[rcx]
1112 movups xmm1,XMMWORD[16+rcx]
1113 lea rcx,[32+rcx]
1114 xorps xmm2,xmm0
1115 $L$oop_enc1_7:
1116 DB 102,15,56,220,209
1117 dec edx
1118 movups xmm1,XMMWORD[rcx]
1119 lea rcx,[16+rcx]
1120 jnz NEAR $L$oop_enc1_7
1121 DB 102,15,56,221,209
1122 pxor xmm0,xmm0
1123 pxor xmm1,xmm1
1124 xorps xmm2,xmm3
1125 pxor xmm3,xmm3
1126 movups XMMWORD[rsi],xmm2
1127 xorps xmm2,xmm2
1128 jmp NEAR $L$ctr32_epilogue
1129
1130 ALIGN 16
1131 $L$ctr32_bulk:
1132 lea rax,[rsp] 1047 lea rax,[rsp]
1133 push rbp 1048 push rbp
1134 sub rsp,288 1049 sub rsp,288
1135 and rsp,-16 1050 and rsp,-16
1136 movaps XMMWORD[(-168)+rax],xmm6 1051 movaps XMMWORD[(-168)+rax],xmm6
1137 movaps XMMWORD[(-152)+rax],xmm7 1052 movaps XMMWORD[(-152)+rax],xmm7
1138 movaps XMMWORD[(-136)+rax],xmm8 1053 movaps XMMWORD[(-136)+rax],xmm8
1139 movaps XMMWORD[(-120)+rax],xmm9 1054 movaps XMMWORD[(-120)+rax],xmm9
1140 movaps XMMWORD[(-104)+rax],xmm10 1055 movaps XMMWORD[(-104)+rax],xmm10
1141 movaps XMMWORD[(-88)+rax],xmm11 1056 movaps XMMWORD[(-88)+rax],xmm11
1142 movaps XMMWORD[(-72)+rax],xmm12 1057 movaps XMMWORD[(-72)+rax],xmm12
1143 movaps XMMWORD[(-56)+rax],xmm13 1058 movaps XMMWORD[(-56)+rax],xmm13
1144 movaps XMMWORD[(-40)+rax],xmm14 1059 movaps XMMWORD[(-40)+rax],xmm14
1145 movaps XMMWORD[(-24)+rax],xmm15 1060 movaps XMMWORD[(-24)+rax],xmm15
1146 $L$ctr32_body: 1061 $L$ctr32_body:
1147 lea rbp,[((-8))+rax] 1062 lea rbp,[((-8))+rax]
1148 1063
1149 1064 » cmp» rdx,1
1150 1065 » je» NEAR $L$ctr32_one_shortcut
1151 1066
1152 movdqu xmm2,XMMWORD[r8] 1067 movdqu xmm2,XMMWORD[r8]
1153 movdqu xmm0,XMMWORD[rcx] 1068 movdqu xmm0,XMMWORD[rcx]
1154 mov r8d,DWORD[12+r8] 1069 mov r8d,DWORD[12+r8]
1155 pxor xmm2,xmm0 1070 pxor xmm2,xmm0
1156 mov r11d,DWORD[12+rcx] 1071 mov r11d,DWORD[12+rcx]
1157 movdqa XMMWORD[rsp],xmm2 1072 movdqa XMMWORD[rsp],xmm2
1158 bswap r8d 1073 bswap r8d
1159 movdqa xmm3,xmm2 1074 movdqa xmm3,xmm2
1160 movdqa xmm4,xmm2 1075 movdqa xmm4,xmm2
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
1531 lea rsi,[128+rsi] 1446 lea rsi,[128+rsi]
1532 1447
1533 sub rdx,8 1448 sub rdx,8
1534 jnc NEAR $L$ctr32_loop8 1449 jnc NEAR $L$ctr32_loop8
1535 1450
1536 add rdx,8 1451 add rdx,8
1537 jz NEAR $L$ctr32_done 1452 jz NEAR $L$ctr32_done
1538 lea rcx,[((-128))+rcx] 1453 lea rcx,[((-128))+rcx]
1539 1454
1540 $L$ctr32_tail: 1455 $L$ctr32_tail:
1541
1542
1543 lea rcx,[16+rcx] 1456 lea rcx,[16+rcx]
1544 cmp rdx,4 1457 cmp rdx,4
1545 jb NEAR $L$ctr32_loop3 1458 jb NEAR $L$ctr32_loop3
1546 je NEAR $L$ctr32_loop4 1459 je NEAR $L$ctr32_loop4
1547 1460
1548
1549 shl eax,4 1461 shl eax,4
1550 movdqa xmm8,XMMWORD[96+rsp] 1462 movdqa xmm8,XMMWORD[96+rsp]
1551 pxor xmm9,xmm9 1463 pxor xmm9,xmm9
1552 1464
1553 movups xmm0,XMMWORD[16+rcx] 1465 movups xmm0,XMMWORD[16+rcx]
1554 DB 102,15,56,220,209 1466 DB 102,15,56,220,209
1555 DB 102,15,56,220,217 1467 DB 102,15,56,220,217
1556 lea rcx,[((32-16))+rax*1+rcx] 1468 lea rcx,[((32-16))+rax*1+rcx]
1557 neg rax 1469 neg rax
1558 DB 102,15,56,220,225 1470 DB 102,15,56,220,225
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
1641 jb NEAR $L$ctr32_done 1553 jb NEAR $L$ctr32_done
1642 1554
1643 movups xmm11,XMMWORD[16+rdi] 1555 movups xmm11,XMMWORD[16+rdi]
1644 xorps xmm3,xmm11 1556 xorps xmm3,xmm11
1645 movups XMMWORD[16+rsi],xmm3 1557 movups XMMWORD[16+rsi],xmm3
1646 je NEAR $L$ctr32_done 1558 je NEAR $L$ctr32_done
1647 1559
1648 movups xmm12,XMMWORD[32+rdi] 1560 movups xmm12,XMMWORD[32+rdi]
1649 xorps xmm4,xmm12 1561 xorps xmm4,xmm12
1650 movups XMMWORD[32+rsi],xmm4 1562 movups XMMWORD[32+rsi],xmm4
1563 jmp NEAR $L$ctr32_done
1651 1564
1565 ALIGN 16
1566 $L$ctr32_one_shortcut:
1567 movups xmm2,XMMWORD[r8]
1568 movups xmm10,XMMWORD[rdi]
1569 mov eax,DWORD[240+rcx]
1570 movups xmm0,XMMWORD[rcx]
1571 movups xmm1,XMMWORD[16+rcx]
1572 lea rcx,[32+rcx]
1573 xorps xmm2,xmm0
1574 $L$oop_enc1_7:
1575 DB 102,15,56,220,209
1576 dec eax
1577 movups xmm1,XMMWORD[rcx]
1578 lea rcx,[16+rcx]
1579 jnz NEAR $L$oop_enc1_7
1580 DB 102,15,56,221,209
1581 xorps xmm2,xmm10
1582 movups XMMWORD[rsi],xmm2
1583 jmp NEAR $L$ctr32_done
1584
1585 ALIGN 16
1652 $L$ctr32_done: 1586 $L$ctr32_done:
1653 xorps xmm0,xmm0
1654 xor r11d,r11d
1655 pxor xmm1,xmm1
1656 pxor xmm2,xmm2
1657 pxor xmm3,xmm3
1658 pxor xmm4,xmm4
1659 pxor xmm5,xmm5
1660 movaps xmm6,XMMWORD[((-160))+rbp] 1587 movaps xmm6,XMMWORD[((-160))+rbp]
1661 movaps XMMWORD[(-160)+rbp],xmm0
1662 movaps xmm7,XMMWORD[((-144))+rbp] 1588 movaps xmm7,XMMWORD[((-144))+rbp]
1663 movaps XMMWORD[(-144)+rbp],xmm0
1664 movaps xmm8,XMMWORD[((-128))+rbp] 1589 movaps xmm8,XMMWORD[((-128))+rbp]
1665 movaps XMMWORD[(-128)+rbp],xmm0
1666 movaps xmm9,XMMWORD[((-112))+rbp] 1590 movaps xmm9,XMMWORD[((-112))+rbp]
1667 movaps XMMWORD[(-112)+rbp],xmm0
1668 movaps xmm10,XMMWORD[((-96))+rbp] 1591 movaps xmm10,XMMWORD[((-96))+rbp]
1669 movaps XMMWORD[(-96)+rbp],xmm0
1670 movaps xmm11,XMMWORD[((-80))+rbp] 1592 movaps xmm11,XMMWORD[((-80))+rbp]
1671 movaps XMMWORD[(-80)+rbp],xmm0
1672 movaps xmm12,XMMWORD[((-64))+rbp] 1593 movaps xmm12,XMMWORD[((-64))+rbp]
1673 movaps XMMWORD[(-64)+rbp],xmm0
1674 movaps xmm13,XMMWORD[((-48))+rbp] 1594 movaps xmm13,XMMWORD[((-48))+rbp]
1675 movaps XMMWORD[(-48)+rbp],xmm0
1676 movaps xmm14,XMMWORD[((-32))+rbp] 1595 movaps xmm14,XMMWORD[((-32))+rbp]
1677 movaps XMMWORD[(-32)+rbp],xmm0
1678 movaps xmm15,XMMWORD[((-16))+rbp] 1596 movaps xmm15,XMMWORD[((-16))+rbp]
1679 movaps XMMWORD[(-16)+rbp],xmm0
1680 movaps XMMWORD[rsp],xmm0
1681 movaps XMMWORD[16+rsp],xmm0
1682 movaps XMMWORD[32+rsp],xmm0
1683 movaps XMMWORD[48+rsp],xmm0
1684 movaps XMMWORD[64+rsp],xmm0
1685 movaps XMMWORD[80+rsp],xmm0
1686 movaps XMMWORD[96+rsp],xmm0
1687 movaps XMMWORD[112+rsp],xmm0
1688 lea rsp,[rbp] 1597 lea rsp,[rbp]
1689 pop rbp 1598 pop rbp
1690 $L$ctr32_epilogue: 1599 $L$ctr32_epilogue:
1691 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 1600 mov rdi,QWORD[8+rsp] ;WIN64 epilogue
1692 mov rsi,QWORD[16+rsp] 1601 mov rsi,QWORD[16+rsp]
1693 DB 0F3h,0C3h ;repret 1602 DB 0F3h,0C3h ;repret
1694 $L$SEH_end_aesni_ctr32_encrypt_blocks: 1603 $L$SEH_end_aesni_ctr32_encrypt_blocks:
1695 global aesni_xts_encrypt 1604 global aesni_xts_encrypt
1696 1605
1697 ALIGN 16 1606 ALIGN 16
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
1973 movups XMMWORD[(-16)+rsi],xmm7 1882 movups XMMWORD[(-16)+rsi],xmm7
1974 sub rdx,16*6 1883 sub rdx,16*6
1975 jnc NEAR $L$xts_enc_grandloop 1884 jnc NEAR $L$xts_enc_grandloop
1976 1885
1977 mov eax,16+96 1886 mov eax,16+96
1978 sub eax,r10d 1887 sub eax,r10d
1979 mov rcx,r11 1888 mov rcx,r11
1980 shr eax,4 1889 shr eax,4
1981 1890
1982 $L$xts_enc_short: 1891 $L$xts_enc_short:
1983
1984 mov r10d,eax 1892 mov r10d,eax
1985 pxor xmm10,xmm0 1893 pxor xmm10,xmm0
1986 add rdx,16*6 1894 add rdx,16*6
1987 jz NEAR $L$xts_enc_done 1895 jz NEAR $L$xts_enc_done
1988 1896
1989 pxor xmm11,xmm0 1897 pxor xmm11,xmm0
1990 cmp rdx,0x20 1898 cmp rdx,0x20
1991 jb NEAR $L$xts_enc_one 1899 jb NEAR $L$xts_enc_one
1992 pxor xmm12,xmm0 1900 pxor xmm12,xmm0
1993 je NEAR $L$xts_enc_two 1901 je NEAR $L$xts_enc_two
1994 1902
1995 pxor xmm13,xmm0 1903 pxor xmm13,xmm0
1996 cmp rdx,0x40 1904 cmp rdx,0x40
1997 jb NEAR $L$xts_enc_three 1905 jb NEAR $L$xts_enc_three
1998 pxor xmm14,xmm0 1906 pxor xmm14,xmm0
1999 je NEAR $L$xts_enc_four 1907 je NEAR $L$xts_enc_four
2000 1908
2001 movdqu xmm2,XMMWORD[rdi] 1909 movdqu xmm2,XMMWORD[rdi]
2002 movdqu xmm3,XMMWORD[16+rdi] 1910 movdqu xmm3,XMMWORD[16+rdi]
2003 movdqu xmm4,XMMWORD[32+rdi] 1911 movdqu xmm4,XMMWORD[32+rdi]
2004 pxor xmm2,xmm10 1912 pxor xmm2,xmm10
2005 movdqu xmm5,XMMWORD[48+rdi] 1913 movdqu xmm5,XMMWORD[48+rdi]
2006 pxor xmm3,xmm11 1914 pxor xmm3,xmm11
2007 movdqu xmm6,XMMWORD[64+rdi] 1915 movdqu xmm6,XMMWORD[64+rdi]
2008 lea rdi,[80+rdi] 1916 lea rdi,[80+rdi]
2009 pxor xmm4,xmm12 1917 pxor xmm4,xmm12
2010 pxor xmm5,xmm13 1918 pxor xmm5,xmm13
2011 pxor xmm6,xmm14 1919 pxor xmm6,xmm14
2012 pxor xmm7,xmm7
2013 1920
2014 call _aesni_encrypt6 1921 call _aesni_encrypt6
2015 1922
2016 xorps xmm2,xmm10 1923 xorps xmm2,xmm10
2017 movdqa xmm10,xmm15 1924 movdqa xmm10,xmm15
2018 xorps xmm3,xmm11 1925 xorps xmm3,xmm11
2019 xorps xmm4,xmm12 1926 xorps xmm4,xmm12
2020 movdqu XMMWORD[rsi],xmm2 1927 movdqu XMMWORD[rsi],xmm2
2021 xorps xmm5,xmm13 1928 xorps xmm5,xmm13
2022 movdqu XMMWORD[16+rsi],xmm3 1929 movdqu XMMWORD[16+rsi],xmm3
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
2145 DB 102,15,56,220,209 2052 DB 102,15,56,220,209
2146 dec eax 2053 dec eax
2147 movups xmm1,XMMWORD[rcx] 2054 movups xmm1,XMMWORD[rcx]
2148 lea rcx,[16+rcx] 2055 lea rcx,[16+rcx]
2149 jnz NEAR $L$oop_enc1_10 2056 jnz NEAR $L$oop_enc1_10
2150 DB 102,15,56,221,209 2057 DB 102,15,56,221,209
2151 xorps xmm2,xmm10 2058 xorps xmm2,xmm10
2152 movups XMMWORD[(-16)+rsi],xmm2 2059 movups XMMWORD[(-16)+rsi],xmm2
2153 2060
2154 $L$xts_enc_ret: 2061 $L$xts_enc_ret:
2155 xorps xmm0,xmm0
2156 pxor xmm1,xmm1
2157 pxor xmm2,xmm2
2158 pxor xmm3,xmm3
2159 pxor xmm4,xmm4
2160 pxor xmm5,xmm5
2161 movaps xmm6,XMMWORD[((-160))+rbp] 2062 movaps xmm6,XMMWORD[((-160))+rbp]
2162 movaps XMMWORD[(-160)+rbp],xmm0
2163 movaps xmm7,XMMWORD[((-144))+rbp] 2063 movaps xmm7,XMMWORD[((-144))+rbp]
2164 movaps XMMWORD[(-144)+rbp],xmm0
2165 movaps xmm8,XMMWORD[((-128))+rbp] 2064 movaps xmm8,XMMWORD[((-128))+rbp]
2166 movaps XMMWORD[(-128)+rbp],xmm0
2167 movaps xmm9,XMMWORD[((-112))+rbp] 2065 movaps xmm9,XMMWORD[((-112))+rbp]
2168 movaps XMMWORD[(-112)+rbp],xmm0
2169 movaps xmm10,XMMWORD[((-96))+rbp] 2066 movaps xmm10,XMMWORD[((-96))+rbp]
2170 movaps XMMWORD[(-96)+rbp],xmm0
2171 movaps xmm11,XMMWORD[((-80))+rbp] 2067 movaps xmm11,XMMWORD[((-80))+rbp]
2172 movaps XMMWORD[(-80)+rbp],xmm0
2173 movaps xmm12,XMMWORD[((-64))+rbp] 2068 movaps xmm12,XMMWORD[((-64))+rbp]
2174 movaps XMMWORD[(-64)+rbp],xmm0
2175 movaps xmm13,XMMWORD[((-48))+rbp] 2069 movaps xmm13,XMMWORD[((-48))+rbp]
2176 movaps XMMWORD[(-48)+rbp],xmm0
2177 movaps xmm14,XMMWORD[((-32))+rbp] 2070 movaps xmm14,XMMWORD[((-32))+rbp]
2178 movaps XMMWORD[(-32)+rbp],xmm0
2179 movaps xmm15,XMMWORD[((-16))+rbp] 2071 movaps xmm15,XMMWORD[((-16))+rbp]
2180 movaps XMMWORD[(-16)+rbp],xmm0
2181 movaps XMMWORD[rsp],xmm0
2182 movaps XMMWORD[16+rsp],xmm0
2183 movaps XMMWORD[32+rsp],xmm0
2184 movaps XMMWORD[48+rsp],xmm0
2185 movaps XMMWORD[64+rsp],xmm0
2186 movaps XMMWORD[80+rsp],xmm0
2187 movaps XMMWORD[96+rsp],xmm0
2188 lea rsp,[rbp] 2072 lea rsp,[rbp]
2189 pop rbp 2073 pop rbp
2190 $L$xts_enc_epilogue: 2074 $L$xts_enc_epilogue:
2191 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 2075 mov rdi,QWORD[8+rsp] ;WIN64 epilogue
2192 mov rsi,QWORD[16+rsp] 2076 mov rsi,QWORD[16+rsp]
2193 DB 0F3h,0C3h ;repret 2077 DB 0F3h,0C3h ;repret
2194 $L$SEH_end_aesni_xts_encrypt: 2078 $L$SEH_end_aesni_xts_encrypt:
2195 global aesni_xts_decrypt 2079 global aesni_xts_decrypt
2196 2080
2197 ALIGN 16 2081 ALIGN 16
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
2479 movups XMMWORD[(-16)+rsi],xmm7 2363 movups XMMWORD[(-16)+rsi],xmm7
2480 sub rdx,16*6 2364 sub rdx,16*6
2481 jnc NEAR $L$xts_dec_grandloop 2365 jnc NEAR $L$xts_dec_grandloop
2482 2366
2483 mov eax,16+96 2367 mov eax,16+96
2484 sub eax,r10d 2368 sub eax,r10d
2485 mov rcx,r11 2369 mov rcx,r11
2486 shr eax,4 2370 shr eax,4
2487 2371
2488 $L$xts_dec_short: 2372 $L$xts_dec_short:
2489
2490 mov r10d,eax 2373 mov r10d,eax
2491 pxor xmm10,xmm0 2374 pxor xmm10,xmm0
2492 pxor xmm11,xmm0 2375 pxor xmm11,xmm0
2493 add rdx,16*6 2376 add rdx,16*6
2494 jz NEAR $L$xts_dec_done 2377 jz NEAR $L$xts_dec_done
2495 2378
2496 pxor xmm12,xmm0 2379 pxor xmm12,xmm0
2497 cmp rdx,0x20 2380 cmp rdx,0x20
2498 jb NEAR $L$xts_dec_one 2381 jb NEAR $L$xts_dec_one
2499 pxor xmm13,xmm0 2382 pxor xmm13,xmm0
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
2682 DB 102,15,56,222,209 2565 DB 102,15,56,222,209
2683 dec eax 2566 dec eax
2684 movups xmm1,XMMWORD[rcx] 2567 movups xmm1,XMMWORD[rcx]
2685 lea rcx,[16+rcx] 2568 lea rcx,[16+rcx]
2686 jnz NEAR $L$oop_dec1_14 2569 jnz NEAR $L$oop_dec1_14
2687 DB 102,15,56,223,209 2570 DB 102,15,56,223,209
2688 xorps xmm2,xmm10 2571 xorps xmm2,xmm10
2689 movups XMMWORD[rsi],xmm2 2572 movups XMMWORD[rsi],xmm2
2690 2573
2691 $L$xts_dec_ret: 2574 $L$xts_dec_ret:
2692 xorps xmm0,xmm0
2693 pxor xmm1,xmm1
2694 pxor xmm2,xmm2
2695 pxor xmm3,xmm3
2696 pxor xmm4,xmm4
2697 pxor xmm5,xmm5
2698 movaps xmm6,XMMWORD[((-160))+rbp] 2575 movaps xmm6,XMMWORD[((-160))+rbp]
2699 movaps XMMWORD[(-160)+rbp],xmm0
2700 movaps xmm7,XMMWORD[((-144))+rbp] 2576 movaps xmm7,XMMWORD[((-144))+rbp]
2701 movaps XMMWORD[(-144)+rbp],xmm0
2702 movaps xmm8,XMMWORD[((-128))+rbp] 2577 movaps xmm8,XMMWORD[((-128))+rbp]
2703 movaps XMMWORD[(-128)+rbp],xmm0
2704 movaps xmm9,XMMWORD[((-112))+rbp] 2578 movaps xmm9,XMMWORD[((-112))+rbp]
2705 movaps XMMWORD[(-112)+rbp],xmm0
2706 movaps xmm10,XMMWORD[((-96))+rbp] 2579 movaps xmm10,XMMWORD[((-96))+rbp]
2707 movaps XMMWORD[(-96)+rbp],xmm0
2708 movaps xmm11,XMMWORD[((-80))+rbp] 2580 movaps xmm11,XMMWORD[((-80))+rbp]
2709 movaps XMMWORD[(-80)+rbp],xmm0
2710 movaps xmm12,XMMWORD[((-64))+rbp] 2581 movaps xmm12,XMMWORD[((-64))+rbp]
2711 movaps XMMWORD[(-64)+rbp],xmm0
2712 movaps xmm13,XMMWORD[((-48))+rbp] 2582 movaps xmm13,XMMWORD[((-48))+rbp]
2713 movaps XMMWORD[(-48)+rbp],xmm0
2714 movaps xmm14,XMMWORD[((-32))+rbp] 2583 movaps xmm14,XMMWORD[((-32))+rbp]
2715 movaps XMMWORD[(-32)+rbp],xmm0
2716 movaps xmm15,XMMWORD[((-16))+rbp] 2584 movaps xmm15,XMMWORD[((-16))+rbp]
2717 movaps XMMWORD[(-16)+rbp],xmm0
2718 movaps XMMWORD[rsp],xmm0
2719 movaps XMMWORD[16+rsp],xmm0
2720 movaps XMMWORD[32+rsp],xmm0
2721 movaps XMMWORD[48+rsp],xmm0
2722 movaps XMMWORD[64+rsp],xmm0
2723 movaps XMMWORD[80+rsp],xmm0
2724 movaps XMMWORD[96+rsp],xmm0
2725 lea rsp,[rbp] 2585 lea rsp,[rbp]
2726 pop rbp 2586 pop rbp
2727 $L$xts_dec_epilogue: 2587 $L$xts_dec_epilogue:
2728 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 2588 mov rdi,QWORD[8+rsp] ;WIN64 epilogue
2729 mov rsi,QWORD[16+rsp] 2589 mov rsi,QWORD[16+rsp]
2730 DB 0F3h,0C3h ;repret 2590 DB 0F3h,0C3h ;repret
2731 $L$SEH_end_aesni_xts_decrypt: 2591 $L$SEH_end_aesni_xts_decrypt:
2732 global aesni_cbc_encrypt 2592 global aesni_cbc_encrypt
2733 2593
2734 ALIGN 16 2594 ALIGN 16
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
2777 jnz NEAR $L$oop_enc1_15 2637 jnz NEAR $L$oop_enc1_15
2778 DB 102,15,56,221,209 2638 DB 102,15,56,221,209
2779 mov eax,r10d 2639 mov eax,r10d
2780 mov rcx,r11 2640 mov rcx,r11
2781 movups XMMWORD[rsi],xmm2 2641 movups XMMWORD[rsi],xmm2
2782 lea rsi,[16+rsi] 2642 lea rsi,[16+rsi]
2783 sub rdx,16 2643 sub rdx,16
2784 jnc NEAR $L$cbc_enc_loop 2644 jnc NEAR $L$cbc_enc_loop
2785 add rdx,16 2645 add rdx,16
2786 jnz NEAR $L$cbc_enc_tail 2646 jnz NEAR $L$cbc_enc_tail
2787 pxor xmm0,xmm0
2788 pxor xmm1,xmm1
2789 movups XMMWORD[r8],xmm2 2647 movups XMMWORD[r8],xmm2
2790 pxor xmm2,xmm2
2791 pxor xmm3,xmm3
2792 jmp NEAR $L$cbc_ret 2648 jmp NEAR $L$cbc_ret
2793 2649
2794 $L$cbc_enc_tail: 2650 $L$cbc_enc_tail:
2795 mov rcx,rdx 2651 mov rcx,rdx
2796 xchg rsi,rdi 2652 xchg rsi,rdi
2797 DD 0x9066A4F3 2653 DD 0x9066A4F3
2798 mov ecx,16 2654 mov ecx,16
2799 sub rcx,rdx 2655 sub rcx,rdx
2800 xor eax,eax 2656 xor eax,eax
2801 DD 0x9066AAF3 2657 DD 0x9066AAF3
2802 lea rdi,[((-16))+rdi] 2658 lea rdi,[((-16))+rdi]
2803 mov eax,r10d 2659 mov eax,r10d
2804 mov rsi,rdi 2660 mov rsi,rdi
2805 mov rcx,r11 2661 mov rcx,r11
2806 xor rdx,rdx 2662 xor rdx,rdx
2807 jmp NEAR $L$cbc_enc_loop 2663 jmp NEAR $L$cbc_enc_loop
2808 2664
2809 ALIGN 16 2665 ALIGN 16
2810 $L$cbc_decrypt: 2666 $L$cbc_decrypt:
2811 cmp rdx,16
2812 jne NEAR $L$cbc_decrypt_bulk
2813
2814
2815
2816 movdqu xmm2,XMMWORD[rdi]
2817 movdqu xmm3,XMMWORD[r8]
2818 movdqa xmm4,xmm2
2819 movups xmm0,XMMWORD[rcx]
2820 movups xmm1,XMMWORD[16+rcx]
2821 lea rcx,[32+rcx]
2822 xorps xmm2,xmm0
2823 $L$oop_dec1_16:
2824 DB 102,15,56,222,209
2825 dec r10d
2826 movups xmm1,XMMWORD[rcx]
2827 lea rcx,[16+rcx]
2828 jnz NEAR $L$oop_dec1_16
2829 DB 102,15,56,223,209
2830 pxor xmm0,xmm0
2831 pxor xmm1,xmm1
2832 movdqu XMMWORD[r8],xmm4
2833 xorps xmm2,xmm3
2834 pxor xmm3,xmm3
2835 movups XMMWORD[rsi],xmm2
2836 pxor xmm2,xmm2
2837 jmp NEAR $L$cbc_ret
2838 ALIGN 16
2839 $L$cbc_decrypt_bulk:
2840 lea rax,[rsp] 2667 lea rax,[rsp]
2841 push rbp 2668 push rbp
2842 sub rsp,176 2669 sub rsp,176
2843 and rsp,-16 2670 and rsp,-16
2844 movaps XMMWORD[16+rsp],xmm6 2671 movaps XMMWORD[16+rsp],xmm6
2845 movaps XMMWORD[32+rsp],xmm7 2672 movaps XMMWORD[32+rsp],xmm7
2846 movaps XMMWORD[48+rsp],xmm8 2673 movaps XMMWORD[48+rsp],xmm8
2847 movaps XMMWORD[64+rsp],xmm9 2674 movaps XMMWORD[64+rsp],xmm9
2848 movaps XMMWORD[80+rsp],xmm10 2675 movaps XMMWORD[80+rsp],xmm10
2849 movaps XMMWORD[96+rsp],xmm11 2676 movaps XMMWORD[96+rsp],xmm11
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
3077 movdqa xmm7,xmm1 2904 movdqa xmm7,xmm1
3078 movups XMMWORD[96+rsi],xmm8 2905 movups XMMWORD[96+rsi],xmm8
3079 lea rsi,[112+rsi] 2906 lea rsi,[112+rsi]
3080 2907
3081 sub rdx,0x80 2908 sub rdx,0x80
3082 ja NEAR $L$cbc_dec_loop8 2909 ja NEAR $L$cbc_dec_loop8
3083 2910
3084 movaps xmm2,xmm9 2911 movaps xmm2,xmm9
3085 lea rcx,[((-112))+rcx] 2912 lea rcx,[((-112))+rcx]
3086 add rdx,0x70 2913 add rdx,0x70
3087 » jle» NEAR $L$cbc_dec_clear_tail_collected 2914 » jle» NEAR $L$cbc_dec_tail_collected
3088 movups XMMWORD[rsi],xmm9 2915 movups XMMWORD[rsi],xmm9
3089 lea rsi,[16+rsi] 2916 lea rsi,[16+rsi]
3090 cmp rdx,0x50 2917 cmp rdx,0x50
3091 jbe NEAR $L$cbc_dec_tail 2918 jbe NEAR $L$cbc_dec_tail
3092 2919
3093 movaps xmm2,xmm11 2920 movaps xmm2,xmm11
3094 $L$cbc_dec_six_or_seven: 2921 $L$cbc_dec_six_or_seven:
3095 cmp rdx,0x60 2922 cmp rdx,0x60
3096 ja NEAR $L$cbc_dec_seven 2923 ja NEAR $L$cbc_dec_seven
3097 2924
3098 movaps xmm8,xmm7 2925 movaps xmm8,xmm7
3099 call _aesni_decrypt6 2926 call _aesni_decrypt6
3100 pxor xmm2,xmm10 2927 pxor xmm2,xmm10
3101 movaps xmm10,xmm8 2928 movaps xmm10,xmm8
3102 pxor xmm3,xmm11 2929 pxor xmm3,xmm11
3103 movdqu XMMWORD[rsi],xmm2 2930 movdqu XMMWORD[rsi],xmm2
3104 pxor xmm4,xmm12 2931 pxor xmm4,xmm12
3105 movdqu XMMWORD[16+rsi],xmm3 2932 movdqu XMMWORD[16+rsi],xmm3
3106 pxor xmm3,xmm3
3107 pxor xmm5,xmm13 2933 pxor xmm5,xmm13
3108 movdqu XMMWORD[32+rsi],xmm4 2934 movdqu XMMWORD[32+rsi],xmm4
3109 pxor xmm4,xmm4
3110 pxor xmm6,xmm14 2935 pxor xmm6,xmm14
3111 movdqu XMMWORD[48+rsi],xmm5 2936 movdqu XMMWORD[48+rsi],xmm5
3112 pxor xmm5,xmm5
3113 pxor xmm7,xmm15 2937 pxor xmm7,xmm15
3114 movdqu XMMWORD[64+rsi],xmm6 2938 movdqu XMMWORD[64+rsi],xmm6
3115 pxor xmm6,xmm6
3116 lea rsi,[80+rsi] 2939 lea rsi,[80+rsi]
3117 movdqa xmm2,xmm7 2940 movdqa xmm2,xmm7
3118 pxor xmm7,xmm7
3119 jmp NEAR $L$cbc_dec_tail_collected 2941 jmp NEAR $L$cbc_dec_tail_collected
3120 2942
3121 ALIGN 16 2943 ALIGN 16
3122 $L$cbc_dec_seven: 2944 $L$cbc_dec_seven:
3123 movups xmm8,XMMWORD[96+rdi] 2945 movups xmm8,XMMWORD[96+rdi]
3124 xorps xmm9,xmm9 2946 xorps xmm9,xmm9
3125 call _aesni_decrypt8 2947 call _aesni_decrypt8
3126 movups xmm9,XMMWORD[80+rdi] 2948 movups xmm9,XMMWORD[80+rdi]
3127 pxor xmm2,xmm10 2949 pxor xmm2,xmm10
3128 movups xmm10,XMMWORD[96+rdi] 2950 movups xmm10,XMMWORD[96+rdi]
3129 pxor xmm3,xmm11 2951 pxor xmm3,xmm11
3130 movdqu XMMWORD[rsi],xmm2 2952 movdqu XMMWORD[rsi],xmm2
3131 pxor xmm4,xmm12 2953 pxor xmm4,xmm12
3132 movdqu XMMWORD[16+rsi],xmm3 2954 movdqu XMMWORD[16+rsi],xmm3
3133 pxor xmm3,xmm3
3134 pxor xmm5,xmm13 2955 pxor xmm5,xmm13
3135 movdqu XMMWORD[32+rsi],xmm4 2956 movdqu XMMWORD[32+rsi],xmm4
3136 pxor xmm4,xmm4
3137 pxor xmm6,xmm14 2957 pxor xmm6,xmm14
3138 movdqu XMMWORD[48+rsi],xmm5 2958 movdqu XMMWORD[48+rsi],xmm5
3139 pxor xmm5,xmm5
3140 pxor xmm7,xmm15 2959 pxor xmm7,xmm15
3141 movdqu XMMWORD[64+rsi],xmm6 2960 movdqu XMMWORD[64+rsi],xmm6
3142 pxor xmm6,xmm6
3143 pxor xmm8,xmm9 2961 pxor xmm8,xmm9
3144 movdqu XMMWORD[80+rsi],xmm7 2962 movdqu XMMWORD[80+rsi],xmm7
3145 pxor xmm7,xmm7
3146 lea rsi,[96+rsi] 2963 lea rsi,[96+rsi]
3147 movdqa xmm2,xmm8 2964 movdqa xmm2,xmm8
3148 pxor xmm8,xmm8
3149 pxor xmm9,xmm9
3150 jmp NEAR $L$cbc_dec_tail_collected 2965 jmp NEAR $L$cbc_dec_tail_collected
3151 2966
3152 ALIGN 16 2967 ALIGN 16
3153 $L$cbc_dec_loop6: 2968 $L$cbc_dec_loop6:
3154 movups XMMWORD[rsi],xmm7 2969 movups XMMWORD[rsi],xmm7
3155 lea rsi,[16+rsi] 2970 lea rsi,[16+rsi]
3156 movdqu xmm2,XMMWORD[rdi] 2971 movdqu xmm2,XMMWORD[rdi]
3157 movdqu xmm3,XMMWORD[16+rdi] 2972 movdqu xmm3,XMMWORD[16+rdi]
3158 movdqa xmm11,xmm2 2973 movdqa xmm11,xmm2
3159 movdqu xmm4,XMMWORD[32+rdi] 2974 movdqu xmm4,XMMWORD[32+rdi]
(...skipping 23 matching lines...) Expand all
3183 movdqu XMMWORD[48+rsi],xmm5 2998 movdqu XMMWORD[48+rsi],xmm5
3184 pxor xmm7,xmm15 2999 pxor xmm7,xmm15
3185 mov eax,r10d 3000 mov eax,r10d
3186 movdqu XMMWORD[64+rsi],xmm6 3001 movdqu XMMWORD[64+rsi],xmm6
3187 lea rsi,[80+rsi] 3002 lea rsi,[80+rsi]
3188 sub rdx,0x60 3003 sub rdx,0x60
3189 ja NEAR $L$cbc_dec_loop6 3004 ja NEAR $L$cbc_dec_loop6
3190 3005
3191 movdqa xmm2,xmm7 3006 movdqa xmm2,xmm7
3192 add rdx,0x50 3007 add rdx,0x50
3193 » jle» NEAR $L$cbc_dec_clear_tail_collected 3008 » jle» NEAR $L$cbc_dec_tail_collected
3194 movups XMMWORD[rsi],xmm7 3009 movups XMMWORD[rsi],xmm7
3195 lea rsi,[16+rsi] 3010 lea rsi,[16+rsi]
3196 3011
3197 $L$cbc_dec_tail: 3012 $L$cbc_dec_tail:
3198 movups xmm2,XMMWORD[rdi] 3013 movups xmm2,XMMWORD[rdi]
3199 sub rdx,0x10 3014 sub rdx,0x10
3200 jbe NEAR $L$cbc_dec_one 3015 jbe NEAR $L$cbc_dec_one
3201 3016
3202 movups xmm3,XMMWORD[16+rdi] 3017 movups xmm3,XMMWORD[16+rdi]
3203 movaps xmm11,xmm2 3018 movaps xmm11,xmm2
(...skipping 14 matching lines...) Expand all
3218 movaps xmm14,xmm5 3033 movaps xmm14,xmm5
3219 movaps xmm15,xmm6 3034 movaps xmm15,xmm6
3220 xorps xmm7,xmm7 3035 xorps xmm7,xmm7
3221 call _aesni_decrypt6 3036 call _aesni_decrypt6
3222 pxor xmm2,xmm10 3037 pxor xmm2,xmm10
3223 movaps xmm10,xmm15 3038 movaps xmm10,xmm15
3224 pxor xmm3,xmm11 3039 pxor xmm3,xmm11
3225 movdqu XMMWORD[rsi],xmm2 3040 movdqu XMMWORD[rsi],xmm2
3226 pxor xmm4,xmm12 3041 pxor xmm4,xmm12
3227 movdqu XMMWORD[16+rsi],xmm3 3042 movdqu XMMWORD[16+rsi],xmm3
3228 pxor xmm3,xmm3
3229 pxor xmm5,xmm13 3043 pxor xmm5,xmm13
3230 movdqu XMMWORD[32+rsi],xmm4 3044 movdqu XMMWORD[32+rsi],xmm4
3231 pxor xmm4,xmm4
3232 pxor xmm6,xmm14 3045 pxor xmm6,xmm14
3233 movdqu XMMWORD[48+rsi],xmm5 3046 movdqu XMMWORD[48+rsi],xmm5
3234 pxor xmm5,xmm5
3235 lea rsi,[64+rsi] 3047 lea rsi,[64+rsi]
3236 movdqa xmm2,xmm6 3048 movdqa xmm2,xmm6
3237 pxor xmm6,xmm6
3238 pxor xmm7,xmm7
3239 sub rdx,0x10 3049 sub rdx,0x10
3240 jmp NEAR $L$cbc_dec_tail_collected 3050 jmp NEAR $L$cbc_dec_tail_collected
3241 3051
3242 ALIGN 16 3052 ALIGN 16
3243 $L$cbc_dec_one: 3053 $L$cbc_dec_one:
3244 movaps xmm11,xmm2 3054 movaps xmm11,xmm2
3245 movups xmm0,XMMWORD[rcx] 3055 movups xmm0,XMMWORD[rcx]
3246 movups xmm1,XMMWORD[16+rcx] 3056 movups xmm1,XMMWORD[16+rcx]
3247 lea rcx,[32+rcx] 3057 lea rcx,[32+rcx]
3248 xorps xmm2,xmm0 3058 xorps xmm2,xmm0
3249 $L$oop_dec1_17: 3059 $L$oop_dec1_16:
3250 DB 102,15,56,222,209 3060 DB 102,15,56,222,209
3251 dec eax 3061 dec eax
3252 movups xmm1,XMMWORD[rcx] 3062 movups xmm1,XMMWORD[rcx]
3253 lea rcx,[16+rcx] 3063 lea rcx,[16+rcx]
3254 » jnz» NEAR $L$oop_dec1_17 3064 » jnz» NEAR $L$oop_dec1_16
3255 DB 102,15,56,223,209 3065 DB 102,15,56,223,209
3256 xorps xmm2,xmm10 3066 xorps xmm2,xmm10
3257 movaps xmm10,xmm11 3067 movaps xmm10,xmm11
3258 jmp NEAR $L$cbc_dec_tail_collected 3068 jmp NEAR $L$cbc_dec_tail_collected
3259 ALIGN 16 3069 ALIGN 16
3260 $L$cbc_dec_two: 3070 $L$cbc_dec_two:
3261 movaps xmm12,xmm3 3071 movaps xmm12,xmm3
3262 call _aesni_decrypt2 3072 call _aesni_decrypt2
3263 pxor xmm2,xmm10 3073 pxor xmm2,xmm10
3264 movaps xmm10,xmm12 3074 movaps xmm10,xmm12
3265 pxor xmm3,xmm11 3075 pxor xmm3,xmm11
3266 movdqu XMMWORD[rsi],xmm2 3076 movdqu XMMWORD[rsi],xmm2
3267 movdqa xmm2,xmm3 3077 movdqa xmm2,xmm3
3268 pxor xmm3,xmm3
3269 lea rsi,[16+rsi] 3078 lea rsi,[16+rsi]
3270 jmp NEAR $L$cbc_dec_tail_collected 3079 jmp NEAR $L$cbc_dec_tail_collected
3271 ALIGN 16 3080 ALIGN 16
3272 $L$cbc_dec_three: 3081 $L$cbc_dec_three:
3273 movaps xmm13,xmm4 3082 movaps xmm13,xmm4
3274 call _aesni_decrypt3 3083 call _aesni_decrypt3
3275 pxor xmm2,xmm10 3084 pxor xmm2,xmm10
3276 movaps xmm10,xmm13 3085 movaps xmm10,xmm13
3277 pxor xmm3,xmm11 3086 pxor xmm3,xmm11
3278 movdqu XMMWORD[rsi],xmm2 3087 movdqu XMMWORD[rsi],xmm2
3279 pxor xmm4,xmm12 3088 pxor xmm4,xmm12
3280 movdqu XMMWORD[16+rsi],xmm3 3089 movdqu XMMWORD[16+rsi],xmm3
3281 pxor xmm3,xmm3
3282 movdqa xmm2,xmm4 3090 movdqa xmm2,xmm4
3283 pxor xmm4,xmm4
3284 lea rsi,[32+rsi] 3091 lea rsi,[32+rsi]
3285 jmp NEAR $L$cbc_dec_tail_collected 3092 jmp NEAR $L$cbc_dec_tail_collected
3286 ALIGN 16 3093 ALIGN 16
3287 $L$cbc_dec_four: 3094 $L$cbc_dec_four:
3288 movaps xmm14,xmm5 3095 movaps xmm14,xmm5
3289 call _aesni_decrypt4 3096 call _aesni_decrypt4
3290 pxor xmm2,xmm10 3097 pxor xmm2,xmm10
3291 movaps xmm10,xmm14 3098 movaps xmm10,xmm14
3292 pxor xmm3,xmm11 3099 pxor xmm3,xmm11
3293 movdqu XMMWORD[rsi],xmm2 3100 movdqu XMMWORD[rsi],xmm2
3294 pxor xmm4,xmm12 3101 pxor xmm4,xmm12
3295 movdqu XMMWORD[16+rsi],xmm3 3102 movdqu XMMWORD[16+rsi],xmm3
3296 pxor xmm3,xmm3
3297 pxor xmm5,xmm13 3103 pxor xmm5,xmm13
3298 movdqu XMMWORD[32+rsi],xmm4 3104 movdqu XMMWORD[32+rsi],xmm4
3299 pxor xmm4,xmm4
3300 movdqa xmm2,xmm5 3105 movdqa xmm2,xmm5
3301 pxor xmm5,xmm5
3302 lea rsi,[48+rsi] 3106 lea rsi,[48+rsi]
3303 jmp NEAR $L$cbc_dec_tail_collected 3107 jmp NEAR $L$cbc_dec_tail_collected
3304 3108
3305 ALIGN 16 3109 ALIGN 16
3306 $L$cbc_dec_clear_tail_collected:
3307 pxor xmm3,xmm3
3308 pxor xmm4,xmm4
3309 pxor xmm5,xmm5
3310 $L$cbc_dec_tail_collected: 3110 $L$cbc_dec_tail_collected:
3311 movups XMMWORD[r8],xmm10 3111 movups XMMWORD[r8],xmm10
3312 and rdx,15 3112 and rdx,15
3313 jnz NEAR $L$cbc_dec_tail_partial 3113 jnz NEAR $L$cbc_dec_tail_partial
3314 movups XMMWORD[rsi],xmm2 3114 movups XMMWORD[rsi],xmm2
3315 pxor xmm2,xmm2
3316 jmp NEAR $L$cbc_dec_ret 3115 jmp NEAR $L$cbc_dec_ret
3317 ALIGN 16 3116 ALIGN 16
3318 $L$cbc_dec_tail_partial: 3117 $L$cbc_dec_tail_partial:
3319 movaps XMMWORD[rsp],xmm2 3118 movaps XMMWORD[rsp],xmm2
3320 pxor xmm2,xmm2
3321 mov rcx,16 3119 mov rcx,16
3322 mov rdi,rsi 3120 mov rdi,rsi
3323 sub rcx,rdx 3121 sub rcx,rdx
3324 lea rsi,[rsp] 3122 lea rsi,[rsp]
3325 DD 0x9066A4F3 3123 DD 0x9066A4F3
3326 movdqa XMMWORD[rsp],xmm2
3327 3124
3328 $L$cbc_dec_ret: 3125 $L$cbc_dec_ret:
3329 xorps xmm0,xmm0
3330 pxor xmm1,xmm1
3331 movaps xmm6,XMMWORD[16+rsp] 3126 movaps xmm6,XMMWORD[16+rsp]
3332 movaps XMMWORD[16+rsp],xmm0
3333 movaps xmm7,XMMWORD[32+rsp] 3127 movaps xmm7,XMMWORD[32+rsp]
3334 movaps XMMWORD[32+rsp],xmm0
3335 movaps xmm8,XMMWORD[48+rsp] 3128 movaps xmm8,XMMWORD[48+rsp]
3336 movaps XMMWORD[48+rsp],xmm0
3337 movaps xmm9,XMMWORD[64+rsp] 3129 movaps xmm9,XMMWORD[64+rsp]
3338 movaps XMMWORD[64+rsp],xmm0
3339 movaps xmm10,XMMWORD[80+rsp] 3130 movaps xmm10,XMMWORD[80+rsp]
3340 movaps XMMWORD[80+rsp],xmm0
3341 movaps xmm11,XMMWORD[96+rsp] 3131 movaps xmm11,XMMWORD[96+rsp]
3342 movaps XMMWORD[96+rsp],xmm0
3343 movaps xmm12,XMMWORD[112+rsp] 3132 movaps xmm12,XMMWORD[112+rsp]
3344 movaps XMMWORD[112+rsp],xmm0
3345 movaps xmm13,XMMWORD[128+rsp] 3133 movaps xmm13,XMMWORD[128+rsp]
3346 movaps XMMWORD[128+rsp],xmm0
3347 movaps xmm14,XMMWORD[144+rsp] 3134 movaps xmm14,XMMWORD[144+rsp]
3348 movaps XMMWORD[144+rsp],xmm0
3349 movaps xmm15,XMMWORD[160+rsp] 3135 movaps xmm15,XMMWORD[160+rsp]
3350 movaps XMMWORD[160+rsp],xmm0
3351 lea rsp,[rbp] 3136 lea rsp,[rbp]
3352 pop rbp 3137 pop rbp
3353 $L$cbc_ret: 3138 $L$cbc_ret:
3354 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 3139 mov rdi,QWORD[8+rsp] ;WIN64 epilogue
3355 mov rsi,QWORD[16+rsp] 3140 mov rsi,QWORD[16+rsp]
3356 DB 0F3h,0C3h ;repret 3141 DB 0F3h,0C3h ;repret
3357 $L$SEH_end_aesni_cbc_encrypt: 3142 $L$SEH_end_aesni_cbc_encrypt:
3358 global aesni_set_decrypt_key 3143 global aesni_set_decrypt_key
3359 3144
3360 ALIGN 16 3145 ALIGN 16
(...skipping 19 matching lines...) Expand all
3380 DB 102,15,56,219,201 3165 DB 102,15,56,219,201
3381 lea r8,[16+r8] 3166 lea r8,[16+r8]
3382 lea rcx,[((-16))+rcx] 3167 lea rcx,[((-16))+rcx]
3383 movups XMMWORD[16+rcx],xmm0 3168 movups XMMWORD[16+rcx],xmm0
3384 movups XMMWORD[(-16)+r8],xmm1 3169 movups XMMWORD[(-16)+r8],xmm1
3385 cmp rcx,r8 3170 cmp rcx,r8
3386 ja NEAR $L$dec_key_inverse 3171 ja NEAR $L$dec_key_inverse
3387 3172
3388 movups xmm0,XMMWORD[r8] 3173 movups xmm0,XMMWORD[r8]
3389 DB 102,15,56,219,192 3174 DB 102,15,56,219,192
3390 pxor xmm1,xmm1
3391 movups XMMWORD[rcx],xmm0 3175 movups XMMWORD[rcx],xmm0
3392 pxor xmm0,xmm0
3393 $L$dec_key_ret: 3176 $L$dec_key_ret:
3394 add rsp,8 3177 add rsp,8
3395 DB 0F3h,0C3h ;repret 3178 DB 0F3h,0C3h ;repret
3396 $L$SEH_end_set_decrypt_key: 3179 $L$SEH_end_set_decrypt_key:
3397 3180
3398 global aesni_set_encrypt_key 3181 global aesni_set_encrypt_key
3399 3182
3400 ALIGN 16 3183 ALIGN 16
3401 aesni_set_encrypt_key: 3184 aesni_set_encrypt_key:
3402 __aesni_set_encrypt_key: 3185 __aesni_set_encrypt_key:
3403 DB 0x48,0x83,0xEC,0x08 3186 DB 0x48,0x83,0xEC,0x08
3404 mov rax,-1 3187 mov rax,-1
3405 test rcx,rcx 3188 test rcx,rcx
3406 jz NEAR $L$enc_key_ret 3189 jz NEAR $L$enc_key_ret
3407 test r8,r8 3190 test r8,r8
3408 jz NEAR $L$enc_key_ret 3191 jz NEAR $L$enc_key_ret
3409 3192
3410 mov r10d,268437504
3411 movups xmm0,XMMWORD[rcx] 3193 movups xmm0,XMMWORD[rcx]
3412 xorps xmm4,xmm4 3194 xorps xmm4,xmm4
3413 and r10d,DWORD[((OPENSSL_ia32cap_P+4))]
3414 lea rax,[16+r8] 3195 lea rax,[16+r8]
3415 cmp edx,256 3196 cmp edx,256
3416 je NEAR $L$14rounds 3197 je NEAR $L$14rounds
3417 cmp edx,192 3198 cmp edx,192
3418 je NEAR $L$12rounds 3199 je NEAR $L$12rounds
3419 cmp edx,128 3200 cmp edx,128
3420 jne NEAR $L$bad_keybits 3201 jne NEAR $L$bad_keybits
3421 3202
3422 $L$10rounds: 3203 $L$10rounds:
3423 mov edx,9 3204 mov edx,9
3424 cmp r10d,268435456
3425 je NEAR $L$10rounds_alt
3426
3427 movups XMMWORD[r8],xmm0 3205 movups XMMWORD[r8],xmm0
3428 DB 102,15,58,223,200,1 3206 DB 102,15,58,223,200,1
3429 call $L$key_expansion_128_cold 3207 call $L$key_expansion_128_cold
3430 DB 102,15,58,223,200,2 3208 DB 102,15,58,223,200,2
3431 call $L$key_expansion_128 3209 call $L$key_expansion_128
3432 DB 102,15,58,223,200,4 3210 DB 102,15,58,223,200,4
3433 call $L$key_expansion_128 3211 call $L$key_expansion_128
3434 DB 102,15,58,223,200,8 3212 DB 102,15,58,223,200,8
3435 call $L$key_expansion_128 3213 call $L$key_expansion_128
3436 DB 102,15,58,223,200,16 3214 DB 102,15,58,223,200,16
3437 call $L$key_expansion_128 3215 call $L$key_expansion_128
3438 DB 102,15,58,223,200,32 3216 DB 102,15,58,223,200,32
3439 call $L$key_expansion_128 3217 call $L$key_expansion_128
3440 DB 102,15,58,223,200,64 3218 DB 102,15,58,223,200,64
3441 call $L$key_expansion_128 3219 call $L$key_expansion_128
3442 DB 102,15,58,223,200,128 3220 DB 102,15,58,223,200,128
3443 call $L$key_expansion_128 3221 call $L$key_expansion_128
3444 DB 102,15,58,223,200,27 3222 DB 102,15,58,223,200,27
3445 call $L$key_expansion_128 3223 call $L$key_expansion_128
3446 DB 102,15,58,223,200,54 3224 DB 102,15,58,223,200,54
3447 call $L$key_expansion_128 3225 call $L$key_expansion_128
3448 movups XMMWORD[rax],xmm0 3226 movups XMMWORD[rax],xmm0
3449 mov DWORD[80+rax],edx 3227 mov DWORD[80+rax],edx
3450 xor eax,eax 3228 xor eax,eax
3451 jmp NEAR $L$enc_key_ret 3229 jmp NEAR $L$enc_key_ret
3452 3230
3453 ALIGN 16 3231 ALIGN 16
3454 $L$10rounds_alt:
3455 movdqa xmm5,XMMWORD[$L$key_rotate]
3456 mov r10d,8
3457 movdqa xmm4,XMMWORD[$L$key_rcon1]
3458 movdqa xmm2,xmm0
3459 movdqu XMMWORD[r8],xmm0
3460 jmp NEAR $L$oop_key128
3461
3462 ALIGN 16
3463 $L$oop_key128:
3464 DB 102,15,56,0,197
3465 DB 102,15,56,221,196
3466 pslld xmm4,1
3467 lea rax,[16+rax]
3468
3469 movdqa xmm3,xmm2
3470 pslldq xmm2,4
3471 pxor xmm3,xmm2
3472 pslldq xmm2,4
3473 pxor xmm3,xmm2
3474 pslldq xmm2,4
3475 pxor xmm2,xmm3
3476
3477 pxor xmm0,xmm2
3478 movdqu XMMWORD[(-16)+rax],xmm0
3479 movdqa xmm2,xmm0
3480
3481 dec r10d
3482 jnz NEAR $L$oop_key128
3483
3484 movdqa xmm4,XMMWORD[$L$key_rcon1b]
3485
3486 DB 102,15,56,0,197
3487 DB 102,15,56,221,196
3488 pslld xmm4,1
3489
3490 movdqa xmm3,xmm2
3491 pslldq xmm2,4
3492 pxor xmm3,xmm2
3493 pslldq xmm2,4
3494 pxor xmm3,xmm2
3495 pslldq xmm2,4
3496 pxor xmm2,xmm3
3497
3498 pxor xmm0,xmm2
3499 movdqu XMMWORD[rax],xmm0
3500
3501 movdqa xmm2,xmm0
3502 DB 102,15,56,0,197
3503 DB 102,15,56,221,196
3504
3505 movdqa xmm3,xmm2
3506 pslldq xmm2,4
3507 pxor xmm3,xmm2
3508 pslldq xmm2,4
3509 pxor xmm3,xmm2
3510 pslldq xmm2,4
3511 pxor xmm2,xmm3
3512
3513 pxor xmm0,xmm2
3514 movdqu XMMWORD[16+rax],xmm0
3515
3516 mov DWORD[96+rax],edx
3517 xor eax,eax
3518 jmp NEAR $L$enc_key_ret
3519
3520 ALIGN 16
3521 $L$12rounds: 3232 $L$12rounds:
3522 movq xmm2,QWORD[16+rcx] 3233 movq xmm2,QWORD[16+rcx]
3523 mov edx,11 3234 mov edx,11
3524 cmp r10d,268435456
3525 je NEAR $L$12rounds_alt
3526
3527 movups XMMWORD[r8],xmm0 3235 movups XMMWORD[r8],xmm0
3528 DB 102,15,58,223,202,1 3236 DB 102,15,58,223,202,1
3529 call $L$key_expansion_192a_cold 3237 call $L$key_expansion_192a_cold
3530 DB 102,15,58,223,202,2 3238 DB 102,15,58,223,202,2
3531 call $L$key_expansion_192b 3239 call $L$key_expansion_192b
3532 DB 102,15,58,223,202,4 3240 DB 102,15,58,223,202,4
3533 call $L$key_expansion_192a 3241 call $L$key_expansion_192a
3534 DB 102,15,58,223,202,8 3242 DB 102,15,58,223,202,8
3535 call $L$key_expansion_192b 3243 call $L$key_expansion_192b
3536 DB 102,15,58,223,202,16 3244 DB 102,15,58,223,202,16
3537 call $L$key_expansion_192a 3245 call $L$key_expansion_192a
3538 DB 102,15,58,223,202,32 3246 DB 102,15,58,223,202,32
3539 call $L$key_expansion_192b 3247 call $L$key_expansion_192b
3540 DB 102,15,58,223,202,64 3248 DB 102,15,58,223,202,64
3541 call $L$key_expansion_192a 3249 call $L$key_expansion_192a
3542 DB 102,15,58,223,202,128 3250 DB 102,15,58,223,202,128
3543 call $L$key_expansion_192b 3251 call $L$key_expansion_192b
3544 movups XMMWORD[rax],xmm0 3252 movups XMMWORD[rax],xmm0
3545 mov DWORD[48+rax],edx 3253 mov DWORD[48+rax],edx
3546 xor rax,rax 3254 xor rax,rax
3547 jmp NEAR $L$enc_key_ret 3255 jmp NEAR $L$enc_key_ret
3548 3256
3549 ALIGN 16 3257 ALIGN 16
3550 $L$12rounds_alt:
3551 movdqa xmm5,XMMWORD[$L$key_rotate192]
3552 movdqa xmm4,XMMWORD[$L$key_rcon1]
3553 mov r10d,8
3554 movdqu XMMWORD[r8],xmm0
3555 jmp NEAR $L$oop_key192
3556
3557 ALIGN 16
3558 $L$oop_key192:
3559 movq QWORD[rax],xmm2
3560 movdqa xmm1,xmm2
3561 DB 102,15,56,0,213
3562 DB 102,15,56,221,212
3563 pslld xmm4,1
3564 lea rax,[24+rax]
3565
3566 movdqa xmm3,xmm0
3567 pslldq xmm0,4
3568 pxor xmm3,xmm0
3569 pslldq xmm0,4
3570 pxor xmm3,xmm0
3571 pslldq xmm0,4
3572 pxor xmm0,xmm3
3573
3574 pshufd xmm3,xmm0,0xff
3575 pxor xmm3,xmm1
3576 pslldq xmm1,4
3577 pxor xmm3,xmm1
3578
3579 pxor xmm0,xmm2
3580 pxor xmm2,xmm3
3581 movdqu XMMWORD[(-16)+rax],xmm0
3582
3583 dec r10d
3584 jnz NEAR $L$oop_key192
3585
3586 mov DWORD[32+rax],edx
3587 xor eax,eax
3588 jmp NEAR $L$enc_key_ret
3589
3590 ALIGN 16
3591 $L$14rounds: 3258 $L$14rounds:
3592 movups xmm2,XMMWORD[16+rcx] 3259 movups xmm2,XMMWORD[16+rcx]
3593 mov edx,13 3260 mov edx,13
3594 lea rax,[16+rax] 3261 lea rax,[16+rax]
3595 cmp r10d,268435456
3596 je NEAR $L$14rounds_alt
3597
3598 movups XMMWORD[r8],xmm0 3262 movups XMMWORD[r8],xmm0
3599 movups XMMWORD[16+r8],xmm2 3263 movups XMMWORD[16+r8],xmm2
3600 DB 102,15,58,223,202,1 3264 DB 102,15,58,223,202,1
3601 call $L$key_expansion_256a_cold 3265 call $L$key_expansion_256a_cold
3602 DB 102,15,58,223,200,1 3266 DB 102,15,58,223,200,1
3603 call $L$key_expansion_256b 3267 call $L$key_expansion_256b
3604 DB 102,15,58,223,202,2 3268 DB 102,15,58,223,202,2
3605 call $L$key_expansion_256a 3269 call $L$key_expansion_256a
3606 DB 102,15,58,223,200,2 3270 DB 102,15,58,223,200,2
3607 call $L$key_expansion_256b 3271 call $L$key_expansion_256b
(...skipping 14 matching lines...) Expand all
3622 DB 102,15,58,223,200,32 3286 DB 102,15,58,223,200,32
3623 call $L$key_expansion_256b 3287 call $L$key_expansion_256b
3624 DB 102,15,58,223,202,64 3288 DB 102,15,58,223,202,64
3625 call $L$key_expansion_256a 3289 call $L$key_expansion_256a
3626 movups XMMWORD[rax],xmm0 3290 movups XMMWORD[rax],xmm0
3627 mov DWORD[16+rax],edx 3291 mov DWORD[16+rax],edx
3628 xor rax,rax 3292 xor rax,rax
3629 jmp NEAR $L$enc_key_ret 3293 jmp NEAR $L$enc_key_ret
3630 3294
3631 ALIGN 16 3295 ALIGN 16
3632 $L$14rounds_alt:
3633 movdqa xmm5,XMMWORD[$L$key_rotate]
3634 movdqa xmm4,XMMWORD[$L$key_rcon1]
3635 mov r10d,7
3636 movdqu XMMWORD[r8],xmm0
3637 movdqa xmm1,xmm2
3638 movdqu XMMWORD[16+r8],xmm2
3639 jmp NEAR $L$oop_key256
3640
3641 ALIGN 16
3642 $L$oop_key256:
3643 DB 102,15,56,0,213
3644 DB 102,15,56,221,212
3645
3646 movdqa xmm3,xmm0
3647 pslldq xmm0,4
3648 pxor xmm3,xmm0
3649 pslldq xmm0,4
3650 pxor xmm3,xmm0
3651 pslldq xmm0,4
3652 pxor xmm0,xmm3
3653 pslld xmm4,1
3654
3655 pxor xmm0,xmm2
3656 movdqu XMMWORD[rax],xmm0
3657
3658 dec r10d
3659 jz NEAR $L$done_key256
3660
3661 pshufd xmm2,xmm0,0xff
3662 pxor xmm3,xmm3
3663 DB 102,15,56,221,211
3664
3665 movdqa xmm3,xmm1
3666 pslldq xmm1,4
3667 pxor xmm3,xmm1
3668 pslldq xmm1,4
3669 pxor xmm3,xmm1
3670 pslldq xmm1,4
3671 pxor xmm1,xmm3
3672
3673 pxor xmm2,xmm1
3674 movdqu XMMWORD[16+rax],xmm2
3675 lea rax,[32+rax]
3676 movdqa xmm1,xmm2
3677
3678 jmp NEAR $L$oop_key256
3679
3680 $L$done_key256:
3681 mov DWORD[16+rax],edx
3682 xor eax,eax
3683 jmp NEAR $L$enc_key_ret
3684
3685 ALIGN 16
3686 $L$bad_keybits: 3296 $L$bad_keybits:
3687 mov rax,-2 3297 mov rax,-2
3688 $L$enc_key_ret: 3298 $L$enc_key_ret:
3689 pxor xmm0,xmm0
3690 pxor xmm1,xmm1
3691 pxor xmm2,xmm2
3692 pxor xmm3,xmm3
3693 pxor xmm4,xmm4
3694 pxor xmm5,xmm5
3695 add rsp,8 3299 add rsp,8
3696 DB 0F3h,0C3h ;repret 3300 DB 0F3h,0C3h ;repret
3697 $L$SEH_end_set_encrypt_key: 3301 $L$SEH_end_set_encrypt_key:
3698 3302
3699 ALIGN 16 3303 ALIGN 16
3700 $L$key_expansion_128: 3304 $L$key_expansion_128:
3701 movups XMMWORD[rax],xmm0 3305 movups XMMWORD[rax],xmm0
3702 lea rax,[16+rax] 3306 lea rax,[16+rax]
3703 $L$key_expansion_128_cold: 3307 $L$key_expansion_128_cold:
3704 shufps xmm4,xmm0,16 3308 shufps xmm4,xmm0,16
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
3770 $L$bswap_mask: 3374 $L$bswap_mask:
3771 DB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 3375 DB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
3772 $L$increment32: 3376 $L$increment32:
3773 DD 6,6,6,0 3377 DD 6,6,6,0
3774 $L$increment64: 3378 $L$increment64:
3775 DD 1,0,0,0 3379 DD 1,0,0,0
3776 $L$xts_magic: 3380 $L$xts_magic:
3777 DD 0x87,0,1,0 3381 DD 0x87,0,1,0
3778 $L$increment1: 3382 $L$increment1:
3779 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 3383 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
3780 $L$key_rotate:
3781 DD 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d
3782 $L$key_rotate192:
3783 DD 0x04070605,0x04070605,0x04070605,0x04070605
3784 $L$key_rcon1:
3785 DD 1,1,1,1
3786 $L$key_rcon1b:
3787 DD 0x1b,0x1b,0x1b,0x1b
3788 3384
3789 DB 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69 3385 DB 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69
3790 DB 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83 3386 DB 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83
3791 DB 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 3387 DB 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
3792 DB 115,108,46,111,114,103,62,0 3388 DB 115,108,46,111,114,103,62,0
3793 ALIGN 64 3389 ALIGN 64
3794 EXTERN __imp_RtlVirtualUnwind 3390 EXTERN __imp_RtlVirtualUnwind
3795 3391
3796 ALIGN 16 3392 ALIGN 16
3797 ecb_ccm64_se_handler: 3393 ecb_ccm64_se_handler:
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
3883 push r12 3479 push r12
3884 push r13 3480 push r13
3885 push r14 3481 push r14
3886 push r15 3482 push r15
3887 pushfq 3483 pushfq
3888 sub rsp,64 3484 sub rsp,64
3889 3485
3890 mov rax,QWORD[152+r8] 3486 mov rax,QWORD[152+r8]
3891 mov rbx,QWORD[248+r8] 3487 mov rbx,QWORD[248+r8]
3892 3488
3893 » lea» r10,[$L$cbc_decrypt_bulk] 3489 » lea» r10,[$L$cbc_decrypt]
3894 cmp rbx,r10 3490 cmp rbx,r10
3895 jb NEAR $L$common_seh_tail 3491 jb NEAR $L$common_seh_tail
3896 3492
3897 lea r10,[$L$cbc_decrypt_body] 3493 lea r10,[$L$cbc_decrypt_body]
3898 cmp rbx,r10 3494 cmp rbx,r10
3899 jb NEAR $L$restore_cbc_rax 3495 jb NEAR $L$restore_cbc_rax
3900 3496
3901 lea r10,[$L$cbc_ret] 3497 lea r10,[$L$cbc_ret]
3902 cmp rbx,r10 3498 cmp rbx,r10
3903 jae NEAR $L$common_seh_tail 3499 jae NEAR $L$common_seh_tail
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
4018 $L$SEH_info_xts_dec: 3614 $L$SEH_info_xts_dec:
4019 DB 9,0,0,0 3615 DB 9,0,0,0
4020 DD ctr_xts_se_handler wrt ..imagebase 3616 DD ctr_xts_se_handler wrt ..imagebase
4021 DD $L$xts_dec_body wrt ..imagebase,$L$xts_dec_epilogue wrt ..imageb ase 3617 DD $L$xts_dec_body wrt ..imagebase,$L$xts_dec_epilogue wrt ..imageb ase
4022 $L$SEH_info_cbc: 3618 $L$SEH_info_cbc:
4023 DB 9,0,0,0 3619 DB 9,0,0,0
4024 DD cbc_se_handler wrt ..imagebase 3620 DD cbc_se_handler wrt ..imagebase
4025 $L$SEH_info_key: 3621 $L$SEH_info_key:
4026 DB 0x01,0x04,0x01,0x00 3622 DB 0x01,0x04,0x01,0x00
4027 DB 0x04,0x02,0x00,0x00 3623 DB 0x04,0x02,0x00,0x00
OLDNEW
« no previous file with comments | « third_party/boringssl/win-x86/crypto/aes/aesni-x86.asm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698