From b28750877c2d5f51e5db4cf99e3fb9b3b42130f6 Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Fri, 2 Jul 2010 08:09:30 +0000 Subject: [PATCH] ghash-sparcv9.pl: fix Makefile rule and add performance data for T1. --- crypto/modes/Makefile | 2 +- crypto/modes/asm/ghash-sparcv9.pl | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/crypto/modes/Makefile b/crypto/modes/Makefile index 0d6306c47a..6617619fa9 100644 --- a/crypto/modes/Makefile +++ b/crypto/modes/Makefile @@ -50,7 +50,7 @@ ghash-x86.s: asm/ghash-x86.pl ghash-x86_64.s: asm/ghash-x86_64.pl $(PERL) asm/ghash-x86_64.pl $(PERLASM_SCHEME) > $@ ghash-sparcv9.s: asm/ghash-sparcv9.pl - $(PERL) asm/ghash-sparcv9.pl $(CFLAGS) > $@ + $(PERL) asm/ghash-sparcv9.pl $@ $(CFLAGS) ghash-alpha.s: asm/ghash-alpha.pl $(PERL) $< | $(CC) -E - | tee $@ > /dev/null ghash-parisc.s: asm/ghash-parisc.pl diff --git a/crypto/modes/asm/ghash-sparcv9.pl b/crypto/modes/asm/ghash-sparcv9.pl index 652222cc80..367e1b69da 100644 --- a/crypto/modes/asm/ghash-sparcv9.pl +++ b/crypto/modes/asm/ghash-sparcv9.pl @@ -20,6 +20,13 @@ # 32-bit build 81.0 48.6 11.8 (+586%/+311%) # 64-bit build 27.5 20.3 11.8 (+133%/+72%) # +# Here is data collected on UltraSPARC T1 system running Linux: +# +# gcc 4.4.1 this assembler +# +# 32-bit build 566 50 (+1000%) +# 64-bit build 56 50 (+12%) +# # I don't quite understand why difference between 32-bit and 64-bit # compiler-generated code is so big. Compilers *were* instructed to # generate code for UltraSPARC and should have used 64-bit registers @@ -28,7 +35,7 @@ # module;-) Loops are aggressively modulo-scheduled in respect to # references to input data and Z.hi updates to achieve 12 cycles # timing. To anchor to something else, sha1-sparcv9.pl spends 11.6 -# cycles to process one byte [on UltraSPARC pre-Tx CPU]. +# cycles to process one byte on UltraSPARC pre-Tx CPU and ~24 on T1. $bits=32; for (@ARGV) { $bits=64 if (/\-m64/ || /\-xarch\=v9/); } -- 2.34.1