chacha/asm/chacha-x86.pl: improve [backward] portability.
authorAndy Polyakov <appro@openssl.org>
Tue, 8 Nov 2016 10:11:58 +0000 (11:11 +0100)
committerAndy Polyakov <appro@openssl.org>
Fri, 11 Nov 2016 12:28:52 +0000 (13:28 +0100)
commit0f251d20a5c40cb9b6d30dfec005bb4ead3d5b0f
treef83a4335c9a140a2b72fe8bded4d75f6a16f54a1
parent1cb83aff0e7e27f027fbe4fdf1b6c101ce4cff00
chacha/asm/chacha-x86.pl: improve [backward] portability.

In order to minimize dependency on assembler version a number of
post-SSE2 instructions are encoded manually. But in order to simplify
the procedure only register operands are considered. Non-register
operands are passed down to assembler. Module in question uses pshufb
with memory operands, and old [GNU] assembler can't handle it.
Fortunately in this case it's possible skip just the problematic
segment without skipping SSSE3 support altogether.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(cherry picked from commit d89773d659129368a341df746476da445d47ad31)
crypto/chacha/asm/chacha-x86.pl