diff options
author | Bernd Edlinger <bernd.edlinger@hotmail.de> | 2023-08-22 16:07:30 +0200 |
---|---|---|
committer | Bernd Edlinger <bernd.edlinger@hotmail.de> | 2023-09-02 10:23:57 +0200 |
commit | 7b8e27bc2e02238986d89ef0ece067ec1b48e165 (patch) | |
tree | 7883aa0a56406fc6c17d25bd00435ccf5f1d0722 /crypto | |
parent | 9ff816106c2b2ccbffe5c4e3619a840547088674 (diff) | |
download | openssl-7b8e27bc2e02238986d89ef0ece067ec1b48e165.tar.gz |
Avoid clobbering non-volatile XMM registers
This affects some Poly1305 assembler functions
which are only used for certain CPU types.
Remove those functions for Windows targets,
as a simple interim solution.
Fixes #21522
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21808)
Diffstat (limited to 'crypto')
-rwxr-xr-x | crypto/poly1305/asm/poly1305-x86_64.pl | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/crypto/poly1305/asm/poly1305-x86_64.pl b/crypto/poly1305/asm/poly1305-x86_64.pl index fa9bfb7a7b..24bab9d0bc 100755 --- a/crypto/poly1305/asm/poly1305-x86_64.pl +++ b/crypto/poly1305/asm/poly1305-x86_64.pl @@ -195,7 +195,7 @@ $code.=<<___ if ($avx>1); bt \$`5+32`,%r9 # AVX2? cmovc %rax,%r10 ___ -$code.=<<___ if ($avx>3); +$code.=<<___ if ($avx>3 && !$win64); mov \$`(1<<31|1<<21|1<<16)`,%rax shr \$32,%r9 and %rax,%r9 @@ -2724,7 +2724,7 @@ $code.=<<___; .cfi_endproc .size poly1305_blocks_avx512,.-poly1305_blocks_avx512 ___ -if ($avx>3) { +if ($avx>3 && !$win64) { ######################################################################## # VPMADD52 version using 2^44 radix. # |