@@ -33,22 +33,95 @@ const ARM_ALLOWED_FEATURES: &[(&str, Option<Symbol>)] = &[
33
33
( "thumb-mode" , Some ( sym:: arm_target_feature) ) ,
34
34
] ;
35
35
36
+ // Commented features are not available in LLVM 9.0, or have since been renamed
36
37
const AARCH64_ALLOWED_FEATURES : & [ ( & str , Option < Symbol > ) ] = & [
37
- ( "fp" , Some ( sym :: aarch64_target_feature ) ) ,
38
+ // FEAT_AdvSimd
38
39
( "neon" , Some ( sym:: aarch64_target_feature) ) ,
40
+ // FEAT_FP
41
+ ( "fp" , Some ( sym:: aarch64_target_feature) ) ,
42
+ // FEAT_FP16
43
+ ( "fp16" , Some ( sym:: aarch64_target_feature) ) ,
44
+ // FEAT_SVE
39
45
( "sve" , Some ( sym:: aarch64_target_feature) ) ,
46
+ // FEAT_CRC
40
47
( "crc" , Some ( sym:: aarch64_target_feature) ) ,
48
+ // Cryptographic extension
41
49
( "crypto" , Some ( sym:: aarch64_target_feature) ) ,
50
+ // FEAT_RAS
42
51
( "ras" , Some ( sym:: aarch64_target_feature) ) ,
52
+ // FEAT_LSE
43
53
( "lse" , Some ( sym:: aarch64_target_feature) ) ,
54
+ // FEAT_LSE2
55
+ // ("lse2", 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
+ ( "fptoint" , 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_SHA1 & FEAT_SHA256
113
+ ( "sha2" , Some ( sym:: aarch64_target_feature) ) ,
114
+ // FEAT_SHA512 & FEAT_SHA3
115
+ ( "sha3" , Some ( sym:: aarch64_target_feature) ) ,
116
+ // FEAT_SM3 & FEAT_SM4
117
+ ( "sm4" , Some ( sym:: aarch64_target_feature) ) ,
49
118
( "v8.1a" , Some ( sym:: aarch64_target_feature) ) ,
50
119
( "v8.2a" , Some ( sym:: aarch64_target_feature) ) ,
51
120
( "v8.3a" , Some ( sym:: aarch64_target_feature) ) ,
121
+ ( "v8.4a" , Some ( sym:: aarch64_target_feature) ) ,
122
+ ( "v8.5a" , Some ( sym:: aarch64_target_feature) ) ,
123
+ // ("v8.6a", Some(sym::aarch64_target_feature)),
124
+ // ("v8.7a", Some(sym::aarch64_target_feature)),
52
125
] ;
53
126
54
127
const X86_ALLOWED_FEATURES : & [ ( & str , Option < Symbol > ) ] = & [
0 commit comments