Commentary updates.
[openssl.git] / crypto / sha / asm / sha1-ppc.pl
index 704887b7abf46d3bf3f4f647114387ee5a58284c..2c84d5914923a7142a35f4c4cddd31abf51e87f3 100755 (executable)
@@ -2,8 +2,9 @@
 
 # ====================================================================
 # Written by Andy Polyakov <appro@fy.chalmers.se> for the OpenSSL
-# project. Rights for redistribution and usage in source and binary
-# forms are granted according to the OpenSSL license.
+# project. The module is, however, dual licensed under OpenSSL and
+# CRYPTOGAMS licenses depending on where you obtain it. For further
+# details see http://www.openssl.org/~appro/cryptogams/.
 # ====================================================================
 
 # I let hardware handle unaligned input(*), except on page boundaries
@@ -17,6 +18,7 @@
 #                      -m64    -m32
 # ----------------------------------
 # PPC970,gcc-4.0.0     +76%    +59%
+# Power6,xlc-7         +68%    +33%
 
 $output = shift;
 
@@ -34,8 +36,13 @@ if ($output =~ /64\.s/) {
        $PUSH   ="stw";
 } else { die "nonsense $output"; }
 
-( defined shift || open STDOUT,"| $^X ../perlasm/ppc-xlate.pl $output" ) ||
-       die "can't call ../perlasm/ppc-xlate.pl: $!";
+$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
+( $xlate="${dir}ppc-xlate.pl" and -f $xlate ) or
+( $xlate="${dir}../../perlasm/ppc-xlate.pl" and -f $xlate) or
+die "can't locate ppc-xlate.pl";
+
+( defined shift || open STDOUT,"| $^X $xlate $output" ) ||
+       die "can't call $xlate: $!";
 
 $FRAME=24*$SIZE_T;
 
@@ -152,9 +159,9 @@ ___
 $code=<<___;
 .text
 
-.globl .sha1_block_asm_data_order
+.globl .sha1_block_data_order
 .align 4
-.sha1_block_asm_data_order:
+.sha1_block_data_order:
        mflr    r0
        $STU    $sp,`-($FRAME+64)`($sp)
        $PUSH   r0,`$FRAME-$SIZE_T*18`($sp)
@@ -303,6 +310,9 @@ $code.=<<___;
        bdnz-   Lsha1_block_private
        blr
 ___
+$code.=<<___;
+.asciz "SHA1 block transform for PPC, CRYPTOGAMS by <appro\@fy.chalmers.se>"
+___
 
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
 print $code;