x86-mont.pl: fix bug in integer-only squaring path.
authorAndy Polyakov <appro@openssl.org>
Fri, 9 Dec 2011 14:21:25 +0000 (14:21 +0000)
committerAndy Polyakov <appro@openssl.org>
Fri, 9 Dec 2011 14:21:25 +0000 (14:21 +0000)
PR: 2648

crypto/bn/asm/x86-mont.pl

index 5cd3cd2ed50a968fa2ab60bcd361b185dce923ac..e8f6b050842e361df1b28d6e90f0e4a400b91dfb 100755 (executable)
@@ -527,8 +527,10 @@ $sbit=$num;
        &jle    (&label("sqradd"));
 
        &mov    ($carry,"edx");
-       &lea    ("edx",&DWP(0,$sbit,"edx",2));
+       &add    ("edx","edx");
        &shr    ($carry,31);
+       &add    ("edx",$sbit);
+       &adc    ($carry,0);
 &set_label("sqrlast");
        &mov    ($word,$_n0);
        &mov    ($inp,$_np);