Small bugfix: even when r == d, we need to adjust r and q.
PR: 366
This commit is contained in:
@@ -202,7 +202,7 @@ n=12 ;(AP) n by value (input)
|
|||||||
; r = r - d
|
; r = r - d
|
||||||
; q = q + 1
|
; q = q + 1
|
||||||
; }
|
; }
|
||||||
; while (r > d)
|
; while (r >= d)
|
||||||
; {
|
; {
|
||||||
; r = r - d
|
; r = r - d
|
||||||
; q = q + 1
|
; q = q + 1
|
||||||
@@ -253,21 +253,21 @@ d=12 ;(AP) d by value (input)
|
|||||||
3$:
|
3$:
|
||||||
tstl r3
|
tstl r3
|
||||||
bgeq 4$
|
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$:
|
4$:
|
||||||
ashl #1,r2,r2
|
ashl #1,r2,r2 ; q = q << 1
|
||||||
ashl #1,r3,r3
|
ashl #1,r3,r3 ; r = r << 1
|
||||||
addl r5,r3
|
addl r5,r3 ; r = r + a'
|
||||||
|
|
||||||
tstl r6
|
tstl r6
|
||||||
beql 5$
|
beql 5$ ; if r'
|
||||||
subl r4,r3
|
subl r4,r3 ; r = r - d
|
||||||
incl r2
|
incl r2 ; q = q + 1
|
||||||
5$:
|
5$:
|
||||||
cmpl r3,r4
|
cmpl r3,r4
|
||||||
blequ 42$
|
blssu 42$ ; while r >= d
|
||||||
subl r4,r3
|
subl r4,r3 ; r = r - d
|
||||||
incl r2
|
incl r2 ; q = q + 1
|
||||||
brb 5$
|
brb 5$
|
||||||
42$:
|
42$:
|
||||||
; movl r3,r1
|
; movl r3,r1
|
||||||
|
|||||||
Reference in New Issue
Block a user