[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