Index: openssl/crypto/sha/asm/sha1-alpha.pl |
diff --git a/openssl/crypto/sha/asm/sha1-alpha.pl b/openssl/crypto/sha/asm/sha1-alpha.pl |
deleted file mode 100644 |
index 6c4b9251fd4ed69ba87f552a420f3b3bf2505a3d..0000000000000000000000000000000000000000 |
--- a/openssl/crypto/sha/asm/sha1-alpha.pl |
+++ /dev/null |
@@ -1,322 +0,0 @@ |
-#!/usr/bin/env perl |
- |
-# ==================================================================== |
-# Written by Andy Polyakov <appro@fy.chalmers.se> for the OpenSSL |
-# 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/. |
-# ==================================================================== |
- |
-# SHA1 block procedure for Alpha. |
- |
-# On 21264 performance is 33% better than code generated by vendor |
-# compiler, and 75% better than GCC [3.4], and in absolute terms is |
-# 8.7 cycles per processed byte. Implementation features vectorized |
-# byte swap, but not Xupdate. |
- |
-@X=( "\$0", "\$1", "\$2", "\$3", "\$4", "\$5", "\$6", "\$7", |
- "\$8", "\$9", "\$10", "\$11", "\$12", "\$13", "\$14", "\$15"); |
-$ctx="a0"; # $16 |
-$inp="a1"; |
-$num="a2"; |
-$A="a3"; |
-$B="a4"; # 20 |
-$C="a5"; |
-$D="t8"; |
-$E="t9"; @V=($A,$B,$C,$D,$E); |
-$t0="t10"; # 24 |
-$t1="t11"; |
-$t2="ra"; |
-$t3="t12"; |
-$K="AT"; # 28 |
- |
-sub BODY_00_19 { |
-my ($i,$a,$b,$c,$d,$e)=@_; |
-my $j=$i+1; |
-$code.=<<___ if ($i==0); |
- ldq_u @X[0],0+0($inp) |
- ldq_u @X[1],0+7($inp) |
-___ |
-$code.=<<___ if (!($i&1) && $i<14); |
- ldq_u @X[$i+2],($i+2)*4+0($inp) |
- ldq_u @X[$i+3],($i+2)*4+7($inp) |
-___ |
-$code.=<<___ if (!($i&1) && $i<15); |
- extql @X[$i],$inp,@X[$i] |
- extqh @X[$i+1],$inp,@X[$i+1] |
- |
- or @X[$i+1],@X[$i],@X[$i] # pair of 32-bit values are fetched |
- |
- srl @X[$i],24,$t0 # vectorized byte swap |
- srl @X[$i],8,$t2 |
- |
- sll @X[$i],8,$t3 |
- sll @X[$i],24,@X[$i] |
- zapnot $t0,0x11,$t0 |
- zapnot $t2,0x22,$t2 |
- |
- zapnot @X[$i],0x88,@X[$i] |
- or $t0,$t2,$t0 |
- zapnot $t3,0x44,$t3 |
- sll $a,5,$t1 |
- |
- or @X[$i],$t0,@X[$i] |
- addl $K,$e,$e |
- and $b,$c,$t2 |
- zapnot $a,0xf,$a |
- |
- or @X[$i],$t3,@X[$i] |
- srl $a,27,$t0 |
- bic $d,$b,$t3 |
- sll $b,30,$b |
- |
- extll @X[$i],4,@X[$i+1] # extract upper half |
- or $t2,$t3,$t2 |
- addl @X[$i],$e,$e |
- |
- addl $t1,$e,$e |
- srl $b,32,$t3 |
- zapnot @X[$i],0xf,@X[$i] |
- |
- addl $t0,$e,$e |
- addl $t2,$e,$e |
- or $t3,$b,$b |
-___ |
-$code.=<<___ if (($i&1) && $i<15); |
- sll $a,5,$t1 |
- addl $K,$e,$e |
- and $b,$c,$t2 |
- zapnot $a,0xf,$a |
- |
- srl $a,27,$t0 |
- addl @X[$i%16],$e,$e |
- bic $d,$b,$t3 |
- sll $b,30,$b |
- |
- or $t2,$t3,$t2 |
- addl $t1,$e,$e |
- srl $b,32,$t3 |
- zapnot @X[$i],0xf,@X[$i] |
- |
- addl $t0,$e,$e |
- addl $t2,$e,$e |
- or $t3,$b,$b |
-___ |
-$code.=<<___ if ($i>=15); # with forward Xupdate |
- sll $a,5,$t1 |
- addl $K,$e,$e |
- and $b,$c,$t2 |
- xor @X[($j+2)%16],@X[$j%16],@X[$j%16] |
- |
- zapnot $a,0xf,$a |
- addl @X[$i%16],$e,$e |
- bic $d,$b,$t3 |
- xor @X[($j+8)%16],@X[$j%16],@X[$j%16] |
- |
- srl $a,27,$t0 |
- addl $t1,$e,$e |
- or $t2,$t3,$t2 |
- xor @X[($j+13)%16],@X[$j%16],@X[$j%16] |
- |
- sll $b,30,$b |
- addl $t0,$e,$e |
- srl @X[$j%16],31,$t1 |
- |
- addl $t2,$e,$e |
- srl $b,32,$t3 |
- addl @X[$j%16],@X[$j%16],@X[$j%16] |
- |
- or $t3,$b,$b |
- zapnot @X[$i%16],0xf,@X[$i%16] |
- or $t1,@X[$j%16],@X[$j%16] |
-___ |
-} |
- |
-sub BODY_20_39 { |
-my ($i,$a,$b,$c,$d,$e)=@_; |
-my $j=$i+1; |
-$code.=<<___ if ($i<79); # with forward Xupdate |
- sll $a,5,$t1 |
- addl $K,$e,$e |
- zapnot $a,0xf,$a |
- xor @X[($j+2)%16],@X[$j%16],@X[$j%16] |
- |
- sll $b,30,$t3 |
- addl $t1,$e,$e |
- xor $b,$c,$t2 |
- xor @X[($j+8)%16],@X[$j%16],@X[$j%16] |
- |
- srl $b,2,$b |
- addl @X[$i%16],$e,$e |
- xor $d,$t2,$t2 |
- xor @X[($j+13)%16],@X[$j%16],@X[$j%16] |
- |
- srl @X[$j%16],31,$t1 |
- addl $t2,$e,$e |
- srl $a,27,$t0 |
- addl @X[$j%16],@X[$j%16],@X[$j%16] |
- |
- or $t3,$b,$b |
- addl $t0,$e,$e |
- or $t1,@X[$j%16],@X[$j%16] |
-___ |
-$code.=<<___ if ($i<77); |
- zapnot @X[$i%16],0xf,@X[$i%16] |
-___ |
-$code.=<<___ if ($i==79); # with context fetch |
- sll $a,5,$t1 |
- addl $K,$e,$e |
- zapnot $a,0xf,$a |
- ldl @X[0],0($ctx) |
- |
- sll $b,30,$t3 |
- addl $t1,$e,$e |
- xor $b,$c,$t2 |
- ldl @X[1],4($ctx) |
- |
- srl $b,2,$b |
- addl @X[$i%16],$e,$e |
- xor $d,$t2,$t2 |
- ldl @X[2],8($ctx) |
- |
- srl $a,27,$t0 |
- addl $t2,$e,$e |
- ldl @X[3],12($ctx) |
- |
- or $t3,$b,$b |
- addl $t0,$e,$e |
- ldl @X[4],16($ctx) |
-___ |
-} |
- |
-sub BODY_40_59 { |
-my ($i,$a,$b,$c,$d,$e)=@_; |
-my $j=$i+1; |
-$code.=<<___; # with forward Xupdate |
- sll $a,5,$t1 |
- addl $K,$e,$e |
- zapnot $a,0xf,$a |
- xor @X[($j+2)%16],@X[$j%16],@X[$j%16] |
- |
- srl $a,27,$t0 |
- and $b,$c,$t2 |
- and $b,$d,$t3 |
- xor @X[($j+8)%16],@X[$j%16],@X[$j%16] |
- |
- sll $b,30,$b |
- addl $t1,$e,$e |
- xor @X[($j+13)%16],@X[$j%16],@X[$j%16] |
- |
- srl @X[$j%16],31,$t1 |
- addl $t0,$e,$e |
- or $t2,$t3,$t2 |
- and $c,$d,$t3 |
- |
- or $t2,$t3,$t2 |
- srl $b,32,$t3 |
- addl @X[$i%16],$e,$e |
- addl @X[$j%16],@X[$j%16],@X[$j%16] |
- |
- or $t3,$b,$b |
- addl $t2,$e,$e |
- or $t1,@X[$j%16],@X[$j%16] |
- zapnot @X[$i%16],0xf,@X[$i%16] |
-___ |
-} |
- |
-$code=<<___; |
-#ifdef __linux__ |
-#include <asm/regdef.h> |
-#else |
-#include <asm.h> |
-#include <regdef.h> |
-#endif |
- |
-.text |
- |
-.set noat |
-.set noreorder |
-.globl sha1_block_data_order |
-.align 5 |
-.ent sha1_block_data_order |
-sha1_block_data_order: |
- lda sp,-64(sp) |
- stq ra,0(sp) |
- stq s0,8(sp) |
- stq s1,16(sp) |
- stq s2,24(sp) |
- stq s3,32(sp) |
- stq s4,40(sp) |
- stq s5,48(sp) |
- stq fp,56(sp) |
- .mask 0x0400fe00,-64 |
- .frame sp,64,ra |
- .prologue 0 |
- |
- ldl $A,0($ctx) |
- ldl $B,4($ctx) |
- sll $num,6,$num |
- ldl $C,8($ctx) |
- ldl $D,12($ctx) |
- ldl $E,16($ctx) |
- addq $inp,$num,$num |
- |
-.Lloop: |
- .set noreorder |
- ldah $K,23170(zero) |
- zapnot $B,0xf,$B |
- lda $K,31129($K) # K_00_19 |
-___ |
-for ($i=0;$i<20;$i++) { &BODY_00_19($i,@V); unshift(@V,pop(@V)); } |
- |
-$code.=<<___; |
- ldah $K,28378(zero) |
- lda $K,-5215($K) # K_20_39 |
-___ |
-for (;$i<40;$i++) { &BODY_20_39($i,@V); unshift(@V,pop(@V)); } |
- |
-$code.=<<___; |
- ldah $K,-28900(zero) |
- lda $K,-17188($K) # K_40_59 |
-___ |
-for (;$i<60;$i++) { &BODY_40_59($i,@V); unshift(@V,pop(@V)); } |
- |
-$code.=<<___; |
- ldah $K,-13725(zero) |
- lda $K,-15914($K) # K_60_79 |
-___ |
-for (;$i<80;$i++) { &BODY_20_39($i,@V); unshift(@V,pop(@V)); } |
- |
-$code.=<<___; |
- addl @X[0],$A,$A |
- addl @X[1],$B,$B |
- addl @X[2],$C,$C |
- addl @X[3],$D,$D |
- addl @X[4],$E,$E |
- stl $A,0($ctx) |
- stl $B,4($ctx) |
- addq $inp,64,$inp |
- stl $C,8($ctx) |
- stl $D,12($ctx) |
- stl $E,16($ctx) |
- cmpult $inp,$num,$t1 |
- bne $t1,.Lloop |
- |
- .set noreorder |
- ldq ra,0(sp) |
- ldq s0,8(sp) |
- ldq s1,16(sp) |
- ldq s2,24(sp) |
- ldq s3,32(sp) |
- ldq s4,40(sp) |
- ldq s5,48(sp) |
- ldq fp,56(sp) |
- lda sp,64(sp) |
- ret (ra) |
-.end sha1_block_data_order |
-.ascii "SHA1 block transform for Alpha, CRYPTOGAMS by <appro\@openssl.org>" |
-.align 2 |
-___ |
-$output=shift and open STDOUT,">$output"; |
-print $code; |
-close STDOUT; |