From 9a1854b844c5125a071da16ee7ab97f11e98dee1 Mon Sep 17 00:00:00 2001 From: Amanieu d'Antras Date: Thu, 26 Oct 2023 12:18:07 +0100 Subject: [PATCH] Add tracking issue for ARM CRC32 intrinsics --- library/stdarch/crates/core_arch/src/aarch64/crc.rs | 2 ++ library/stdarch/crates/core_arch/src/aarch64/mod.rs | 1 + library/stdarch/crates/core_arch/src/arm_shared/crc.rs | 6 ++++++ library/stdarch/crates/core_arch/src/arm_shared/mod.rs | 3 +-- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/library/stdarch/crates/core_arch/src/aarch64/crc.rs b/library/stdarch/crates/core_arch/src/aarch64/crc.rs index ac3f8d815ccb..35940e0db80a 100644 --- a/library/stdarch/crates/core_arch/src/aarch64/crc.rs +++ b/library/stdarch/crates/core_arch/src/aarch64/crc.rs @@ -15,6 +15,7 @@ use stdarch_test::assert_instr; #[inline] #[target_feature(enable = "crc")] #[cfg_attr(test, assert_instr(crc32x))] +#[unstable(feature = "stdarch_arm_crc32", issue = "117215")] pub unsafe fn __crc32d(crc: u32, data: u64) -> u32 { crc32x_(crc, data) } @@ -25,6 +26,7 @@ pub unsafe fn __crc32d(crc: u32, data: u64) -> u32 { #[inline] #[target_feature(enable = "crc")] #[cfg_attr(test, assert_instr(crc32cx))] +#[unstable(feature = "stdarch_arm_crc32", issue = "117215")] pub unsafe fn __crc32cd(crc: u32, data: u64) -> u32 { crc32cx_(crc, data) } diff --git a/library/stdarch/crates/core_arch/src/aarch64/mod.rs b/library/stdarch/crates/core_arch/src/aarch64/mod.rs index 170c8ef27057..d9c16cf933c2 100644 --- a/library/stdarch/crates/core_arch/src/aarch64/mod.rs +++ b/library/stdarch/crates/core_arch/src/aarch64/mod.rs @@ -17,6 +17,7 @@ mod tme; pub use self::tme::*; mod crc; +#[unstable(feature = "stdarch_arm_crc32", issue = "117215")] pub use self::crc::*; mod prefetch; diff --git a/library/stdarch/crates/core_arch/src/arm_shared/crc.rs b/library/stdarch/crates/core_arch/src/arm_shared/crc.rs index 779d1ed426ef..b1f716e1aa92 100644 --- a/library/stdarch/crates/core_arch/src/arm_shared/crc.rs +++ b/library/stdarch/crates/core_arch/src/arm_shared/crc.rs @@ -30,6 +30,7 @@ use stdarch_test::assert_instr; #[target_feature(enable = "crc")] #[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))] #[cfg_attr(test, assert_instr(crc32b))] +#[unstable(feature = "stdarch_arm_crc32", issue = "117215")] pub unsafe fn __crc32b(crc: u32, data: u8) -> u32 { crc32b_(crc, data as u32) } @@ -41,6 +42,7 @@ pub unsafe fn __crc32b(crc: u32, data: u8) -> u32 { #[target_feature(enable = "crc")] #[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))] #[cfg_attr(test, assert_instr(crc32h))] +#[unstable(feature = "stdarch_arm_crc32", issue = "117215")] pub unsafe fn __crc32h(crc: u32, data: u16) -> u32 { crc32h_(crc, data as u32) } @@ -52,6 +54,7 @@ pub unsafe fn __crc32h(crc: u32, data: u16) -> u32 { #[target_feature(enable = "crc")] #[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))] #[cfg_attr(test, assert_instr(crc32w))] +#[unstable(feature = "stdarch_arm_crc32", issue = "117215")] pub unsafe fn __crc32w(crc: u32, data: u32) -> u32 { crc32w_(crc, data) } @@ -63,6 +66,7 @@ pub unsafe fn __crc32w(crc: u32, data: u32) -> u32 { #[target_feature(enable = "crc")] #[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))] #[cfg_attr(test, assert_instr(crc32cb))] +#[unstable(feature = "stdarch_arm_crc32", issue = "117215")] pub unsafe fn __crc32cb(crc: u32, data: u8) -> u32 { crc32cb_(crc, data as u32) } @@ -74,6 +78,7 @@ pub unsafe fn __crc32cb(crc: u32, data: u8) -> u32 { #[target_feature(enable = "crc")] #[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))] #[cfg_attr(test, assert_instr(crc32ch))] +#[unstable(feature = "stdarch_arm_crc32", issue = "117215")] pub unsafe fn __crc32ch(crc: u32, data: u16) -> u32 { crc32ch_(crc, data as u32) } @@ -85,6 +90,7 @@ pub unsafe fn __crc32ch(crc: u32, data: u16) -> u32 { #[target_feature(enable = "crc")] #[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))] #[cfg_attr(test, assert_instr(crc32cw))] +#[unstable(feature = "stdarch_arm_crc32", issue = "117215")] pub unsafe fn __crc32cw(crc: u32, data: u32) -> u32 { crc32cw_(crc, data) } diff --git a/library/stdarch/crates/core_arch/src/arm_shared/mod.rs b/library/stdarch/crates/core_arch/src/arm_shared/mod.rs index ee603a0df1d3..2379f65b0b7e 100644 --- a/library/stdarch/crates/core_arch/src/arm_shared/mod.rs +++ b/library/stdarch/crates/core_arch/src/arm_shared/mod.rs @@ -59,9 +59,8 @@ pub use self::barrier::*; mod hints; pub use self::hints::*; -#[cfg(any(target_arch = "aarch64", target_feature = "v7", doc))] mod crc; -#[cfg(any(target_arch = "aarch64", target_feature = "v7", doc))] +#[unstable(feature = "stdarch_arm_crc32", issue = "117215")] pub use crc::*; // NEON intrinsics are currently broken on big-endian, so don't expose them. (#1484)