提交 1a661908 编写于 作者: A Andy Polyakov

ec/asm/ecp_nistz256-sparcv9.pl: get corner logic right.

RT#4284
Reviewed-by: NRich Salz <rsalz@openssl.org>
上级 b5640316
......@@ -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
......@@ -1025,6 +1026,13 @@ ecp_nistz256_point_add:
b .Ladd_done
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
......@@ -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]
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册