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

Compare with Current View Page History

« Previous Version 14 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: Opcode and State Review

Extension / featureRatified?

HW exists

(see also here)?

FPGA exists?SpikeQemuBinutilsGCCglibcnewlibLLVMOpenSBILinuxGDB
RV32I v2.1ye.g. LowFivee.g. Rocketmainlinemainlinemainlinemainlinemainlinemainlinemainlinemainlinemainline
RV64I v2.1ye.g. BeagleVe.g. Rocketmainlinemainlinemainlinemainlinemainlinemainlinemainlinemainlinemainline
Big-endian supporty

mainline

mainline





RV32E v1.9n




mainline

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







D (DP float) v2.2y

mainlinemainline







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), but needs optimization
ABIs (ILP32, ILP32E, ILP32F, ILP32D, LP64, LP64f, LP64D, LP64Q)Documented ABIs



ilp32, ilp32d, lp64, lp64dilp32, ilp32d, lp64, lp64dilp32, ilp32d, lp64, lp64d
ilp32, ilp32d, lp64, lp64dn/an/a
C (compressed) v2.0y

mainlinemainlinemainlinemainlinen/an/amainline


Q (QP float) v2.2y











Zifencei v2.0y

mainlinemainlinemainline




mainline
Zihintpause v1.0




mainline






Zicsr v2.0y

mainlinemainlinemainline




mainline
Counters v2.0n

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

mainlinemainline





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

mainlinemainline




n/a

B (bitmanip) v0.92 (Zba, Zbb, Zbc, Zbk, Zbs)n
e.g. PR for Rocket

PRdev branch





K (scalar crypto)n



PRPR





P (SIMD) v0.9.4n

mainline (but v0.9.2!)
PRPR





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

z.B. Allwinner D1

(but v0.7.1)


mainlinemainline (but v0.7.1)



mainline (Zvlsseg API not settled, FP16 ABI not settled)


Ztso v0.1n











Zam v0.1n











H (hypervisor) v0.6.1n
e.g. Rocketmainlinemainlinedev branchn/an/an/a
mainlineKVM 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/ILP64X)




dev: PLCTdev: PLCT





SV57












Zce




dev: PLCTdev: PLCT





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