File tree Expand file tree Collapse file tree 1 file changed +20
-0
lines changed
library/stdarch/crates/std_detect/src/detect/os/windows Expand file tree Collapse file tree 1 file changed +20
-0
lines changed Original file line number Diff line number Diff line change @@ -14,6 +14,10 @@ pub(crate) fn detect_features() -> cache::Initializer {
14
14
const PF_ARM_NEON_INSTRUCTIONS_AVAILABLE : u32 = 19 ;
15
15
const PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE : u32 = 30 ;
16
16
const PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE : u32 = 31 ;
17
+ const PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE : u32 = 34 ;
18
+ const PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE : u32 = 43 ;
19
+ const PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE : u32 = 44 ;
20
+ const PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE : u32 = 45 ;
17
21
18
22
extern "system" {
19
23
pub fn IsProcessorFeaturePresent ( ProcessorFeature : DWORD ) -> BOOL ;
@@ -39,6 +43,22 @@ pub(crate) fn detect_features() -> cache::Initializer {
39
43
Feature :: crc,
40
44
IsProcessorFeaturePresent ( PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE ) != FALSE ,
41
45
) ;
46
+ enable_feature (
47
+ Feature :: lse,
48
+ IsProcessorFeaturePresent ( PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE ) != FALSE ,
49
+ ) ;
50
+ enable_feature (
51
+ Feature :: dotprod,
52
+ IsProcessorFeaturePresent ( PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE ) != FALSE ,
53
+ ) ;
54
+ enable_feature (
55
+ Feature :: jsconv,
56
+ IsProcessorFeaturePresent ( PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE ) != FALSE ,
57
+ ) ;
58
+ enable_feature (
59
+ Feature :: rcpc,
60
+ IsProcessorFeaturePresent ( PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE ) != FALSE ,
61
+ ) ;
42
62
// PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE means aes, sha1, sha2 and
43
63
// pmull support
44
64
enable_feature (
You can’t perform that action at this time.
0 commit comments