crypto/bn/asm/x86_64-mont*.pl: add missing clang detection.
authorAndy Polyakov <appro@openssl.org>
Thu, 11 Sep 2014 22:43:59 +0000 (00:43 +0200)
committerAndy Polyakov <appro@openssl.org>
Thu, 11 Sep 2014 22:44:51 +0000 (00:44 +0200)
Reviewed-by: Rich Salz <rsalz@openssl.org>
crypto/bn/asm/x86_64-mont.pl
crypto/bn/asm/x86_64-mont5.pl

index 2989b58f256eaa0fe4315d9970c91161f874481a..05ff6af9b851f182485f8288961dac9777499b24 100755 (executable)
@@ -68,6 +68,11 @@ if (!$addx && $win64 && ($flavour =~ /masm/ || $ENV{ASM} =~ /ml64/) &&
        $addx = ($1>=12);
 }
 
+if (!$addx && `$ENV{CC} -v 2>&1` =~ /(^clang version|based on LLVM) ([3-9])\.([0-9]+)/) {
+       my $ver = $2 + $3/100.0;        # 3.1->3.01, 3.10->3.10
+       $addx = ($ver>=3.03);
+}
+
 # int bn_mul_mont(
 $rp="%rdi";    # BN_ULONG *rp,
 $ap="%rsi";    # const BN_ULONG *ap,
index fa22c30b1fdd60c75926b61decf87a72cc6edcb6..69e81bf4dd6ff1940da9a1026f94c031d113ebd1 100755 (executable)
@@ -53,6 +53,11 @@ if (!$addx && $win64 && ($flavour =~ /masm/ || $ENV{ASM} =~ /ml64/) &&
        $addx = ($1>=12);
 }
 
+if (!$addx && `$ENV{CC} -v 2>&1` =~ /(^clang version|based on LLVM) ([3-9])\.([0-9]+)/) {
+       my $ver = $2 + $3/100.0;        # 3.1->3.01, 3.10->3.10
+       $addx = ($ver>=3.03);
+}
+
 # int bn_mul_mont_gather5(
 $rp="%rdi";    # BN_ULONG *rp,
 $ap="%rsi";    # const BN_ULONG *ap,