| 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;
 | 
| 
 |