[openssl] master update

Dr. Paul Dale pauli at openssl.org
Tue Jun 22 08:34:25 UTC 2021


The branch master has been updated
       via  b1fa45b01ba55a95bea1a4f05444f40be1b126f5 (commit)
       via  676efe3116f8275fb7308331078838c93d97d02e (commit)
       via  e41ded8f2e0772e3b8037ca752c39ca64ff38f81 (commit)
       via  3f55ff6af5dde97c6cda53bd735606f21b5707a5 (commit)
       via  5b7f986457d2ae181de9475a3d303e6ba4a3b16c (commit)
       via  77bd294bd0249eae040438a785fe17fb631eaa97 (commit)
       via  450d9804806a676485b8697cc2989777e3dc0cc8 (commit)
       via  7f98eaab8b5d5de22a869af1a92e29a4ea4b1776 (commit)
      from  5ae86f284c5508ee09dab527ae9206f394b70f3a (commit)


- Log -----------------------------------------------------------------
commit b1fa45b01ba55a95bea1a4f05444f40be1b126f5
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Jun 18 11:10:16 2021 +1000

    ec: Only build ecp_nistp521-ppc64.s if enable-ec_nistp_64_gcc_128
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Signed-off-by: Amitay Isaacs <amitay at ozlabs.org>
    
    Reviewed-by: Tomas Mraz <tomas at openssl.org>
    Reviewed-by: Paul Dale <pauli at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/15798)

commit 676efe3116f8275fb7308331078838c93d97d02e
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Jun 17 12:20:15 2021 +1000

    ec: Add alignment pseudo-op at beginning of function
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Tomas Mraz <tomas at openssl.org>
    Reviewed-by: Paul Dale <pauli at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/15798)

commit e41ded8f2e0772e3b8037ca752c39ca64ff38f81
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Jun 17 12:15:35 2021 +1000

    ec: Drop uses of .cfi_startproc/.cfi_endproc pseudo-ops
    
    These work fine on Linux but break the build on AIX.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Tomas Mraz <tomas at openssl.org>
    Reviewed-by: Paul Dale <pauli at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/15798)

commit 3f55ff6af5dde97c6cda53bd735606f21b5707a5
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Jun 16 16:54:26 2021 +1000

    bn: save/restore registers to/from stack
    
    mtvsrd/mfvsrd are ISA >= 2.07 only, so this won't work for older
    CPUs.
    
    It would be possible to use this scheme only in the ISA >= 3.0
    implementation.  However, in the future it may be possible for newer
    ISAs to allow CPU implementations without a vector unit, so don't
    bother.  The performance improvement versus using the stack was small
    anyway.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Tomas Mraz <tomas at openssl.org>
    Reviewed-by: Paul Dale <pauli at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/15798)

commit 5b7f986457d2ae181de9475a3d303e6ba4a3b16c
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Jun 16 16:37:15 2021 +1000

    bn: Switch $i to be unused r9
    
    No need to save/restore because it is volatile.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Tomas Mraz <tomas at openssl.org>
    Reviewed-by: Paul Dale <pauli at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/15798)

commit 77bd294bd0249eae040438a785fe17fb631eaa97
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Jun 16 14:58:08 2021 +1000

    bn: Drop unnecessary use of r9
    
    This is done in other versions due to the possibility of an early
    return.  However, there is no early return here.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Tomas Mraz <tomas at openssl.org>
    Reviewed-by: Paul Dale <pauli at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/15798)

commit 450d9804806a676485b8697cc2989777e3dc0cc8
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Jun 16 17:29:52 2021 +1000

    bn: Update .align pseudo-ops to match convention
    
    64-bit alignment at the beginning of functions, 32-bit alignment for
    loop targets.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Tomas Mraz <tomas at openssl.org>
    Reviewed-by: Paul Dale <pauli at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/15798)

commit 7f98eaab8b5d5de22a869af1a92e29a4ea4b1776
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Jun 16 16:39:11 2021 +1000

    bn: Drop use of .p2align pseudo-op
    
    This works on Linux but breaks the build on AIX.
    
    Fixes #15748
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Tomas Mraz <tomas at openssl.org>
    Reviewed-by: Paul Dale <pauli at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/15798)

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

Summary of changes:
 crypto/bn/asm/ppc64-mont-fixed.pl   | 20 ++++++++------------
 crypto/ec/asm/ecp_nistp521-ppc64.pl |  3 +--
 crypto/ec/build.info                | 10 +++++++---
 3 files changed, 16 insertions(+), 17 deletions(-)

diff --git a/crypto/bn/asm/ppc64-mont-fixed.pl b/crypto/bn/asm/ppc64-mont-fixed.pl
index 62d2db0006..da4967a730 100755
--- a/crypto/bn/asm/ppc64-mont-fixed.pl
+++ b/crypto/bn/asm/ppc64-mont-fixed.pl
@@ -72,8 +72,7 @@ my $np	= "r6";
 my $n0	= "r7";
 my $num	= "r8";
 
-$rp	= "r9";	# $rp is reassigned
-
+my $i	= "r9";
 my $c0	= "r10";
 my $bp0	= "r11";
 my $bpi	= "r11";
@@ -83,7 +82,6 @@ my $apj	= "r12";
 my $npj	= "r12";
 my $lo	= "r14";
 my $c1	= "r14";
-my $i	= "r15";
 
 # Non-volatile registers used for tp[i]
 #
@@ -186,8 +184,8 @@ sub mul_mont_fixed($)
 	$self->add_code(<<___);
 
 .globl	.${fname}
+.align	5
 .${fname}:
-	mr	$rp,r3
 
 ___
 
@@ -226,6 +224,7 @@ ___
 	mtctr		$num
 	b		$label->{"enter"}
 
+.align	4
 $label->{"outer"}:
 	ldx		$bpi,$bp,$i
 
@@ -247,6 +246,7 @@ ___
 ___
 
 	$self->add_code(<<___);
+.align	4
 $label->{"enter"}:
 	mulld		$bpi,$tp[0],$n0
 
@@ -345,13 +345,12 @@ sub save_registers($)
 	my $n = $self->{n};
 
 	$self->add_code(<<___);
-	mtvsrd	$vsrs[0],$lo
-	mtvsrd	$vsrs[1],$i
+	std	$lo,-8($sp)
 ___
 
 	for (my $j = 0; $j <= $n+1; $j++) {
 		$self->{code}.=<<___;
-	mtvsrd	$vsrs[$j+2],$tp[$j]
+	std	$tp[$j],-`($j+2)*8`($sp)
 ___
 	}
 
@@ -367,13 +366,12 @@ sub restore_registers($)
 	my $n = $self->{n};
 
 	$self->add_code(<<___);
-	mfvsrd	$lo,$vsrs[0]
-	mfvsrd	$i,$vsrs[1]
+	ld	$lo,-8($sp)
 ___
 
 	for (my $j = 0; $j <= $n+1; $j++) {
 		$self->{code}.=<<___;
-	mfvsrd	$tp[$j],$vsrs[$j+2]
+	ld	$tp[$j],-`($j+2)*8`($sp)
 ___
 	}
 
@@ -561,8 +559,6 @@ my $code;
 $code.=<<___;
 .machine "any"
 .text
-.align	5
-.p2align	5,,31
 ___
 
 my $mont;
diff --git a/crypto/ec/asm/ecp_nistp521-ppc64.pl b/crypto/ec/asm/ecp_nistp521-ppc64.pl
index 7e71e924ba..e97d803d26 100755
--- a/crypto/ec/asm/ecp_nistp521-ppc64.pl
+++ b/crypto/ec/asm/ecp_nistp521-ppc64.pl
@@ -45,8 +45,8 @@ sub startproc($)
 
     $code.=<<___;
     .globl ${name}
+    .align 5
 ${name}:
-	.cfi_startproc
 
 ___
 }
@@ -57,7 +57,6 @@ sub endproc($)
 
     $code.=<<___;
 	blr
-	.cfi_endproc
 	    .size	${name},.-${name}
 
 ___
diff --git a/crypto/ec/build.info b/crypto/ec/build.info
index f4314dd896..216139e596 100644
--- a/crypto/ec/build.info
+++ b/crypto/ec/build.info
@@ -30,9 +30,13 @@ IF[{- !$disabled{asm} -}]
   $ECASM_parisc20_64=
 
   $ECASM_ppc32=
-  $ECASM_ppc64=ecp_nistz256.c ecp_nistz256-ppc64.s ecp_nistp521-ppc64.s x25519-ppc64.s
-  $ECDEF_ppc64=ECP_NISTZ256_ASM ECP_NISTP521_ASM X25519_ASM
-  INCLUDE[ecp_nistp521.o]=..
+  $ECASM_ppc64=ecp_nistz256.c ecp_nistz256-ppc64.s x25519-ppc64.s
+  $ECDEF_ppc64=ECP_NISTZ256_ASM X25519_ASM
+  IF[{- !$disabled{'ec_nistp_64_gcc_128'} -}]
+    $ECASM_ppc64=$ECASM_ppc64 ecp_nistp521-ppc64.s
+    $ECDEF_ppc64=$ECDEF_ppc64 ECP_NISTP521_ASM
+    INCLUDE[ecp_nistp521.o]=..
+  ENDIF
 
   $ECASM_c64xplus=
 


More information about the openssl-commits mailing list