rust/compiler/rustc_target
Tsukasa OI 316a79f432 Stabilize 29 RISC-V target features (riscv_ratified_v2)
This commit stabilizes RISC-V target features with following constraints:

*   Describes a ratified extension.
*   Implemented on Rust 1.88.0 or before.
    Waiting for four+ version cycles seems sufficient.
*   Does not disrupt current rustc's target feature + ABI handling.
    It excludes "E" and all floating point-arithmetic extensions.
    "Zfinx" family does not involve floating point registers but
    not stabilizing for now to avoid possible confusion between
    the "F" extension family.
*   Not vector-related (floating point and integer).
    While integer vector subsets should not cause any ABI issues
    (as they don't use ABI-dependent floating point registers),
    we need to discuss before stabilizing them.
*   Supported by the lowest LLVM version supported by rustc (LLVM 20).

List of target features to be stabilized:

1.  "b"
2.  "za64rs"   (no-RT)
3.  "za128rs"  (no-RT)
4.  "zaamo"
5.  "zabha"
6.  "zacas"
7.  "zalrsc"
8.  "zama16b"  (no-RT)
9.  "zawrs"
10. "zca"
11. "zcb"
12. "zcmop"
13. "zic64b"   (no-RT)
14. "zicbom"
15. "zicbop"   (no-RT)
16. "zicboz"
17. "ziccamoa" (no-RT)
18. "ziccif"   (no-RT)
19. "zicclsm"  (no-RT)
20. "ziccrse"  (no-RT)
21. "zicntr"
22. "zicond"
23. "zicsr"
24. "zifencei"
25. "zihintntl"
26. "zihintpause"
27. "zihpm"
28. "zimop"
29. "ztso"

Of which, 20 of them (29 minus 9 "no-RT" target features) support
runtime detection through `std::arch::is_riscv_feature_detected!()`.
2025-09-17 10:54:02 +00:00
..
src Stabilize 29 RISC-V target features (riscv_ratified_v2) 2025-09-17 10:54:02 +00:00
Cargo.toml Add --print target-spec-json-schema 2025-09-12 20:53:28 +02:00
README.md Fix outdated crate names in compiler docs 2021-04-08 11:12:14 -05:00

rustc_target contains some very low-level details that are specific to different compilation targets and so forth.

For more information about how rustc works, see the rustc dev guide.