Stabilize the keylocker_x86 flag, and the kl and widekl target features

This commit is contained in:
sayantn
2025-05-08 01:06:23 +05:30
parent 5e0bdaa9dd
commit cd7533ab44
6 changed files with 4 additions and 24 deletions

View File

@@ -259,6 +259,8 @@ declare_features! (
/// Allows some increased flexibility in the name resolution rules, /// Allows some increased flexibility in the name resolution rules,
/// especially around globs and shadowing (RFC 1560). /// especially around globs and shadowing (RFC 1560).
(accepted, item_like_imports, "1.15.0", Some(35120)), (accepted, item_like_imports, "1.15.0", Some(35120)),
// Allows using the `kl` and `widekl` target features and the associated intrinsics
(accepted, keylocker_x86, "CURRENT_RUSTC_VERSION", Some(134813)),
/// Allows `'a: { break 'a; }`. /// Allows `'a: { break 'a; }`.
(accepted, label_break_value, "1.65.0", Some(48594)), (accepted, label_break_value, "1.65.0", Some(48594)),
/// Allows `let...else` statements. /// Allows `let...else` statements.

View File

@@ -546,8 +546,6 @@ declare_features! (
(incomplete, inherent_associated_types, "1.52.0", Some(8995)), (incomplete, inherent_associated_types, "1.52.0", Some(8995)),
/// Allows using `pointer` and `reference` in intra-doc links /// Allows using `pointer` and `reference` in intra-doc links
(unstable, intra_doc_pointers, "1.51.0", Some(80896)), (unstable, intra_doc_pointers, "1.51.0", Some(80896)),
// Allows using the `kl` and `widekl` target features and the associated intrinsics
(unstable, keylocker_x86, "1.86.0", Some(134813)),
// Allows setting the threshold for the `large_assignments` lint. // Allows setting the threshold for the `large_assignments` lint.
(unstable, large_assignments, "1.52.0", Some(83518)), (unstable, large_assignments, "1.52.0", Some(83518)),
/// Allow to have type alias types for inter-crate use. /// Allow to have type alias types for inter-crate use.

View File

@@ -443,7 +443,7 @@ static X86_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
("fma", Stable, &["avx"]), ("fma", Stable, &["avx"]),
("fxsr", Stable, &[]), ("fxsr", Stable, &[]),
("gfni", Stable, &["sse2"]), ("gfni", Stable, &["sse2"]),
("kl", Unstable(sym::keylocker_x86), &["sse2"]), ("kl", Stable, &["sse2"]),
("lahfsahf", Unstable(sym::lahfsahf_target_feature), &[]), ("lahfsahf", Unstable(sym::lahfsahf_target_feature), &[]),
("lzcnt", Stable, &[]), ("lzcnt", Stable, &[]),
("movbe", Stable, &[]), ("movbe", Stable, &[]),
@@ -471,7 +471,7 @@ static X86_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
("tbm", Unstable(sym::tbm_target_feature), &[]), ("tbm", Unstable(sym::tbm_target_feature), &[]),
("vaes", Stable, &["avx2", "aes"]), ("vaes", Stable, &["avx2", "aes"]),
("vpclmulqdq", Stable, &["avx", "pclmulqdq"]), ("vpclmulqdq", Stable, &["avx", "pclmulqdq"]),
("widekl", Unstable(sym::keylocker_x86), &["kl"]), ("widekl", Stable, &["kl"]),
("x87", Unstable(sym::x87_target_feature), &[]), ("x87", Unstable(sym::x87_target_feature), &[]),
("xop", Unstable(sym::xop_target_feature), &[/*"fma4", */ "avx", "sse4a"]), ("xop", Unstable(sym::xop_target_feature), &[/*"fma4", */ "avx", "sse4a"]),
("xsave", Stable, &[]), ("xsave", Stable, &[]),

View File

@@ -190,7 +190,6 @@
#![feature(aarch64_unstable_target_feature)] #![feature(aarch64_unstable_target_feature)]
#![feature(arm_target_feature)] #![feature(arm_target_feature)]
#![feature(hexagon_target_feature)] #![feature(hexagon_target_feature)]
#![feature(keylocker_x86)]
#![feature(loongarch_target_feature)] #![feature(loongarch_target_feature)]
#![feature(mips_target_feature)] #![feature(mips_target_feature)]
#![feature(powerpc_target_feature)] #![feature(powerpc_target_feature)]

View File

@@ -1,6 +0,0 @@
//@ only-x86_64
#[target_feature(enable = "kl")]
//~^ ERROR: currently unstable
unsafe fn foo() {}
fn main() {}

View File

@@ -1,13 +0,0 @@
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`.