| #![allow(dead_code)] | |
| // Export the macros for all supported architectures. | |
| #[macro_use] | |
| mod x86; | |
| #[macro_use] | |
| mod arm; | |
| #[macro_use] | |
| mod aarch64; | |
| #[macro_use] | |
| mod riscv; | |
| #[macro_use] | |
| mod powerpc; | |
| #[macro_use] | |
| mod powerpc64; | |
| #[macro_use] | |
| mod mips; | |
| #[macro_use] | |
| mod mips64; | |
| #[macro_use] | |
| mod loongarch; | |
| #[macro_use] | |
| mod s390x; | |
| cfg_select! { | |
| any(target_arch = "x86", target_arch = "x86_64") => { | |
| #[stable(feature = "simd_x86", since = "1.27.0")] | |
| pub use x86::*; | |
| } | |
| target_arch = "arm" => { | |
| #[unstable(feature = "stdarch_arm_feature_detection", issue = "111190")] | |
| pub use arm::*; | |
| } | |
| any(target_arch = "aarch64", target_arch = "arm64ec") => { | |
| #[stable(feature = "simd_aarch64", since = "1.60.0")] | |
| pub use aarch64::*; | |
| } | |
| any(target_arch = "riscv32", target_arch = "riscv64") => { | |
| #[unstable(feature = "stdarch_riscv_feature_detection", issue = "111192")] | |
| pub use riscv::*; | |
| } | |
| target_arch = "powerpc" => { | |
| #[unstable(feature = "stdarch_powerpc_feature_detection", issue = "111191")] | |
| pub use powerpc::*; | |
| } | |
| target_arch = "powerpc64" => { | |
| #[unstable(feature = "stdarch_powerpc_feature_detection", issue = "111191")] | |
| pub use powerpc64::*; | |
| } | |
| target_arch = "mips" => { | |
| #[unstable(feature = "stdarch_mips_feature_detection", issue = "111188")] | |
| pub use mips::*; | |
| } | |
| target_arch = "mips64" => { | |
| #[unstable(feature = "stdarch_mips_feature_detection", issue = "111188")] | |
| pub use mips64::*; | |
| } | |
| any(target_arch = "loongarch32", target_arch = "loongarch64") => { | |
| #[stable(feature = "stdarch_loongarch_feature", since = "1.89.0")] | |
| pub use loongarch::*; | |
| } | |
| target_arch = "s390x" => { | |
| #[stable(feature = "stdarch_s390x_feature_detection", since = "1.93.0")] | |
| pub use s390x::*; | |
| } | |
| _ => { | |
| // Unimplemented architecture: | |
| #[doc(hidden)] | |
| pub(crate) enum Feature { | |
| Null, | |
| } | |
| #[doc(hidden)] | |
| #[unstable(feature = "stdarch_internal", issue = "none")] | |
| pub mod __is_feature_detected {} | |
| impl Feature { | |
| #[doc(hidden)] | |
| pub(crate) fn from_str(_s: &str) -> Result<Feature, ()> { | |
| Err(()) | |
| } | |
| #[doc(hidden)] | |
| pub(crate) fn to_str(self) -> &'static str { | |
| "" | |
| } | |
| } | |
| } | |
| } |