Macro std::arch::is_riscv_feature_detected
source · macro_rules! is_riscv_feature_detected { ("rv32i") => { ... }; ("zifencei") => { ... }; ("zihintpause") => { ... }; ("rv64i") => { ... }; ("m") => { ... }; ("a") => { ... }; ("zicsr") => { ... }; ("zicntr") => { ... }; ("zihpm") => { ... }; ("f") => { ... }; ("d") => { ... }; ("q") => { ... }; ("c") => { ... }; ("zfinx") => { ... }; ("zdinx") => { ... }; ("zhinx") => { ... }; ("zhinxmin") => { ... }; ("ztso") => { ... }; ("rv32e") => { ... }; ("rv128i") => { ... }; ("zfh") => { ... }; ("zfhmin") => { ... }; ("b") => { ... }; ("j") => { ... }; ("p") => { ... }; ("v") => { ... }; ("zam") => { ... }; ("s") => { ... }; ("svnapot") => { ... }; ("svpbmt") => { ... }; ("svinval") => { ... }; ("h") => { ... }; ("zba") => { ... }; ("zbb") => { ... }; ("zbc") => { ... }; ("zbs") => { ... }; ("zbkb") => { ... }; ("zbkc") => { ... }; ("zbkx") => { ... }; ("zknd") => { ... }; ("zkne") => { ... }; ("zknh") => { ... }; ("zksed") => { ... }; ("zksh") => { ... }; ("zkr") => { ... }; ("zkn") => { ... }; ("zks") => { ... }; ("zk") => { ... }; ("zkt") => { ... }; ($t:tt,) => { ... }; ($t:tt) => { ... }; }
🔬This is a nightly-only experimental API. (
stdsimd #27731)Available on RISC-V RV32 or RISC-V RV64 only.
Expand description
在运行时测试指令集在 RISC-V 平台上是否可用的宏。
RISC-V 标准定义了基本集和扩展集。 基本套件为 RV32I、RV64I、RV32E 或 RV128I。 任何 RISC-V 平台都必须支持一个基本集或者多个扩展集。
任何 RISC-V 标准指令集都可以处于批准、冻结或草案状态。 当前标准指令集的版本和状态可以从 ISA 手册 的前言部分查看。
平台可以定义和支持他们自己的带有 ISA 前缀 X 的自定义指令集。 这些集合是高度特定于平台的,应该使用它们自己的平台支持 crates 来检测。
非特权规范
支持的已批准 RISC-V 指令集如下:
- RV32I:
"rv32i" - Zifencei:
"zifencei" - Zihintpause:
"zihintpause" - RV64I:
"rv64i" - M:
"m" - A:
"a" - Zicsr:
"zicsr" - Zicntr:
"zicntr" - Zihpm:
"zihpm" - F:
"f" - D:
"d" - Q:
"q" - C:
"c"
还有一些基础和扩展标记为标准指令集,但它们处于冻结或草稿状态。 这些指令集也由这个宏保留,可以在未来的平台中检测到。
冻结的 RISC-V 指令集:
- Zfinx:
"zfinx" - Zdinx:
"zdinx" - Zhinx:
"zhinx" - Zhinxmin:
"zhinxmin" - Ztso:
"ztso"
RISC-V 指令集草案:
- RV32E:
"rv32e" - RV128I:
"rv128i" - Zfh:
"zfh" - Zfhmin:
"zfhmin" - B:
"b" - J:
"j" - P:
"p" - V:
"v" - Zam:
"zam"
由特权规范定义:
- Supervisor:
"s" - Svnapot:
"svnapot" - Svpbmt:
"svpbmt" - Svinval:
"svinval" - Hypervisor:
"h"
RISC-V 位操作 ISA 扩展
本文档定义了以下扩展:
- Zba:
"zba" - Zbb:
"zbb" - Zbc:
"zbc" - Zbs:
"zbs"
RISC-V 加密扩展
这些扩展在第一卷,标量和熵源说明中定义:
- Zbkb:
"zbkb" - Zbkc:
"zbkc" - Zbkx:
"zbkx" - Zknd:
"zknd" - Zkne:
"zkne" - Zknh:
"zknh" - Zksed:
"zksed" - Zksh:
"zksh" - Zkr:
"zkr" - Zkn:
"zkn" - Zks:
"zks" - Zk:
"zk" - Zkt:
"zkt"