Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Remove Zjpm work since the latest Zjpm proposal is private and significantly changed

...

Overview

Table description

...

ExtensionSpikeQemuBinutilsGCCglibcnewlibLLVMOpenSBIFreeBSDLinux kernel

GDB

RV32Iupstreamupstreamupstreamupstreamupstreamupstreamupstreamupstreamnot supportedupstreamupstream
RV64Iupstreamupstreamupstreamupstreamupstreamupstreamupstreamupstreamupstreamupstreamupstream
Big-endian supportupstream

upstream

not supported
not supported
upstream
M (Multiplication and Division)upstreamupstreamupstreamupstreamn/an/aupstreamn/an/an/aupstream
A (Atomic)upstreamupstreamupstreamupstreamn/an/aupstreamupstream (atomics)upstream (atomics)upstream (atomics)upstream
F (SP float)upstreamupstreamupstreamupstreamupstreamupstreamupstream
upstreamupstreamupstream
D (DP float)upstreamupstreamupstreamupstreamupstreamupstreamupstream
upstreamupstreamupstream
Q (QP float)

upstream


not supported
not supported
upstream
RVWMOupstream (emulation is seq. consistent)upstream (emulation is seq. consistent)n/an/an/an/an/aupstream (barriers and locks)upstream (barriers and locks)upstream (barriers and locks), but needs optimizationupstream
C (compressed)upstreamupstreamupstreamupstreamn/an/aupstream
upstreamupstream
Zifenceiupstreamupstreamupstreamupstream

not supported
upstreamupstream
Machine ISA: CSRsupstreamupstreamupstream




n/a

Machine ISA: ECALL, EBREAKupstreamupstream





upstreamupstream
Machine ISA: MRET/SRET/URETupstreamupstream





n/a

Machine ISA: WFIupstreamupstream





upstreamupstream
Machine ISA: PMP







n/a

Supervisor ISA: CSRsupstreamupstream





upstream

Supervisor ISA: SFENCE.VMAupstreamupstream





upstreamupstream
Supervisor ISA: Sv32, Sv39, Sv48

...

upstream
ExtensionSpikeQemuBinutilsGCCglibcnewlibLLVMOpenSBIFreeBSDLinux

GDB

Zihintpauseupstreamnot supported

...

upstream





Sv39 upstreamupstream (sv39)

Unpublished ratified extensions

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.

ExtensionSpikeQemuBinutilsGCCglibcnewlibLLVMOpenSBIFreeBSDLinux kernel

GDB

ZihintpauseupstreamMailpatchupstream


upstream



Vector:
 Zvamo, Zvlsseg, Zvediv, Zvqmac,
Zve32x, Zve32f, Zve64x, Zve64f, Zve64d,
Zvfh, Zve
Zvl*b, Vupstream

upstream

n

upstream
upstream (but v0.7.1)
rvv-next branch

upstreamupstream (experimental,FP16 ABI not settled)not supported

Bitmanip: Zba, Zbb, Zbc, Zbs
n
upstreamupstream

upstream

Mailpatch (Zba, Zbb, Zbs, Zbp)

PRdev branch
upstreamupstream (experimental)not used

FP in INT regs: Zfinx
staging branchstaging branchstaging branchstaging-branch
, Zdinx, Zhinx, ZhinxminPR
upstreamupstream
(Zfinx, Zdinx, Zhinx, Zhinxmin and unratified Zqinx)

Mailpatch
(Zfinx,Zdinx)




MC upstream
not supported
PR


Half Width FP: Zfh, Zfhminupstreamupstreamupstream


upstream
not supported

ePMP: Smepmpupstreamupstream(but 0.9.3)upstream


PR
not supported

Scalar crypto:
 Zbkb
Zbkb, Zbkc, Zbkx, Zknd, Zkne, Zknh, Zksed, Zksh, Zkr, Zkt, Zkn, Zks,
Zkt, Zk, ZkrPRPRMC layer PR LLVM Intrinsic PR
Zkupstreamupstreamupstreamupstream(only minimal support and wait c-api merge)



upstream


not used

Priv 1.12: 
Sm1-12, Ss1-12, Sv57

upstreamupstream




not supported

CMO base: Zicbom, Zicbop, ZicbozupstreamMailpatchupstream


PR,PR
not supporteddma-ops upstream (6.0)
Hypervisor: (H)upstreamupstream
dev branch
upstreamn/an/an/a
upstream
KVM patches on LKML
not supportedupstream (5.16)
State Enable: SmstateenupstreamMailpatchupstream




not supported

Time compare: Sstc
Mailpatchupstream




not supported

Counter overflow and filtering: SscofmpfPRMailpatchupstream




not supported

Fast TLP invalidation: Svinvalupstreamupstreamupstream




not supported

NAPOT pages: Svnapotupstreamupstreamupstream




not supported

Page-based memory types: Svpbmt
Code Size Reduction: Zcee
upstreamupstreamupstream




not supportedupstream (5.19)
Packed SIMD:  Zpn, Zpsfoperand, ZprvsfextraResumable Non-maskable Interrupts: Smrnmi

Core-local Interrupt Controller: CLINTupstreamupstream





upstreamupstream (clocksource)
ZmmulupstreamupstreamupstreamMailpatch

patch
n/a

Specifications that are at least frozen

Extensions and features in the table below are either frozen or ready-for-ratification.

Pointer masking: Zjpm
ExtensionSpikeQemuBinutilsGCCglibcnewlibLLVMOpenSBIFreeBSDLinux kernel

GDB

Code Size Reduction: Zca, Zcf, Zcd, Zcb, Zcmp, Zcmtdev branchdev branchdev branchdev branch

dev branch
not supportedAdvanced Core-local Interrupt Controller: ACLINTZmmul

Specifications that are at least stable

Note, that this section only lists specifications that are planned to be released in the near future, but are not frozen yet.

ExtensionSpikeQemuBinutilsGCCglibcnewlibLLVMOpenSBIFreeBSDLinux kernel

GDB

psABI: Standard ABIs: ILP32, ILP32F, ILP32D, LP64, LP64F, LP64D, LP64Qn/an/aupstreamilp32, ilp32f, ilp32d, lp64, lp64f, lp64dilp32, ilp32d, lp64, lp64dilp32, ilp32f, ilp32d, lp64, lp64f, lp64dilp32, ilp32d, lp64, lp64dn/alp64, lp64dn/a

...

ExtensionSpikeQemuBinutilsGCCglibcnewlibLLVMOpenSBIFreeBSDLinux kernel

GDB

Embedded ABI: ILP32E, LP64En/an/aupstreamupstreamnot supportedupstreamnot supportedn/an/an/anot supported
Packed SIMD:  Zpn, Zpsfoperand, Zbpbo, Pupstream(

v0.9.2)

Mailpatch

PR (2.36-based)

dev branch (master-based)

PR



not supported

Pointer masking: Zjpm







not supported

Resumable Non-maskable Interrupts: Smrnmi

dev branch




not supported

Advanced Core-local Interrupt Controller: ACLINT
upstream





not supportedPatchwork

Gaps

  • Vector Extension Intrinsics (specification exists, but not frozen)
  • Vector Calling Convention (specification exists, but not frozen)
  • Scalar Crypto Intrinsics