Futher minor PPC assembler update.
authorAndy Polyakov <appro@openssl.org>
Thu, 4 May 2006 21:30:41 +0000 (21:30 +0000)
committerAndy Polyakov <appro@openssl.org>
Thu, 4 May 2006 21:30:41 +0000 (21:30 +0000)
crypto/bn/asm/ppc-mont.pl
crypto/perlasm/ppc-xlate.pl
crypto/sha/asm/sha1-ppc.pl

index e9149c98cf5347b7d13f00b0085a6ebf6337b82f..c345c1b30ee637115719e2ea01b4e0d8048fa1a2 100644 (file)
@@ -98,7 +98,7 @@ $nlo="r25";
 $nhi="r0";
 
 $code=<<___;
-.machine any
+.machine "any"
 .text
 
 .globl .bn_mul_mont
index 7e0f9e96c094e1e52ed7c2b14a0b7e3782da965e..a3b5b0e37bcc9c9fdf43e92e4cf84aa8824f488a 100755 (executable)
@@ -58,8 +58,10 @@ my $text = sub {
 my $machine = sub {
     my $junk = shift;
     my $arch = shift;
-    if ($arch eq "any" and $flavour =~ /osx/)
-    {   $arch = ($flavour =~ /64/) ? "ppc970-64" : "ppc970";   }
+    if ($flavour =~ /osx/)
+    {  $arch =~ s/\"//g;
+       $arch = ($flavour=~/64/) ? "ppc970-64" : "ppc970" if ($arch eq "any");
+    }
     ".machine  $arch";
 };
 
@@ -69,12 +71,10 @@ my $machine = sub {
 my $cmplw = sub {
     my $f = shift;
     my $cr = 0; $cr = shift if ($#_>1);
-    "  cmpl$f  ".join(',',$cr,0,@_);
-};
-my $cmpld = sub {
-    my $f = shift;
-    my $cr = 0; $cr = shift if ($#_>1);
-    "  cmpl$f  ".join(',',$cr,1,@_);
+    # Some out-of-date 32-bit GNU assembler just can't handle cmplw...
+    ($flavour =~ /linux.*32/) ?
+       "       .long   ".sprintf "0x%x",31<<26|$cr<<23|$_[0]<<16|$_[1]<<11|64 :
+       "       cmplw   ".join(',',$cr,@_);
 };
 my $bdnz = sub {
     my $f = shift;
index c1bf1f4872b67c378b6b931f9ac7d796b2bd2ea8..3aa9655a825b9b5c08154c2cc90c8355f329ae2b 100755 (executable)
@@ -149,7 +149,7 @@ ___
 }
 
 $code=<<___;
-.machine any
+.machine "any"
 .text
 
 .globl .sha1_block_asm_data_order