ThinkOpenly / sail-riscv

Sail RISC-V model
Other
11 stars 14 forks source link

Add names for some instructions within groups #19

Closed ThinkOpenly closed 5 months ago

ThinkOpenly commented 5 months ago

Some instructions are grouped in a single mapping clause assembly where the respective mnemonics are embedded within a separate mapping.

For instructions which are not grouped, the name of the instruction can be added as an attribute to any of the instruction-specific constructs.

For grouped instructions, the attribute needs to be added to a construct at the granularity of the specific instruction. Here, we attach the attribute within the individual element of the mapping that includes the actual instruction mnemonic.

This approach is still insufficient for mnemonics that are constructed:

mapping clause assembly = VLSEGTYPE(nf, vm, rs1, width, vd)
  <-> "vl" ^ nfields_string(nf) ^ "e" ^ vlewidth_bitsnumberstr(width) ^ ".v" [...]

...so more thought is needed here.

Also, I'm settling on a convention of using lower case (not Leading Caps), at least for now. This matches how the instruction names are written in the ISA specification, at least for those instructions for which the name is actually provided. :-/