Skip to content

Commit

Permalink
ec/ecp_nistz256: harmonize is_infinity with ec_GFp_simple_is_at_infin…
Browse files Browse the repository at this point in the history
…ity.

RT#4625

Reviewed-by: Rich Salz <rsalz@openssl.org>
  • Loading branch information
Andy Polyakov authored and mattcaswell committed Aug 24, 2016
1 parent e3057a5 commit c74aea8
Show file tree
Hide file tree
Showing 4 changed files with 102 additions and 212 deletions.
58 changes: 17 additions & 41 deletions crypto/ec/asm/ecp_nistz256-armv4.pl
Original file line number Diff line number Diff line change
Expand Up @@ -1405,27 +1405,19 @@
stmdb sp!,{r0-r12,lr} @ push from r0, unusual, but intentional
sub sp,sp,#32*18+16
ldmia $b_ptr!,{r4-r11} @ copy in2
ldmia $b_ptr!,{r4-r11} @ copy in2_x
add r3,sp,#$in2_x
orr r12,r4,r5
orr r12,r12,r6
orr r12,r12,r7
orr r12,r12,r8
orr r12,r12,r9
orr r12,r12,r10
orr r12,r12,r11
stmia r3!,{r4-r11}
ldmia $b_ptr!,{r4-r11}
orr r12,r12,r4
orr r12,r12,r5
ldmia $b_ptr!,{r4-r11} @ copy in2_y
stmia r3!,{r4-r11}
ldmia $b_ptr,{r4-r11} @ copy in2_z
orr r12,r4,r5
orr r12,r12,r6
orr r12,r12,r7
orr r12,r12,r8
orr r12,r12,r9
orr r12,r12,r10
orr r12,r12,r11
stmia r3!,{r4-r11}
ldmia $b_ptr,{r4-r11}
cmp r12,#0
#ifdef __thumb2__
it ne
Expand All @@ -1434,27 +1426,19 @@
stmia r3,{r4-r11}
str r12,[sp,#32*18+8] @ !in2infty
ldmia $a_ptr!,{r4-r11} @ copy in1
ldmia $a_ptr!,{r4-r11} @ copy in1_x
add r3,sp,#$in1_x
orr r12,r4,r5
orr r12,r12,r6
orr r12,r12,r7
orr r12,r12,r8
orr r12,r12,r9
orr r12,r12,r10
orr r12,r12,r11
stmia r3!,{r4-r11}
ldmia $a_ptr!,{r4-r11}
orr r12,r12,r4
orr r12,r12,r5
ldmia $a_ptr!,{r4-r11} @ copy in1_y
stmia r3!,{r4-r11}
ldmia $a_ptr,{r4-r11} @ copy in1_z
orr r12,r4,r5
orr r12,r12,r6
orr r12,r12,r7
orr r12,r12,r8
orr r12,r12,r9
orr r12,r12,r10
orr r12,r12,r11
stmia r3!,{r4-r11}
ldmia $a_ptr,{r4-r11}
cmp r12,#0
#ifdef __thumb2__
it ne
Expand Down Expand Up @@ -1684,27 +1668,19 @@
stmdb sp!,{r0-r12,lr} @ push from r0, unusual, but intentional
sub sp,sp,#32*15
ldmia $a_ptr!,{r4-r11} @ copy in1
ldmia $a_ptr!,{r4-r11} @ copy in1_x
add r3,sp,#$in1_x
orr r12,r4,r5
orr r12,r12,r6
orr r12,r12,r7
orr r12,r12,r8
orr r12,r12,r9
orr r12,r12,r10
orr r12,r12,r11
stmia r3!,{r4-r11}
ldmia $a_ptr!,{r4-r11}
orr r12,r12,r4
orr r12,r12,r5
ldmia $a_ptr!,{r4-r11} @ copy in1_y
stmia r3!,{r4-r11}
ldmia $a_ptr,{r4-r11} @ copy in1_z
orr r12,r4,r5
orr r12,r12,r6
orr r12,r12,r7
orr r12,r12,r8
orr r12,r12,r9
orr r12,r12,r10
orr r12,r12,r11
stmia r3!,{r4-r11}
ldmia $a_ptr,{r4-r11}
cmp r12,#0
#ifdef __thumb2__
it ne
Expand All @@ -1713,7 +1689,7 @@
stmia r3,{r4-r11}
str r12,[sp,#32*15+4] @ !in1infty
ldmia $b_ptr!,{r4-r11} @ copy in2
ldmia $b_ptr!,{r4-r11} @ copy in2_x
add r3,sp,#$in2_x
orr r12,r4,r5
orr r12,r12,r6
Expand All @@ -1723,7 +1699,7 @@
orr r12,r12,r10
orr r12,r12,r11
stmia r3!,{r4-r11}
ldmia $b_ptr!,{r4-r11}
ldmia $b_ptr!,{r4-r11} @ copy in2_y
orr r12,r12,r4
orr r12,r12,r5
orr r12,r12,r6
Expand Down
76 changes: 25 additions & 51 deletions crypto/ec/asm/ecp_nistz256-armv8.pl
Original file line number Diff line number Diff line change
Expand Up @@ -862,46 +862,28 @@
stp x25,x26,[sp,#64]
sub sp,sp,#32*12
ldp $a0,$a1,[$bp]
ldp $a2,$a3,[$bp,#16]
ldp $t0,$t1,[$bp,#32]
ldp $t2,$t3,[$bp,#48]
ldp $a0,$a1,[$bp,#64] // in2_z
ldp $a2,$a3,[$bp,#64+16]
mov $rp_real,$rp
mov $ap_real,$ap
mov $bp_real,$bp
orr $a0,$a0,$a1
orr $a2,$a2,$a3
ldp $acc0,$acc1,[$ap]
orr $t0,$t0,$t1
orr $t2,$t2,$t3
ldp $acc2,$acc3,[$ap,#16]
orr $a0,$a0,$a2
orr $t2,$t0,$t2
ldp $t0,$t1,[$ap,#32]
orr $in2infty,$a0,$t2
cmp $in2infty,#0
ldp $t2,$t3,[$ap,#48]
csetm $in2infty,ne // !in2infty
ldp $a0,$a1,[$bp_real,#64] // forward load for p256_sqr_mont
orr $acc0,$acc0,$acc1
orr $acc2,$acc2,$acc3
ldp $a2,$a3,[$bp_real,#64+16]
orr $t0,$t0,$t1
orr $t2,$t2,$t3
orr $acc0,$acc0,$acc2
orr $t0,$t0,$t2
orr $in1infty,$acc0,$t0
cmp $in1infty,#0
ldr $poly1,.Lpoly+8
ldr $poly3,.Lpoly+24
csetm $in1infty,ne // !in1infty
orr $t0,$a0,$a1
orr $t2,$a2,$a3
orr $in2infty,$t0,$t2
cmp $in2infty,#0
csetm $in2infty,ne // !in2infty
add $rp,sp,#$Z2sqr
bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Z2sqr, in2_z);
ldp $a0,$a1,[$ap_real,#64]
ldp $a0,$a1,[$ap_real,#64] // in1_z
ldp $a2,$a3,[$ap_real,#64+16]
orr $t0,$a0,$a1
orr $t2,$a2,$a3
orr $in1infty,$t0,$t2
cmp $in1infty,#0
csetm $in1infty,ne // !in1infty
add $rp,sp,#$Z1sqr
bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Z1sqr, in1_z);
Expand Down Expand Up @@ -1150,36 +1132,28 @@
ldr $poly1,.Lpoly+8
ldr $poly3,.Lpoly+24
ldp $a0,$a1,[$ap]
ldp $a2,$a3,[$ap,#16]
ldp $t0,$t1,[$ap,#32]
ldp $t2,$t3,[$ap,#48]
orr $a0,$a0,$a1
orr $a2,$a2,$a3
orr $t0,$t0,$t1
orr $t2,$t2,$t3
orr $a0,$a0,$a2
orr $t0,$t0,$t2
orr $in1infty,$a0,$t0
ldp $a0,$a1,[$ap,#64] // in1_z
ldp $a2,$a3,[$ap,#64+16]
orr $t0,$a0,$a1
orr $t2,$a2,$a3
orr $in1infty,$t0,$t2
cmp $in1infty,#0
csetm $in1infty,ne // !in1infty
ldp $a0,$a1,[$bp]
ldp $a2,$a3,[$bp,#16]
ldp $t0,$t1,[$bp,#32]
ldp $acc0,$acc1,[$bp] // in2_x
ldp $acc2,$acc3,[$bp,#16]
ldp $t0,$t1,[$bp,#32] // in2_y
ldp $t2,$t3,[$bp,#48]
orr $a0,$a0,$a1
orr $a2,$a2,$a3
orr $acc0,$acc0,$acc1
orr $acc2,$acc2,$acc3
orr $t0,$t0,$t1
orr $t2,$t2,$t3
orr $a0,$a0,$a2
orr $acc0,$acc0,$acc2
orr $t0,$t0,$t2
orr $in2infty,$a0,$t0
orr $in2infty,$acc0,$t0
cmp $in2infty,#0
csetm $in2infty,ne // !in2infty
ldp $a0,$a1,[$ap_real,#64]
ldp $a2,$a3,[$ap_real,#64+16]
add $rp,sp,#$Z1sqr
bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Z1sqr, in1_z);
Expand Down

0 comments on commit c74aea8

Please sign in to comment.