summaryrefslogtreecommitdiff
path: root/win-x86_64/crypto/fipsmodule
diff options
context:
space:
mode:
authorRobert Sloan <varomodt@google.com>2018-12-17 12:09:20 -0800
committerRobert Sloan <varomodt@google.com>2018-12-17 12:09:25 -0800
commit11c28bd346323429220e1d3de42163868d83d0cd (patch)
tree37e1b45a3f85d38626637fe6dd2bdca7426d4ba5 /win-x86_64/crypto/fipsmodule
parent6e8c9598d925ab3001605150c2bc5edd6b135622 (diff)
downloadboringssl-11c28bd346323429220e1d3de42163868d83d0cd.tar.gz
external/boringssl: Sync to 41c10e2b5f37edce8b9f292f7f3bacb7e30e25c4.android-o-mr1-iot-release-1.0.8
This includes the following changes: https://boringssl.googlesource.com/boringssl/+log/0f5ecd3a854546d943104e1f7421e489b7f4d5aa..41c10e2b5f37edce8b9f292f7f3bacb7e30e25c4 Test: atest CtsLibcoreTestCases Change-Id: Id591c50e7be7e568fa345c39c256b47fb7940965
Diffstat (limited to 'win-x86_64/crypto/fipsmodule')
-rw-r--r--win-x86_64/crypto/fipsmodule/bsaes-x86_64.asm1034
-rw-r--r--win-x86_64/crypto/fipsmodule/sha512-x86_64.asm1133
2 files changed, 0 insertions, 2167 deletions
diff --git a/win-x86_64/crypto/fipsmodule/bsaes-x86_64.asm b/win-x86_64/crypto/fipsmodule/bsaes-x86_64.asm
index 7dc0c5ac..923c9fa9 100644
--- a/win-x86_64/crypto/fipsmodule/bsaes-x86_64.asm
+++ b/win-x86_64/crypto/fipsmodule/bsaes-x86_64.asm
@@ -1609,1020 +1609,6 @@ $L$ctr_enc_epilogue:
DB 0F3h,0C3h ;repret
-global bsaes_xts_encrypt
-
-ALIGN 16
-bsaes_xts_encrypt:
-
- mov rax,rsp
-$L$xts_enc_prologue:
- push rbp
-
- push rbx
-
- push r12
-
- push r13
-
- push r14
-
- push r15
-
- lea rsp,[((-72))+rsp]
-
- mov r10,QWORD[160+rsp]
- mov r11,QWORD[168+rsp]
- lea rsp,[((-160))+rsp]
- movaps XMMWORD[64+rsp],xmm6
- movaps XMMWORD[80+rsp],xmm7
- movaps XMMWORD[96+rsp],xmm8
- movaps XMMWORD[112+rsp],xmm9
- movaps XMMWORD[128+rsp],xmm10
- movaps XMMWORD[144+rsp],xmm11
- movaps XMMWORD[160+rsp],xmm12
- movaps XMMWORD[176+rsp],xmm13
- movaps XMMWORD[192+rsp],xmm14
- movaps XMMWORD[208+rsp],xmm15
-$L$xts_enc_body:
- mov rbp,rsp
-
- mov r12,rcx
- mov r13,rdx
- mov r14,r8
- mov r15,r9
-
- lea rcx,[r11]
- lea rdx,[32+rbp]
- lea r8,[r10]
- call aes_nohw_encrypt
-
- mov eax,DWORD[240+r15]
- mov rbx,r14
-
- mov edx,eax
- shl rax,7
- sub rax,96
- sub rsp,rax
-
- mov rax,rsp
- mov rcx,r15
- mov r10d,edx
- call _bsaes_key_convert
- pxor xmm7,xmm6
- movdqa XMMWORD[rax],xmm7
-
- and r14,-16
- sub rsp,0x80
- movdqa xmm6,XMMWORD[32+rbp]
-
- pxor xmm14,xmm14
- movdqa xmm12,XMMWORD[$L$xts_magic]
- pcmpgtd xmm14,xmm6
-
- sub r14,0x80
- jc NEAR $L$xts_enc_short
- jmp NEAR $L$xts_enc_loop
-
-ALIGN 16
-$L$xts_enc_loop:
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm15,xmm6
- movdqa XMMWORD[rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm0,xmm6
- movdqa XMMWORD[16+rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- movdqu xmm7,XMMWORD[r12]
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm1,xmm6
- movdqa XMMWORD[32+rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- movdqu xmm8,XMMWORD[16+r12]
- pxor xmm15,xmm7
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm2,xmm6
- movdqa XMMWORD[48+rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- movdqu xmm9,XMMWORD[32+r12]
- pxor xmm0,xmm8
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm3,xmm6
- movdqa XMMWORD[64+rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- movdqu xmm10,XMMWORD[48+r12]
- pxor xmm1,xmm9
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm4,xmm6
- movdqa XMMWORD[80+rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- movdqu xmm11,XMMWORD[64+r12]
- pxor xmm2,xmm10
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm5,xmm6
- movdqa XMMWORD[96+rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- movdqu xmm12,XMMWORD[80+r12]
- pxor xmm3,xmm11
- movdqu xmm13,XMMWORD[96+r12]
- pxor xmm4,xmm12
- movdqu xmm14,XMMWORD[112+r12]
- lea r12,[128+r12]
- movdqa XMMWORD[112+rsp],xmm6
- pxor xmm5,xmm13
- lea rax,[128+rsp]
- pxor xmm6,xmm14
- mov r10d,edx
-
- call _bsaes_encrypt8
-
- pxor xmm15,XMMWORD[rsp]
- pxor xmm0,XMMWORD[16+rsp]
- movdqu XMMWORD[r13],xmm15
- pxor xmm3,XMMWORD[32+rsp]
- movdqu XMMWORD[16+r13],xmm0
- pxor xmm5,XMMWORD[48+rsp]
- movdqu XMMWORD[32+r13],xmm3
- pxor xmm2,XMMWORD[64+rsp]
- movdqu XMMWORD[48+r13],xmm5
- pxor xmm6,XMMWORD[80+rsp]
- movdqu XMMWORD[64+r13],xmm2
- pxor xmm1,XMMWORD[96+rsp]
- movdqu XMMWORD[80+r13],xmm6
- pxor xmm4,XMMWORD[112+rsp]
- movdqu XMMWORD[96+r13],xmm1
- movdqu XMMWORD[112+r13],xmm4
- lea r13,[128+r13]
-
- movdqa xmm6,XMMWORD[112+rsp]
- pxor xmm14,xmm14
- movdqa xmm12,XMMWORD[$L$xts_magic]
- pcmpgtd xmm14,xmm6
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
-
- sub r14,0x80
- jnc NEAR $L$xts_enc_loop
-
-$L$xts_enc_short:
- add r14,0x80
- jz NEAR $L$xts_enc_done
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm15,xmm6
- movdqa XMMWORD[rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm0,xmm6
- movdqa XMMWORD[16+rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- movdqu xmm7,XMMWORD[r12]
- cmp r14,16
- je NEAR $L$xts_enc_1
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm1,xmm6
- movdqa XMMWORD[32+rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- movdqu xmm8,XMMWORD[16+r12]
- cmp r14,32
- je NEAR $L$xts_enc_2
- pxor xmm15,xmm7
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm2,xmm6
- movdqa XMMWORD[48+rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- movdqu xmm9,XMMWORD[32+r12]
- cmp r14,48
- je NEAR $L$xts_enc_3
- pxor xmm0,xmm8
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm3,xmm6
- movdqa XMMWORD[64+rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- movdqu xmm10,XMMWORD[48+r12]
- cmp r14,64
- je NEAR $L$xts_enc_4
- pxor xmm1,xmm9
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm4,xmm6
- movdqa XMMWORD[80+rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- movdqu xmm11,XMMWORD[64+r12]
- cmp r14,80
- je NEAR $L$xts_enc_5
- pxor xmm2,xmm10
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm5,xmm6
- movdqa XMMWORD[96+rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- movdqu xmm12,XMMWORD[80+r12]
- cmp r14,96
- je NEAR $L$xts_enc_6
- pxor xmm3,xmm11
- movdqu xmm13,XMMWORD[96+r12]
- pxor xmm4,xmm12
- movdqa XMMWORD[112+rsp],xmm6
- lea r12,[112+r12]
- pxor xmm5,xmm13
- lea rax,[128+rsp]
- mov r10d,edx
-
- call _bsaes_encrypt8
-
- pxor xmm15,XMMWORD[rsp]
- pxor xmm0,XMMWORD[16+rsp]
- movdqu XMMWORD[r13],xmm15
- pxor xmm3,XMMWORD[32+rsp]
- movdqu XMMWORD[16+r13],xmm0
- pxor xmm5,XMMWORD[48+rsp]
- movdqu XMMWORD[32+r13],xmm3
- pxor xmm2,XMMWORD[64+rsp]
- movdqu XMMWORD[48+r13],xmm5
- pxor xmm6,XMMWORD[80+rsp]
- movdqu XMMWORD[64+r13],xmm2
- pxor xmm1,XMMWORD[96+rsp]
- movdqu XMMWORD[80+r13],xmm6
- movdqu XMMWORD[96+r13],xmm1
- lea r13,[112+r13]
-
- movdqa xmm6,XMMWORD[112+rsp]
- jmp NEAR $L$xts_enc_done
-ALIGN 16
-$L$xts_enc_6:
- pxor xmm3,xmm11
- lea r12,[96+r12]
- pxor xmm4,xmm12
- lea rax,[128+rsp]
- mov r10d,edx
-
- call _bsaes_encrypt8
-
- pxor xmm15,XMMWORD[rsp]
- pxor xmm0,XMMWORD[16+rsp]
- movdqu XMMWORD[r13],xmm15
- pxor xmm3,XMMWORD[32+rsp]
- movdqu XMMWORD[16+r13],xmm0
- pxor xmm5,XMMWORD[48+rsp]
- movdqu XMMWORD[32+r13],xmm3
- pxor xmm2,XMMWORD[64+rsp]
- movdqu XMMWORD[48+r13],xmm5
- pxor xmm6,XMMWORD[80+rsp]
- movdqu XMMWORD[64+r13],xmm2
- movdqu XMMWORD[80+r13],xmm6
- lea r13,[96+r13]
-
- movdqa xmm6,XMMWORD[96+rsp]
- jmp NEAR $L$xts_enc_done
-ALIGN 16
-$L$xts_enc_5:
- pxor xmm2,xmm10
- lea r12,[80+r12]
- pxor xmm3,xmm11
- lea rax,[128+rsp]
- mov r10d,edx
-
- call _bsaes_encrypt8
-
- pxor xmm15,XMMWORD[rsp]
- pxor xmm0,XMMWORD[16+rsp]
- movdqu XMMWORD[r13],xmm15
- pxor xmm3,XMMWORD[32+rsp]
- movdqu XMMWORD[16+r13],xmm0
- pxor xmm5,XMMWORD[48+rsp]
- movdqu XMMWORD[32+r13],xmm3
- pxor xmm2,XMMWORD[64+rsp]
- movdqu XMMWORD[48+r13],xmm5
- movdqu XMMWORD[64+r13],xmm2
- lea r13,[80+r13]
-
- movdqa xmm6,XMMWORD[80+rsp]
- jmp NEAR $L$xts_enc_done
-ALIGN 16
-$L$xts_enc_4:
- pxor xmm1,xmm9
- lea r12,[64+r12]
- pxor xmm2,xmm10
- lea rax,[128+rsp]
- mov r10d,edx
-
- call _bsaes_encrypt8
-
- pxor xmm15,XMMWORD[rsp]
- pxor xmm0,XMMWORD[16+rsp]
- movdqu XMMWORD[r13],xmm15
- pxor xmm3,XMMWORD[32+rsp]
- movdqu XMMWORD[16+r13],xmm0
- pxor xmm5,XMMWORD[48+rsp]
- movdqu XMMWORD[32+r13],xmm3
- movdqu XMMWORD[48+r13],xmm5
- lea r13,[64+r13]
-
- movdqa xmm6,XMMWORD[64+rsp]
- jmp NEAR $L$xts_enc_done
-ALIGN 16
-$L$xts_enc_3:
- pxor xmm0,xmm8
- lea r12,[48+r12]
- pxor xmm1,xmm9
- lea rax,[128+rsp]
- mov r10d,edx
-
- call _bsaes_encrypt8
-
- pxor xmm15,XMMWORD[rsp]
- pxor xmm0,XMMWORD[16+rsp]
- movdqu XMMWORD[r13],xmm15
- pxor xmm3,XMMWORD[32+rsp]
- movdqu XMMWORD[16+r13],xmm0
- movdqu XMMWORD[32+r13],xmm3
- lea r13,[48+r13]
-
- movdqa xmm6,XMMWORD[48+rsp]
- jmp NEAR $L$xts_enc_done
-ALIGN 16
-$L$xts_enc_2:
- pxor xmm15,xmm7
- lea r12,[32+r12]
- pxor xmm0,xmm8
- lea rax,[128+rsp]
- mov r10d,edx
-
- call _bsaes_encrypt8
-
- pxor xmm15,XMMWORD[rsp]
- pxor xmm0,XMMWORD[16+rsp]
- movdqu XMMWORD[r13],xmm15
- movdqu XMMWORD[16+r13],xmm0
- lea r13,[32+r13]
-
- movdqa xmm6,XMMWORD[32+rsp]
- jmp NEAR $L$xts_enc_done
-ALIGN 16
-$L$xts_enc_1:
- pxor xmm7,xmm15
- lea r12,[16+r12]
- movdqa XMMWORD[32+rbp],xmm7
- lea rcx,[32+rbp]
- lea rdx,[32+rbp]
- lea r8,[r15]
- call aes_nohw_encrypt
- pxor xmm15,XMMWORD[32+rbp]
-
-
-
-
-
- movdqu XMMWORD[r13],xmm15
- lea r13,[16+r13]
-
- movdqa xmm6,XMMWORD[16+rsp]
-
-$L$xts_enc_done:
- and ebx,15
- jz NEAR $L$xts_enc_ret
- mov rdx,r13
-
-$L$xts_enc_steal:
- movzx eax,BYTE[r12]
- movzx ecx,BYTE[((-16))+rdx]
- lea r12,[1+r12]
- mov BYTE[((-16))+rdx],al
- mov BYTE[rdx],cl
- lea rdx,[1+rdx]
- sub ebx,1
- jnz NEAR $L$xts_enc_steal
-
- movdqu xmm15,XMMWORD[((-16))+r13]
- lea rcx,[32+rbp]
- pxor xmm15,xmm6
- lea rdx,[32+rbp]
- movdqa XMMWORD[32+rbp],xmm15
- lea r8,[r15]
- call aes_nohw_encrypt
- pxor xmm6,XMMWORD[32+rbp]
- movdqu XMMWORD[(-16)+r13],xmm6
-
-$L$xts_enc_ret:
- lea rax,[rsp]
- pxor xmm0,xmm0
-$L$xts_enc_bzero:
- movdqa XMMWORD[rax],xmm0
- movdqa XMMWORD[16+rax],xmm0
- lea rax,[32+rax]
- cmp rbp,rax
- ja NEAR $L$xts_enc_bzero
-
- lea rax,[120+rbp]
-
- movaps xmm6,XMMWORD[64+rbp]
- movaps xmm7,XMMWORD[80+rbp]
- movaps xmm8,XMMWORD[96+rbp]
- movaps xmm9,XMMWORD[112+rbp]
- movaps xmm10,XMMWORD[128+rbp]
- movaps xmm11,XMMWORD[144+rbp]
- movaps xmm12,XMMWORD[160+rbp]
- movaps xmm13,XMMWORD[176+rbp]
- movaps xmm14,XMMWORD[192+rbp]
- movaps xmm15,XMMWORD[208+rbp]
- lea rax,[160+rax]
-$L$xts_enc_tail:
- mov r15,QWORD[((-48))+rax]
-
- mov r14,QWORD[((-40))+rax]
-
- mov r13,QWORD[((-32))+rax]
-
- mov r12,QWORD[((-24))+rax]
-
- mov rbx,QWORD[((-16))+rax]
-
- mov rbp,QWORD[((-8))+rax]
-
- lea rsp,[rax]
-
-$L$xts_enc_epilogue:
- DB 0F3h,0C3h ;repret
-
-
-
-global bsaes_xts_decrypt
-
-ALIGN 16
-bsaes_xts_decrypt:
-
- mov rax,rsp
-$L$xts_dec_prologue:
- push rbp
-
- push rbx
-
- push r12
-
- push r13
-
- push r14
-
- push r15
-
- lea rsp,[((-72))+rsp]
-
- mov r10,QWORD[160+rsp]
- mov r11,QWORD[168+rsp]
- lea rsp,[((-160))+rsp]
- movaps XMMWORD[64+rsp],xmm6
- movaps XMMWORD[80+rsp],xmm7
- movaps XMMWORD[96+rsp],xmm8
- movaps XMMWORD[112+rsp],xmm9
- movaps XMMWORD[128+rsp],xmm10
- movaps XMMWORD[144+rsp],xmm11
- movaps XMMWORD[160+rsp],xmm12
- movaps XMMWORD[176+rsp],xmm13
- movaps XMMWORD[192+rsp],xmm14
- movaps XMMWORD[208+rsp],xmm15
-$L$xts_dec_body:
- mov rbp,rsp
- mov r12,rcx
- mov r13,rdx
- mov r14,r8
- mov r15,r9
-
- lea rcx,[r11]
- lea rdx,[32+rbp]
- lea r8,[r10]
- call aes_nohw_encrypt
-
- mov eax,DWORD[240+r15]
- mov rbx,r14
-
- mov edx,eax
- shl rax,7
- sub rax,96
- sub rsp,rax
-
- mov rax,rsp
- mov rcx,r15
- mov r10d,edx
- call _bsaes_key_convert
- pxor xmm7,XMMWORD[rsp]
- movdqa XMMWORD[rax],xmm6
- movdqa XMMWORD[rsp],xmm7
-
- xor eax,eax
- and r14,-16
- test ebx,15
- setnz al
- shl rax,4
- sub r14,rax
-
- sub rsp,0x80
- movdqa xmm6,XMMWORD[32+rbp]
-
- pxor xmm14,xmm14
- movdqa xmm12,XMMWORD[$L$xts_magic]
- pcmpgtd xmm14,xmm6
-
- sub r14,0x80
- jc NEAR $L$xts_dec_short
- jmp NEAR $L$xts_dec_loop
-
-ALIGN 16
-$L$xts_dec_loop:
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm15,xmm6
- movdqa XMMWORD[rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm0,xmm6
- movdqa XMMWORD[16+rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- movdqu xmm7,XMMWORD[r12]
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm1,xmm6
- movdqa XMMWORD[32+rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- movdqu xmm8,XMMWORD[16+r12]
- pxor xmm15,xmm7
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm2,xmm6
- movdqa XMMWORD[48+rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- movdqu xmm9,XMMWORD[32+r12]
- pxor xmm0,xmm8
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm3,xmm6
- movdqa XMMWORD[64+rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- movdqu xmm10,XMMWORD[48+r12]
- pxor xmm1,xmm9
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm4,xmm6
- movdqa XMMWORD[80+rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- movdqu xmm11,XMMWORD[64+r12]
- pxor xmm2,xmm10
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm5,xmm6
- movdqa XMMWORD[96+rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- movdqu xmm12,XMMWORD[80+r12]
- pxor xmm3,xmm11
- movdqu xmm13,XMMWORD[96+r12]
- pxor xmm4,xmm12
- movdqu xmm14,XMMWORD[112+r12]
- lea r12,[128+r12]
- movdqa XMMWORD[112+rsp],xmm6
- pxor xmm5,xmm13
- lea rax,[128+rsp]
- pxor xmm6,xmm14
- mov r10d,edx
-
- call _bsaes_decrypt8
-
- pxor xmm15,XMMWORD[rsp]
- pxor xmm0,XMMWORD[16+rsp]
- movdqu XMMWORD[r13],xmm15
- pxor xmm5,XMMWORD[32+rsp]
- movdqu XMMWORD[16+r13],xmm0
- pxor xmm3,XMMWORD[48+rsp]
- movdqu XMMWORD[32+r13],xmm5
- pxor xmm1,XMMWORD[64+rsp]
- movdqu XMMWORD[48+r13],xmm3
- pxor xmm6,XMMWORD[80+rsp]
- movdqu XMMWORD[64+r13],xmm1
- pxor xmm2,XMMWORD[96+rsp]
- movdqu XMMWORD[80+r13],xmm6
- pxor xmm4,XMMWORD[112+rsp]
- movdqu XMMWORD[96+r13],xmm2
- movdqu XMMWORD[112+r13],xmm4
- lea r13,[128+r13]
-
- movdqa xmm6,XMMWORD[112+rsp]
- pxor xmm14,xmm14
- movdqa xmm12,XMMWORD[$L$xts_magic]
- pcmpgtd xmm14,xmm6
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
-
- sub r14,0x80
- jnc NEAR $L$xts_dec_loop
-
-$L$xts_dec_short:
- add r14,0x80
- jz NEAR $L$xts_dec_done
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm15,xmm6
- movdqa XMMWORD[rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm0,xmm6
- movdqa XMMWORD[16+rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- movdqu xmm7,XMMWORD[r12]
- cmp r14,16
- je NEAR $L$xts_dec_1
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm1,xmm6
- movdqa XMMWORD[32+rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- movdqu xmm8,XMMWORD[16+r12]
- cmp r14,32
- je NEAR $L$xts_dec_2
- pxor xmm15,xmm7
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm2,xmm6
- movdqa XMMWORD[48+rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- movdqu xmm9,XMMWORD[32+r12]
- cmp r14,48
- je NEAR $L$xts_dec_3
- pxor xmm0,xmm8
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm3,xmm6
- movdqa XMMWORD[64+rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- movdqu xmm10,XMMWORD[48+r12]
- cmp r14,64
- je NEAR $L$xts_dec_4
- pxor xmm1,xmm9
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm4,xmm6
- movdqa XMMWORD[80+rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- movdqu xmm11,XMMWORD[64+r12]
- cmp r14,80
- je NEAR $L$xts_dec_5
- pxor xmm2,xmm10
- pshufd xmm13,xmm14,0x13
- pxor xmm14,xmm14
- movdqa xmm5,xmm6
- movdqa XMMWORD[96+rsp],xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- pcmpgtd xmm14,xmm6
- pxor xmm6,xmm13
- movdqu xmm12,XMMWORD[80+r12]
- cmp r14,96
- je NEAR $L$xts_dec_6
- pxor xmm3,xmm11
- movdqu xmm13,XMMWORD[96+r12]
- pxor xmm4,xmm12
- movdqa XMMWORD[112+rsp],xmm6
- lea r12,[112+r12]
- pxor xmm5,xmm13
- lea rax,[128+rsp]
- mov r10d,edx
-
- call _bsaes_decrypt8
-
- pxor xmm15,XMMWORD[rsp]
- pxor xmm0,XMMWORD[16+rsp]
- movdqu XMMWORD[r13],xmm15
- pxor xmm5,XMMWORD[32+rsp]
- movdqu XMMWORD[16+r13],xmm0
- pxor xmm3,XMMWORD[48+rsp]
- movdqu XMMWORD[32+r13],xmm5
- pxor xmm1,XMMWORD[64+rsp]
- movdqu XMMWORD[48+r13],xmm3
- pxor xmm6,XMMWORD[80+rsp]
- movdqu XMMWORD[64+r13],xmm1
- pxor xmm2,XMMWORD[96+rsp]
- movdqu XMMWORD[80+r13],xmm6
- movdqu XMMWORD[96+r13],xmm2
- lea r13,[112+r13]
-
- movdqa xmm6,XMMWORD[112+rsp]
- jmp NEAR $L$xts_dec_done
-ALIGN 16
-$L$xts_dec_6:
- pxor xmm3,xmm11
- lea r12,[96+r12]
- pxor xmm4,xmm12
- lea rax,[128+rsp]
- mov r10d,edx
-
- call _bsaes_decrypt8
-
- pxor xmm15,XMMWORD[rsp]
- pxor xmm0,XMMWORD[16+rsp]
- movdqu XMMWORD[r13],xmm15
- pxor xmm5,XMMWORD[32+rsp]
- movdqu XMMWORD[16+r13],xmm0
- pxor xmm3,XMMWORD[48+rsp]
- movdqu XMMWORD[32+r13],xmm5
- pxor xmm1,XMMWORD[64+rsp]
- movdqu XMMWORD[48+r13],xmm3
- pxor xmm6,XMMWORD[80+rsp]
- movdqu XMMWORD[64+r13],xmm1
- movdqu XMMWORD[80+r13],xmm6
- lea r13,[96+r13]
-
- movdqa xmm6,XMMWORD[96+rsp]
- jmp NEAR $L$xts_dec_done
-ALIGN 16
-$L$xts_dec_5:
- pxor xmm2,xmm10
- lea r12,[80+r12]
- pxor xmm3,xmm11
- lea rax,[128+rsp]
- mov r10d,edx
-
- call _bsaes_decrypt8
-
- pxor xmm15,XMMWORD[rsp]
- pxor xmm0,XMMWORD[16+rsp]
- movdqu XMMWORD[r13],xmm15
- pxor xmm5,XMMWORD[32+rsp]
- movdqu XMMWORD[16+r13],xmm0
- pxor xmm3,XMMWORD[48+rsp]
- movdqu XMMWORD[32+r13],xmm5
- pxor xmm1,XMMWORD[64+rsp]
- movdqu XMMWORD[48+r13],xmm3
- movdqu XMMWORD[64+r13],xmm1
- lea r13,[80+r13]
-
- movdqa xmm6,XMMWORD[80+rsp]
- jmp NEAR $L$xts_dec_done
-ALIGN 16
-$L$xts_dec_4:
- pxor xmm1,xmm9
- lea r12,[64+r12]
- pxor xmm2,xmm10
- lea rax,[128+rsp]
- mov r10d,edx
-
- call _bsaes_decrypt8
-
- pxor xmm15,XMMWORD[rsp]
- pxor xmm0,XMMWORD[16+rsp]
- movdqu XMMWORD[r13],xmm15
- pxor xmm5,XMMWORD[32+rsp]
- movdqu XMMWORD[16+r13],xmm0
- pxor xmm3,XMMWORD[48+rsp]
- movdqu XMMWORD[32+r13],xmm5
- movdqu XMMWORD[48+r13],xmm3
- lea r13,[64+r13]
-
- movdqa xmm6,XMMWORD[64+rsp]
- jmp NEAR $L$xts_dec_done
-ALIGN 16
-$L$xts_dec_3:
- pxor xmm0,xmm8
- lea r12,[48+r12]
- pxor xmm1,xmm9
- lea rax,[128+rsp]
- mov r10d,edx
-
- call _bsaes_decrypt8
-
- pxor xmm15,XMMWORD[rsp]
- pxor xmm0,XMMWORD[16+rsp]
- movdqu XMMWORD[r13],xmm15
- pxor xmm5,XMMWORD[32+rsp]
- movdqu XMMWORD[16+r13],xmm0
- movdqu XMMWORD[32+r13],xmm5
- lea r13,[48+r13]
-
- movdqa xmm6,XMMWORD[48+rsp]
- jmp NEAR $L$xts_dec_done
-ALIGN 16
-$L$xts_dec_2:
- pxor xmm15,xmm7
- lea r12,[32+r12]
- pxor xmm0,xmm8
- lea rax,[128+rsp]
- mov r10d,edx
-
- call _bsaes_decrypt8
-
- pxor xmm15,XMMWORD[rsp]
- pxor xmm0,XMMWORD[16+rsp]
- movdqu XMMWORD[r13],xmm15
- movdqu XMMWORD[16+r13],xmm0
- lea r13,[32+r13]
-
- movdqa xmm6,XMMWORD[32+rsp]
- jmp NEAR $L$xts_dec_done
-ALIGN 16
-$L$xts_dec_1:
- pxor xmm7,xmm15
- lea r12,[16+r12]
- movdqa XMMWORD[32+rbp],xmm7
- lea rcx,[32+rbp]
- lea rdx,[32+rbp]
- lea r8,[r15]
- call aes_nohw_decrypt
- pxor xmm15,XMMWORD[32+rbp]
-
-
-
-
-
- movdqu XMMWORD[r13],xmm15
- lea r13,[16+r13]
-
- movdqa xmm6,XMMWORD[16+rsp]
-
-$L$xts_dec_done:
- and ebx,15
- jz NEAR $L$xts_dec_ret
-
- pxor xmm14,xmm14
- movdqa xmm12,XMMWORD[$L$xts_magic]
- pcmpgtd xmm14,xmm6
- pshufd xmm13,xmm14,0x13
- movdqa xmm5,xmm6
- paddq xmm6,xmm6
- pand xmm13,xmm12
- movdqu xmm15,XMMWORD[r12]
- pxor xmm6,xmm13
-
- lea rcx,[32+rbp]
- pxor xmm15,xmm6
- lea rdx,[32+rbp]
- movdqa XMMWORD[32+rbp],xmm15
- lea r8,[r15]
- call aes_nohw_decrypt
- pxor xmm6,XMMWORD[32+rbp]
- mov rdx,r13
- movdqu XMMWORD[r13],xmm6
-
-$L$xts_dec_steal:
- movzx eax,BYTE[16+r12]
- movzx ecx,BYTE[rdx]
- lea r12,[1+r12]
- mov BYTE[rdx],al
- mov BYTE[16+rdx],cl
- lea rdx,[1+rdx]
- sub ebx,1
- jnz NEAR $L$xts_dec_steal
-
- movdqu xmm15,XMMWORD[r13]
- lea rcx,[32+rbp]
- pxor xmm15,xmm5
- lea rdx,[32+rbp]
- movdqa XMMWORD[32+rbp],xmm15
- lea r8,[r15]
- call aes_nohw_decrypt
- pxor xmm5,XMMWORD[32+rbp]
- movdqu XMMWORD[r13],xmm5
-
-$L$xts_dec_ret:
- lea rax,[rsp]
- pxor xmm0,xmm0
-$L$xts_dec_bzero:
- movdqa XMMWORD[rax],xmm0
- movdqa XMMWORD[16+rax],xmm0
- lea rax,[32+rax]
- cmp rbp,rax
- ja NEAR $L$xts_dec_bzero
-
- lea rax,[120+rbp]
-
- movaps xmm6,XMMWORD[64+rbp]
- movaps xmm7,XMMWORD[80+rbp]
- movaps xmm8,XMMWORD[96+rbp]
- movaps xmm9,XMMWORD[112+rbp]
- movaps xmm10,XMMWORD[128+rbp]
- movaps xmm11,XMMWORD[144+rbp]
- movaps xmm12,XMMWORD[160+rbp]
- movaps xmm13,XMMWORD[176+rbp]
- movaps xmm14,XMMWORD[192+rbp]
- movaps xmm15,XMMWORD[208+rbp]
- lea rax,[160+rax]
-$L$xts_dec_tail:
- mov r15,QWORD[((-48))+rax]
-
- mov r14,QWORD[((-40))+rax]
-
- mov r13,QWORD[((-32))+rax]
-
- mov r12,QWORD[((-24))+rax]
-
- mov rbx,QWORD[((-16))+rax]
-
- mov rbp,QWORD[((-8))+rax]
-
- lea rsp,[rax]
-
-$L$xts_dec_epilogue:
- DB 0F3h,0C3h ;repret
-
-
ALIGN 64
_bsaes_const:
@@ -2786,14 +1772,6 @@ ALIGN 4
DD $L$ctr_enc_epilogue wrt ..imagebase
DD $L$ctr_enc_info wrt ..imagebase
- DD $L$xts_enc_prologue wrt ..imagebase
- DD $L$xts_enc_epilogue wrt ..imagebase
- DD $L$xts_enc_info wrt ..imagebase
-
- DD $L$xts_dec_prologue wrt ..imagebase
- DD $L$xts_dec_epilogue wrt ..imagebase
- DD $L$xts_dec_info wrt ..imagebase
-
section .xdata rdata align=8
ALIGN 8
$L$cbc_dec_info:
@@ -2808,15 +1786,3 @@ DB 9,0,0,0
DD $L$ctr_enc_body wrt ..imagebase,$L$ctr_enc_epilogue wrt ..imagebase
DD $L$ctr_enc_tail wrt ..imagebase
DD 0
-$L$xts_enc_info:
-DB 9,0,0,0
- DD se_handler wrt ..imagebase
- DD $L$xts_enc_body wrt ..imagebase,$L$xts_enc_epilogue wrt ..imagebase
- DD $L$xts_enc_tail wrt ..imagebase
- DD 0
-$L$xts_dec_info:
-DB 9,0,0,0
- DD se_handler wrt ..imagebase
- DD $L$xts_dec_body wrt ..imagebase,$L$xts_dec_epilogue wrt ..imagebase
- DD $L$xts_dec_tail wrt ..imagebase
- DD 0
diff --git a/win-x86_64/crypto/fipsmodule/sha512-x86_64.asm b/win-x86_64/crypto/fipsmodule/sha512-x86_64.asm
index ea6c4f17..33dc2c2e 100644
--- a/win-x86_64/crypto/fipsmodule/sha512-x86_64.asm
+++ b/win-x86_64/crypto/fipsmodule/sha512-x86_64.asm
@@ -31,8 +31,6 @@ $L$SEH_begin_sha512_block_data_order:
mov r9d,DWORD[r11]
mov r10d,DWORD[4+r11]
mov r11d,DWORD[8+r11]
- test r10d,2048
- jnz NEAR $L$xop_shortcut
and r9d,1073741824
and r10d,268435968
or r10d,r9d
@@ -1839,1130 +1837,6 @@ DB 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46
DB 111,114,103,62,0
ALIGN 64
-sha512_block_data_order_xop:
- mov QWORD[8+rsp],rdi ;WIN64 prologue
- mov QWORD[16+rsp],rsi
- mov rax,rsp
-$L$SEH_begin_sha512_block_data_order_xop:
- mov rdi,rcx
- mov rsi,rdx
- mov rdx,r8
-
-
-
-$L$xop_shortcut:
- mov rax,rsp
-
- push rbx
-
- push rbp
-
- push r12
-
- push r13
-
- push r14
-
- push r15
-
- shl rdx,4
- sub rsp,256
- lea rdx,[rdx*8+rsi]
- and rsp,-64
- mov QWORD[((128+0))+rsp],rdi
- mov QWORD[((128+8))+rsp],rsi
- mov QWORD[((128+16))+rsp],rdx
- mov QWORD[152+rsp],rax
-
- movaps XMMWORD[(128+32)+rsp],xmm6
- movaps XMMWORD[(128+48)+rsp],xmm7
- movaps XMMWORD[(128+64)+rsp],xmm8
- movaps XMMWORD[(128+80)+rsp],xmm9
- movaps XMMWORD[(128+96)+rsp],xmm10
- movaps XMMWORD[(128+112)+rsp],xmm11
-$L$prologue_xop:
-
- vzeroupper
- mov rax,QWORD[rdi]
- mov rbx,QWORD[8+rdi]
- mov rcx,QWORD[16+rdi]
- mov rdx,QWORD[24+rdi]
- mov r8,QWORD[32+rdi]
- mov r9,QWORD[40+rdi]
- mov r10,QWORD[48+rdi]
- mov r11,QWORD[56+rdi]
- jmp NEAR $L$loop_xop
-ALIGN 16
-$L$loop_xop:
- vmovdqa xmm11,XMMWORD[((K512+1280))]
- vmovdqu xmm0,XMMWORD[rsi]
- lea rbp,[((K512+128))]
- vmovdqu xmm1,XMMWORD[16+rsi]
- vmovdqu xmm2,XMMWORD[32+rsi]
- vpshufb xmm0,xmm0,xmm11
- vmovdqu xmm3,XMMWORD[48+rsi]
- vpshufb xmm1,xmm1,xmm11
- vmovdqu xmm4,XMMWORD[64+rsi]
- vpshufb xmm2,xmm2,xmm11
- vmovdqu xmm5,XMMWORD[80+rsi]
- vpshufb xmm3,xmm3,xmm11
- vmovdqu xmm6,XMMWORD[96+rsi]
- vpshufb xmm4,xmm4,xmm11
- vmovdqu xmm7,XMMWORD[112+rsi]
- vpshufb xmm5,xmm5,xmm11
- vpaddq xmm8,xmm0,XMMWORD[((-128))+rbp]
- vpshufb xmm6,xmm6,xmm11
- vpaddq xmm9,xmm1,XMMWORD[((-96))+rbp]
- vpshufb xmm7,xmm7,xmm11
- vpaddq xmm10,xmm2,XMMWORD[((-64))+rbp]
- vpaddq xmm11,xmm3,XMMWORD[((-32))+rbp]
- vmovdqa XMMWORD[rsp],xmm8
- vpaddq xmm8,xmm4,XMMWORD[rbp]
- vmovdqa XMMWORD[16+rsp],xmm9
- vpaddq xmm9,xmm5,XMMWORD[32+rbp]
- vmovdqa XMMWORD[32+rsp],xmm10
- vpaddq xmm10,xmm6,XMMWORD[64+rbp]
- vmovdqa XMMWORD[48+rsp],xmm11
- vpaddq xmm11,xmm7,XMMWORD[96+rbp]
- vmovdqa XMMWORD[64+rsp],xmm8
- mov r14,rax
- vmovdqa XMMWORD[80+rsp],xmm9
- mov rdi,rbx
- vmovdqa XMMWORD[96+rsp],xmm10
- xor rdi,rcx
- vmovdqa XMMWORD[112+rsp],xmm11
- mov r13,r8
- jmp NEAR $L$xop_00_47
-
-ALIGN 16
-$L$xop_00_47:
- add rbp,256
- vpalignr xmm8,xmm1,xmm0,8
- ror r13,23
- mov rax,r14
- vpalignr xmm11,xmm5,xmm4,8
- mov r12,r9
- ror r14,5
-DB 143,72,120,195,200,56
- xor r13,r8
- xor r12,r10
- vpsrlq xmm8,xmm8,7
- ror r13,4
- xor r14,rax
- vpaddq xmm0,xmm0,xmm11
- and r12,r8
- xor r13,r8
- add r11,QWORD[rsp]
- mov r15,rax
-DB 143,72,120,195,209,7
- xor r12,r10
- ror r14,6
- vpxor xmm8,xmm8,xmm9
- xor r15,rbx
- add r11,r12
- ror r13,14
- and rdi,r15
-DB 143,104,120,195,223,3
- xor r14,rax
- add r11,r13
- vpxor xmm8,xmm8,xmm10
- xor rdi,rbx
- ror r14,28
- vpsrlq xmm10,xmm7,6
- add rdx,r11
- add r11,rdi
- vpaddq xmm0,xmm0,xmm8
- mov r13,rdx
- add r14,r11
-DB 143,72,120,195,203,42
- ror r13,23
- mov r11,r14
- vpxor xmm11,xmm11,xmm10
- mov r12,r8
- ror r14,5
- xor r13,rdx
- xor r12,r9
- vpxor xmm11,xmm11,xmm9
- ror r13,4
- xor r14,r11
- and r12,rdx
- xor r13,rdx
- vpaddq xmm0,xmm0,xmm11
- add r10,QWORD[8+rsp]
- mov rdi,r11
- xor r12,r9
- ror r14,6
- vpaddq xmm10,xmm0,XMMWORD[((-128))+rbp]
- xor rdi,rax
- add r10,r12
- ror r13,14
- and r15,rdi
- xor r14,r11
- add r10,r13
- xor r15,rax
- ror r14,28
- add rcx,r10
- add r10,r15
- mov r13,rcx
- add r14,r10
- vmovdqa XMMWORD[rsp],xmm10
- vpalignr xmm8,xmm2,xmm1,8
- ror r13,23
- mov r10,r14
- vpalignr xmm11,xmm6,xmm5,8
- mov r12,rdx
- ror r14,5
-DB 143,72,120,195,200,56
- xor r13,rcx
- xor r12,r8
- vpsrlq xmm8,xmm8,7
- ror r13,4
- xor r14,r10
- vpaddq xmm1,xmm1,xmm11
- and r12,rcx
- xor r13,rcx
- add r9,QWORD[16+rsp]
- mov r15,r10
-DB 143,72,120,195,209,7
- xor r12,r8
- ror r14,6
- vpxor xmm8,xmm8,xmm9
- xor r15,r11
- add r9,r12
- ror r13,14
- and rdi,r15
-DB 143,104,120,195,216,3
- xor r14,r10
- add r9,r13
- vpxor xmm8,xmm8,xmm10
- xor rdi,r11
- ror r14,28
- vpsrlq xmm10,xmm0,6
- add rbx,r9
- add r9,rdi
- vpaddq xmm1,xmm1,xmm8
- mov r13,rbx
- add r14,r9
-DB 143,72,120,195,203,42
- ror r13,23
- mov r9,r14
- vpxor xmm11,xmm11,xmm10
- mov r12,rcx
- ror r14,5
- xor r13,rbx
- xor r12,rdx
- vpxor xmm11,xmm11,xmm9
- ror r13,4
- xor r14,r9
- and r12,rbx
- xor r13,rbx
- vpaddq xmm1,xmm1,xmm11
- add r8,QWORD[24+rsp]
- mov rdi,r9
- xor r12,rdx
- ror r14,6
- vpaddq xmm10,xmm1,XMMWORD[((-96))+rbp]
- xor rdi,r10
- add r8,r12
- ror r13,14
- and r15,rdi
- xor r14,r9
- add r8,r13
- xor r15,r10
- ror r14,28
- add rax,r8
- add r8,r15
- mov r13,rax
- add r14,r8
- vmovdqa XMMWORD[16+rsp],xmm10
- vpalignr xmm8,xmm3,xmm2,8
- ror r13,23
- mov r8,r14
- vpalignr xmm11,xmm7,xmm6,8
- mov r12,rbx
- ror r14,5
-DB 143,72,120,195,200,56
- xor r13,rax
- xor r12,rcx
- vpsrlq xmm8,xmm8,7
- ror r13,4
- xor r14,r8
- vpaddq xmm2,xmm2,xmm11
- and r12,rax
- xor r13,rax
- add rdx,QWORD[32+rsp]
- mov r15,r8
-DB 143,72,120,195,209,7
- xor r12,rcx
- ror r14,6
- vpxor xmm8,xmm8,xmm9
- xor r15,r9
- add rdx,r12
- ror r13,14
- and rdi,r15
-DB 143,104,120,195,217,3
- xor r14,r8
- add rdx,r13
- vpxor xmm8,xmm8,xmm10
- xor rdi,r9
- ror r14,28
- vpsrlq xmm10,xmm1,6
- add r11,rdx
- add rdx,rdi
- vpaddq xmm2,xmm2,xmm8
- mov r13,r11
- add r14,rdx
-DB 143,72,120,195,203,42
- ror r13,23
- mov rdx,r14
- vpxor xmm11,xmm11,xmm10
- mov r12,rax
- ror r14,5
- xor r13,r11
- xor r12,rbx
- vpxor xmm11,xmm11,xmm9
- ror r13,4
- xor r14,rdx
- and r12,r11
- xor r13,r11
- vpaddq xmm2,xmm2,xmm11
- add rcx,QWORD[40+rsp]
- mov rdi,rdx
- xor r12,rbx
- ror r14,6
- vpaddq xmm10,xmm2,XMMWORD[((-64))+rbp]
- xor rdi,r8
- add rcx,r12
- ror r13,14
- and r15,rdi
- xor r14,rdx
- add rcx,r13
- xor r15,r8
- ror r14,28
- add r10,rcx
- add rcx,r15
- mov r13,r10
- add r14,rcx
- vmovdqa XMMWORD[32+rsp],xmm10
- vpalignr xmm8,xmm4,xmm3,8
- ror r13,23
- mov rcx,r14
- vpalignr xmm11,xmm0,xmm7,8
- mov r12,r11
- ror r14,5
-DB 143,72,120,195,200,56
- xor r13,r10
- xor r12,rax
- vpsrlq xmm8,xmm8,7
- ror r13,4
- xor r14,rcx
- vpaddq xmm3,xmm3,xmm11
- and r12,r10
- xor r13,r10
- add rbx,QWORD[48+rsp]
- mov r15,rcx
-DB 143,72,120,195,209,7
- xor r12,rax
- ror r14,6
- vpxor xmm8,xmm8,xmm9
- xor r15,rdx
- add rbx,r12
- ror r13,14
- and rdi,r15
-DB 143,104,120,195,218,3
- xor r14,rcx
- add rbx,r13
- vpxor xmm8,xmm8,xmm10
- xor rdi,rdx
- ror r14,28
- vpsrlq xmm10,xmm2,6
- add r9,rbx
- add rbx,rdi
- vpaddq xmm3,xmm3,xmm8
- mov r13,r9
- add r14,rbx
-DB 143,72,120,195,203,42
- ror r13,23
- mov rbx,r14
- vpxor xmm11,xmm11,xmm10
- mov r12,r10
- ror r14,5
- xor r13,r9
- xor r12,r11
- vpxor xmm11,xmm11,xmm9
- ror r13,4
- xor r14,rbx
- and r12,r9
- xor r13,r9
- vpaddq xmm3,xmm3,xmm11
- add rax,QWORD[56+rsp]
- mov rdi,rbx
- xor r12,r11
- ror r14,6
- vpaddq xmm10,xmm3,XMMWORD[((-32))+rbp]
- xor rdi,rcx
- add rax,r12
- ror r13,14
- and r15,rdi
- xor r14,rbx
- add rax,r13
- xor r15,rcx
- ror r14,28
- add r8,rax
- add rax,r15
- mov r13,r8
- add r14,rax
- vmovdqa XMMWORD[48+rsp],xmm10
- vpalignr xmm8,xmm5,xmm4,8
- ror r13,23
- mov rax,r14
- vpalignr xmm11,xmm1,xmm0,8
- mov r12,r9
- ror r14,5
-DB 143,72,120,195,200,56
- xor r13,r8
- xor r12,r10
- vpsrlq xmm8,xmm8,7
- ror r13,4
- xor r14,rax
- vpaddq xmm4,xmm4,xmm11
- and r12,r8
- xor r13,r8
- add r11,QWORD[64+rsp]
- mov r15,rax
-DB 143,72,120,195,209,7
- xor r12,r10
- ror r14,6
- vpxor xmm8,xmm8,xmm9
- xor r15,rbx
- add r11,r12
- ror r13,14
- and rdi,r15
-DB 143,104,120,195,219,3
- xor r14,rax
- add r11,r13
- vpxor xmm8,xmm8,xmm10
- xor rdi,rbx
- ror r14,28
- vpsrlq xmm10,xmm3,6
- add rdx,r11
- add r11,rdi
- vpaddq xmm4,xmm4,xmm8
- mov r13,rdx
- add r14,r11
-DB 143,72,120,195,203,42
- ror r13,23
- mov r11,r14
- vpxor xmm11,xmm11,xmm10
- mov r12,r8
- ror r14,5
- xor r13,rdx
- xor r12,r9
- vpxor xmm11,xmm11,xmm9
- ror r13,4
- xor r14,r11
- and r12,rdx
- xor r13,rdx
- vpaddq xmm4,xmm4,xmm11
- add r10,QWORD[72+rsp]
- mov rdi,r11
- xor r12,r9
- ror r14,6
- vpaddq xmm10,xmm4,XMMWORD[rbp]
- xor rdi,rax
- add r10,r12
- ror r13,14
- and r15,rdi
- xor r14,r11
- add r10,r13
- xor r15,rax
- ror r14,28
- add rcx,r10
- add r10,r15
- mov r13,rcx
- add r14,r10
- vmovdqa XMMWORD[64+rsp],xmm10
- vpalignr xmm8,xmm6,xmm5,8
- ror r13,23
- mov r10,r14
- vpalignr xmm11,xmm2,xmm1,8
- mov r12,rdx
- ror r14,5
-DB 143,72,120,195,200,56
- xor r13,rcx
- xor r12,r8
- vpsrlq xmm8,xmm8,7
- ror r13,4
- xor r14,r10
- vpaddq xmm5,xmm5,xmm11
- and r12,rcx
- xor r13,rcx
- add r9,QWORD[80+rsp]
- mov r15,r10
-DB 143,72,120,195,209,7
- xor r12,r8
- ror r14,6
- vpxor xmm8,xmm8,xmm9
- xor r15,r11
- add r9,r12
- ror r13,14
- and rdi,r15
-DB 143,104,120,195,220,3
- xor r14,r10
- add r9,r13
- vpxor xmm8,xmm8,xmm10
- xor rdi,r11
- ror r14,28
- vpsrlq xmm10,xmm4,6
- add rbx,r9
- add r9,rdi
- vpaddq xmm5,xmm5,xmm8
- mov r13,rbx
- add r14,r9
-DB 143,72,120,195,203,42
- ror r13,23
- mov r9,r14
- vpxor xmm11,xmm11,xmm10
- mov r12,rcx
- ror r14,5
- xor r13,rbx
- xor r12,rdx
- vpxor xmm11,xmm11,xmm9
- ror r13,4
- xor r14,r9
- and r12,rbx
- xor r13,rbx
- vpaddq xmm5,xmm5,xmm11
- add r8,QWORD[88+rsp]
- mov rdi,r9
- xor r12,rdx
- ror r14,6
- vpaddq xmm10,xmm5,XMMWORD[32+rbp]
- xor rdi,r10
- add r8,r12
- ror r13,14
- and r15,rdi
- xor r14,r9
- add r8,r13
- xor r15,r10
- ror r14,28
- add rax,r8
- add r8,r15
- mov r13,rax
- add r14,r8
- vmovdqa XMMWORD[80+rsp],xmm10
- vpalignr xmm8,xmm7,xmm6,8
- ror r13,23
- mov r8,r14
- vpalignr xmm11,xmm3,xmm2,8
- mov r12,rbx
- ror r14,5
-DB 143,72,120,195,200,56
- xor r13,rax
- xor r12,rcx
- vpsrlq xmm8,xmm8,7
- ror r13,4
- xor r14,r8
- vpaddq xmm6,xmm6,xmm11
- and r12,rax
- xor r13,rax
- add rdx,QWORD[96+rsp]
- mov r15,r8
-DB 143,72,120,195,209,7
- xor r12,rcx
- ror r14,6
- vpxor xmm8,xmm8,xmm9
- xor r15,r9
- add rdx,r12
- ror r13,14
- and rdi,r15
-DB 143,104,120,195,221,3
- xor r14,r8
- add rdx,r13
- vpxor xmm8,xmm8,xmm10
- xor rdi,r9
- ror r14,28
- vpsrlq xmm10,xmm5,6
- add r11,rdx
- add rdx,rdi
- vpaddq xmm6,xmm6,xmm8
- mov r13,r11
- add r14,rdx
-DB 143,72,120,195,203,42
- ror r13,23
- mov rdx,r14
- vpxor xmm11,xmm11,xmm10
- mov r12,rax
- ror r14,5
- xor r13,r11
- xor r12,rbx
- vpxor xmm11,xmm11,xmm9
- ror r13,4
- xor r14,rdx
- and r12,r11
- xor r13,r11
- vpaddq xmm6,xmm6,xmm11
- add rcx,QWORD[104+rsp]
- mov rdi,rdx
- xor r12,rbx
- ror r14,6
- vpaddq xmm10,xmm6,XMMWORD[64+rbp]
- xor rdi,r8
- add rcx,r12
- ror r13,14
- and r15,rdi
- xor r14,rdx
- add rcx,r13
- xor r15,r8
- ror r14,28
- add r10,rcx
- add rcx,r15
- mov r13,r10
- add r14,rcx
- vmovdqa XMMWORD[96+rsp],xmm10
- vpalignr xmm8,xmm0,xmm7,8
- ror r13,23
- mov rcx,r14
- vpalignr xmm11,xmm4,xmm3,8
- mov r12,r11
- ror r14,5
-DB 143,72,120,195,200,56
- xor r13,r10
- xor r12,rax
- vpsrlq xmm8,xmm8,7
- ror r13,4
- xor r14,rcx
- vpaddq xmm7,xmm7,xmm11
- and r12,r10
- xor r13,r10
- add rbx,QWORD[112+rsp]
- mov r15,rcx
-DB 143,72,120,195,209,7
- xor r12,rax
- ror r14,6
- vpxor xmm8,xmm8,xmm9
- xor r15,rdx
- add rbx,r12
- ror r13,14
- and rdi,r15
-DB 143,104,120,195,222,3
- xor r14,rcx
- add rbx,r13
- vpxor xmm8,xmm8,xmm10
- xor rdi,rdx
- ror r14,28
- vpsrlq xmm10,xmm6,6
- add r9,rbx
- add rbx,rdi
- vpaddq xmm7,xmm7,xmm8
- mov r13,r9
- add r14,rbx
-DB 143,72,120,195,203,42
- ror r13,23
- mov rbx,r14
- vpxor xmm11,xmm11,xmm10
- mov r12,r10
- ror r14,5
- xor r13,r9
- xor r12,r11
- vpxor xmm11,xmm11,xmm9
- ror r13,4
- xor r14,rbx
- and r12,r9
- xor r13,r9
- vpaddq xmm7,xmm7,xmm11
- add rax,QWORD[120+rsp]
- mov rdi,rbx
- xor r12,r11
- ror r14,6
- vpaddq xmm10,xmm7,XMMWORD[96+rbp]
- xor rdi,rcx
- add rax,r12
- ror r13,14
- and r15,rdi
- xor r14,rbx
- add rax,r13
- xor r15,rcx
- ror r14,28
- add r8,rax
- add rax,r15
- mov r13,r8
- add r14,rax
- vmovdqa XMMWORD[112+rsp],xmm10
- cmp BYTE[135+rbp],0
- jne NEAR $L$xop_00_47
- ror r13,23
- mov rax,r14
- mov r12,r9
- ror r14,5
- xor r13,r8
- xor r12,r10
- ror r13,4
- xor r14,rax
- and r12,r8
- xor r13,r8
- add r11,QWORD[rsp]
- mov r15,rax
- xor r12,r10
- ror r14,6
- xor r15,rbx
- add r11,r12
- ror r13,14
- and rdi,r15
- xor r14,rax
- add r11,r13
- xor rdi,rbx
- ror r14,28
- add rdx,r11
- add r11,rdi
- mov r13,rdx
- add r14,r11
- ror r13,23
- mov r11,r14
- mov r12,r8
- ror r14,5
- xor r13,rdx
- xor r12,r9
- ror r13,4
- xor r14,r11
- and r12,rdx
- xor r13,rdx
- add r10,QWORD[8+rsp]
- mov rdi,r11
- xor r12,r9
- ror r14,6
- xor rdi,rax
- add r10,r12
- ror r13,14
- and r15,rdi
- xor r14,r11
- add r10,r13
- xor r15,rax
- ror r14,28
- add rcx,r10
- add r10,r15
- mov r13,rcx
- add r14,r10
- ror r13,23
- mov r10,r14
- mov r12,rdx
- ror r14,5
- xor r13,rcx
- xor r12,r8
- ror r13,4
- xor r14,r10
- and r12,rcx
- xor r13,rcx
- add r9,QWORD[16+rsp]
- mov r15,r10
- xor r12,r8
- ror r14,6
- xor r15,r11
- add r9,r12
- ror r13,14
- and rdi,r15
- xor r14,r10
- add r9,r13
- xor rdi,r11
- ror r14,28
- add rbx,r9
- add r9,rdi
- mov r13,rbx
- add r14,r9
- ror r13,23
- mov r9,r14
- mov r12,rcx
- ror r14,5
- xor r13,rbx
- xor r12,rdx
- ror r13,4
- xor r14,r9
- and r12,rbx
- xor r13,rbx
- add r8,QWORD[24+rsp]
- mov rdi,r9
- xor r12,rdx
- ror r14,6
- xor rdi,r10
- add r8,r12
- ror r13,14
- and r15,rdi
- xor r14,r9
- add r8,r13
- xor r15,r10
- ror r14,28
- add rax,r8
- add r8,r15
- mov r13,rax
- add r14,r8
- ror r13,23
- mov r8,r14
- mov r12,rbx
- ror r14,5
- xor r13,rax
- xor r12,rcx
- ror r13,4
- xor r14,r8
- and r12,rax
- xor r13,rax
- add rdx,QWORD[32+rsp]
- mov r15,r8
- xor r12,rcx
- ror r14,6
- xor r15,r9
- add rdx,r12
- ror r13,14
- and rdi,r15
- xor r14,r8
- add rdx,r13
- xor rdi,r9
- ror r14,28
- add r11,rdx
- add rdx,rdi
- mov r13,r11
- add r14,rdx
- ror r13,23
- mov rdx,r14
- mov r12,rax
- ror r14,5
- xor r13,r11
- xor r12,rbx
- ror r13,4
- xor r14,rdx
- and r12,r11
- xor r13,r11
- add rcx,QWORD[40+rsp]
- mov rdi,rdx
- xor r12,rbx
- ror r14,6
- xor rdi,r8
- add rcx,r12
- ror r13,14
- and r15,rdi
- xor r14,rdx
- add rcx,r13
- xor r15,r8
- ror r14,28
- add r10,rcx
- add rcx,r15
- mov r13,r10
- add r14,rcx
- ror r13,23
- mov rcx,r14
- mov r12,r11
- ror r14,5
- xor r13,r10
- xor r12,rax
- ror r13,4
- xor r14,rcx
- and r12,r10
- xor r13,r10
- add rbx,QWORD[48+rsp]
- mov r15,rcx
- xor r12,rax
- ror r14,6
- xor r15,rdx
- add rbx,r12
- ror r13,14
- and rdi,r15
- xor r14,rcx
- add rbx,r13
- xor rdi,rdx
- ror r14,28
- add r9,rbx
- add rbx,rdi
- mov r13,r9
- add r14,rbx
- ror r13,23
- mov rbx,r14
- mov r12,r10
- ror r14,5
- xor r13,r9
- xor r12,r11
- ror r13,4
- xor r14,rbx
- and r12,r9
- xor r13,r9
- add rax,QWORD[56+rsp]
- mov rdi,rbx
- xor r12,r11
- ror r14,6
- xor rdi,rcx
- add rax,r12
- ror r13,14
- and r15,rdi
- xor r14,rbx
- add rax,r13
- xor r15,rcx
- ror r14,28
- add r8,rax
- add rax,r15
- mov r13,r8
- add r14,rax
- ror r13,23
- mov rax,r14
- mov r12,r9
- ror r14,5
- xor r13,r8
- xor r12,r10
- ror r13,4
- xor r14,rax
- and r12,r8
- xor r13,r8
- add r11,QWORD[64+rsp]
- mov r15,rax
- xor r12,r10
- ror r14,6
- xor r15,rbx
- add r11,r12
- ror r13,14
- and rdi,r15
- xor r14,rax
- add r11,r13
- xor rdi,rbx
- ror r14,28
- add rdx,r11
- add r11,rdi
- mov r13,rdx
- add r14,r11
- ror r13,23
- mov r11,r14
- mov r12,r8
- ror r14,5
- xor r13,rdx
- xor r12,r9
- ror r13,4
- xor r14,r11
- and r12,rdx
- xor r13,rdx
- add r10,QWORD[72+rsp]
- mov rdi,r11
- xor r12,r9
- ror r14,6
- xor rdi,rax
- add r10,r12
- ror r13,14
- and r15,rdi
- xor r14,r11
- add r10,r13
- xor r15,rax
- ror r14,28
- add rcx,r10
- add r10,r15
- mov r13,rcx
- add r14,r10
- ror r13,23
- mov r10,r14
- mov r12,rdx
- ror r14,5
- xor r13,rcx
- xor r12,r8
- ror r13,4
- xor r14,r10
- and r12,rcx
- xor r13,rcx
- add r9,QWORD[80+rsp]
- mov r15,r10
- xor r12,r8
- ror r14,6
- xor r15,r11
- add r9,r12
- ror r13,14
- and rdi,r15
- xor r14,r10
- add r9,r13
- xor rdi,r11
- ror r14,28
- add rbx,r9
- add r9,rdi
- mov r13,rbx
- add r14,r9
- ror r13,23
- mov r9,r14
- mov r12,rcx
- ror r14,5
- xor r13,rbx
- xor r12,rdx
- ror r13,4
- xor r14,r9
- and r12,rbx
- xor r13,rbx
- add r8,QWORD[88+rsp]
- mov rdi,r9
- xor r12,rdx
- ror r14,6
- xor rdi,r10
- add r8,r12
- ror r13,14
- and r15,rdi
- xor r14,r9
- add r8,r13
- xor r15,r10
- ror r14,28
- add rax,r8
- add r8,r15
- mov r13,rax
- add r14,r8
- ror r13,23
- mov r8,r14
- mov r12,rbx
- ror r14,5
- xor r13,rax
- xor r12,rcx
- ror r13,4
- xor r14,r8
- and r12,rax
- xor r13,rax
- add rdx,QWORD[96+rsp]
- mov r15,r8
- xor r12,rcx
- ror r14,6
- xor r15,r9
- add rdx,r12
- ror r13,14
- and rdi,r15
- xor r14,r8
- add rdx,r13
- xor rdi,r9
- ror r14,28
- add r11,rdx
- add rdx,rdi
- mov r13,r11
- add r14,rdx
- ror r13,23
- mov rdx,r14
- mov r12,rax
- ror r14,5
- xor r13,r11
- xor r12,rbx
- ror r13,4
- xor r14,rdx
- and r12,r11
- xor r13,r11
- add rcx,QWORD[104+rsp]
- mov rdi,rdx
- xor r12,rbx
- ror r14,6
- xor rdi,r8
- add rcx,r12
- ror r13,14
- and r15,rdi
- xor r14,rdx
- add rcx,r13
- xor r15,r8
- ror r14,28
- add r10,rcx
- add rcx,r15
- mov r13,r10
- add r14,rcx
- ror r13,23
- mov rcx,r14
- mov r12,r11
- ror r14,5
- xor r13,r10
- xor r12,rax
- ror r13,4
- xor r14,rcx
- and r12,r10
- xor r13,r10
- add rbx,QWORD[112+rsp]
- mov r15,rcx
- xor r12,rax
- ror r14,6
- xor r15,rdx
- add rbx,r12
- ror r13,14
- and rdi,r15
- xor r14,rcx
- add rbx,r13
- xor rdi,rdx
- ror r14,28
- add r9,rbx
- add rbx,rdi
- mov r13,r9
- add r14,rbx
- ror r13,23
- mov rbx,r14
- mov r12,r10
- ror r14,5
- xor r13,r9
- xor r12,r11
- ror r13,4
- xor r14,rbx
- and r12,r9
- xor r13,r9
- add rax,QWORD[120+rsp]
- mov rdi,rbx
- xor r12,r11
- ror r14,6
- xor rdi,rcx
- add rax,r12
- ror r13,14
- and r15,rdi
- xor r14,rbx
- add rax,r13
- xor r15,rcx
- ror r14,28
- add r8,rax
- add rax,r15
- mov r13,r8
- add r14,rax
- mov rdi,QWORD[((128+0))+rsp]
- mov rax,r14
-
- add rax,QWORD[rdi]
- lea rsi,[128+rsi]
- add rbx,QWORD[8+rdi]
- add rcx,QWORD[16+rdi]
- add rdx,QWORD[24+rdi]
- add r8,QWORD[32+rdi]
- add r9,QWORD[40+rdi]
- add r10,QWORD[48+rdi]
- add r11,QWORD[56+rdi]
-
- cmp rsi,QWORD[((128+16))+rsp]
-
- mov QWORD[rdi],rax
- mov QWORD[8+rdi],rbx
- mov QWORD[16+rdi],rcx
- mov QWORD[24+rdi],rdx
- mov QWORD[32+rdi],r8
- mov QWORD[40+rdi],r9
- mov QWORD[48+rdi],r10
- mov QWORD[56+rdi],r11
- jb NEAR $L$loop_xop
-
- mov rsi,QWORD[152+rsp]
-
- vzeroupper
- movaps xmm6,XMMWORD[((128+32))+rsp]
- movaps xmm7,XMMWORD[((128+48))+rsp]
- movaps xmm8,XMMWORD[((128+64))+rsp]
- movaps xmm9,XMMWORD[((128+80))+rsp]
- movaps xmm10,XMMWORD[((128+96))+rsp]
- movaps xmm11,XMMWORD[((128+112))+rsp]
- mov r15,QWORD[((-48))+rsi]
-
- mov r14,QWORD[((-40))+rsi]
-
- mov r13,QWORD[((-32))+rsi]
-
- mov r12,QWORD[((-24))+rsi]
-
- mov rbp,QWORD[((-16))+rsi]
-
- mov rbx,QWORD[((-8))+rsi]
-
- lea rsp,[rsi]
-
-$L$epilogue_xop:
- mov rdi,QWORD[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD[16+rsp]
- DB 0F3h,0C3h ;repret
-
-$L$SEH_end_sha512_block_data_order_xop:
-
-ALIGN 64
sha512_block_data_order_avx:
mov QWORD[8+rsp],rdi ;WIN64 prologue
mov QWORD[16+rsp],rsi
@@ -4250,9 +3124,6 @@ ALIGN 4
DD $L$SEH_begin_sha512_block_data_order wrt ..imagebase
DD $L$SEH_end_sha512_block_data_order wrt ..imagebase
DD $L$SEH_info_sha512_block_data_order wrt ..imagebase
- DD $L$SEH_begin_sha512_block_data_order_xop wrt ..imagebase
- DD $L$SEH_end_sha512_block_data_order_xop wrt ..imagebase
- DD $L$SEH_info_sha512_block_data_order_xop wrt ..imagebase
DD $L$SEH_begin_sha512_block_data_order_avx wrt ..imagebase
DD $L$SEH_end_sha512_block_data_order_avx wrt ..imagebase
DD $L$SEH_info_sha512_block_data_order_avx wrt ..imagebase
@@ -4262,10 +3133,6 @@ $L$SEH_info_sha512_block_data_order:
DB 9,0,0,0
DD se_handler wrt ..imagebase
DD $L$prologue wrt ..imagebase,$L$epilogue wrt ..imagebase
-$L$SEH_info_sha512_block_data_order_xop:
-DB 9,0,0,0
- DD se_handler wrt ..imagebase
- DD $L$prologue_xop wrt ..imagebase,$L$epilogue_xop wrt ..imagebase
$L$SEH_info_sha512_block_data_order_avx:
DB 9,0,0,0
DD se_handler wrt ..imagebase