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"