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

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

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