Index: third_party/boringssl/win-x86_64/crypto/chacha/chacha-x86_64.asm |
diff --git a/third_party/boringssl/win-x86_64/crypto/chacha/chacha-x86_64.asm b/third_party/boringssl/win-x86_64/crypto/chacha/chacha-x86_64.asm |
index afebd2e01a4aaa9308f13c2dee6bdcf004fd473c..ce6fdb926c0d825437c7a49609ca42a20c07e0b5 100644 |
--- a/third_party/boringssl/win-x86_64/crypto/chacha/chacha-x86_64.asm |
+++ b/third_party/boringssl/win-x86_64/crypto/chacha/chacha-x86_64.asm |
@@ -27,6 +27,15 @@ DB 0x3,0x0,0x1,0x2,0x7,0x4,0x5,0x6,0xb,0x8,0x9,0xa,0xf,0xc,0xd,0xe |
$L$sigma: |
DB 101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107 |
DB 0 |
+ALIGN 64 |
+$L$zeroz: |
+ DD 0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0 |
+$L$fourz: |
+ DD 4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0 |
+$L$incz: |
+ DD 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 |
+$L$sixteen: |
+ DD 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16 |
DB 67,104,97,67,104,97,50,48,32,102,111,114,32,120,56,54 |
DB 95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32 |
DB 98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115 |
@@ -348,7 +357,7 @@ $L$do_sse3_after_all: |
movdqa XMMWORD[16+rsp],xmm1 |
movdqa XMMWORD[32+rsp],xmm2 |
movdqa XMMWORD[48+rsp],xmm3 |
- mov ebp,10 |
+ mov r8,10 |
jmp NEAR $L$oop_ssse3 |
ALIGN 32 |
@@ -358,7 +367,7 @@ $L$oop_outer_ssse3: |
movdqa xmm1,XMMWORD[16+rsp] |
movdqa xmm2,XMMWORD[32+rsp] |
paddd xmm3,XMMWORD[48+rsp] |
- mov ebp,10 |
+ mov r8,10 |
movdqa XMMWORD[48+rsp],xmm3 |
jmp NEAR $L$oop_ssse3 |
@@ -407,7 +416,7 @@ DB 102,15,56,0,223 |
pshufd xmm2,xmm2,78 |
pshufd xmm1,xmm1,147 |
pshufd xmm3,xmm3,57 |
- dec ebp |
+ dec r8 |
jnz NEAR $L$oop_ssse3 |
paddd xmm0,XMMWORD[rsp] |
paddd xmm1,XMMWORD[16+rsp] |
@@ -444,27 +453,21 @@ $L$tail_ssse3: |
movdqa XMMWORD[16+rsp],xmm1 |
movdqa XMMWORD[32+rsp],xmm2 |
movdqa XMMWORD[48+rsp],xmm3 |
- xor rbx,rbx |
+ xor r8,r8 |
$L$oop_tail_ssse3: |
- movzx eax,BYTE[rbx*1+rsi] |
- movzx ecx,BYTE[rbx*1+rsp] |
- lea rbx,[1+rbx] |
+ movzx eax,BYTE[r8*1+rsi] |
+ movzx ecx,BYTE[r8*1+rsp] |
+ lea r8,[1+r8] |
xor eax,ecx |
- mov BYTE[((-1))+rbx*1+rdi],al |
+ mov BYTE[((-1))+r8*1+rdi],al |
dec rdx |
jnz NEAR $L$oop_tail_ssse3 |
$L$done_ssse3: |
movaps xmm6,XMMWORD[((64+32))+rsp] |
movaps xmm7,XMMWORD[((64+48))+rsp] |
- add rsp,64+72 |
- pop r15 |
- pop r14 |
- pop r13 |
- pop r12 |
- pop rbp |
- pop rbx |
+ add rsp,64+72+48 |
mov rdi,QWORD[8+rsp] ;WIN64 epilogue |
mov rsi,QWORD[16+rsp] |
DB 0F3h,0C3h ;repret |