perlasm/ppc-xlate.pl: add support for AltiVec/VMX and VSX.
authorAndy Polyakov <appro@openssl.org>
Wed, 4 Dec 2013 21:01:31 +0000 (22:01 +0100)
committerAndy Polyakov <appro@openssl.org>
Wed, 4 Dec 2013 21:01:31 +0000 (22:01 +0100)
Suggested by: Marcello Cerri

crypto/perlasm/ppc-xlate.pl

index 57d9ec1610c622d1b38945f921c2767749dc9cbb..89f749f667cc11c42a39d28b5a537614ee4d9e15 100755 (executable)
@@ -146,6 +146,10 @@ my $extrdi = sub {
     $b = ($b+$n)&63; $n = 64-$n;
     "  rldicl  $ra,$rs,$b,$n";
 };
+my $vmr = sub {
+    my ($f,$vx,$vy) = @_;
+    "  vor     $vx,$vy,$vy";
+};
 
 while($line=<>) {
 
@@ -174,7 +178,7 @@ while($line=<>) {
        my $mnemonic = $2;
        my $f = $3;
        my $opcode = eval("\$$mnemonic");
-       $line =~ s|\bc?[rf]([0-9]+)\b|$1|g if ($c ne "." and $flavour !~ /osx/);
+       $line =~ s/\b(c?[rf]|v|vs)([0-9]+)\b/$2/g if ($c ne "." and $flavour !~ /osx/);
        if (ref($opcode) eq 'CODE') { $line = &$opcode($f,split(',',$line)); }
        elsif ($mnemonic)           { $line = $c.$mnemonic.$f."\t".$line; }
     }