[Libre-soc-dev] LD/ST Elwidth Overrides

lkcl luke.leighton at gmail.com
Wed Sep 1 19:20:21 BST 2021

On September 1, 2021 5:40:07 PM UTC, Jacob Lifshay <programmerjake at gmail.com> wrote:

>the instructions would be something like:
>clrldi 4, 4, 32 # r4 &= 0xFFFF_FFFF
>lbzx 3, 4, 3

ah ok so actually truncating the range of the offset (RB) to 32 bits, 16 bits, 8 bits, then sign-extending or zero-extending it *back* to 64 bit before adding to RA.

hmmm, i wasn't expecting that.

the problem i can see with this is, should it be signed or unsigned? if both are 64 bit the question does not arise of course.


1) is there a spare bit in Indexed Mode which can specify signed/unsigned

2) if src elwidth applies to RB are we "losing" anything?


EA = [0] * 64
EA += RA
EA += RB[0:SRCLEN-1] # something like that
RS[XLEN-32:XLEN-1] = MEM(EA, 32)

mmm.... i'm not seeing any downside here.  just need to work out, signed or unsigned.


More information about the Libre-soc-dev mailing list