You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Current value and location
Look at a concrete case spec/std/isa/inst/I/ld.yaml:
name: ldlong_name: Load doubleworddescription: | For RV64, load 64 bits of data into register `xd` from an address formed by adding `xs1` to a signed offset. <% if ext?(:Zilsd) %> For RV32, Loads a 64-bit value into registers xd and xd+1. The effective address is obtained by adding register xs1 to the sign-extended 12-bit offset. <% end %>definedBy:
anyOf: [I, Zilsd]
It implies RV32I defines ld instructions. This is absolutely inaccurate.
Expected value
I believe the root cause is current schema forces us to have one "definedBy" for both rv32/rv64. I propose we should extend to schema to allow define different "definedBy" for rv32/64, like the "encoding" field.
Here is an expected "definedBy" for "ld" if the proposal is accepted.