Remove OPENSSL_IA32_SSE2 checks in x86 perlasm We always pass this, so checks are redundant. Note this doesn't control the SSE2 runtime checks, just whether SSE2 code is emitted. Change-Id: I159806928643915afecf738dcac218007ba94600 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/65869 Reviewed-by: Bob Beck <bbe@google.com> Commit-Queue: David Benjamin <davidben@google.com>
diff --git a/cmake/perlasm.cmake b/cmake/perlasm.cmake index 0dc104c..17a47b9 100644 --- a/cmake/perlasm.cmake +++ b/cmake/perlasm.cmake
@@ -40,9 +40,9 @@ add_perlasm_target("${dest}-linux.S" ${src} linux32 ${ARGN}) append_to_parent_scope("${var}_ASM" "${dest}-linux.S") elseif(arch STREQUAL "x86") - add_perlasm_target("${dest}-apple.S" ${src} macosx -fPIC -DOPENSSL_IA32_SSE2 ${ARGN}) - add_perlasm_target("${dest}-linux.S" ${src} elf -fPIC -DOPENSSL_IA32_SSE2 ${ARGN}) - add_perlasm_target("${dest}-win.asm" ${src} win32n -DOPENSSL_IA32_SSE2 ${ARGN}) + add_perlasm_target("${dest}-apple.S" ${src} macosx -fPIC ${ARGN}) + add_perlasm_target("${dest}-linux.S" ${src} elf -fPIC ${ARGN}) + add_perlasm_target("${dest}-win.asm" ${src} win32n ${ARGN}) append_to_parent_scope("${var}_ASM" "${dest}-apple.S" "${dest}-linux.S") append_to_parent_scope("${var}_NASM" "${dest}-win.asm") elseif(arch STREQUAL "x86_64")
diff --git a/crypto/chacha/asm/chacha-x86.pl b/crypto/chacha/asm/chacha-x86.pl index 482d53f..ec23a51 100755 --- a/crypto/chacha/asm/chacha-x86.pl +++ b/crypto/chacha/asm/chacha-x86.pl
@@ -45,7 +45,7 @@ $output=pop; open STDOUT,">$output"; -&asm_init($ARGV[0],$ARGV[$#ARGV] eq "386"); +&asm_init($ARGV[0]); $xmm=$ymm=1; $gasver=999; # enable everything
diff --git a/crypto/fipsmodule/aes/asm/vpaes-x86.pl b/crypto/fipsmodule/aes/asm/vpaes-x86.pl index 04c407d..d7c0905 100644 --- a/crypto/fipsmodule/aes/asm/vpaes-x86.pl +++ b/crypto/fipsmodule/aes/asm/vpaes-x86.pl
@@ -62,7 +62,7 @@ open OUT,">$output"; *STDOUT=*OUT; -&asm_init($ARGV[0],$x86only = $ARGV[$#ARGV] eq "386"); +&asm_init($ARGV[0]); $PREFIX="vpaes";
diff --git a/crypto/fipsmodule/bn/asm/bn-586.pl b/crypto/fipsmodule/bn/asm/bn-586.pl index c23d6a9..eae6da9 100644 --- a/crypto/fipsmodule/bn/asm/bn-586.pl +++ b/crypto/fipsmodule/bn/asm/bn-586.pl
@@ -16,8 +16,7 @@ &asm_init($ARGV[0]); -$sse2=0; -for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); } +$sse2=1; &external_label("OPENSSL_ia32cap_P") if ($sse2);
diff --git a/crypto/fipsmodule/bn/asm/x86-mont.pl b/crypto/fipsmodule/bn/asm/x86-mont.pl index 58b28ad..c097574 100755 --- a/crypto/fipsmodule/bn/asm/x86-mont.pl +++ b/crypto/fipsmodule/bn/asm/x86-mont.pl
@@ -42,8 +42,7 @@ &asm_init($ARGV[0]); -$sse2=0; -for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); } +$sse2=1; &external_label("OPENSSL_ia32cap_P") if ($sse2);
diff --git a/crypto/fipsmodule/modes/asm/ghash-x86.pl b/crypto/fipsmodule/modes/asm/ghash-x86.pl index f893b50..17dbead 100644 --- a/crypto/fipsmodule/modes/asm/ghash-x86.pl +++ b/crypto/fipsmodule/modes/asm/ghash-x86.pl
@@ -141,10 +141,10 @@ $output=pop; open STDOUT,">$output"; -&asm_init($ARGV[0],$x86only = $ARGV[$#ARGV] eq "386"); +&asm_init($ARGV[0]); -$sse2=0; -for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); } +$x86only=0; +$sse2=1; if (!$x86only) {{{ if ($sse2) {{
diff --git a/crypto/fipsmodule/sha/asm/sha1-586.pl b/crypto/fipsmodule/sha/asm/sha1-586.pl index 90c2361..7952636 100644 --- a/crypto/fipsmodule/sha/asm/sha1-586.pl +++ b/crypto/fipsmodule/sha/asm/sha1-586.pl
@@ -126,18 +126,15 @@ $output=pop; open STDOUT,">$output"; -&asm_init($ARGV[0],$ARGV[$#ARGV] eq "386"); +&asm_init($ARGV[0]); -$xmm=$ymm=0; -for (@ARGV) { $xmm=1 if (/-DOPENSSL_IA32_SSE2/); } +$xmm = 1; # In upstream, this is controlled by shelling out to the compiler to check # versions, but BoringSSL is intended to be used with pre-generated perlasm # output, so this isn't useful anyway. $ymm = 1; -$ymm = 0 unless ($xmm); - $shaext=$xmm; ### set to zero if compiling for 1.0.1 # TODO(davidben): Consider enabling the Intel SHA Extensions code once it's
diff --git a/crypto/fipsmodule/sha/asm/sha256-586.pl b/crypto/fipsmodule/sha/asm/sha256-586.pl index 99b4cf1..d23d81f 100644 --- a/crypto/fipsmodule/sha/asm/sha256-586.pl +++ b/crypto/fipsmodule/sha/asm/sha256-586.pl
@@ -76,10 +76,9 @@ $output=pop; open STDOUT,">$output"; -&asm_init($ARGV[0],$ARGV[$#ARGV] eq "386"); +&asm_init($ARGV[0]); -$xmm=$avx=0; -for (@ARGV) { $xmm=1 if (/-DOPENSSL_IA32_SSE2/); } +$xmm = 1; # In upstream, this is controlled by shelling out to the compiler to check # versions, but BoringSSL is intended to be used with pre-generated perlasm
diff --git a/crypto/fipsmodule/sha/asm/sha512-586.pl b/crypto/fipsmodule/sha/asm/sha512-586.pl index 1aee14d..b288776 100644 --- a/crypto/fipsmodule/sha/asm/sha512-586.pl +++ b/crypto/fipsmodule/sha/asm/sha512-586.pl
@@ -62,10 +62,9 @@ $output=pop; open STDOUT,">$output"; -&asm_init($ARGV[0],$ARGV[$#ARGV] eq "386"); +&asm_init($ARGV[0]); -$sse2=0; -for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); } +$sse2=1; &external_label("OPENSSL_ia32cap_P") if ($sse2);
diff --git a/util/generate_build_files.py b/util/generate_build_files.py index e29a203..6038ba2 100644 --- a/util/generate_build_files.py +++ b/util/generate_build_files.py
@@ -30,13 +30,13 @@ # downstream scripts import this to find what folders to add/remove from git. OS_ARCH_COMBOS = [ ('apple', 'aarch64', 'ios64', [], 'S'), - ('apple', 'x86', 'macosx', ['-fPIC', '-DOPENSSL_IA32_SSE2'], 'S'), + ('apple', 'x86', 'macosx', ['-fPIC'], 'S'), ('apple', 'x86_64', 'macosx', [], 'S'), ('linux', 'arm', 'linux32', [], 'S'), ('linux', 'aarch64', 'linux64', [], 'S'), - ('linux', 'x86', 'elf', ['-fPIC', '-DOPENSSL_IA32_SSE2'], 'S'), + ('linux', 'x86', 'elf', ['-fPIC'], 'S'), ('linux', 'x86_64', 'elf', [], 'S'), - ('win', 'x86', 'win32n', ['-DOPENSSL_IA32_SSE2'], 'asm'), + ('win', 'x86', 'win32n', [], 'asm'), ('win', 'x86_64', 'nasm', [], 'asm'), ('win', 'aarch64', 'win64', [], 'S'), ]