@@ -17,6 +17,8 @@ const ARM_ALLOWED_FEATURES: &[(&str, Option<Symbol>)] = &[
17
17
( "neon" , Some ( sym:: arm_target_feature) ) ,
18
18
( "crc" , Some ( sym:: arm_target_feature) ) ,
19
19
( "crypto" , Some ( sym:: arm_target_feature) ) ,
20
+ ( "aes" , Some ( sym:: arm_target_feature) ) ,
21
+ ( "sha2" , Some ( sym:: arm_target_feature) ) ,
20
22
( "v5te" , Some ( sym:: arm_target_feature) ) ,
21
23
( "v6" , Some ( sym:: arm_target_feature) ) ,
22
24
( "v6k" , Some ( sym:: arm_target_feature) ) ,
@@ -33,22 +35,95 @@ const ARM_ALLOWED_FEATURES: &[(&str, Option<Symbol>)] = &[
33
35
( "thumb-mode" , Some ( sym:: arm_target_feature) ) ,
34
36
] ;
35
37
38
+ // Commented features are not available in LLVM 10.0, or have since been renamed
36
39
const AARCH64_ALLOWED_FEATURES : & [ ( & str , Option < Symbol > ) ] = & [
37
- ( "fp" , Some ( sym :: aarch64_target_feature ) ) ,
40
+ // FEAT_AdvSimd
38
41
( "neon" , Some ( sym:: aarch64_target_feature) ) ,
42
+ // FEAT_FP
43
+ ( "fp" , Some ( sym:: aarch64_target_feature) ) ,
44
+ // FEAT_FP16
45
+ ( "fp16" , Some ( sym:: aarch64_target_feature) ) ,
46
+ // FEAT_SVE
39
47
( "sve" , Some ( sym:: aarch64_target_feature) ) ,
48
+ // FEAT_CRC
40
49
( "crc" , Some ( sym:: aarch64_target_feature) ) ,
50
+ // Cryptographic extension
41
51
( "crypto" , Some ( sym:: aarch64_target_feature) ) ,
52
+ // FEAT_RAS
42
53
( "ras" , Some ( sym:: aarch64_target_feature) ) ,
54
+ // FEAT_LSE
43
55
( "lse" , Some ( sym:: aarch64_target_feature) ) ,
56
+ // FEAT_RDM
44
57
( "rdm" , Some ( sym:: aarch64_target_feature) ) ,
45
- ( "fp16" , Some ( sym :: aarch64_target_feature ) ) ,
58
+ // FEAT_RCPC
46
59
( "rcpc" , Some ( sym:: aarch64_target_feature) ) ,
60
+ // FEAT_RCPC2
61
+ ( "rcpc2" , Some ( sym:: aarch64_target_feature) ) ,
62
+ // FEAT_DotProd
47
63
( "dotprod" , Some ( sym:: aarch64_target_feature) ) ,
64
+ // FEAT_TME
48
65
( "tme" , Some ( sym:: aarch64_target_feature) ) ,
66
+ // FEAT_FHM
67
+ ( "fhm" , Some ( sym:: aarch64_target_feature) ) ,
68
+ // FEAT_DIT
69
+ ( "dit" , Some ( sym:: aarch64_target_feature) ) ,
70
+ // FEAT_FLAGM
71
+ // ("flagm", Some(sym::aarch64_target_feature)),
72
+ // FEAT_SSBS
73
+ ( "ssbs" , Some ( sym:: aarch64_target_feature) ) ,
74
+ // FEAT_SB
75
+ ( "sb" , Some ( sym:: aarch64_target_feature) ) ,
76
+ // FEAT_PAUTH
77
+ // ("pauth", Some(sym::aarch64_target_feature)),
78
+ // FEAT_DPB
79
+ ( "dpb" , Some ( sym:: aarch64_target_feature) ) ,
80
+ // FEAT_DPB2
81
+ ( "dpb2" , Some ( sym:: aarch64_target_feature) ) ,
82
+ // FEAT_SVE2
83
+ ( "sve2" , Some ( sym:: aarch64_target_feature) ) ,
84
+ // FEAT_SVE2_AES
85
+ ( "sve2-aes" , Some ( sym:: aarch64_target_feature) ) ,
86
+ // FEAT_SVE2_SM4
87
+ ( "sve2-sm4" , Some ( sym:: aarch64_target_feature) ) ,
88
+ // FEAT_SVE2_SHA3
89
+ ( "sve2-sha3" , Some ( sym:: aarch64_target_feature) ) ,
90
+ // FEAT_SVE2_BitPerm
91
+ ( "sve2-bitperm" , Some ( sym:: aarch64_target_feature) ) ,
92
+ // FEAT_FRINTTS
93
+ ( "frintts" , Some ( sym:: aarch64_target_feature) ) ,
94
+ // FEAT_I8MM
95
+ // ("i8mm", Some(sym::aarch64_target_feature)),
96
+ // FEAT_F32MM
97
+ // ("f32mm", Some(sym::aarch64_target_feature)),
98
+ // FEAT_F64MM
99
+ // ("f64mm", Some(sym::aarch64_target_feature)),
100
+ // FEAT_BF16
101
+ // ("bf16", Some(sym::aarch64_target_feature)),
102
+ // FEAT_RAND
103
+ ( "rand" , Some ( sym:: aarch64_target_feature) ) ,
104
+ // FEAT_BTI
105
+ ( "bti" , Some ( sym:: aarch64_target_feature) ) ,
106
+ // FEAT_MTE
107
+ ( "mte" , Some ( sym:: aarch64_target_feature) ) ,
108
+ // FEAT_JSCVT
109
+ ( "jsconv" , Some ( sym:: aarch64_target_feature) ) ,
110
+ // FEAT_FCMA
111
+ ( "fcma" , Some ( sym:: aarch64_target_feature) ) ,
112
+ // FEAT_AES
113
+ ( "aes" , Some ( sym:: aarch64_target_feature) ) ,
114
+ // FEAT_SHA1 & FEAT_SHA256
115
+ ( "sha2" , Some ( sym:: aarch64_target_feature) ) ,
116
+ // FEAT_SHA512 & FEAT_SHA3
117
+ ( "sha3" , Some ( sym:: aarch64_target_feature) ) ,
118
+ // FEAT_SM3 & FEAT_SM4
119
+ ( "sm4" , Some ( sym:: aarch64_target_feature) ) ,
49
120
( "v8.1a" , Some ( sym:: aarch64_target_feature) ) ,
50
121
( "v8.2a" , Some ( sym:: aarch64_target_feature) ) ,
51
122
( "v8.3a" , Some ( sym:: aarch64_target_feature) ) ,
123
+ ( "v8.4a" , Some ( sym:: aarch64_target_feature) ) ,
124
+ ( "v8.5a" , Some ( sym:: aarch64_target_feature) ) ,
125
+ // ("v8.6a", Some(sym::aarch64_target_feature)),
126
+ // ("v8.7a", Some(sym::aarch64_target_feature)),
52
127
] ;
53
128
54
129
const X86_ALLOWED_FEATURES : & [ ( & str , Option < Symbol > ) ] = & [
0 commit comments