diff options
-rw-r--r-- | crypto/bn/bn_asm.c | 10 |
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; |