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

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

Issue 2695223006: Roll src/third_party/boringssl/src dc8c1d962..0f28691d3 (Closed)
Patch Set: Use correct parent. Created 3 years, 10 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_64/crypto/bn/x86_64-mont5.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 7
8 EXTERN OPENSSL_ia32cap_P 8 EXTERN OPENSSL_ia32cap_P
9 9
10 ALIGN 64 10 ALIGN 64
11 $L$zero: 11 $L$zero:
12 DD 0,0,0,0 12 DD 0,0,0,0
13 $L$one: 13 $L$one:
14 DD 1,0,0,0 14 DD 1,0,0,0
15 $L$inc: 15 $L$inc:
16 DD 0,1,2,3 16 DD 0,1,2,3
17 $L$four: 17 $L$four:
18 DD 4,4,4,4 18 DD 4,4,4,4
19 $L$incy: 19 $L$incy:
20 DD 0,2,4,6,1,3,5,7 20 DD 0,2,4,6,1,3,5,7
21 $L$eight: 21 $L$eight:
22 DD 8,8,8,8,8,8,8,8 22 DD 8,8,8,8,8,8,8,8
23 $L$rot16: 23 $L$rot16:
24 DB 0x2,0x3,0x0,0x1,0x6,0x7,0x4,0x5,0xa,0xb,0x8,0x9,0xe,0xf,0xc,0xd 24 DB 0x2,0x3,0x0,0x1,0x6,0x7,0x4,0x5,0xa,0xb,0x8,0x9,0xe,0xf,0xc,0xd
25 $L$rot24: 25 $L$rot24:
26 DB 0x3,0x0,0x1,0x2,0x7,0x4,0x5,0x6,0xb,0x8,0x9,0xa,0xf,0xc,0xd,0xe 26 DB 0x3,0x0,0x1,0x2,0x7,0x4,0x5,0x6,0xb,0x8,0x9,0xa,0xf,0xc,0xd,0xe
27 $L$sigma: 27 $L$sigma:
28 DB 101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107 28 DB 101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107
29 DB 0 29 DB 0
30 ALIGN 64
31 $L$zeroz:
32 DD 0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0
33 $L$fourz:
34 DD 4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0
35 $L$incz:
36 DD 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
37 $L$sixteen:
38 DD 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
30 DB 67,104,97,67,104,97,50,48,32,102,111,114,32,120,56,54 39 DB 67,104,97,67,104,97,50,48,32,102,111,114,32,120,56,54
31 DB 95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32 40 DB 95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32
32 DB 98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115 41 DB 98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115
33 DB 108,46,111,114,103,62,0 42 DB 108,46,111,114,103,62,0
34 global ChaCha20_ctr32 43 global ChaCha20_ctr32
35 44
36 ALIGN 64 45 ALIGN 64
37 ChaCha20_ctr32: 46 ChaCha20_ctr32:
38 mov QWORD[8+rsp],rdi ;WIN64 prologue 47 mov QWORD[8+rsp],rdi ;WIN64 prologue
39 mov QWORD[16+rsp],rsi 48 mov QWORD[16+rsp],rsi
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 movdqu xmm1,XMMWORD[rcx] 350 movdqu xmm1,XMMWORD[rcx]
342 movdqu xmm2,XMMWORD[16+rcx] 351 movdqu xmm2,XMMWORD[16+rcx]
343 movdqu xmm3,XMMWORD[r8] 352 movdqu xmm3,XMMWORD[r8]
344 movdqa xmm6,XMMWORD[$L$rot16] 353 movdqa xmm6,XMMWORD[$L$rot16]
345 movdqa xmm7,XMMWORD[$L$rot24] 354 movdqa xmm7,XMMWORD[$L$rot24]
346 355
347 movdqa XMMWORD[rsp],xmm0 356 movdqa XMMWORD[rsp],xmm0
348 movdqa XMMWORD[16+rsp],xmm1 357 movdqa XMMWORD[16+rsp],xmm1
349 movdqa XMMWORD[32+rsp],xmm2 358 movdqa XMMWORD[32+rsp],xmm2
350 movdqa XMMWORD[48+rsp],xmm3 359 movdqa XMMWORD[48+rsp],xmm3
351 » mov» ebp,10 360 » mov» r8,10
352 jmp NEAR $L$oop_ssse3 361 jmp NEAR $L$oop_ssse3
353 362
354 ALIGN 32 363 ALIGN 32
355 $L$oop_outer_ssse3: 364 $L$oop_outer_ssse3:
356 movdqa xmm3,XMMWORD[$L$one] 365 movdqa xmm3,XMMWORD[$L$one]
357 movdqa xmm0,XMMWORD[rsp] 366 movdqa xmm0,XMMWORD[rsp]
358 movdqa xmm1,XMMWORD[16+rsp] 367 movdqa xmm1,XMMWORD[16+rsp]
359 movdqa xmm2,XMMWORD[32+rsp] 368 movdqa xmm2,XMMWORD[32+rsp]
360 paddd xmm3,XMMWORD[48+rsp] 369 paddd xmm3,XMMWORD[48+rsp]
361 » mov» ebp,10 370 » mov» r8,10
362 movdqa XMMWORD[48+rsp],xmm3 371 movdqa XMMWORD[48+rsp],xmm3
363 jmp NEAR $L$oop_ssse3 372 jmp NEAR $L$oop_ssse3
364 373
365 ALIGN 32 374 ALIGN 32
366 $L$oop_ssse3: 375 $L$oop_ssse3:
367 paddd xmm0,xmm1 376 paddd xmm0,xmm1
368 pxor xmm3,xmm0 377 pxor xmm3,xmm0
369 DB 102,15,56,0,222 378 DB 102,15,56,0,222
370 paddd xmm2,xmm3 379 paddd xmm2,xmm3
371 pxor xmm1,xmm2 380 pxor xmm1,xmm2
(...skipping 28 matching lines...) Expand all
400 DB 102,15,56,0,223 409 DB 102,15,56,0,223
401 paddd xmm2,xmm3 410 paddd xmm2,xmm3
402 pxor xmm1,xmm2 411 pxor xmm1,xmm2
403 movdqa xmm4,xmm1 412 movdqa xmm4,xmm1
404 psrld xmm1,25 413 psrld xmm1,25
405 pslld xmm4,7 414 pslld xmm4,7
406 por xmm1,xmm4 415 por xmm1,xmm4
407 pshufd xmm2,xmm2,78 416 pshufd xmm2,xmm2,78
408 pshufd xmm1,xmm1,147 417 pshufd xmm1,xmm1,147
409 pshufd xmm3,xmm3,57 418 pshufd xmm3,xmm3,57
410 » dec» ebp 419 » dec» r8
411 jnz NEAR $L$oop_ssse3 420 jnz NEAR $L$oop_ssse3
412 paddd xmm0,XMMWORD[rsp] 421 paddd xmm0,XMMWORD[rsp]
413 paddd xmm1,XMMWORD[16+rsp] 422 paddd xmm1,XMMWORD[16+rsp]
414 paddd xmm2,XMMWORD[32+rsp] 423 paddd xmm2,XMMWORD[32+rsp]
415 paddd xmm3,XMMWORD[48+rsp] 424 paddd xmm3,XMMWORD[48+rsp]
416 425
417 cmp rdx,64 426 cmp rdx,64
418 jb NEAR $L$tail_ssse3 427 jb NEAR $L$tail_ssse3
419 428
420 movdqu xmm4,XMMWORD[rsi] 429 movdqu xmm4,XMMWORD[rsi]
(...skipping 16 matching lines...) Expand all
437 jnz NEAR $L$oop_outer_ssse3 446 jnz NEAR $L$oop_outer_ssse3
438 447
439 jmp NEAR $L$done_ssse3 448 jmp NEAR $L$done_ssse3
440 449
441 ALIGN 16 450 ALIGN 16
442 $L$tail_ssse3: 451 $L$tail_ssse3:
443 movdqa XMMWORD[rsp],xmm0 452 movdqa XMMWORD[rsp],xmm0
444 movdqa XMMWORD[16+rsp],xmm1 453 movdqa XMMWORD[16+rsp],xmm1
445 movdqa XMMWORD[32+rsp],xmm2 454 movdqa XMMWORD[32+rsp],xmm2
446 movdqa XMMWORD[48+rsp],xmm3 455 movdqa XMMWORD[48+rsp],xmm3
447 » xor» rbx,rbx 456 » xor» r8,r8
448 457
449 $L$oop_tail_ssse3: 458 $L$oop_tail_ssse3:
450 » movzx» eax,BYTE[rbx*1+rsi] 459 » movzx» eax,BYTE[r8*1+rsi]
451 » movzx» ecx,BYTE[rbx*1+rsp] 460 » movzx» ecx,BYTE[r8*1+rsp]
452 » lea» rbx,[1+rbx] 461 » lea» r8,[1+r8]
453 xor eax,ecx 462 xor eax,ecx
454 » mov» BYTE[((-1))+rbx*1+rdi],al 463 » mov» BYTE[((-1))+r8*1+rdi],al
455 dec rdx 464 dec rdx
456 jnz NEAR $L$oop_tail_ssse3 465 jnz NEAR $L$oop_tail_ssse3
457 466
458 $L$done_ssse3: 467 $L$done_ssse3:
459 movaps xmm6,XMMWORD[((64+32))+rsp] 468 movaps xmm6,XMMWORD[((64+32))+rsp]
460 movaps xmm7,XMMWORD[((64+48))+rsp] 469 movaps xmm7,XMMWORD[((64+48))+rsp]
461 » add» rsp,64+72 470 » add» rsp,64+72+48
462 » pop» r15
463 » pop» r14
464 » pop» r13
465 » pop» r12
466 » pop» rbp
467 » pop» rbx
468 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 471 mov rdi,QWORD[8+rsp] ;WIN64 epilogue
469 mov rsi,QWORD[16+rsp] 472 mov rsi,QWORD[16+rsp]
470 DB 0F3h,0C3h ;repret 473 DB 0F3h,0C3h ;repret
471 $L$SEH_end_ChaCha20_ssse3: 474 $L$SEH_end_ChaCha20_ssse3:
472 475
473 ALIGN 32 476 ALIGN 32
474 ChaCha20_4x: 477 ChaCha20_4x:
475 mov QWORD[8+rsp],rdi ;WIN64 prologue 478 mov QWORD[8+rsp],rdi ;WIN64 prologue
476 mov QWORD[16+rsp],rsi 479 mov QWORD[16+rsp],rsi
477 mov rax,rsp 480 mov rax,rsp
(...skipping 1202 matching lines...) Expand 10 before | Expand all | Expand 10 after
1680 movaps xmm11,XMMWORD[32+r11] 1683 movaps xmm11,XMMWORD[32+r11]
1681 movaps xmm12,XMMWORD[48+r11] 1684 movaps xmm12,XMMWORD[48+r11]
1682 movaps xmm13,XMMWORD[64+r11] 1685 movaps xmm13,XMMWORD[64+r11]
1683 movaps xmm14,XMMWORD[80+r11] 1686 movaps xmm14,XMMWORD[80+r11]
1684 movaps xmm15,XMMWORD[96+r11] 1687 movaps xmm15,XMMWORD[96+r11]
1685 mov rsp,QWORD[640+rsp] 1688 mov rsp,QWORD[640+rsp]
1686 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 1689 mov rdi,QWORD[8+rsp] ;WIN64 epilogue
1687 mov rsi,QWORD[16+rsp] 1690 mov rsi,QWORD[16+rsp]
1688 DB 0F3h,0C3h ;repret 1691 DB 0F3h,0C3h ;repret
1689 $L$SEH_end_ChaCha20_8x: 1692 $L$SEH_end_ChaCha20_8x:
OLDNEW
« no previous file with comments | « third_party/boringssl/win-x86_64/crypto/bn/x86_64-mont5.asm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698