diff options
| author | Tsukasa OI <floss_rust@irq.a4lg.com> | 2025-04-13 04:35:58 +0000 |
|---|---|---|
| committer | Amanieu d'Antras <amanieu@gmail.com> | 2025-04-16 00:56:48 +0000 |
| commit | ceaeba176072605282377c0aef2059383832bd64 (patch) | |
| tree | f08930a502dea9b92f7ce77fb2e8483161b6d0e1 /library/stdarch/crates/std_detect/src/detect | |
| parent | d5baf4da917af26c499ef9b09a716958d21cd78d (diff) | |
| download | rust-ceaeba176072605282377c0aef2059383832bd64.tar.gz rust-ceaeba176072605282377c0aef2059383832bd64.zip | |
RISC-V: Remove privileged extensions for now
Until in-kernel feature detection is implemented, runtime detection of privileged extensions is temporally removed along with features themselves since none of such privileged features are stable. Co-Authored-By: Taiki Endo <te316e89@gmail.com> Co-Authored-By: Amanieu d'Antras <amanieu@gmail.com>
Diffstat (limited to 'library/stdarch/crates/std_detect/src/detect')
3 files changed, 0 insertions, 30 deletions
diff --git a/library/stdarch/crates/std_detect/src/detect/arch/riscv.rs b/library/stdarch/crates/std_detect/src/detect/arch/riscv.rs index e9a6c96af1e..63790537f85 100644 --- a/library/stdarch/crates/std_detect/src/detect/arch/riscv.rs +++ b/library/stdarch/crates/std_detect/src/detect/arch/riscv.rs @@ -115,14 +115,6 @@ features! { /// * P: `"p"` /// * Zam: `"zam"` /// - /// Defined by Privileged Specification: - /// - /// * *Supervisor-Level ISA* (not "S" extension): `"s"` - /// * H (hypervisor): `"h"` - /// * Svnapot: `"svnapot"` - /// * Svpbmt: `"svpbmt"` - /// * Svinval: `"svinval"` - /// /// # Performance Hints /// /// The two features below define performance hints for unaligned @@ -331,22 +323,6 @@ features! { @FEATURE: #[unstable(feature = "stdarch_riscv_feature_detection", issue = "111192")] zvkt: "zvkt"; /// "Zvkt" Extension for Vector Data-Independent Execution Latency - @FEATURE: #[unstable(feature = "stdarch_riscv_feature_detection", issue = "111192")] svnapot: "svnapot"; - without cfg check: true; - /// "Svnapot" Extension for NAPOT Translation Contiguity - @FEATURE: #[unstable(feature = "stdarch_riscv_feature_detection", issue = "111192")] svpbmt: "svpbmt"; - without cfg check: true; - /// "Svpbmt" Extension for Page-Based Memory Types - @FEATURE: #[unstable(feature = "stdarch_riscv_feature_detection", issue = "111192")] svinval: "svinval"; - without cfg check: true; - /// "Svinval" Extension for Fine-Grained Address-Translation Cache Invalidation - @FEATURE: #[unstable(feature = "stdarch_riscv_feature_detection", issue = "111192")] h: "h"; - without cfg check: true; - /// "H" Extension for Hypervisor Support - - @FEATURE: #[unstable(feature = "stdarch_riscv_feature_detection", issue = "111192")] s: "s"; - without cfg check: true; - /// Supervisor-Level ISA @FEATURE: #[unstable(feature = "stdarch_riscv_feature_detection", issue = "111192")] j: "j"; without cfg check: true; /// "J" Extension for Dynamically Translated Languages diff --git a/library/stdarch/crates/std_detect/src/detect/os/linux/riscv.rs b/library/stdarch/crates/std_detect/src/detect/os/linux/riscv.rs index 5cf7b064e8e..ad4fa956b16 100644 --- a/library/stdarch/crates/std_detect/src/detect/os/linux/riscv.rs +++ b/library/stdarch/crates/std_detect/src/detect/os/linux/riscv.rs @@ -141,7 +141,6 @@ pub(crate) fn detect_features() -> cache::Initializer { enable_feature(Feature::c, bit::test(auxv.hwcap, (b'c' - b'a').into())); enable_feature(Feature::d, bit::test(auxv.hwcap, (b'd' - b'a').into())); enable_feature(Feature::f, bit::test(auxv.hwcap, (b'f' - b'a').into())); - enable_feature(Feature::h, bit::test(auxv.hwcap, (b'h' - b'a').into())); enable_feature(Feature::m, bit::test(auxv.hwcap, (b'm' - b'a').into())); let has_v = bit::test(auxv.hwcap, (b'v' - b'a').into()); let mut is_v_set = false; @@ -315,9 +314,5 @@ pub(crate) fn detect_features() -> cache::Initializer { #[cfg(target_arch = "riscv32")] enable_feature(Feature::rv32e, bit::test(auxv.hwcap, (b'e' - b'a').into())); - // FIXME: Auxvec does not show supervisor feature support, but this mode may be useful - // to detect when Rust is used to write Linux kernel modules. - // These should be more than Auxvec way to detect supervisor features. - imply_features(value) } diff --git a/library/stdarch/crates/std_detect/src/detect/os/riscv.rs b/library/stdarch/crates/std_detect/src/detect/os/riscv.rs index fc218d51ab5..97496df8938 100644 --- a/library/stdarch/crates/std_detect/src/detect/os/riscv.rs +++ b/library/stdarch/crates/std_detect/src/detect/os/riscv.rs @@ -123,7 +123,6 @@ pub(crate) fn imply_features(mut value: cache::Initializer) -> cache::Initialize imply!(c & f => zcf); imply!(zicntr | zihpm | f | zfinx | zve32x => zicsr); - imply!(s | h => zicsr); // Loop until the feature flags converge. if prev == value { |
