diff options
author | jkim <jkim@FreeBSD.org> | 2016-05-16 19:10:35 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2016-05-16 19:10:35 +0000 |
commit | d2a6ff6888ae760e0d4368dafcec9aa65b6ff57c (patch) | |
tree | 3794352b6b94bd5674c5cf4d071b4af75ab092cc | |
parent | 5635d52f8eeca3a6ddbb0c44aec1dee011de9fe0 (diff) | |
download | FreeBSD-src-d2a6ff6888ae760e0d4368dafcec9aa65b6ff57c.zip FreeBSD-src-d2a6ff6888ae760e0d4368dafcec9aa65b6ff57c.tar.gz |
Detect Clang to support AVX instructions on x86 platforms.
Note head (OpenSSL 1.0.2 branch) has similar changes.
-rwxr-xr-x | crypto/openssl/crypto/aes/asm/aesni-sha1-x86_64.pl | 1 | ||||
-rw-r--r-- | crypto/openssl/crypto/sha/asm/sha1-586.pl | 3 | ||||
-rwxr-xr-x | crypto/openssl/crypto/sha/asm/sha1-x86_64.pl | 2 |
3 files changed, 6 insertions, 0 deletions
diff --git a/crypto/openssl/crypto/aes/asm/aesni-sha1-x86_64.pl b/crypto/openssl/crypto/aes/asm/aesni-sha1-x86_64.pl index 3c8f6c1..324eec6 100755 --- a/crypto/openssl/crypto/aes/asm/aesni-sha1-x86_64.pl +++ b/crypto/openssl/crypto/aes/asm/aesni-sha1-x86_64.pl @@ -68,6 +68,7 @@ $avx=1 if (!$avx && $win64 && ($flavour =~ /nasm/ || $ENV{ASM} =~ /nasm/) && $avx=1 if (!$avx && $win64 && ($flavour =~ /masm/ || $ENV{ASM} =~ /ml64/) && `ml64 2>&1` =~ /Version ([0-9]+)\./ && $1>=10); +$avx=1 if (!$avx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|.*based on LLVM) ([3-9]\.[0-9]+)/ && $2>=3.0); open OUT,"| \"$^X\" $xlate $flavour $output"; *STDOUT=*OUT; diff --git a/crypto/openssl/crypto/sha/asm/sha1-586.pl b/crypto/openssl/crypto/sha/asm/sha1-586.pl index 2b119ff..25901f8 100644 --- a/crypto/openssl/crypto/sha/asm/sha1-586.pl +++ b/crypto/openssl/crypto/sha/asm/sha1-586.pl @@ -116,6 +116,9 @@ $ymm=1 if ($xmm && !$ymm && $ARGV[0] eq "win32n" && `nasm -v 2>&1` =~ /NASM version ([2-9]\.[0-9]+)/ && $1>=2.03); # first version supporting AVX +$ymm=1 if ($xmm && !$ymm && `$ENV{CC} -v 2>&1` =~ /(^clang version|based on LLVM) ([3-9]\.[0-9]+)/ && + $2>=3.0); # first version supporting AVX + &external_label("OPENSSL_ia32cap_P") if ($xmm); diff --git a/crypto/openssl/crypto/sha/asm/sha1-x86_64.pl b/crypto/openssl/crypto/sha/asm/sha1-x86_64.pl index f15c7ec..9f3c00c 100755 --- a/crypto/openssl/crypto/sha/asm/sha1-x86_64.pl +++ b/crypto/openssl/crypto/sha/asm/sha1-x86_64.pl @@ -81,6 +81,8 @@ $avx=1 if (!$avx && $win64 && ($flavour =~ /nasm/ || $ENV{ASM} =~ /nasm/) && $avx=1 if (!$avx && $win64 && ($flavour =~ /masm/ || $ENV{ASM} =~ /ml64/) && `ml64 2>&1` =~ /Version ([0-9]+)\./ && $1>=10); +$avx=1 if (!$avx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|.*based on LLVM) ([3-9]\.[0-9]+)/ && + $2>=3.0); open OUT,"| \"$^X\" $xlate $flavour $output"; *STDOUT=*OUT; |