summaryrefslogtreecommitdiffstats
path: root/crypto/sha
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2007-09-27 09:09:46 +0200
committerAndy Polyakov <appro@openssl.org>2007-09-27 09:09:46 +0200
commit4c7c5ff667de19627861db07b50d595e47856422 (patch)
tree906a2acd32293c9aa99f79726089139697f28a07 /crypto/sha
parent10% performance tweak in 64-bit mode. (diff)
downloadopenssl-4c7c5ff667de19627861db07b50d595e47856422.tar.xz
openssl-4c7c5ff667de19627861db07b50d595e47856422.zip
ARMv4 assembler pack.
Diffstat (limited to 'crypto/sha')
-rw-r--r--crypto/sha/Makefile3
-rw-r--r--crypto/sha/asm/sha1-armv4-large.pl4
-rw-r--r--crypto/sha/asm/sha1-thumb.pl4
-rw-r--r--crypto/sha/asm/sha256-armv4.pl4
-rw-r--r--crypto/sha/asm/sha512-armv4.pl4
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