...
The table below lists the status of the extensions and features of above listed published extensions.
Ratified? | Spike | Qemu | Binutils | GCC | glibc | newlib | LLVM | OpenSBI | FreeBSD | Linux | GDB |
---|
RV32I |
---|
y | upstream | upstream | upstream | upstream | upstream | upstream | upstream | upstream | not supported | upstream | upstream |
---|
RV64I |
---|
y | upstream | upstream | upstream | upstream | upstream | upstream | upstream | upstream | upstream | upstream | upstream |
Big-endian support |
---|
y | upstream |
|
| upstream |
|
| not supported |
|
|
| upstream |
M (Multiplication and Division) v2.0 |
---|
y | upstream | upstream | upstream | upstream | n/a | n/a | upstream | n/a | n/a | n/a | upstream |
---|
A (Atomic) |
---|
y | upstream | upstream | upstream | upstream | n/a | n/a | upstream | upstream (atomics) | upstream (atomics) | upstream (atomics) | upstream |
---|
F (SP float) |
---|
y | upstream | upstream |
|
|
|
| upstream |
|
|
| upstream |
---|
D (DP float) |
---|
y | upstream | upstream |
|
|
|
| upstream |
|
|
| upstream |
Q (QP float) |
---|
y |
|
| upstream |
|
|
| not supported |
|
|
| upstream |
RVWMO |
---|
y | 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 |
Extension | Ratified? | Spike | Qemu | Binutils | GCC | glibc | newlib | LLVM | OpenSBI | FreeBSD | Linux | GDB |
---|
RV32I | y | upstream | upstream | upstream | upstream | upstream | upstream | upstream | upstream | not supported | upstream | RV64I | y | upstream | upstream | upstream | upstream | upstream | upstream | upstream | upstream | upstream | upstream | Big-endian support | y | upstream | upstream | not supported | M (Multiplication and DivisionC (compressed) v2.0 | y | upstream | upstream | upstream | upstream | n/a | n/a | upstream | n/a | n/a | n/a |
| upstream |
|
|
---|
Zifencei v2.0 | A (Atomic) | y | upstream | upstream | upstream | upstream | n/a |
|
|
| n/anot supported |
| upstream | upstream | (atomics)upstream (atomics) | upstream (atomics) | F (SP float) | y | upstream | upstream | upstream | D (DP float) | y | upstream | upstream | upstream | Q (QP float) | y |
|
---|
Unpublished ratified extensions
Extension | Spike | Qemu | Binutils | GCC | glibc | newlib | LLVM | OpenSBI | FreeBSD | Linux | GDB |
---|
Zihintpause |
|
| upstream |
|
|
| not supported |
|
|
|
|
---|
Specifications that are at least frozen
Extension | Ratified? | Spike | Qemu | Binutils | GCC | glibc | newlib | LLVM | OpenSBI | FreeBSD | Linux | GDB | RVWMO | y | 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 |
---|
ABIs (ILP32, ILP32E, ILP32F, ILP32D, LP64, LP64f, LP64D, LP64Q) |
|
|
| 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 | lp64, lp64d | n/a | C (compressed) v2.0 | y | upstream | upstream | upstream | upstream | n/a | n/a | upstream | upstream | Zifencei v2.0 | y | upstream | upstream | upstream | not supported | upstream | upstream | Zihintpause v1.0 | upstream | not supported |
|
---|
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 |
|
|
|
---|
B (bitmanip) v0.92 (Zba, Zbb, Zbc, Zbe, Zbf, Zbk, Zbp, Zbr, Zbs) | n |
| Mailpatch (Zba, Zbb, Zbs, Zbp) | PR | dev branch |
|
| upstream (experimental) |
|
|
|
|
---|
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 |
|
| 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 |
|
|
|
|
---|
Z*inx (with new ABIs: ILP32X/LP64X) |
|
|
| dev: PLCT | dev: PLCT |
|
|
|
|
|
|
|
---|
Zfh |
|
|
|
|
|
|
| upstream |
|
|
|
|
---|
SV57 |
|
|
|
|
|
|
|
|
|
|
|
|
---|
Zce |
|
|
| dev: PLCT | dev: PLCT |
|
| dev branch |
|
|
|
|
---|
CMO / Zicmobase | n |
|
|
|
|
|
|
|
|
|
|
|
---|
...