[Libre-soc-bugs] [Bug 1028] implement integer-versions of fft/dct "butterfly" instructions in ISACaller Simulator

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Fri Jul 21 00:06:37 BST 2023


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

--- Comment #13 from Jacob Lifshay <programmerjake at gmail.com> ---
(In reply to Luke Kenneth Casson Leighton from comment #10)
> (In reply to Jacob Lifshay from comment #9)
> > while writing unit tests for maddrs, I noticed that it's a 4-in 2-out
> > instruction (most likely too many) -- it reads RA, RB, RT, and RS and writes
> > RT and RS.
> 
> i already explained to markos on IRC why that is prohibited.
> the instruction has not been updated since that discussion.

a suggestion to end up with a version of maddrs that doesn't have too many
registers: split it into the mul-add-shift and the mul-sub-shift parts and have
each be a separate instruction:

maddrs RT, RA, RB, SH

prod <- MULS((RA), (RB))
RT <- round_shift(RT + prod, SH)


msubrs RT, RA, RB, SH

prod <- MULS((RA), (RB))
RT <- round_shift(RT - prod, SH)


the final sequence then could be:
maddsubrs r1,r10,0,r11
maddrs r1,r10,r12,14
msubrs r2,r10,r12,14

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


More information about the libre-soc-bugs mailing list