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


- Log -----------------------------------------------------------------
commit 1a66190888c730f466d9d7ba0c3b044a78a80ded
Author: Andy Polyakov <[email protected]>
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 <[email protected]>

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

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],@acc[0]
        ld      [$ap+32+4],@acc[1]
        ld      [$ap+32+8],@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]
_____
openssl-commits mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-commits

Reply via email to