You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 43 Next »

This page gives an overview of the extension and feature support in the RISC-V SW ecosystem.

Published specifications can be found here: https://riscv.org/technical/specifications/

The main repository of the ISA specifications is: https://github.com/riscv/riscv-isa-manual

Certain extensions are generated by individual TGs.

An overview of the current status of unratified extensions can be found here: Architecture Review

Extension / featureRatified?

HW exists

(see also here)?

FPGA exists?SpikeQemuBinutilsGCCglibcnewlibLLVMOpenSBIFreeBSDLinuxGDB
RV32I v2.1ye.g. LowFivee.g. Rocketmainlinemainlinemainlinemainlinemainlinemainlinemainlinemainlinenot supportedmainline
RV64I v2.1ye.g. BeagleVe.g. Rocketmainlinemainlinemainlinemainlinemainlinemainlinemainlinemainlinemainlinemainline
Big-endian supporty

mainline

mainline

not supported



RV32E v1.9n




mainline

not supported
not supportednot supported
M (Multiplication and Division) v2.0ye.g. BeagleVe.g. Rocketmainlinemainlinemainlinemainlinen/an/amainlinen/an/an/a
A (Atomic) v2.1ye.g. BeagleVe.g. Rocketmainlinemainlinemainlinemainlinen/an/amainlinemainline (atomics)mainline (atomics)mainline (atomics)
F (SP float) v2.2ye.g. BeagleVe.g. Rocketmainlinemainline



mainline



D (DP float) v2.2y

mainlinemainline



mainline



RVWMO v2.0ye.g. BeagleVe.g. Rocketmainline (emulation is seq. consistent)mainline (emulation is seq. consistent)n/an/an/an/an/amainline (barriers and locks)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, lp64qilp32, ilp32f, ilp32d, ilp32e, lp64, lp64f, lp64dilp32, ilp32d, lp64, lp64dilp32, ilp32f, ilp32d, ilp32e, lp64, lp64f, lp64dilp32, ilp32d, lp64, lp64dn/alp64, lp64dn/a
C (compressed) v2.0y
e.g. EH2mainlinemainlinemainlinemainlinen/an/amainline
mainline

Q (QP float) v2.2y



mainline


not supported



Zifencei v2.0y
e.g. EH2mainlinemainlinemainline


not supported
mainlinemainline
Zihintpause v1.0




mainline


not supported



Zicsr v2.0y
e.g. EH2mainlinemainlinemainline


not supported
mainlinemainline
Counters v2.0n

mainlinemainline
n/an/an/amainlinemainline
mainline
Machine ISA v1.11 (CSRs, ECALL, EBREAK, MRET/SRET/URET, WFI, Reset, NMIs, PMAs, PMP)y

mainlinemainline





n/an/a
Supervisor ISA v1.11 (CSRs, SFENCE.VMA, Sv32/Sv39/Sv48)y

mainlinemainline




n/a


B (bitmanip) v0.92 (Zba, Zbb, Zbc, Zbe, Zbf, Zbk, Zbp, Zbr, Zbs)n

e.g. PR for Rocket,

EH2 (Zba, Zbb, Zbc, Zbe, Zbf, Zbp, Zbr, Zbs)


Mailpatch (Zba, Zbb, Zbs, Zbp)

PRdev branch

mainline (experimental)



K (scalar crypto)n



PRPR

MC layer PR LLVM Intrinsic PR



P (SIMD) v0.9.4n

mainline (but v0.9.2!)Mailpatch (v0.9.4)PRPR

PR



V (vector) v0.10, Vector Extension Intrinsics, Vector Calling Conventionn

z.B. Allwinner D1

(but v0.7.1)


mainlinemainline (but v0.7.1)



mainline (experimental,FP16 ABI not settled)



Ztso v0.1n







not supported



Zam v0.1n







not supported



H (hypervisor) v0.6.1n
e.g. Rocket (PR)mainlinemainlinedev branchn/an/an/a
mainline
KVM patches on LKML
Zmmul v0.1 (subset of M)













J (JIT/Java)













TEE













Snavpotn












Zfinxn

staging branchstaging branchstaging branchstaging-branch

PR



Z*inx (with new ABIs: ILP32X/LP64X)




dev: PLCTdev: PLCT






Zfh








mainline



SV57













Zce




dev: PLCTdev: PLCT

dev branch



CMO / Zicmobasen












mainline...SW support has been merged into the main development branch of the corresponding SW project
staging branch...SW support lives in a staging branch and is not mainlined
PR...SW support exists in form of a pull request for mainline (in-review or waiting for ratification)
n/a...not applicable, not relevant, or not required
missing...currently no known implementation
dev:X...feature is in development by X
empty cells...unknown status (feel free to share your knowledge)

ISA extension naming conventions

E.g.: RV64I1p0M1p0A1p0F1p0D1p0 or RV32I2_M2_A2 (P extension requires underscore!)

The complete ISA extension naming convention can be found in the unpriv specification.

Extensions with prefix Z...standard user-level
Extensions with prefix X...non-standard user-level
Extensions with prefix S...standard supervisor-level
Extensions with prefix SX...non-standard supervisor-level

  • No labels