Rollup merge of #116943 - heiher:target-features, r=wesleywiser
Add target features for LoongArch
This commit is contained in:
commit
84f0befac5
@ -342,6 +342,19 @@ const CSKY_ALLOWED_FEATURES: &[(&str, Option<Symbol>)] = &[
|
||||
("hard-float-abi", Some(sym::csky_target_feature)),
|
||||
// tidy-alphabetical-end
|
||||
];
|
||||
|
||||
const LOONGARCH_ALLOWED_FEATURES: &[(&str, Option<Symbol>)] = &[
|
||||
// tidy-alphabetical-start
|
||||
("d", Some(sym::loongarch_target_feature)),
|
||||
("f", Some(sym::loongarch_target_feature)),
|
||||
("lasx", Some(sym::loongarch_target_feature)),
|
||||
("lbt", Some(sym::loongarch_target_feature)),
|
||||
("lsx", Some(sym::loongarch_target_feature)),
|
||||
("lvz", Some(sym::loongarch_target_feature)),
|
||||
("ual", Some(sym::loongarch_target_feature)),
|
||||
// tidy-alphabetical-end
|
||||
];
|
||||
|
||||
/// When rustdoc is running, provide a list of all known features so that all their respective
|
||||
/// primitives may be documented.
|
||||
///
|
||||
@ -358,6 +371,7 @@ pub fn all_known_features() -> impl Iterator<Item = (&'static str, Option<Symbol
|
||||
.chain(WASM_ALLOWED_FEATURES.iter())
|
||||
.chain(BPF_ALLOWED_FEATURES.iter())
|
||||
.chain(CSKY_ALLOWED_FEATURES)
|
||||
.chain(LOONGARCH_ALLOWED_FEATURES)
|
||||
.cloned()
|
||||
}
|
||||
|
||||
@ -373,6 +387,7 @@ pub fn supported_target_features(sess: &Session) -> &'static [(&'static str, Opt
|
||||
"wasm32" | "wasm64" => WASM_ALLOWED_FEATURES,
|
||||
"bpf" => BPF_ALLOWED_FEATURES,
|
||||
"csky" => CSKY_ALLOWED_FEATURES,
|
||||
"loongarch64" => LOONGARCH_ALLOWED_FEATURES,
|
||||
_ => &[],
|
||||
}
|
||||
}
|
||||
@ -445,6 +460,7 @@ pub fn from_target_feature(
|
||||
Some(sym::bpf_target_feature) => rust_features.bpf_target_feature,
|
||||
Some(sym::aarch64_ver_target_feature) => rust_features.aarch64_ver_target_feature,
|
||||
Some(sym::csky_target_feature) => rust_features.csky_target_feature,
|
||||
Some(sym::loongarch_target_feature) => rust_features.loongarch_target_feature,
|
||||
Some(name) => bug!("unknown target feature gate {}", name),
|
||||
None => true,
|
||||
};
|
||||
|
@ -288,6 +288,7 @@ declare_features! (
|
||||
(unstable, csky_target_feature, "1.73.0", Some(44839), None),
|
||||
(unstable, ermsb_target_feature, "1.49.0", Some(44839), None),
|
||||
(unstable, hexagon_target_feature, "1.27.0", Some(44839), None),
|
||||
(unstable, loongarch_target_feature, "1.73.0", Some(44839), None),
|
||||
(unstable, mips_target_feature, "1.27.0", Some(44839), None),
|
||||
(unstable, powerpc_target_feature, "1.27.0", Some(44839), None),
|
||||
(unstable, riscv_target_feature, "1.45.0", Some(44839), None),
|
||||
|
@ -957,6 +957,7 @@ symbols! {
|
||||
log_syntax,
|
||||
logf32,
|
||||
logf64,
|
||||
loongarch_target_feature,
|
||||
loop_break_value,
|
||||
lt,
|
||||
macro_at_most_once_rep,
|
||||
|
@ -30,6 +30,7 @@
|
||||
// revisions: loongarch64
|
||||
//[loongarch64] compile-flags: --target loongarch64-unknown-linux-gnu
|
||||
//[loongarch64] needs-llvm-components: loongarch
|
||||
//[loongarch64] min-llvm-version: 17
|
||||
// revisions: wasm
|
||||
//[wasm] compile-flags: --target wasm32-unknown-unknown
|
||||
//[wasm] needs-llvm-components: webassembly
|
||||
|
@ -18,6 +18,7 @@
|
||||
// gate-test-bpf_target_feature
|
||||
// gate-test-aarch64_ver_target_feature
|
||||
// gate-test-csky_target_feature
|
||||
// gate-test-loongarch_target_feature
|
||||
|
||||
#[target_feature(enable = "avx512bw")]
|
||||
//~^ ERROR: currently unstable
|
||||
|
@ -1,5 +1,5 @@
|
||||
error[E0658]: the target feature `avx512bw` is currently unstable
|
||||
--> $DIR/gate.rs:22:18
|
||||
--> $DIR/gate.rs:23:18
|
||||
|
|
||||
LL | #[target_feature(enable = "avx512bw")]
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
|
Loading…
x
Reference in New Issue
Block a user