mirror of
https://github.com/rust-lang/rust.git
synced 2025-05-14 02:49:40 +00:00
![]() rustc_target: Adjust RISC-V feature implication This commit adjusts feature implication of the RISC-V ISA for better feature detection from the user perspective. The main rule is: * If the feature `A` is a functional superset of the feature `B` (`A ⊃ B`), `A` is to imply `B`, even if this implication is not on the manual. Such implications (not directly written in the ISA manual) are commented as `A ⊃ B` which means "`A` is a (functional) superset of `B`". 1. `Zbc` → `Zbkc` (add as a superset) The `Zbkc` extension is a subset of the `Zbc` extension (`Zbc` minus `clmulr` instruction). 2. `Zkr` → (nothing) (remove dependency to `Zicsr`) Implication to the `Zicsr` extension is removed because (although nearly harmless), the `Zkr` extension (or the `seed` CSR section) defines its own subset of the `Zicsr` extension (guaranteed to work against the `seed` CSR which needs read/write access). 3. `Zvbb` → `Zvkb` (comment as a superset) This implication was already there but not denoted as a functional superset. This commit adds the comment. 4. `Zvfh` → `Zvfhmin` (comment as a superset) This is similar to the case above (`Zvbb` → `Zvkb`). 5. `Zvfh` → `Zve32f` (add implication per the ISA specification) This dependency is on the ISA manual but was missing (due to the fact that `Zvfh` indirectly implies `Zve32f` on the current implementation through `Zvfh` → `Zvfhmin` which is a functional relation). This commit ensures that this is *also* ISA-compliant in the source code level (there's no functional changes though). 6. `Zvknhb` → `Zvknha` (add as a superset) The `Zvknhb` extension (SHA-256 / SHA-512) is a functional superset of the `Zvknha` extension (SHA-256 only). |
||
---|---|---|
.. | ||
src | ||
Cargo.toml | ||
README.md |
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.