[openssl-commits] [openssl] master update

Richard Levitte levitte at openssl.org
Mon Mar 14 12:53:20 UTC 2016


The branch master has been updated
       via  8d51db86f7bbade81c6d6eb3357bc12ddeb12de1 (commit)
      from  6bfb7db35a426e5f070e744b56c913c739a40634 (commit)


- Log -----------------------------------------------------------------
commit 8d51db86f7bbade81c6d6eb3357bc12ddeb12de1
Author: Andy Polyakov <appro at openssl.org>
Date:   Fri Mar 11 16:47:02 2016 +0100

    s390x assembly pack: 32-bit fixups.
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

-----------------------------------------------------------------------

Summary of changes:
 Configurations/00-base-templates.conf | 2 +-
 Configurations/10-main.conf           | 2 +-
 crypto/poly1305/asm/poly1305-s390x.pl | 5 ++++-
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/Configurations/00-base-templates.conf b/Configurations/00-base-templates.conf
index cbb5675..c284af6 100644
--- a/Configurations/00-base-templates.conf
+++ b/Configurations/00-base-templates.conf
@@ -238,7 +238,7 @@
     },
     s390x_asm => {
 	template	=> 1,
-	cpuid_asm_src   => "s390xcap.c s390xcpuid.s",
+	cpuid_asm_src   => "s390xcap.c s390xcpuid.S",
 	bn_asm_src      => "asm/s390x.S s390x-mont.S s390x-gf2m.s",
 	aes_asm_src     => "aes-s390x.S aes-ctr.fake aes-xts.fake",
 	sha1_asm_src    => "sha1-s390x.S sha256-s390x.S sha512-s390x.S",
diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf
index cddf268..6c43772 100644
--- a/Configurations/10-main.conf
+++ b/Configurations/10-main.conf
@@ -781,7 +781,7 @@ sub vc_wince_info {
         #
         inherit_from     => [ "linux-generic32", asm("s390x_asm") ],
         cflags           => add("-m31 -Wa,-mzarch -DB_ENDIAN"),
-        bn_obj           => sub { my $r=join(" ", at _); $r=~s/bn\-s390x/bn_asm/; $r; },
+        bn_asm_src       => sub { my $r=join(" ", at _); $r=~s|asm/s390x\.S|bn_asm.c|; $r; },
         perlasm_scheme   => "31",
         shared_ldflag    => "-m31",
         multilib         => "/highgprs",
diff --git a/crypto/poly1305/asm/poly1305-s390x.pl b/crypto/poly1305/asm/poly1305-s390x.pl
index ce6a85f..49b3f79 100755
--- a/crypto/poly1305/asm/poly1305-s390x.pl
+++ b/crypto/poly1305/asm/poly1305-s390x.pl
@@ -78,13 +78,15 @@ $code.=<<___;
 .type	poly1305_blocks,\@function
 .align	16
 poly1305_blocks:
-	srl${g}	$len,$len,4
+	srl${g}	$len,4			# fixed-up in 64-bit build
 	lghi	%r0,0
 	cl${g}r	$len,%r0
 	je	.Lno_data
 
 	stm${g}	%r6,%r14,`6*$SIZE_T`($sp)
 
+	llgfr   $padbit,$padbit		# clear upper half, much needed with
+					# non-64-bit ABI
 	lg	$r0,32($ctx)		# load key
 	lg	$r1,40($ctx)
 
@@ -211,6 +213,7 @@ ___
 }
 
 $code =~ s/\`([^\`]*)\`/eval $1/gem;
+$code =~ s/\b(srlg\s+)(%r[0-9]+\s*,)\s*([0-9]+)/$1$2$2$3/gm;
 
 print $code;
 close STDOUT;


More information about the openssl-commits mailing list