[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
Thu Sep 29 04:37:36 BST 2022


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

--- Comment #10 from Jacob Lifshay <programmerjake at gmail.com> ---
(In reply to Luke Kenneth Casson Leighton from comment #8)
> muxes for selecting sources is next

I know I put the input muxing in the pseudocode for dsld/dsrd since it seemed
like that's what you were planning, but imho it would be better to have 4
different instruction mnemonics rather than an additional argument:
suggested renames:
add hlsz to mnemonic instead of a 0123 argument:

dsld RT, RA, RB, 0 -> dsldh RT, RA, RB -- h for RT being hi input
RT = dsld(RT, RA, RB)

dsld RT, RA, RB, 1 -> dsldl RT, RA, RB -- l for RT being lo input
RT = dsld(RA, RT, RB)

dsld RT, RA, RB, 2 -> dslds RT, RA, RB -- s for RT being shift input
RT = dsld(RT, RB, RT)

dsld RT, RA, RB, 3 -> dsldz RT, RA, RB -- z for zero input
RT = dsld(0, RA, RB)


dsrd RT, RA, RB, 0 -> dsrdh RT, RA, RB -- h for RT being hi input
RT = dsrd(RT, RA, RB)

dsrd RT, RA, RB, 1 -> dsrdl RT, RA, RB -- l for RT being lo input
RT = dsrd(RA, RT, RB)

dsrd RT, RA, RB, 2 -> dsrds RT, RA, RB -- s for RT being shift input
RT = dsrd(RT, RB, RT)

dsrd RT, RA, RB, 3 -> dsrdz RT, RA, RB -- z for zero input
RT = dsrd(RA, 0, RB)

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


More information about the Libre-SOC-ISA mailing list