[Libre-soc-isa] [Bug 973] an easy way to shift registers up and down is needed

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Mon Oct 9 06:26:18 BST 2023


https://bugs.libre-soc.org/show_bug.cgi?id=973

--- Comment #4 from Jacob Lifshay <programmerjake at gmail.com> ---
turns out bigint divmod using knuth's algorithm d most likely needs dynamic
svoffset too, since the outer loop offsets where some of the stuff in the inner
loop is read/written. see bug #1044 comment #35

simplified loop is like:

for j in ...:
    qhat = divrem(un[j], vn[n - 1])
    qhat = fixup(qhat, un[j - 1], vn[n - 2])
    for i in ...:
        un[i + j] -= vn[i] * qhat  # plus some carry stuff
    if borrowed:
        qhat -= 1
        for i in ...:
            un[i + j] += vn[i]  # plus some carry stuff
    q[j] = qhat

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Libre-SOC-ISA mailing list