[openssl-commits] [openssl] master update

Andy Polyakov appro at openssl.org
Wed Mar 9 10:21:36 UTC 2016


The branch master has been updated
       via  1a66190888c730f466d9d7ba0c3b044a78a80ded (commit)
      from  b5640316771fb776101cf6be8e6ae2ed5cf93d02 (commit)


- Log -----------------------------------------------------------------
commit 1a66190888c730f466d9d7ba0c3b044a78a80ded
Author: Andy Polyakov <appro at openssl.org>
Date:   Mon Mar 7 23:50:01 2016 +0100

    ec/asm/ecp_nistz256-sparcv9.pl: get corner logic right.
    
    RT#4284
    
    Reviewed-by: Rich Salz <rsalz at openssl.org>

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

Summary of changes:
 crypto/ec/asm/ecp_nistz256-sparcv9.pl | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/crypto/ec/asm/ecp_nistz256-sparcv9.pl b/crypto/ec/asm/ecp_nistz256-sparcv9.pl
index 29a089b..bd69eea 100755
--- a/crypto/ec/asm/ecp_nistz256-sparcv9.pl
+++ b/crypto/ec/asm/ecp_nistz256-sparcv9.pl
@@ -722,6 +722,7 @@ ecp_nistz256_point_double:
 	mov	$rp,$rp_real
 	mov	$ap,$ap_real
 
+.Lpoint_double_shortcut:
 	ld	[$ap+32], at acc[0]
 	ld	[$ap+32+4], at acc[1]
 	ld	[$ap+32+8], at acc[2]
@@ -994,7 +995,7 @@ ecp_nistz256_point_add:
 	be,pt	%icc,.Ladd_proceed	! (in1infty || in2infty)?
 	nop
 	andcc	$t2,$t2,%g0
-	be,pt	%icc,.Ladd_proceed	! is_equal(S1,S2)?
+	be,pt	%icc,.Ladd_double	! is_equal(S1,S2)?
 	nop
 
 	ldx	[%fp+STACK_BIAS-8],$rp
@@ -1026,6 +1027,13 @@ ecp_nistz256_point_add:
 	nop
 
 .align	16
+.Ladd_double:
+	ldx	[%fp+STACK_BIAS-8],$rp_real
+	mov	$ap_real,$ap
+	b	.Lpoint_double_shortcut
+	add	%sp,32*(12-4)+32,%sp	! difference in frame sizes
+
+.align	16
 .Ladd_proceed:
 	add	%sp,LOCALS+$R,$bp
 	add	%sp,LOCALS+$R,$ap
@@ -2016,6 +2024,7 @@ ecp_nistz256_point_double_vis3:
 	save	%sp,-STACK64_FRAME-32*10,%sp
 
 	mov	$rp,$rp_real
+.Ldouble_shortcut_vis3:
 	mov	-1,$minus1
 	mov	-2,$poly3
 	sllx	$minus1,32,$poly1		! 0xFFFFFFFF00000000
@@ -2536,8 +2545,8 @@ ecp_nistz256_point_add_vis3:
 	be,pt	%xcc,.Ladd_proceed_vis3		! (in1infty || in2infty)?
 	nop
 	andcc	$t2,$t2,%g0
-	be,pt	%xcc,.Ladd_proceed_vis3		! is_equal(S1,S2)?
-	nop
+	be,a,pt	%xcc,.Ldouble_shortcut_vis3	! is_equal(S1,S2)?
+	add	%sp,32*(12-10)+32,%sp		! difference in frame sizes
 
 	st	%g0,[$rp_real]
 	st	%g0,[$rp_real+4]


More information about the openssl-commits mailing list