summaryrefslogtreecommitdiffstats
path: root/crypto/bn/asm/via-mont.pl
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2007-06-29 13:10:19 +0000
committerAndy Polyakov <appro@openssl.org>2007-06-29 13:10:19 +0000
commit673c55a2fe62000a0b7f0345ed16d91e1d28427a (patch)
tree4d66d3c8d0ff183a54b404a1a3c4f35d29deb334 /crypto/bn/asm/via-mont.pl
parent949ce10e8855f660971debe1b7b5842a84554006 (diff)
Latest bn_mont.c modification broke ECDSA test. I've got math wrong, which
is fixed now.
Diffstat (limited to 'crypto/bn/asm/via-mont.pl')
-rw-r--r--crypto/bn/asm/via-mont.pl7
1 files changed, 1 insertions, 6 deletions
diff --git a/crypto/bn/asm/via-mont.pl b/crypto/bn/asm/via-mont.pl
index ce3cd61eb3..c046a514c8 100644
--- a/crypto/bn/asm/via-mont.pl
+++ b/crypto/bn/asm/via-mont.pl
@@ -187,17 +187,12 @@ $sp=&DWP(28,"esp");
&data_byte(0xf3,0x0f,0xa6,0xc0);# rep montmul
&mov ("ecx","ebp");
- &xor ("edx","edx"); # i=0
&lea ("esi",&DWP(64,"esp")); # tp
# edi still points at the end of padded np copy...
- &mov ("eax",&DWP(-4-$pad,"edi")); # np[num-1]
&neg ("ebp");
&lea ("ebp",&DWP(-$pad,"edi","ebp",4)); # so just "rewind"
&mov ("edi",$rp); # restore rp
-
- &shr ("eax",30); # boundary condition...
- &jz (&label("copy")); # ... is met
- &xor ("edx","edx"); # clear CF
+ &xor ("edx","edx"); # i=0 and clear CF
&set_label("sub",8);
&mov ("eax",&DWP(0,"esi","edx",4));