From: Andy Polyakov Date: Sun, 14 Oct 2012 14:46:56 +0000 (+0000) Subject: [md5|sha1|sha512]-sparcv9.pl: "cooperative" optimizations based on X-Git-Tag: master-post-reformat~1666 X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff_plain;h=aea4126e4e99e7d7ae10374f30fbb566be6f07ff [md5|sha1|sha512]-sparcv9.pl: "cooperative" optimizations based on suggestions from David Miller. --- diff --git a/crypto/md5/asm/md5-sparcv9.pl b/crypto/md5/asm/md5-sparcv9.pl index 5875779101..062a0738c4 100644 --- a/crypto/md5/asm/md5-sparcv9.pl +++ b/crypto/md5/asm/md5-sparcv9.pl @@ -1,7 +1,7 @@ #!/usr/bin/env perl # ==================================================================== -# Written by Andy Polyakov for the OpenSSL +# Written by Andy Polyakov 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/. @@ -242,6 +242,7 @@ md5_block_asm_data_order: subcc %o2, 1, %o2 ! done yet? ldd [%o1 + 0x38], %f22 add %o1, 0x40, %o1 + prefetch [%o1 + 63], 20 .word 0x81b02800 ! MD5 @@ -272,6 +273,7 @@ md5_block_asm_data_order: subcc %o2, 1, %o2 ! done yet? ldd [%o1 + 0x40], %f26 add %o1, 0x40, %o1 + prefetch [%o1 + 63], 20 faligndata %f10, %f12, %f8 faligndata %f12, %f14, %f10 diff --git a/crypto/sha/asm/sha1-sparcv9.pl b/crypto/sha/asm/sha1-sparcv9.pl index f661e96524..47a82d3267 100644 --- a/crypto/sha/asm/sha1-sparcv9.pl +++ b/crypto/sha/asm/sha1-sparcv9.pl @@ -227,6 +227,7 @@ sha1_block_data_order: subcc %o2, 1, %o2 ! done yet? ldd [%o1 + 0x38], %f22 add %o1, 0x40, %o1 + prefetch [%o1 + 63], 20 .word 0x81b02820 ! SHA1 @@ -257,6 +258,7 @@ sha1_block_data_order: subcc %o2, 1, %o2 ! done yet? ldd [%o1 + 0x40], %f26 add %o1, 0x40, %o1 + prefetch [%o1 + 63], 20 faligndata %f10, %f12, %f8 faligndata %f12, %f14, %f10 diff --git a/crypto/sha/asm/sha512-sparcv9.pl b/crypto/sha/asm/sha512-sparcv9.pl index 011b534f82..4c749a5c8f 100644 --- a/crypto/sha/asm/sha512-sparcv9.pl +++ b/crypto/sha/asm/sha512-sparcv9.pl @@ -514,6 +514,8 @@ $code.=<<___ if ($SZ==8); # SHA512 subcc %o2, 1, %o2 ! done yet? ldd [%o1 + 0x78], %f46 add %o1, 0x80, %o1 + prefetch [%o1 + 63], 20 + prefetch [%o1 + 64+63], 20 .word 0x81b02860 ! SHA512 @@ -555,6 +557,8 @@ $code.=<<___ if ($SZ==8); # SHA512 subcc %o2, 1, %o2 ! done yet? ldd [%o1 + 0x80], %f50 add %o1, 0x80, %o1 + prefetch [%o1 + 63], 20 + prefetch [%o1 + 64+63], 20 faligndata %f18, %f20, %f16 faligndata %f20, %f22, %f18 @@ -604,6 +608,7 @@ $code.=<<___ if ($SZ==4); # SHA256 subcc %o2, 1, %o2 ! done yet? ldd [%o1 + 0x38], %f22 add %o1, 0x40, %o1 + prefetch [%o1 + 63], 20 .word 0x81b02840 ! SHA256 @@ -637,6 +642,7 @@ $code.=<<___ if ($SZ==4); # SHA256 subcc %o2, 1, %o2 ! done yet? ldd [%o1 + 0x40], %f26 add %o1, 0x40, %o1 + prefetch [%o1 + 63], 20 faligndata %f10, %f12, %f8 faligndata %f12, %f14, %f10