std_detect: RISC-V platform guide documentation #145417
Open
+114
−83
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is practically a revert of a revert, making the commit e907456b2e10622ccd854a3bba8d02ce170b5dbb on
stdarch
come around again with minor fixes, enhancements and adjustments.An excerpt from the original commit message follows:
Since there's no architectural feature detection on RISC-V (unlike
CPUID
on x86 architectures and some system registers on Arm/AArch64), runtime feature detection entirely depends on the platform-specific facility.As a result, availability of each feature heavily depends on the platform and its version.
To help users make a decision for feature checking on a RISC-V system, this commit adds a platform guide with minimum supported platform versions.
History
This is originally rust-lang/stdarch#1779 which is approved and an attempt to merge this was performed... but blocked by HTML errors (generated by rustdoc) later fixed by #140434 (cf. #140389; so at that time I reverted the original PR as rust-lang/stdarch#1792 and non-table parts are partially restored as rust-lang/stdarch#1797).
Since #140434 is merged now and the
std_detect
crate is now under the main Rust repository, I'm going to fully restore the intent of rust-lang/stdarch#1779 (to provide useful yet complex information forstd::arch::is_riscv_feature_detected!
users).Changes from the Original (rust-lang/stdarch#1779)
Zcb
extension stdarch#1789 (remove footnote from the Zcb extension).linux-riscv
ML brought the conclusion that the Zicntr extension is included in the base IMA behavior.Note (CI)
I don't have full knowledge about Rust's CI process and we may need to wait for the next beta bump.
r? @Amanieu
@rustbot label +O-riscv