1 | #ifdef GET_SUPPORTED_EXTENSIONS |
2 | #undef GET_SUPPORTED_EXTENSIONS |
3 | |
4 | static const RISCVSupportedExtension SupportedExtensions[] = { |
5 | {.Name: "a" , .Version: {.Major: 2, .Minor: 1}}, |
6 | {.Name: "b" , .Version: {.Major: 1, .Minor: 0}}, |
7 | {.Name: "c" , .Version: {.Major: 2, .Minor: 0}}, |
8 | {.Name: "d" , .Version: {.Major: 2, .Minor: 2}}, |
9 | {.Name: "e" , .Version: {.Major: 2, .Minor: 0}}, |
10 | {.Name: "f" , .Version: {.Major: 2, .Minor: 2}}, |
11 | {.Name: "h" , .Version: {.Major: 1, .Minor: 0}}, |
12 | {.Name: "i" , .Version: {.Major: 2, .Minor: 1}}, |
13 | {.Name: "m" , .Version: {.Major: 2, .Minor: 0}}, |
14 | {.Name: "shcounterenw" , .Version: {.Major: 1, .Minor: 0}}, |
15 | {.Name: "shgatpa" , .Version: {.Major: 1, .Minor: 0}}, |
16 | {.Name: "shtvala" , .Version: {.Major: 1, .Minor: 0}}, |
17 | {.Name: "shvsatpa" , .Version: {.Major: 1, .Minor: 0}}, |
18 | {.Name: "shvstvala" , .Version: {.Major: 1, .Minor: 0}}, |
19 | {.Name: "shvstvecd" , .Version: {.Major: 1, .Minor: 0}}, |
20 | {.Name: "smaia" , .Version: {.Major: 1, .Minor: 0}}, |
21 | {.Name: "smcdeleg" , .Version: {.Major: 1, .Minor: 0}}, |
22 | {.Name: "smcsrind" , .Version: {.Major: 1, .Minor: 0}}, |
23 | {.Name: "smepmp" , .Version: {.Major: 1, .Minor: 0}}, |
24 | {.Name: "smstateen" , .Version: {.Major: 1, .Minor: 0}}, |
25 | {.Name: "ssaia" , .Version: {.Major: 1, .Minor: 0}}, |
26 | {.Name: "ssccfg" , .Version: {.Major: 1, .Minor: 0}}, |
27 | {.Name: "ssccptr" , .Version: {.Major: 1, .Minor: 0}}, |
28 | {.Name: "sscofpmf" , .Version: {.Major: 1, .Minor: 0}}, |
29 | {.Name: "sscounterenw" , .Version: {.Major: 1, .Minor: 0}}, |
30 | {.Name: "sscsrind" , .Version: {.Major: 1, .Minor: 0}}, |
31 | {.Name: "ssstateen" , .Version: {.Major: 1, .Minor: 0}}, |
32 | {.Name: "ssstrict" , .Version: {.Major: 1, .Minor: 0}}, |
33 | {.Name: "sstc" , .Version: {.Major: 1, .Minor: 0}}, |
34 | {.Name: "sstvala" , .Version: {.Major: 1, .Minor: 0}}, |
35 | {.Name: "sstvecd" , .Version: {.Major: 1, .Minor: 0}}, |
36 | {.Name: "ssu64xl" , .Version: {.Major: 1, .Minor: 0}}, |
37 | {.Name: "svade" , .Version: {.Major: 1, .Minor: 0}}, |
38 | {.Name: "svadu" , .Version: {.Major: 1, .Minor: 0}}, |
39 | {.Name: "svbare" , .Version: {.Major: 1, .Minor: 0}}, |
40 | {.Name: "svinval" , .Version: {.Major: 1, .Minor: 0}}, |
41 | {.Name: "svnapot" , .Version: {.Major: 1, .Minor: 0}}, |
42 | {.Name: "svpbmt" , .Version: {.Major: 1, .Minor: 0}}, |
43 | {.Name: "v" , .Version: {.Major: 1, .Minor: 0}}, |
44 | {.Name: "xcvalu" , .Version: {.Major: 1, .Minor: 0}}, |
45 | {.Name: "xcvbi" , .Version: {.Major: 1, .Minor: 0}}, |
46 | {.Name: "xcvbitmanip" , .Version: {.Major: 1, .Minor: 0}}, |
47 | {.Name: "xcvelw" , .Version: {.Major: 1, .Minor: 0}}, |
48 | {.Name: "xcvmac" , .Version: {.Major: 1, .Minor: 0}}, |
49 | {.Name: "xcvmem" , .Version: {.Major: 1, .Minor: 0}}, |
50 | {.Name: "xcvsimd" , .Version: {.Major: 1, .Minor: 0}}, |
51 | {.Name: "xsfcease" , .Version: {.Major: 1, .Minor: 0}}, |
52 | {.Name: "xsfvcp" , .Version: {.Major: 1, .Minor: 0}}, |
53 | {.Name: "xsfvfnrclipxfqf" , .Version: {.Major: 1, .Minor: 0}}, |
54 | {.Name: "xsfvfwmaccqqq" , .Version: {.Major: 1, .Minor: 0}}, |
55 | {.Name: "xsfvqmaccdod" , .Version: {.Major: 1, .Minor: 0}}, |
56 | {.Name: "xsfvqmaccqoq" , .Version: {.Major: 1, .Minor: 0}}, |
57 | {.Name: "xsifivecdiscarddlone" , .Version: {.Major: 1, .Minor: 0}}, |
58 | {.Name: "xsifivecflushdlone" , .Version: {.Major: 1, .Minor: 0}}, |
59 | {.Name: "xtheadba" , .Version: {.Major: 1, .Minor: 0}}, |
60 | {.Name: "xtheadbb" , .Version: {.Major: 1, .Minor: 0}}, |
61 | {.Name: "xtheadbs" , .Version: {.Major: 1, .Minor: 0}}, |
62 | {.Name: "xtheadcmo" , .Version: {.Major: 1, .Minor: 0}}, |
63 | {.Name: "xtheadcondmov" , .Version: {.Major: 1, .Minor: 0}}, |
64 | {.Name: "xtheadfmemidx" , .Version: {.Major: 1, .Minor: 0}}, |
65 | {.Name: "xtheadmac" , .Version: {.Major: 1, .Minor: 0}}, |
66 | {.Name: "xtheadmemidx" , .Version: {.Major: 1, .Minor: 0}}, |
67 | {.Name: "xtheadmempair" , .Version: {.Major: 1, .Minor: 0}}, |
68 | {.Name: "xtheadsync" , .Version: {.Major: 1, .Minor: 0}}, |
69 | {.Name: "xtheadvdot" , .Version: {.Major: 1, .Minor: 0}}, |
70 | {.Name: "xventanacondops" , .Version: {.Major: 1, .Minor: 0}}, |
71 | {.Name: "xwchc" , .Version: {.Major: 2, .Minor: 2}}, |
72 | {.Name: "za128rs" , .Version: {.Major: 1, .Minor: 0}}, |
73 | {.Name: "za64rs" , .Version: {.Major: 1, .Minor: 0}}, |
74 | {.Name: "zaamo" , .Version: {.Major: 1, .Minor: 0}}, |
75 | {.Name: "zabha" , .Version: {.Major: 1, .Minor: 0}}, |
76 | {.Name: "zalrsc" , .Version: {.Major: 1, .Minor: 0}}, |
77 | {.Name: "zama16b" , .Version: {.Major: 1, .Minor: 0}}, |
78 | {.Name: "zawrs" , .Version: {.Major: 1, .Minor: 0}}, |
79 | {.Name: "zba" , .Version: {.Major: 1, .Minor: 0}}, |
80 | {.Name: "zbb" , .Version: {.Major: 1, .Minor: 0}}, |
81 | {.Name: "zbc" , .Version: {.Major: 1, .Minor: 0}}, |
82 | {.Name: "zbkb" , .Version: {.Major: 1, .Minor: 0}}, |
83 | {.Name: "zbkc" , .Version: {.Major: 1, .Minor: 0}}, |
84 | {.Name: "zbkx" , .Version: {.Major: 1, .Minor: 0}}, |
85 | {.Name: "zbs" , .Version: {.Major: 1, .Minor: 0}}, |
86 | {.Name: "zca" , .Version: {.Major: 1, .Minor: 0}}, |
87 | {.Name: "zcb" , .Version: {.Major: 1, .Minor: 0}}, |
88 | {.Name: "zcd" , .Version: {.Major: 1, .Minor: 0}}, |
89 | {.Name: "zce" , .Version: {.Major: 1, .Minor: 0}}, |
90 | {.Name: "zcf" , .Version: {.Major: 1, .Minor: 0}}, |
91 | {.Name: "zcmop" , .Version: {.Major: 1, .Minor: 0}}, |
92 | {.Name: "zcmp" , .Version: {.Major: 1, .Minor: 0}}, |
93 | {.Name: "zcmt" , .Version: {.Major: 1, .Minor: 0}}, |
94 | {.Name: "zdinx" , .Version: {.Major: 1, .Minor: 0}}, |
95 | {.Name: "zfa" , .Version: {.Major: 1, .Minor: 0}}, |
96 | {.Name: "zfbfmin" , .Version: {.Major: 1, .Minor: 0}}, |
97 | {.Name: "zfh" , .Version: {.Major: 1, .Minor: 0}}, |
98 | {.Name: "zfhmin" , .Version: {.Major: 1, .Minor: 0}}, |
99 | {.Name: "zfinx" , .Version: {.Major: 1, .Minor: 0}}, |
100 | {.Name: "zhinx" , .Version: {.Major: 1, .Minor: 0}}, |
101 | {.Name: "zhinxmin" , .Version: {.Major: 1, .Minor: 0}}, |
102 | {.Name: "zic64b" , .Version: {.Major: 1, .Minor: 0}}, |
103 | {.Name: "zicbom" , .Version: {.Major: 1, .Minor: 0}}, |
104 | {.Name: "zicbop" , .Version: {.Major: 1, .Minor: 0}}, |
105 | {.Name: "zicboz" , .Version: {.Major: 1, .Minor: 0}}, |
106 | {.Name: "ziccamoa" , .Version: {.Major: 1, .Minor: 0}}, |
107 | {.Name: "ziccif" , .Version: {.Major: 1, .Minor: 0}}, |
108 | {.Name: "zicclsm" , .Version: {.Major: 1, .Minor: 0}}, |
109 | {.Name: "ziccrse" , .Version: {.Major: 1, .Minor: 0}}, |
110 | {.Name: "zicntr" , .Version: {.Major: 2, .Minor: 0}}, |
111 | {.Name: "zicond" , .Version: {.Major: 1, .Minor: 0}}, |
112 | {.Name: "zicsr" , .Version: {.Major: 2, .Minor: 0}}, |
113 | {.Name: "zifencei" , .Version: {.Major: 2, .Minor: 0}}, |
114 | {.Name: "zihintntl" , .Version: {.Major: 1, .Minor: 0}}, |
115 | {.Name: "zihintpause" , .Version: {.Major: 2, .Minor: 0}}, |
116 | {.Name: "zihpm" , .Version: {.Major: 2, .Minor: 0}}, |
117 | {.Name: "zimop" , .Version: {.Major: 1, .Minor: 0}}, |
118 | {.Name: "zk" , .Version: {.Major: 1, .Minor: 0}}, |
119 | {.Name: "zkn" , .Version: {.Major: 1, .Minor: 0}}, |
120 | {.Name: "zknd" , .Version: {.Major: 1, .Minor: 0}}, |
121 | {.Name: "zkne" , .Version: {.Major: 1, .Minor: 0}}, |
122 | {.Name: "zknh" , .Version: {.Major: 1, .Minor: 0}}, |
123 | {.Name: "zkr" , .Version: {.Major: 1, .Minor: 0}}, |
124 | {.Name: "zks" , .Version: {.Major: 1, .Minor: 0}}, |
125 | {.Name: "zksed" , .Version: {.Major: 1, .Minor: 0}}, |
126 | {.Name: "zksh" , .Version: {.Major: 1, .Minor: 0}}, |
127 | {.Name: "zkt" , .Version: {.Major: 1, .Minor: 0}}, |
128 | {.Name: "zmmul" , .Version: {.Major: 1, .Minor: 0}}, |
129 | {.Name: "ztso" , .Version: {.Major: 1, .Minor: 0}}, |
130 | {.Name: "zvbb" , .Version: {.Major: 1, .Minor: 0}}, |
131 | {.Name: "zvbc" , .Version: {.Major: 1, .Minor: 0}}, |
132 | {.Name: "zve32f" , .Version: {.Major: 1, .Minor: 0}}, |
133 | {.Name: "zve32x" , .Version: {.Major: 1, .Minor: 0}}, |
134 | {.Name: "zve64d" , .Version: {.Major: 1, .Minor: 0}}, |
135 | {.Name: "zve64f" , .Version: {.Major: 1, .Minor: 0}}, |
136 | {.Name: "zve64x" , .Version: {.Major: 1, .Minor: 0}}, |
137 | {.Name: "zvfbfmin" , .Version: {.Major: 1, .Minor: 0}}, |
138 | {.Name: "zvfbfwma" , .Version: {.Major: 1, .Minor: 0}}, |
139 | {.Name: "zvfh" , .Version: {.Major: 1, .Minor: 0}}, |
140 | {.Name: "zvfhmin" , .Version: {.Major: 1, .Minor: 0}}, |
141 | {.Name: "zvkb" , .Version: {.Major: 1, .Minor: 0}}, |
142 | {.Name: "zvkg" , .Version: {.Major: 1, .Minor: 0}}, |
143 | {.Name: "zvkn" , .Version: {.Major: 1, .Minor: 0}}, |
144 | {.Name: "zvknc" , .Version: {.Major: 1, .Minor: 0}}, |
145 | {.Name: "zvkned" , .Version: {.Major: 1, .Minor: 0}}, |
146 | {.Name: "zvkng" , .Version: {.Major: 1, .Minor: 0}}, |
147 | {.Name: "zvknha" , .Version: {.Major: 1, .Minor: 0}}, |
148 | {.Name: "zvknhb" , .Version: {.Major: 1, .Minor: 0}}, |
149 | {.Name: "zvks" , .Version: {.Major: 1, .Minor: 0}}, |
150 | {.Name: "zvksc" , .Version: {.Major: 1, .Minor: 0}}, |
151 | {.Name: "zvksed" , .Version: {.Major: 1, .Minor: 0}}, |
152 | {.Name: "zvksg" , .Version: {.Major: 1, .Minor: 0}}, |
153 | {.Name: "zvksh" , .Version: {.Major: 1, .Minor: 0}}, |
154 | {.Name: "zvkt" , .Version: {.Major: 1, .Minor: 0}}, |
155 | {.Name: "zvl1024b" , .Version: {.Major: 1, .Minor: 0}}, |
156 | {.Name: "zvl128b" , .Version: {.Major: 1, .Minor: 0}}, |
157 | {.Name: "zvl16384b" , .Version: {.Major: 1, .Minor: 0}}, |
158 | {.Name: "zvl2048b" , .Version: {.Major: 1, .Minor: 0}}, |
159 | {.Name: "zvl256b" , .Version: {.Major: 1, .Minor: 0}}, |
160 | {.Name: "zvl32768b" , .Version: {.Major: 1, .Minor: 0}}, |
161 | {.Name: "zvl32b" , .Version: {.Major: 1, .Minor: 0}}, |
162 | {.Name: "zvl4096b" , .Version: {.Major: 1, .Minor: 0}}, |
163 | {.Name: "zvl512b" , .Version: {.Major: 1, .Minor: 0}}, |
164 | {.Name: "zvl64b" , .Version: {.Major: 1, .Minor: 0}}, |
165 | {.Name: "zvl65536b" , .Version: {.Major: 1, .Minor: 0}}, |
166 | {.Name: "zvl8192b" , .Version: {.Major: 1, .Minor: 0}}, |
167 | }; |
168 | |
169 | static const RISCVSupportedExtension SupportedExperimentalExtensions[] = { |
170 | {.Name: "smmpm" , .Version: {.Major: 1, .Minor: 0}}, |
171 | {.Name: "smnpm" , .Version: {.Major: 1, .Minor: 0}}, |
172 | {.Name: "ssnpm" , .Version: {.Major: 1, .Minor: 0}}, |
173 | {.Name: "sspm" , .Version: {.Major: 1, .Minor: 0}}, |
174 | {.Name: "ssqosid" , .Version: {.Major: 1, .Minor: 0}}, |
175 | {.Name: "supm" , .Version: {.Major: 1, .Minor: 0}}, |
176 | {.Name: "zacas" , .Version: {.Major: 1, .Minor: 0}}, |
177 | {.Name: "zalasr" , .Version: {.Major: 0, .Minor: 1}}, |
178 | {.Name: "zicfilp" , .Version: {.Major: 1, .Minor: 0}}, |
179 | {.Name: "zicfiss" , .Version: {.Major: 1, .Minor: 0}}, |
180 | }; |
181 | |
182 | #endif // GET_SUPPORTED_EXTENSIONS |
183 | |
184 | #ifdef GET_IMPLIED_EXTENSIONS |
185 | #undef GET_IMPLIED_EXTENSIONS |
186 | |
187 | |
188 | static constexpr ImpliedExtsEntry ImpliedExts[] = { |
189 | { {"b" }, "zba" }, |
190 | { {"b" }, "zbb" }, |
191 | { {"b" }, "zbs" }, |
192 | { {"d" }, "f" }, |
193 | { {"f" }, "zicsr" }, |
194 | { {"m" }, "zmmul" }, |
195 | { {"v" }, "zvl128b" }, |
196 | { {"v" }, "zve64d" }, |
197 | { {"xsfvcp" }, "zve32x" }, |
198 | { {"xsfvfnrclipxfqf" }, "zve32f" }, |
199 | { {"xsfvfwmaccqqq" }, "zvfbfmin" }, |
200 | { {"xsfvqmaccdod" }, "zve32x" }, |
201 | { {"xsfvqmaccqoq" }, "zve32x" }, |
202 | { {"xtheadvdot" }, "v" }, |
203 | { {"zcb" }, "zca" }, |
204 | { {"zcd" }, "d" }, |
205 | { {"zcd" }, "zca" }, |
206 | { {"zce" }, "zcb" }, |
207 | { {"zce" }, "zcmp" }, |
208 | { {"zce" }, "zcmt" }, |
209 | { {"zcf" }, "f" }, |
210 | { {"zcf" }, "zca" }, |
211 | { {"zcmop" }, "zca" }, |
212 | { {"zcmp" }, "zca" }, |
213 | { {"zcmt" }, "zca" }, |
214 | { {"zcmt" }, "zicsr" }, |
215 | { {"zdinx" }, "zfinx" }, |
216 | { {"zfa" }, "f" }, |
217 | { {"zfbfmin" }, "f" }, |
218 | { {"zfh" }, "zfhmin" }, |
219 | { {"zfhmin" }, "f" }, |
220 | { {"zfinx" }, "zicsr" }, |
221 | { {"zhinx" }, "zhinxmin" }, |
222 | { {"zhinxmin" }, "zfinx" }, |
223 | { {"zicfilp" }, "zicsr" }, |
224 | { {"zicfiss" }, "zicsr" }, |
225 | { {"zicfiss" }, "zimop" }, |
226 | { {"zicntr" }, "zicsr" }, |
227 | { {"zihpm" }, "zicsr" }, |
228 | { {"zk" }, "zkn" }, |
229 | { {"zk" }, "zkr" }, |
230 | { {"zk" }, "zkt" }, |
231 | { {"zkn" }, "zbkb" }, |
232 | { {"zkn" }, "zbkc" }, |
233 | { {"zkn" }, "zbkx" }, |
234 | { {"zkn" }, "zkne" }, |
235 | { {"zkn" }, "zknd" }, |
236 | { {"zkn" }, "zknh" }, |
237 | { {"zks" }, "zbkb" }, |
238 | { {"zks" }, "zbkc" }, |
239 | { {"zks" }, "zbkx" }, |
240 | { {"zks" }, "zksed" }, |
241 | { {"zks" }, "zksh" }, |
242 | { {"zvbb" }, "zvkb" }, |
243 | { {"zve32f" }, "zve32x" }, |
244 | { {"zve32f" }, "f" }, |
245 | { {"zve32x" }, "zicsr" }, |
246 | { {"zve32x" }, "zvl32b" }, |
247 | { {"zve64d" }, "zve64f" }, |
248 | { {"zve64d" }, "d" }, |
249 | { {"zve64f" }, "zve32f" }, |
250 | { {"zve64f" }, "zve64x" }, |
251 | { {"zve64x" }, "zve32x" }, |
252 | { {"zve64x" }, "zvl64b" }, |
253 | { {"zvfbfmin" }, "zve32f" }, |
254 | { {"zvfbfwma" }, "zvfbfmin" }, |
255 | { {"zvfbfwma" }, "zfbfmin" }, |
256 | { {"zvfh" }, "zvfhmin" }, |
257 | { {"zvfh" }, "zfhmin" }, |
258 | { {"zvfhmin" }, "zve32f" }, |
259 | { {"zvkn" }, "zvkned" }, |
260 | { {"zvkn" }, "zvknhb" }, |
261 | { {"zvkn" }, "zvkb" }, |
262 | { {"zvkn" }, "zvkt" }, |
263 | { {"zvknc" }, "zvkn" }, |
264 | { {"zvknc" }, "zvbc" }, |
265 | { {"zvkng" }, "zvkn" }, |
266 | { {"zvkng" }, "zvkg" }, |
267 | { {"zvknhb" }, "zve64x" }, |
268 | { {"zvks" }, "zvksed" }, |
269 | { {"zvks" }, "zvksh" }, |
270 | { {"zvks" }, "zvkb" }, |
271 | { {"zvks" }, "zvkt" }, |
272 | { {"zvksc" }, "zvks" }, |
273 | { {"zvksc" }, "zvbc" }, |
274 | { {"zvksg" }, "zvks" }, |
275 | { {"zvksg" }, "zvkg" }, |
276 | { {"zvl1024b" }, "zvl512b" }, |
277 | { {"zvl128b" }, "zvl64b" }, |
278 | { {"zvl16384b" }, "zvl8192b" }, |
279 | { {"zvl2048b" }, "zvl1024b" }, |
280 | { {"zvl256b" }, "zvl128b" }, |
281 | { {"zvl32768b" }, "zvl16384b" }, |
282 | { {"zvl4096b" }, "zvl2048b" }, |
283 | { {"zvl512b" }, "zvl256b" }, |
284 | { {"zvl64b" }, "zvl32b" }, |
285 | { {"zvl65536b" }, "zvl32768b" }, |
286 | { {"zvl8192b" }, "zvl4096b" }, |
287 | }; |
288 | |
289 | #endif // GET_IMPLIED_EXTENSIONS |
290 | |
291 | #ifdef GET_SUPPORTED_PROFILES |
292 | #undef GET_SUPPORTED_PROFILES |
293 | |
294 | static constexpr RISCVProfile SupportedProfiles[] = { |
295 | {"rva20s64" ,"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zifencei2p0_za128rs1p0_ssccptr1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0" }, |
296 | {"rva20u64" ,"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_za128rs1p0" }, |
297 | {"rva22s64" ,"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zifencei2p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0_ssccptr1p0_sscounterenw1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0_svinval1p0_svpbmt1p0" }, |
298 | {"rva22u64" ,"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0" }, |
299 | {"rvi20u32" ,"rv32i2p1" }, |
300 | {"rvi20u64" ,"rv64i2p1" }, |
301 | }; |
302 | |
303 | static constexpr RISCVProfile SupportedExperimentalProfiles[] = { |
304 | {"rva23s64" ,"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_h1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfhmin1p0_zcb1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0_zvbb1p0_zvfhmin1p0_zvkt1p0_shcounterenw1p0_shgatpa1p0_shtvala1p0_shvsatpa1p0_shvstvala1p0_shvstvecd1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_ssnpm1p0_ssstateen1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0" }, |
305 | {"rva23u64" ,"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfhmin1p0_zcb1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0_zvbb1p0_zvfhmin1p0_zvkt1p0" }, |
306 | {"rvb23s64" ,"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zcb1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0" }, |
307 | {"rvb23u64" ,"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zcb1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0" }, |
308 | {"rvm23u32" ,"rv32i2p1_m2p0_zicbop1p0_zicond1p0_zihintntl1p0_zihintpause2p0_zimop1p0_zce1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0" }, |
309 | }; |
310 | |
311 | #endif // GET_SUPPORTED_PROFILES |
312 | |
313 | #ifndef PROC |
314 | #define PROC(ENUM, NAME, DEFAULT_MARCH, FAST_SCALAR_UNALIGN, FAST_VECTOR_UNALIGN) |
315 | #endif |
316 | |
317 | PROC(GENERIC_RV32, {"generic-rv32" }, {"rv32i2p1" }, 0, 0) |
318 | PROC(GENERIC_RV64, {"generic-rv64" }, {"rv64i2p1" }, 0, 0) |
319 | PROC(ROCKET_RV32, {"rocket-rv32" }, {"rv32i2p1_zicsr2p0_zifencei2p0" }, 0, 0) |
320 | PROC(ROCKET_RV64, {"rocket-rv64" }, {"rv64i2p1_zicsr2p0_zifencei2p0" }, 0, 0) |
321 | PROC(SIFIVE_E20, {"sifive-e20" }, {"rv32i2p1_m2p0_c2p0_zicsr2p0_zifencei2p0" }, 0, 0) |
322 | PROC(SIFIVE_E21, {"sifive-e21" }, {"rv32i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0" }, 0, 0) |
323 | PROC(SIFIVE_E24, {"sifive-e24" }, {"rv32i2p1_m2p0_a2p1_f2p2_c2p0_zifencei2p0" }, 0, 0) |
324 | PROC(SIFIVE_E31, {"sifive-e31" }, {"rv32i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0" }, 0, 0) |
325 | PROC(SIFIVE_E34, {"sifive-e34" }, {"rv32i2p1_m2p0_a2p1_f2p2_c2p0_zifencei2p0" }, 0, 0) |
326 | PROC(SIFIVE_E76, {"sifive-e76" }, {"rv32i2p1_m2p0_a2p1_f2p2_c2p0_zifencei2p0" }, 0, 0) |
327 | PROC(SIFIVE_P450, {"sifive-p450" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zba1p0_zbb1p0_zbs1p0" }, 1, 1) |
328 | PROC(SIFIVE_P670, {"sifive-p670" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zba1p0_zbb1p0_zbs1p0_zvbb1p0_zvknc1p0_zvkng1p0_zvksc1p0_zvksg1p0_zvl128b1p0" }, 1, 1) |
329 | PROC(SIFIVE_S21, {"sifive-s21" }, {"rv64i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0" }, 0, 0) |
330 | PROC(SIFIVE_S51, {"sifive-s51" }, {"rv64i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0" }, 0, 0) |
331 | PROC(SIFIVE_S54, {"sifive-s54" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0" }, 0, 0) |
332 | PROC(SIFIVE_S76, {"sifive-s76" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0_zihintpause2p0" }, 0, 0) |
333 | PROC(SIFIVE_U54, {"sifive-u54" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0" }, 0, 0) |
334 | PROC(SIFIVE_U74, {"sifive-u74" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0" }, 0, 0) |
335 | PROC(SIFIVE_X280, {"sifive-x280" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zifencei2p0_zfh1p0_zba1p0_zbb1p0_zvfh1p0_zvl512b1p0" }, 0, 0) |
336 | PROC(SPACEMIT_X60, {"spacemit-x60" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zifencei2p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfh1p0_zfhmin1p0_zba1p0_zbb1p0_zbc1p0_zbkc1p0_zbs1p0_zkt1p0_zvfh1p0_zvkt1p0_zvl256b1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_sstc1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0" }, 0, 0) |
337 | PROC(SYNTACORE_SCR1_BASE, {"syntacore-scr1-base" }, {"rv32i2p1_c2p0_zicsr2p0_zifencei2p0" }, 0, 0) |
338 | PROC(SYNTACORE_SCR1_MAX, {"syntacore-scr1-max" }, {"rv32i2p1_m2p0_c2p0_zicsr2p0_zifencei2p0" }, 0, 0) |
339 | PROC(SYNTACORE_SCR3_RV32, {"syntacore-scr3-rv32" }, {"rv32i2p1_m2p0_c2p0_zicsr2p0_zifencei2p0" }, 0, 0) |
340 | PROC(SYNTACORE_SCR3_RV64, {"syntacore-scr3-rv64" }, {"rv64i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0" }, 0, 0) |
341 | PROC(VENTANA_VEYRON_V1, {"veyron-v1" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicbom1p0_zicbop1p0_zicboz1p0_zicntr2p0_zicsr2p0_zifencei2p0_zihintpause2p0_zihpm2p0_zba1p0_zbb1p0_zbc1p0_zbs1p0_xventanacondops1p0" }, 0, 0) |
342 | PROC(XIANGSHAN_NANHU, {"xiangshan-nanhu" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicbom1p0_zicboz1p0_zicsr2p0_zifencei2p0_zba1p0_zbb1p0_zbc1p0_zbs1p0_zkn1p0_zksed1p0_zksh1p0_svinval1p0" }, 0, 0) |
343 | |
344 | #undef PROC |
345 | |
346 | #ifndef TUNE_PROC |
347 | #define TUNE_PROC(ENUM, NAME) |
348 | #endif |
349 | |
350 | TUNE_PROC(GENERIC, "generic" ) |
351 | TUNE_PROC(ROCKET, "rocket" ) |
352 | TUNE_PROC(SIFIVE_7, "sifive-7-series" ) |
353 | |
354 | #undef TUNE_PROC |
355 | #ifdef GET_RISCVExtensionBitmaskTable_IMPL |
356 | static const RISCVExtensionBitmask ExtensionBitmask[]={ |
357 | {"a" , 0, 0ULL}, |
358 | {"c" , 0, 2ULL}, |
359 | {"d" , 0, 3ULL}, |
360 | {"f" , 0, 5ULL}, |
361 | {"i" , 0, 8ULL}, |
362 | {"m" , 0, 12ULL}, |
363 | {"v" , 0, 21ULL}, |
364 | {"zacas" , 0, 26ULL}, |
365 | {"zba" , 0, 27ULL}, |
366 | {"zbb" , 0, 28ULL}, |
367 | {"zbc" , 0, 29ULL}, |
368 | {"zbkb" , 0, 30ULL}, |
369 | {"zbkc" , 0, 31ULL}, |
370 | {"zbkx" , 0, 32ULL}, |
371 | {"zbs" , 0, 33ULL}, |
372 | {"zfa" , 0, 34ULL}, |
373 | {"zfh" , 0, 35ULL}, |
374 | {"zfhmin" , 0, 36ULL}, |
375 | {"zicboz" , 0, 37ULL}, |
376 | {"zicond" , 0, 38ULL}, |
377 | {"zihintntl" , 0, 39ULL}, |
378 | {"zihintpause" , 0, 40ULL}, |
379 | {"zknd" , 0, 41ULL}, |
380 | {"zkne" , 0, 42ULL}, |
381 | {"zknh" , 0, 43ULL}, |
382 | {"zksed" , 0, 44ULL}, |
383 | {"zksh" , 0, 45ULL}, |
384 | {"zkt" , 0, 46ULL}, |
385 | {"ztso" , 0, 47ULL}, |
386 | {"zvbb" , 0, 48ULL}, |
387 | {"zvbc" , 0, 49ULL}, |
388 | {"zvfh" , 0, 50ULL}, |
389 | {"zvfhmin" , 0, 51ULL}, |
390 | {"zvkb" , 0, 52ULL}, |
391 | {"zvkg" , 0, 53ULL}, |
392 | {"zvkned" , 0, 54ULL}, |
393 | {"zvknha" , 0, 55ULL}, |
394 | {"zvknhb" , 0, 56ULL}, |
395 | {"zvksed" , 0, 57ULL}, |
396 | {"zvksh" , 0, 58ULL}, |
397 | {"zvkt" , 0, 59ULL}, |
398 | }; |
399 | #endif |
400 | |