From: Richard Levitte Date: Sun, 1 Dec 2002 02:17:30 +0000 (+0000) Subject: Small bugfix: even when r == d, we need to adjust r and q. X-Git-Tag: OpenSSL_0_9_7-beta5~27 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=b8804bf15df35dbf83c5245fea675100c0ff5f27;p=oweals%2Fopenssl.git Small bugfix: even when r == d, we need to adjust r and q. PR: 366 --- diff --git a/crypto/bn/asm/vms.mar b/crypto/bn/asm/vms.mar index 6fcd2fce57..1a82353ffa 100644 --- a/crypto/bn/asm/vms.mar +++ b/crypto/bn/asm/vms.mar @@ -202,7 +202,7 @@ n=12 ;(AP) n by value (input) ; r = r - d ; q = q + 1 ; } -; while (r > d) +; while (r >= d) ; { ; r = r - d ; q = q + 1 @@ -253,21 +253,21 @@ d=12 ;(AP) d by value (input) 3$: tstl r3 bgeq 4$ - incl r6 ; since the high bit in r is set, set rprim + incl r6 ; since the high bit in r is set, set r' 4$: - ashl #1,r2,r2 - ashl #1,r3,r3 - addl r5,r3 + ashl #1,r2,r2 ; q = q << 1 + ashl #1,r3,r3 ; r = r << 1 + addl r5,r3 ; r = r + a' tstl r6 - beql 5$ - subl r4,r3 - incl r2 + beql 5$ ; if r' + subl r4,r3 ; r = r - d + incl r2 ; q = q + 1 5$: cmpl r3,r4 - blequ 42$ - subl r4,r3 - incl r2 + blssu 42$ ; while r >= d + subl r4,r3 ; r = r - d + incl r2 ; q = q + 1 brb 5$ 42$: ; movl r3,r1