sail-riscv icon indicating copy to clipboard operation
sail-riscv copied to clipboard

Delete `riscv_hints.sail`

Open Timmmm opened this issue 5 months ago • 9 comments

This file causes some issues because it generates invalid assembly - #1013 and #112.

I also don't see that it is really needed. The instructions are hints but that has no semantic meaning until a meaning is assigned to it.

I think we should just delete that file. When deleting it we also need to ensure:

  1. That the fence instructions correctly execute reserved fences as nops.
  2. That the encdec for the non-hint instructions which filters out hints is removed. E.g. currently we have
mapping clause encdec_compressed = C_SRAI_HINT(rsd)
  <-> 0b100 @ 0b0 @ 0b01 @ encdec_creg(rsd) @ 0b00000 @ 0b01

mapping clause encdec_compressed = C_SRAI(nzui5 @ nzui40, rsd)
  <-> 0b100 @ nzui5 : bits(1) @ 0b01 @ encdec_creg(rsd) @ nzui40 : bits(5) @ 0b01
  when nzui5 @ nzui40 != 0b000000 & (xlen == 64 | nzui5 == 0b0) & currentlyEnabled(Ext_Zca)

This should be changed to just

mapping clause encdec_compressed = C_SRAI(ui5 @ ui40, rsd)
  <-> 0b100 @ ui5 : bits(1) @ 0b01 @ encdec_creg(rsd) @ ui40 : bits(5) @ 0b01
  when (xlen == 64 | ui5 == 0b0) & currentlyEnabled(Ext_Zca)

Timmmm avatar Jun 13 '25 20:06 Timmmm