Features
RISC-V features.
The RISC-V ISA is really a family of ISAs:
there is a choice of base (RV32I, RV64I, RV128I, RV32E, RV64E),
and there are choices of extensions.
There is also a choice of little or big endian memory access
(for data; instruction access is always little endian [ISA:1.5.1]).
Perhaps less obvious, there is also a choice of
which parts of the address space are readable and/or writable.
For a general model of the RISC-V ISA,
we want to accommodate all the possible choices.
Towards that goal, we introduce a notion of `features',
which define these choices;
we start with only some choices,
which we plan to extend with more choices.
Subtopics
- Feat-base
- Fixtype of RISC-V feature choices for the base.
- Feat-endian
- Fixtype of RISC-V feature choices for endianness.
- Feat
- Fixtype of RISC-V feature choices.
- Feat->xnum
- The number of x registers.
- Feat->xlen
- The XLEN parameter [ISA:1.3].
- Feat-little-endianp
- Check if the features indicate little endian.
- Feat-big-endianp
- Check if the features indicate bit endian.
- Feat-64p
- Check if the features indicate 64 bits.
- Feat-32p
- Check if the features indicate 32 bits.
- Feat-embedp
- Check if the features indicate embedded systems.
- Feat-mp
- Check if the features indicate the M extension.
- Feat-rv64im-le
- Features for RV64IM, with little endian memory.
- Feat-rv64em-le
- Features for RV64EM, with little endian memory.
- Feat-rv32im-le
- Features for RV32IM, with little endian memory.
- Feat-rv32em-le
- Features for RV32EM, with little endian memory.
- Feat-rv64im-be
- Features for RV64IM, with big endian memory.
- Feat-rv64i-le
- Features for RV64I, with little endian memory.
- Feat-rv64i-be
- Features for RV64I, with big endian memory.
- Feat-rv64em-be
- Features for RV64EM, with big endian memory.
- Feat-rv64e-le
- Features for RV64E, with little endian memory.
- Feat-rv64e-be
- Features for RV64E, with big endian memory.
- Feat-rv32im-be
- Features for RV32IM, with big endian memory.
- Feat-rv32i-le
- Features for RV32I, with little endian memory.
- Feat-rv32i-be
- Features for RV32I, with big endian memory.
- Feat-rv32em-be
- Features for RV32EM, with big endian memory.
- Feat-rv32e-le
- Features for RV32E, with little endian memory.
- Feat-rv32e-be
- Features for RV32E, with big endian memory.