| 1 | //! Run-time feature detection on ARM Aarch32. |
| 2 | |
| 3 | features! { |
| 4 | @TARGET: arm; |
| 5 | @CFG: target_arch = "arm" ; |
| 6 | @MACRO_NAME: is_arm_feature_detected; |
| 7 | @MACRO_ATTRS: |
| 8 | /// Checks if `arm` feature is enabled. |
| 9 | #[unstable (feature = "stdarch_arm_feature_detection" , issue = "111190" )] |
| 10 | @NO_RUNTIME_DETECTION: "v7" ; |
| 11 | @NO_RUNTIME_DETECTION: "vfp2" ; |
| 12 | @NO_RUNTIME_DETECTION: "vfp3" ; |
| 13 | @NO_RUNTIME_DETECTION: "vfp4" ; |
| 14 | @FEATURE: #[unstable (feature = "stdarch_arm_feature_detection" , issue = "111190" )] neon: "neon" ; |
| 15 | /// ARM Advanced SIMD (NEON) - Aarch32 |
| 16 | @FEATURE: #[unstable (feature = "stdarch_arm_feature_detection" , issue = "111190" )] pmull: "pmull" ; |
| 17 | without cfg check: true; |
| 18 | /// Polynomial Multiply |
| 19 | @FEATURE: #[unstable (feature = "stdarch_arm_feature_detection" , issue = "111190" )] crc: "crc" ; |
| 20 | /// CRC32 (Cyclic Redundancy Check) |
| 21 | @FEATURE: #[unstable (feature = "stdarch_arm_feature_detection" , issue = "111190" )] aes: "aes" ; |
| 22 | /// FEAT_AES (AES instructions) |
| 23 | @FEATURE: #[unstable (feature = "stdarch_arm_feature_detection" , issue = "111190" )] sha2: "sha2" ; |
| 24 | /// FEAT_SHA1 & FEAT_SHA256 (SHA1 & SHA2-256 instructions) |
| 25 | @FEATURE: #[unstable (feature = "stdarch_arm_feature_detection" , issue = "111190" )] i8mm: "i8mm" ; |
| 26 | /// FEAT_I8MM (integer matrix multiplication, plus ASIMD support) |
| 27 | @FEATURE: #[unstable (feature = "stdarch_arm_feature_detection" , issue = "111190" )] dotprod: "dotprod" ; |
| 28 | /// FEAT_DotProd (Vector Dot-Product - ASIMDDP) |
| 29 | } |
| 30 | |