[Libre-soc-dev] change sv ld/st to allow non-zero immediates for unit-strided load/store
Jacob Lifshay
programmerjake at gmail.com
Wed Oct 12 01:04:59 BST 2022
On Tue, Oct 11, 2022 at 4:50 PM lkcl <luke.leighton at gmail.com> wrote:
ok, we can skip using RA=r1 as a mode selector.
> there are an alarmingly high number of modes as it is, LDST has
> undergone approximately seven major design revisions, each time
> losing one mode over another, making several unsatisfactory
> compromises.
ok, though I think it can fit, though am not sure because the LD/ST
immediate modes pseudocode isn't very clear:
https://git.libre-soc.org/?p=libreriscv.git;a=blob;f=openpower/sv/ldst.mdwn;h=eb32548ed1d5ea665dba1f27bf61f394356cb1a1;hb=HEAD#l120
> if RA.isvec:
> svctx.ldstmode = indexed
> elif els == 0:
> svctx.ldstmode = unitstride
if immediate can be != 0 for unitstride here, that's exactly what we need.
> elif immediate != 0:
> svctx.ldstmode = elementstride
missing cases at the end. please fix. please add LD-VSPLAT to the
if/else sequence.
Jacob
More information about the Libre-soc-dev
mailing list