RISC-V International
...
...
Extension | Spike | Qemu | Binutils | GCC | glibc | newlib | LLVM | OpenSBI | FreeBSD | Linux kernel | GDB |
---|---|---|---|---|---|---|---|---|---|---|---|
RV32I | upstream | upstream | upstream | upstream | upstream | upstream | upstream | upstream | not supported | upstream | upstream |
RV64I | upstream | upstream | upstream | upstream | upstream | upstream | upstream | upstream | upstream | upstream | upstream |
Big-endian support | upstream | upstream | not supported | not supported | upstream | ||||||
M (Multiplication and Division) v2.0 | upstream | upstream | upstream | upstream | n/a | n/a | upstream | n/a | n/a | n/a | upstream |
A (Atomic) | upstream | upstream | upstream | upstream | n/a | n/a | upstream | upstream (atomics) | upstream (atomics) | upstream (atomics) | upstream |
F (SP float) | upstream | upstream | upstream | upstream | upstream | upstream | upstream | upstream | upstream | upstream | |
D (DP float) | upstream | upstream | upstream | upstream | upstream | upstream | upstream | upstream | upstream | upstream | |
Q (QP float) | upstream | not supported | not supported | upstream | |||||||
RVWMO | upstream (emulation is seq. consistent) | upstream (emulation is seq. consistent) | n/a | n/a | n/a | n/a | n/a | upstream (barriers and locks) | upstream (barriers and locks) | upstream (barriers and locks), but needs optimization | upstream |
C (compressed) v2.0 | upstream | upstream | upstream | upstream | n/a | n/a | upstream | upstream | Zifencei v2.0upstream | ||
Zifencei | upstream | upstream | upstream | upstream | not supported | upstream | upstream | ||||
Machine ISA: CSRs | upstream | upstream | upstream | n/a | |||||||
Machine ISA: ECALL, EBREAK | upstream | upstream | upstream | upstream | |||||||
Machine ISA: MRET/SRET/URET | upstream | upstream | n/a | ||||||||
Machine ISA: WFI | upstream | upstream |
...
GDB
upstream | upstream | ||||||||||
Machine ISA: PMP | n/a | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Supervisor ISA: CSRs | upstream | upstream | upstream | ||||||||
Supervisor ISA: SFENCE.VMA | upstream | upstream | upstream | upstream | |||||||
Supervisor ISA: Sv32, Sv39, Sv48 | upstream | upstream | Sv39 upstream | upstream (sv39) |
...
Extensions and features in the table below are either frozen or ready-for-ratificationratified, but not published in a consolidated RISC-V ISA specification document.
Extension | Spike | Qemu | Binutils | GCC | glibc | newlib | LLVM | OpenSBI | FreeBSD | Linux kernel | GDB |
---|
Zihintpause | upstream | Mailpatch | upstream | upstream | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Vector: Zve32x, Zve32f, Zve64x, Zve64f, Zve64d, |
Zvl*b, V | upstream | upstream | upstream | rvv-next branch | upstream |
---|
upstream (experimental,FP16 ABI not settled) |
not supported | ||
Bitmanip: Zba, Zbb, Zbc |
---|
, |
---|
Zbs |
---|
upstream | upstream | upstream |
PR | dev branch | upstream | upstream (experimental) | not used | ||||
FP in INT regs: Zfinx |
---|
, Zdinx, Zhinx, Zhinxmin | PR | upstream | upstream (Zfinx, Zdinx, Zhinx, Zhinxmin and unratified Zqinx) | MC upstream | not supported |
---|
Half Width FP: Zfh, Zfhmin | upstream | upstream | upstream | upstream | not supported | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
ePMP: Smepmp | upstream | upstream(but 0.9.3) | upstream | PR | not supported | ||||||
Scalar crypto: Zbkb, Zbkc, Zbkx, Zknd, Zkne, Zknh, Zksed, Zksh, Zkr, Zkt, Zkn, Zks, Zk | upstream | upstream | upstream | upstream(only minimal support and wait c-api merge) | upstream | not used | |||||
Priv 1.12: Sm1-12, Ss1-12, Sv57 | upstream | upstream | not supported | ||||||||
CMO base: Zicbom, Zicbop, Zicboz | upstream | Mailpatch | upstream | PR,PR | not supported | dma-ops upstream (6.0) | |||||
Hypervisor: (H) | upstream | upstream | upstream | n/a | n/a | n/a | upstream | not supported | upstream (5.16) | ||
State Enable: Smstateen | upstream | Mailpatch | upstream | not supported | |||||||
Time compare: Sstc | Mailpatch | upstream | not supported | ||||||||
Counter overflow and filtering: Sscofmpf | PR | Mailpatch | upstream | not supported | |||||||
Fast TLP invalidation: Svinval | upstream | upstream | upstream | not supported | |||||||
NAPOT pages: Svnapot | upstream | upstream | upstream | not supported | |||||||
Page-based memory types: Svpbmt | upstream | upstream | upstream | not supported | upstream (5.19) | ||||||
Core-local Interrupt Controller: CLINT | upstream | upstream | upstream | upstream (clocksource) | |||||||
Zmmul | upstream | upstream | upstream | Mailpatch | patch | n/a |
Extensions and features in the table below are either frozen or ready-for-ratification.
Extension | Spike | Qemu | Binutils | GCC | glibc | newlib | LLVM | OpenSBI | FreeBSD | Linux kernel | GDB |
---|---|---|---|---|---|---|---|---|---|---|---|
Code Size Reduction: Zca, Zcf, Zcd, Zcb, Zcmp, Zcmt | dev branch | dev branch | dev branch | dev branch | dev branch | not supported |
Note, that this section only lists specifications that are planned to be released in the near future, but are not frozen yet.
Extension | Spike | Qemu | Binutils | GCC | glibc | newlib | LLVM | OpenSBI | FreeBSD | Linux kernel | GDB |
---|---|---|---|---|---|---|---|---|---|---|---|
psABI: Standard ABIs: ILP32, ILP32F, ILP32D, LP64, LP64F, LP64D, LP64Q | n/a | n/a | upstream | ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d | ilp32, ilp32d, lp64, lp64d | ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d | ilp32, ilp32d, lp64, lp64d | n/a | lp64, lp64d | n/a |
...
Extension | Spike | Qemu | Binutils | GCC | glibc | newlib | LLVM | OpenSBI | FreeBSD | Linux kernel | GDB |
---|---|---|---|---|---|---|---|---|---|---|---|
Embedded ABI: ILP32E, LP64E | n/a | n/a | upstream | upstream | not supported | upstream | not supported | n/a | n/a | n/a | not supported |
This is a temporary subsection that will disappear soon.
Packed SIMD: Zpn, Zpsfoperand, Zbpbo, P | upstream( | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Extension | Ratified? | Spike | Qemu | Binutils | GCC | glibc | newlib | LLVM | OpenSBI | FreeBSD | Linux | GDB | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Zicsr v2.0 | y | upstream | upstream | upstream | not supported | upstream | upstream | Counters v2.0 | n | upstream | upstream | n/a | n/a | n/a | upstream | upstream | upstream | Machine ISA v1.11 (CSRs, ECALL, EBREAK, MRET/SRET/URET, WFI, Reset, NMIs, PMAs, PMP) | y | upstream | upstream | n/a | n/a | Supervisor ISA v1.11 (CSRs, SFENCE.VMA, Sv32/Sv39/Sv48) | y | upstream | upstream | n/a | K (scalar crypto) | n | PR | PR | MC layer PR LLVM Intrinsic PR | P (SIMD) v0.9.4 | n | upstream (but v0.9.2 !) | Mailpatch (v0.9.4) | PR | PR | V (vector) v0.10, Vector Extension Intrinsics, Vector Calling Convention | n | upstream | upstream (but v0.7.1) | upstream (experimental,FP16 ABI not settled) | Ztso v0.1 | n | not supported | Zam v0.1 | n | not supported | H (hypervisor) v0.6.1 | n | upstream | upstream | dev branch | n/a | n/a | n/a | upstream | 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 | Zfh | upstream | SV57 | Zce | dev: PLCT | dev: PLCT | dev branch | CMO / Zicmobase | nPR | not supported | ||||||||
Pointer masking: Zjpm | not supported | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Resumable Non-maskable Interrupts: Smrnmi | dev branch | not supported | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Advanced Core-local Interrupt Controller: ACLINT | upstream | not supported | Patchwork |