From: Andy Polyakov Date: Sun, 1 May 2016 12:09:15 +0000 (+0200) Subject: chacha/asm/chacha-x86.pl: make it compile on legacy systems. X-Git-Tag: OpenSSL_1_1_0-pre6~974 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=8e9f1bb99e035e30450c85595150408dc1ac3d82;p=oweals%2Fopenssl.git chacha/asm/chacha-x86.pl: make it compile on legacy systems. Usage of $ymm variable is a bit misleading here, it doesn't refer to %ymm register bank, but rather to VEX instruction encoding, which AMD XOP code path depends on. Reviewed-by: Richard Levitte --- diff --git a/crypto/chacha/asm/chacha-x86.pl b/crypto/chacha/asm/chacha-x86.pl index 8b9696ff02..d18663badd 100755 --- a/crypto/chacha/asm/chacha-x86.pl +++ b/crypto/chacha/asm/chacha-x86.pl @@ -437,8 +437,10 @@ my ($ap,$bp,$cp,$dp)=map(($_&~3)+(($_-1)&3),($ai,$bi,$ci,$di)); # previous &function_begin("ChaCha20_ssse3"); &set_label("ssse3_shortcut"); +if ($ymm) { &test (&DWP(4,"ebp"),1<<11); # test XOP bit &jnz (&label("xop_shortcut")); +} &mov ($out,&wparam(0)); &mov ($inp,&wparam(1)); @@ -770,7 +772,7 @@ sub SSSE3ROUND { # critical path is 20 "SIMD ticks" per round } &asciz ("ChaCha20 for x86, CRYPTOGAMS by "); -if ($xmm) { +if ($ymm) { my ($xa,$xa_,$xb,$xb_,$xc,$xc_,$xd,$xd_)=map("xmm$_",(0..7)); my ($out,$inp,$len)=("edi","esi","ecx");