[Libre-soc-isa] [Bug 937] instructions for bigint shift and prefix-code encode

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Sun Sep 25 22:14:17 BST 2022


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

--- Comment #1 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---

with the shift-up placing zeros into the LSBs if RC>0
can you explain clearly why the following alteration
is not correct for pcdec?

    elif RC < 0:
        v <<= -RC
        return u64(v>>64)  # return hi 64-bits
    else:
        v >>= RC
        return u64(v)  # return low 64-bits

this will be fun

    for i in range(len(out)):
        out[i] = dshrsd(inp[i + offset + 1], inp[i + offset], shift)

it will need to be an overwrite (RT-as-source) in order to get it into
RM-1P-2S1D as dshrshd RT,RA,RB so that EXTRA3 may be used.  as 3-in 1-out
RT,RA,RB,RC there is no room for EXTRA3 it would be EXTRA2 which cannot
handle odd vector regnums except through svoffset

the only thing is, reverse-gear needed on dshlsd to avoid overwrite.
which is fine.

RT,RA,RB would be X-Form which would reduce opcode pressure greatly.

prefix-sum btw is doable with mapreduce using the right offsets of
RT RA and RB (1 different) probably RT=RA+1

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


More information about the Libre-SOC-ISA mailing list