summaryrefslogtreecommitdiffstats
path: root/crypto/bn/bn_asm.c
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>1999-07-21 13:53:01 +0000
committerAndy Polyakov <appro@openssl.org>1999-07-21 13:53:01 +0000
commitcea538154bfb543b5fe1d2556a779cccd2572a5e (patch)
tree977167ec016d257cc572040666e666d6f3e666a6 /crypto/bn/bn_asm.c
parent5f12fc006e54f903dfbcebb3198f0dbcbec54da7 (diff)
Get rid of redundant multiplications in bn_div_words.
Diffstat (limited to 'crypto/bn/bn_asm.c')
-rw-r--r--crypto/bn/bn_asm.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/crypto/bn/bn_asm.c b/crypto/bn/bn_asm.c
index 7f4c3ff3b2..286a0f1e74 100644
--- a/crypto/bn/bn_asm.c
+++ b/crypto/bn/bn_asm.c
@@ -266,16 +266,16 @@ BN_ULONG bn_div_words(BN_ULONG h, BN_ULONG l, BN_ULONG d)
for (;;)
{
- t=(h-q*dh);
+ t=(h-(th=q*dh));
+ tl=BN_MASK2;
if ((t&BN_MASK2h) ||
- ((dl*q) <= (
- (t<<BN_BITS4)+
+ ((tl=dl*q) <= (
+ (t<<BN_BITS4)|
((l&BN_MASK2h)>>BN_BITS4))))
break;
q--;
}
- th=q*dh;
- tl=q*dl;
+ if (tl==BN_MASK2) tl=q*dl;
t=(tl>>BN_BITS4);
tl=(tl<<BN_BITS4)&BN_MASK2h;
th+=t;