diff options
author | Andy Polyakov <appro@openssl.org> | 2007-09-27 09:09:46 +0200 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2007-09-27 09:09:46 +0200 |
commit | 4c7c5ff667de19627861db07b50d595e47856422 (patch) | |
tree | 906a2acd32293c9aa99f79726089139697f28a07 /crypto/sha | |
parent | 10% performance tweak in 64-bit mode. (diff) | |
download | openssl-4c7c5ff667de19627861db07b50d595e47856422.tar.xz openssl-4c7c5ff667de19627861db07b50d595e47856422.zip |
ARMv4 assembler pack.
Diffstat (limited to 'crypto/sha')
-rw-r--r-- | crypto/sha/Makefile | 3 | ||||
-rw-r--r-- | crypto/sha/asm/sha1-armv4-large.pl | 4 | ||||
-rw-r--r-- | crypto/sha/asm/sha1-thumb.pl | 4 | ||||
-rw-r--r-- | crypto/sha/asm/sha256-armv4.pl | 4 | ||||
-rw-r--r-- | crypto/sha/asm/sha512-armv4.pl | 4 |
5 files changed, 19 insertions, 0 deletions
diff --git a/crypto/sha/Makefile b/crypto/sha/Makefile index e02d9f1dc3..763b2aad65 100644 --- a/crypto/sha/Makefile +++ b/crypto/sha/Makefile @@ -71,6 +71,9 @@ sha256-ia64.s: asm/sha512-ia64.pl sha512-ia64.s: asm/sha512-ia64.pl (cd asm; $(PERL) sha512-ia64.pl ../$@ $(CFLAGS)) +sha256-armv4.s: asm/sha256-armv4.pl + $(PERL) $< $@ + # Solaris make has to be explicitly told sha1-x86_64.s: asm/sha1-x86_64.pl; $(PERL) asm/sha1-x86_64.pl $@ sha256-x86_64.s:asm/sha512-x86_64.pl; $(PERL) asm/sha512-x86_64.pl $@ diff --git a/crypto/sha/asm/sha1-armv4-large.pl b/crypto/sha/asm/sha1-armv4-large.pl index f54eef5a04..436eb36d70 100644 --- a/crypto/sha/asm/sha1-armv4-large.pl +++ b/crypto/sha/asm/sha1-armv4-large.pl @@ -38,6 +38,9 @@ # the same job in Thumb, therefore the code is never twice as # small and always slower. +$output=shift; +open STDOUT,">$output"; + $ctx="r0"; $inp="r1"; $len="r2"; @@ -224,3 +227,4 @@ $code.=<<___; ___ print $code; +close STDOUT; # enforce flush diff --git a/crypto/sha/asm/sha1-thumb.pl b/crypto/sha/asm/sha1-thumb.pl index f025001b2f..7c9ea9b029 100644 --- a/crypto/sha/asm/sha1-thumb.pl +++ b/crypto/sha/asm/sha1-thumb.pl @@ -19,6 +19,9 @@ # by over 40%, while code increases by only 10% or 32 bytes. But once # again, the goal was to establish _size_ benchmark, not performance. +$output=shift; +open STDOUT,">$output"; + $inline=0; #$cheat_on_binutils=1; @@ -253,3 +256,4 @@ $code.=<<___; ___ print $code; +close STDOUT; # enforce flush diff --git a/crypto/sha/asm/sha256-armv4.pl b/crypto/sha/asm/sha256-armv4.pl index 4dd09619a6..0c9d999de9 100644 --- a/crypto/sha/asm/sha256-armv4.pl +++ b/crypto/sha/asm/sha256-armv4.pl @@ -13,6 +13,9 @@ # lute" terms is ~2250 cycles per 64-byte block or ~35 cycles per # byte. +$output=shift; +open STDOUT,">$output"; + $ctx="r0"; $t0="r0"; $inp="r1"; $len="r2"; $t1="r2"; @@ -173,3 +176,4 @@ ___ $code =~ s/\`([^\`]*)\`/eval $1/gem; print $code; +close STDOUT; # enforce flush diff --git a/crypto/sha/asm/sha512-armv4.pl b/crypto/sha/asm/sha512-armv4.pl index da720bd5d3..230e78d7ef 100644 --- a/crypto/sha/asm/sha512-armv4.pl +++ b/crypto/sha/asm/sha512-armv4.pl @@ -22,6 +22,9 @@ $hi=0; $lo=4; # ==================================================================== +$output=shift; +open STDOUT,">$output"; + $ctx="r0"; $inp="r1"; $len="r2"; @@ -391,3 +394,4 @@ ___ $code =~ s/\`([^\`]*)\`/eval $1/gem; print $code; +close STDOUT; # enforce flush |