List Info

Thread: OpenSSL: openssl/crypto/sha/asm/ sha1-armv4-large.pl




OpenSSL: openssl/crypto/sha/asm/ sha1-armv4-large.pl
user name
2007-01-25 04:44:18
OpenSSL CVS Repository http://cvs.openssl.org/ ____________________________________________________________________________ Server: cvs.openssl.org Name: Andy Polyakov Root: /v/openssl/cvs Email: approopenssl.org Module: openssl Date: 25-Jan-2007 11:44:18 Branch: HEAD Handle: 2007012510441800 Modified files: openssl/crypto/sha/asm sha1-armv4-large.pl Log: Minor optimization for sha1-armv4 module. Summary: Revision Changes Path 1.2 +14 -11 openssl/crypto/sha/asm/sha1-armv4-large.pl ____________________________________________________________________________ patch -p0 <<' .' Index: openssl/crypto/sha/asm/sha1-armv4-large.pl ============================================================================ $ cvs diff -u -r1.1 -r1.2 sha1-armv4-large.pl --- openssl/crypto/sha/asm/sha1-armv4-large.pl 22 Jan 2007 20:33:46 -0000 1.1 +++ openssl/crypto/sha/asm/sha1-armv4-large.pl 25 Jan 2007 10:44:18 -0000 1.2 -7,7 +7,7 # details see http://www.openssl.org/~appro/cryptogams/. # ==================================================================== -# sha1_block precedure for ARMv4. +# sha1_block procedure for ARMv4. # # January 2007. -16,10 +16,10 # impl size in bytes comp cycles[*] measured performance # ==================================================================== # thumb 304 3212 4420 -# armv4-small 392/+29% 1958/+64% 2290/+93% -# armv4-compact 740/+89% 1552/+26% 1910/+20% -# armv4-large 1420/+92% 1307/+19% 1630/+17% -# full unroll ~5100/+260% ~1260/+4% ~1600/+2% +# armv4-small 392/+29% 1958/+64% 2250/+96% +# armv4-compact 740/+89% 1552/+26% 1840/+22% +# armv4-large 1420/+92% 1307/+19% 1500/+23% +# full unroll ~5100/+260% ~1260/+4% ~1500/+0% # ==================================================================== # thumb = same as 'small' but in Thumb instructions[**] and # with recurring code in two private functions; -64,15 +64,16 add $e,$K,$e,ror#2 E+=K_00_19 orr $t0,$t1,$t0,lsl#8 ldrb $t1,[$inp,#-1] - add $e,$e,$a,ror#27 E+=ROR(A,27) orr $t0,$t2,$t0,lsl#8 + add $e,$e,$a,ror#27 E+=ROR(A,27) orr $t0,$t1,$t0,lsl#8 add $e,$e,$t0 E+=X[i] + eor $t1,$c,$d F_xx_xx str $t0,[$Xi,#-4]! ___ } sub Xupdate { -my ($a,$b,$c,$d,$e)=_; +my ($a,$b,$c,$d,$e,$flag)=_; $code.=<<___; ldr $t0,[$Xi,#15*4] ldr $t1,[$Xi,#13*4] -83,6 +84,11 add $e,$e,$a,ror#27 E+=ROR(A,27) eor $t0,$t0,$t2 eor $t0,$t0,$t1 +___ +$code.=<<___ if (!defined($flag)); + eor $t1,$c,$d F_xx_xx, but not in 40_59 +___ +$code.=<<___; mov $t0,$t0,ror#31 add $e,$e,$t0 E+=X[i] str $t0,[$Xi,#-4]! -93,7 +99,6 my ($a,$b,$c,$d,$e)=_; &Xload(_); $code.=<<___; - eor $t1,$c,$d and $t1,$b,$t1,ror#2 eor $t1,$t1,$d,ror#2 F_00_19(B,C,D) add $e,$e,$t1 E+=F_00_19(B,C,D) -104,7 +109,6 my ($a,$b,$c,$d,$e)=_; &Xupdate(_); $code.=<<___; - eor $t1,$c,$d and $t1,$b,$t1,ror#2 eor $t1,$t1,$d,ror#2 F_00_19(B,C,D) add $e,$e,$t1 E+=F_00_19(B,C,D) -115,7 +119,6 my ($a,$b,$c,$d,$e)=_; &Xupdate(_); $code.=<<___; - eor $t1,$c,$d eor $t1,$b,$t1,ror#2 F_20_39(B,C,D) add $e,$e,$t1 E+=F_20_39(B,C,D) ___ -123,7 +126,7 sub BODY_40_59 { my ($a,$b,$c,$d,$e)=_; - &Xupdate(_); + &Xupdate(_,1); $code.=<<___; and $t1,$b,$c,ror#2 orr $t2,$b,$c,ror#2 . ______________________________________________________________________ OpenSSL Project http://www.openssl.org CVS Repository Commit List openssl-cvsopenssl.org Automated List Manager majordomoopenssl.org
[1]

about | contact  Other archives ( Real Estate discussion Medical topics )