[Libre-soc-dev] mp3 changes

Jacob Lifshay programmerjake at gmail.com
Sun May 30 07:44:29 BST 2021


On Sat, May 29, 2021, 14:11 Luke Kenneth Casson Leighton <lkcl at lkcl.net>
wrote:

> Lauri I added unit stride mode to LD/ST which is
> for i in range(VL)
>  EA = GPR(RA) + EXTS(D) + i * LDSTwidth
>
> however that's not the one you need, it's just the easiest to add.
> next will be element-stride which is:
>
>  EA = GPR(RA) + D * i
>
> once i have els decoding in SVP64Asm it should just work.  format:
>
>    sv.flw/els FRT.v, D(RA)
>
> note that RA must be a *scalar* register and FRT a vector.  this gives
> a fixed start point to load/store from.
>
> question (to everyone) should it be
>
>  EA = GPR(RA) + D * i
>
> or
>

(assuming D is an immediate field) afaict the below should be good for >99%
of uses, if a programmer really needs unaligned element ops, imho they can
just create their own address vector and use load-gather.

>
>  EA = GPR(RA) + D * i * LDSTwidth
>

Jacob

>


More information about the Libre-soc-dev mailing list