[libre-riscv-dev] Instruction sorta-prefixes for easier high-register access

Luke Kenneth Casson Leighton lkcl at lkcl.net
Mon Jan 21 10:41:32 GMT 2019


---
crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68

On Mon, Jan 21, 2019 at 10:23 AM Jacob Lifshay <programmerjake at gmail.com> wrote:
>
> I pushed a work-in-progress prefix proposal to
> https://salsa.debian.org/Kazan-team/kazan/blob/master/docs/Prefix%20Proposal.md

looks great;

elwidth

11 64-bit (d)

can you make that "default" (in both int & fp), so that:

 (a) when using the CSR tables, the "default" may be over-ridden
 (b) the elwidth can be taken from the opcode (and the usual
zero/sign-extension done: this is crucial for LD/ST)
 (c) RV32/RV64 mode can do the "normal" changing that is part of the RV spec.

the signed/unsigned table is not needed: i did a comprehensive
analysis as part of spike-sv which shows that the sign/zero extension
may be taken from whether the instruction has a ".W" suffix.  dead
simple.

the c.mv sign/unsigned: this makes me nervous (especially after
analysing how complex in the hardware it is to do).  it turns the
processor into a CISC design that effectively requires turning the
instruction into two microcode ops.  and it's element-based.

i would *really* really prefer that two *actual* instructions be used,
one to do the mv and the other to do the sign/unsigned conversion [or
that F.SGNetcetc be used].

> The prefixed C instructions are supposed to expand 1:1 to 48-bit
> instructions.
> Planning on filling in more later.

 ok cool.



More information about the libre-riscv-dev mailing list