Rollup merge of #134814 - sayantn:keylocker, r=oli-obk
Add `kl` and `widekl` target features, and the feature gate This is an effort towards #134813. This PR adds the target-features and the feature gate to `rustc` <!-- ```@rustbot``` label O-x86_64 O-x86_32 A-target-feature r? compiler -->
This commit is contained in:
commit
e4eedb5488
6 changed files with 26 additions and 0 deletions
|
@ -529,6 +529,8 @@ declare_features! (
|
|||
(unstable, inline_const_pat, "1.58.0", Some(76001)),
|
||||
/// Allows using `pointer` and `reference` in intra-doc links
|
||||
(unstable, intra_doc_pointers, "1.51.0", Some(80896)),
|
||||
// Allows using the `kl` and `widekl` target features and the associated intrinsics
|
||||
(unstable, keylocker_x86, "CURRENT_RUSTC_VERSION", Some(134813)),
|
||||
// Allows setting the threshold for the `large_assignments` lint.
|
||||
(unstable, large_assignments, "1.52.0", Some(83518)),
|
||||
/// Allow to have type alias types for inter-crate use.
|
||||
|
|
|
@ -1148,6 +1148,7 @@ symbols! {
|
|||
iterator,
|
||||
iterator_collect_fn,
|
||||
kcfi,
|
||||
keylocker_x86,
|
||||
keyword,
|
||||
kind,
|
||||
kreg,
|
||||
|
|
|
@ -409,6 +409,7 @@ const X86_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
|
|||
("fma", Stable, &["avx"]),
|
||||
("fxsr", Stable, &[]),
|
||||
("gfni", Unstable(sym::avx512_target_feature), &["sse2"]),
|
||||
("kl", Unstable(sym::keylocker_x86), &["sse2"]),
|
||||
("lahfsahf", Unstable(sym::lahfsahf_target_feature), &[]),
|
||||
("lzcnt", Stable, &[]),
|
||||
("movbe", Stable, &[]),
|
||||
|
@ -435,6 +436,7 @@ const X86_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
|
|||
("tbm", Unstable(sym::tbm_target_feature), &[]),
|
||||
("vaes", Unstable(sym::avx512_target_feature), &["avx2", "aes"]),
|
||||
("vpclmulqdq", Unstable(sym::avx512_target_feature), &["avx", "pclmulqdq"]),
|
||||
("widekl", Unstable(sym::keylocker_x86), &["kl"]),
|
||||
("x87", Unstable(sym::x87_target_feature), &[]),
|
||||
("xop", Unstable(sym::xop_target_feature), &[/*"fma4", */ "avx", "sse4a"]),
|
||||
("xsave", Stable, &[]),
|
||||
|
|
|
@ -127,6 +127,7 @@ LL | cfg!(target_feature = "_UNEXPECTED_VALUE");
|
|||
`isa-68881`
|
||||
`isa-68882`
|
||||
`jsconv`
|
||||
`kl`
|
||||
`lahfsahf`
|
||||
`lasx`
|
||||
`lbt`
|
||||
|
@ -271,6 +272,7 @@ LL | cfg!(target_feature = "_UNEXPECTED_VALUE");
|
|||
`vsx`
|
||||
`wfxt`
|
||||
`wide-arithmetic`
|
||||
`widekl`
|
||||
`x87`
|
||||
`xop`
|
||||
`xsave`
|
||||
|
|
6
tests/ui/feature-gates/feature-gate-keylocker_x86.rs
Normal file
6
tests/ui/feature-gates/feature-gate-keylocker_x86.rs
Normal file
|
@ -0,0 +1,6 @@
|
|||
//@ only-x86_64
|
||||
#[target_feature(enable = "kl")]
|
||||
//~^ ERROR: currently unstable
|
||||
unsafe fn foo() {}
|
||||
|
||||
fn main() {}
|
13
tests/ui/feature-gates/feature-gate-keylocker_x86.stderr
Normal file
13
tests/ui/feature-gates/feature-gate-keylocker_x86.stderr
Normal file
|
@ -0,0 +1,13 @@
|
|||
error[E0658]: the target feature `kl` is currently unstable
|
||||
--> $DIR/feature-gate-keylocker_x86.rs:2:18
|
||||
|
|
||||
LL | #[target_feature(enable = "kl")]
|
||||
| ^^^^^^^^^^^^^
|
||||
|
|
||||
= note: see issue #134813 <https://github.com/rust-lang/rust/issues/134813> for more information
|
||||
= help: add `#![feature(keylocker_x86)]` to the crate attributes to enable
|
||||
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0658`.
|
Loading…
Add table
Add a link
Reference in a new issue