aesni-sha[1|256]-x86_64.pl: fix logical error and MacOS X build.
authorAndy Polyakov <appro@openssl.org>
Mon, 16 Jun 2014 08:11:45 +0000 (10:11 +0200)
committerAndy Polyakov <appro@openssl.org>
Mon, 16 Jun 2014 08:11:45 +0000 (10:11 +0200)
crypto/aes/asm/aesni-sha1-x86_64.pl
crypto/aes/asm/aesni-sha256-x86_64.pl

index 4899421f30a71febdc2bb02ae35534c0694de75b..7f253750f3f41554b305284807bf3f2449d23b93 100644 (file)
@@ -726,7 +726,7 @@ ___
                                                if ($stitched_decrypt) {{{
 # reset
 ($in0,$out,$len,$key,$ivp,$ctx,$inp)=("%rdi","%rsi","%rdx","%rcx","%r8","%r9","%r10");
-$j=$jj=$r=$sn=$rx=0;
+$j=$jj=$r=$rx=0;
 $Xi=4;
 
 # reassign for Atom Silvermont (see above)
@@ -994,7 +994,7 @@ $code.=<<___;
 .size  aesni256_cbc_sha1_dec_ssse3,.-aesni256_cbc_sha1_dec_ssse3
 ___
                                                }}}
-$j=$jj=$r=$sn=$rx=0;
+$j=$jj=$r=$rx=0;
 
 if ($avx) {
 my ($in0,$out,$len,$key,$ivp,$ctx,$inp)=("%rdi","%rsi","%rdx","%rcx","%r8","%r9","%r10");
@@ -1440,7 +1440,7 @@ ___
 # reset
 ($in0,$out,$len,$key,$ivp,$ctx,$inp)=("%rdi","%rsi","%rdx","%rcx","%r8","%r9","%r10");
 
-$j=$jj=$r=$sn=$rx=0;
+$j=$jj=$r=$rx=0;
 $Xi=4;
 
 @aes256_dec = (
index 3ef5e13325fb0aaf718a589ed39b79c1b6224307..6225561a8fea2e5a73c44dd5c3b4c105f9012ab6 100644 (file)
@@ -59,7 +59,7 @@ if (!$avx && $win64 && ($flavour =~ /masm/ || $ENV{ASM} =~ /ml64/) &&
        $avx = ($1>=10) + ($1>=11);
 }
 
-$shaext=1;     ### set to zero if compiling for 1.0.1
+$shaext=$avx;  ### set to zero if compiling for 1.0.1
 $avx=1         if (!$shaext && $avx);
 
 open OUT,"| \"$^X\" $xlate $flavour $output";
@@ -109,7 +109,8 @@ $code=<<___;
 .align 16
 $func:
 ___
-$code.=<<___ if ($avx);
+                                               if ($avx) {
+$code.=<<___;
        lea     OPENSSL_ia32cap_P(%rip),%r11
        mov     \$1,%eax
        cmp     \$0,`$win64?"%rcx":"%rdi"`
@@ -133,7 +134,7 @@ $code.=<<___ if ($avx>1);
        cmp     \$`1<<8|1<<5|1<<3`,%r11d
        je      ${func}_avx2
 ___
-$code.=<<___ if ($avx);
+$code.=<<___;
        and     \$`1<<30`,%eax                  # mask "Intel CPU" bit
        and     \$`1<<28|1<<9`,%r10d            # mask AVX+SSSE3 bits
        or      %eax,%r10d
@@ -141,6 +142,7 @@ $code.=<<___ if ($avx);
        je      ${func}_avx
        ud2
 ___
+                                               }
 $code.=<<___;
        xor     %eax,%eax
        cmp     \$0,`$win64?"%rcx":"%rdi"`