summaryrefslogtreecommitdiff
path: root/win-x86_64/crypto/fipsmodule/sha1-x86_64-win.asm
diff options
context:
space:
mode:
Diffstat (limited to 'win-x86_64/crypto/fipsmodule/sha1-x86_64-win.asm')
-rw-r--r--win-x86_64/crypto/fipsmodule/sha1-x86_64-win.asm63
1 files changed, 23 insertions, 40 deletions
diff --git a/win-x86_64/crypto/fipsmodule/sha1-x86_64-win.asm b/win-x86_64/crypto/fipsmodule/sha1-x86_64-win.asm
index 56d979ab..92e9b9c4 100644
--- a/win-x86_64/crypto/fipsmodule/sha1-x86_64-win.asm
+++ b/win-x86_64/crypto/fipsmodule/sha1-x86_64-win.asm
@@ -13,16 +13,15 @@ default rel
%endif
section .text code align=64
-EXTERN OPENSSL_ia32cap_P
-global sha1_block_data_order
+global sha1_block_data_order_nohw
ALIGN 16
-sha1_block_data_order:
+sha1_block_data_order_nohw:
mov QWORD[8+rsp],rdi ;WIN64 prologue
mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_sha1_block_data_order:
+$L$SEH_begin_sha1_block_data_order_nohw:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
@@ -30,26 +29,6 @@ $L$SEH_begin_sha1_block_data_order:
_CET_ENDBR
- lea r10,[OPENSSL_ia32cap_P]
- mov r9d,DWORD[r10]
- mov r8d,DWORD[4+r10]
- mov r10d,DWORD[8+r10]
- test r8d,512
- jz NEAR $L$ialu
- test r10d,536870912
- jnz NEAR _shaext_shortcut
- and r10d,296
- cmp r10d,296
- je NEAR _avx2_shortcut
- and r8d,268435456
- and r9d,1073741824
- or r8d,r9d
- cmp r8d,1342177280
- je NEAR _avx_shortcut
- jmp NEAR _ssse3_shortcut
-
-ALIGN 16
-$L$ialu:
mov rax,rsp
push rbx
@@ -1281,21 +1260,22 @@ $L$epilogue:
mov rsi,QWORD[16+rsp]
ret
-$L$SEH_end_sha1_block_data_order:
+$L$SEH_end_sha1_block_data_order_nohw:
+global sha1_block_data_order_hw
ALIGN 32
-sha1_block_data_order_shaext:
+sha1_block_data_order_hw:
mov QWORD[8+rsp],rdi ;WIN64 prologue
mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_sha1_block_data_order_shaext:
+$L$SEH_begin_sha1_block_data_order_hw:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
-_shaext_shortcut:
+_CET_ENDBR
lea rsp,[((-72))+rsp]
movaps XMMWORD[(-8-64)+rax],xmm6
movaps XMMWORD[(-8-48)+rax],xmm7
@@ -1474,7 +1454,8 @@ $L$epilogue_shaext:
mov rsi,QWORD[16+rsp]
ret
-$L$SEH_end_sha1_block_data_order_shaext:
+$L$SEH_end_sha1_block_data_order_hw:
+global sha1_block_data_order_ssse3
ALIGN 16
sha1_block_data_order_ssse3:
@@ -1487,8 +1468,8 @@ $L$SEH_begin_sha1_block_data_order_ssse3:
mov rdx,r8
-_ssse3_shortcut:
+_CET_ENDBR
mov r11,rsp
push rbx
@@ -2687,6 +2668,7 @@ $L$epilogue_ssse3:
ret
$L$SEH_end_sha1_block_data_order_ssse3:
+global sha1_block_data_order_avx
ALIGN 16
sha1_block_data_order_avx:
@@ -2699,8 +2681,8 @@ $L$SEH_begin_sha1_block_data_order_avx:
mov rdx,r8
-_avx_shortcut:
+_CET_ENDBR
mov r11,rsp
push rbx
@@ -3839,6 +3821,7 @@ $L$epilogue_avx:
ret
$L$SEH_end_sha1_block_data_order_avx:
+global sha1_block_data_order_avx2
ALIGN 16
sha1_block_data_order_avx2:
@@ -3851,8 +3834,8 @@ $L$SEH_begin_sha1_block_data_order_avx2:
mov rdx,r8
-_avx2_shortcut:
+_CET_ENDBR
mov r11,rsp
push rbx
@@ -5744,12 +5727,12 @@ $L$common_seh_tail:
section .pdata rdata align=4
ALIGN 4
- DD $L$SEH_begin_sha1_block_data_order wrt ..imagebase
- DD $L$SEH_end_sha1_block_data_order wrt ..imagebase
- DD $L$SEH_info_sha1_block_data_order wrt ..imagebase
- DD $L$SEH_begin_sha1_block_data_order_shaext wrt ..imagebase
- DD $L$SEH_end_sha1_block_data_order_shaext wrt ..imagebase
- DD $L$SEH_info_sha1_block_data_order_shaext wrt ..imagebase
+ DD $L$SEH_begin_sha1_block_data_order_nohw wrt ..imagebase
+ DD $L$SEH_end_sha1_block_data_order_nohw wrt ..imagebase
+ DD $L$SEH_info_sha1_block_data_order_nohw wrt ..imagebase
+ DD $L$SEH_begin_sha1_block_data_order_hw wrt ..imagebase
+ DD $L$SEH_end_sha1_block_data_order_hw wrt ..imagebase
+ DD $L$SEH_info_sha1_block_data_order_hw wrt ..imagebase
DD $L$SEH_begin_sha1_block_data_order_ssse3 wrt ..imagebase
DD $L$SEH_end_sha1_block_data_order_ssse3 wrt ..imagebase
DD $L$SEH_info_sha1_block_data_order_ssse3 wrt ..imagebase
@@ -5761,10 +5744,10 @@ ALIGN 4
DD $L$SEH_info_sha1_block_data_order_avx2 wrt ..imagebase
section .xdata rdata align=8
ALIGN 8
-$L$SEH_info_sha1_block_data_order:
+$L$SEH_info_sha1_block_data_order_nohw:
DB 9,0,0,0
DD se_handler wrt ..imagebase
-$L$SEH_info_sha1_block_data_order_shaext:
+$L$SEH_info_sha1_block_data_order_hw:
DB 9,0,0,0
DD shaext_handler wrt ..imagebase
$L$SEH_info_sha1_block_data_order_ssse3: