RISC-V International
...
Extension / feature | Ratified? | HW exists (see also here)? | FPGA exists? | Spike | Qemu | Binutils | GCC | glibc | newlib | LLVM | OpenSBI | Linux | GDB |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
RV32I v2.1 | y | e.g. LowFive | e.g. Rocket | mainline | mainline | mainline | mainline | mainline | mainline | mainline | mainline | mainline | |
RV64I v2.1 | y | e.g. BeagleV | e.g. Rocket | mainline | mainline | mainline | mainline | mainline | mainline | mainline | mainline | mainline | |
Big-endian support | y | mainline | mainline | ||||||||||
RV32E v1.9 | n | mainline | not supported | not supported | |||||||||
M (Multiplication and Division) v2.0 | y | e.g. BeagleV | e.g. Rocket | mainline | mainline | mainline | mainline | n/a | n/a | mainline | n/a | n/a | |
A (Atomic) v2.1 | y | e.g. BeagleV | e.g. Rocket | mainline | mainline | mainline | mainline | n/a | n/a | mainline | mainline (atomics) | mainline (atomics) | |
F (SP float) v2.2 | y | e.g. BeagleV | e.g. Rocket | mainline | mainline | ||||||||
D (DP float) v2.2 | y | mainline | mainline | ||||||||||
RVWMO v2.0 | y | e.g. BeagleV | e.g. Rocket | mainline (emulation is seq. consistent) | mainline (emulation is seq. consistent) | n/a | n/a | n/a | n/a | n/a | mainline (barriers and locks) | mainline (barriers and locks), but needs optimization | |
ABIs (ILP32, ILP32E, ILP32F, ILP32D, LP64, LP64f, LP64D, LP64Q) | Documented ABIs | ilp32, ilp32f, ilp32d, ilp32q, ilp32e, lp64, lp64f, lp64d, lp64q | ilp32, ilp32f, ilp32d, ilp32e, lp64, lp64f, lp64d | ilp32, ilp32d, lp64, lp64d | ilp32, ilp32f, ilp32d, ilp32e, lp64, lp64f, lp64d | ilp32, ilp32d, lp64, lp64d | n/a | n/a | |||||
C (compressed) v2.0 | y | e.g. EH2 | mainline | mainline | mainline | mainline | n/a | n/a | mainline | ||||
Q (QP float) v2.2 | y | mainline | |||||||||||
Zifencei v2.0 | y | e.g. EH2 | mainline | mainline | mainline | mainline | |||||||
Zihintpause v1.0 | mainline | ||||||||||||
Zicsr v2.0 | y | e.g. EH2 | mainline | mainline | mainline | mainline | |||||||
Counters v2.0 | n | mainline | mainline | n/a | n/a | n/a | mainline | mainline | |||||
Machine ISA v1.11 (CSRs, ECALL, EBREAK, MRET/SRET/URET, WFI, Reset, NMIs, PMAs, PMP) | y | mainline | mainline | n/a | |||||||||
Supervisor ISA v1.11 (CSRs, SFENCE.VMA, Sv32/Sv39/Sv48) | y | mainline | mainline | n/a | |||||||||
B (bitmanip) v0.92 (Zba, Zbb, Zbc, Zbe, Zbf, Zbk, Zbp, Zbr, Zbs) | n | e.g. PR for Rocket, | PR | dev branch | mainline (experimental) | ||||||||
K (scalar crypto) | n | PR | PR | ||||||||||
P (SIMD) v0.9.4 | n | mainline (but v0.9.2!) | PR | PR | |||||||||
V (vector) v0.10, Vector Extension Intrinsics, Vector Calling Convention | n | z.B. Allwinner D1 (but v0.7.1) | mainline | mainline (but v0.7.1) | mainline (experimental, Zvlsseg API not settled, FP16 ABI not settled) | ||||||||
Ztso v0.1 | n | ||||||||||||
Zam v0.1 | n | ||||||||||||
H (hypervisor) v0.6.1 | n | e.g. Rocket | mainline | mainline | dev branch | n/a | n/a | n/a | mainline | KVM patches on LKML | |||
Zmmul v0.1 (subset of M) | |||||||||||||
J (JIT/Java) | |||||||||||||
TEE | |||||||||||||
Snavpot | n | ||||||||||||
Zfinx | n | staging branch | staging branch | staging branch | staging-branch | PR | |||||||
Z*inx (with new ABIs: ILP32X/LP64X) | dev: PLCT | dev: PLCT | |||||||||||
Zfh | mainline | ||||||||||||
SV57 | |||||||||||||
Zce | dev: PLCT | dev: PLCT | |||||||||||
CMO / Zicmobase | n |
...