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: "q" , .Version: {.Major: 2, .Minor: 2}}, |
15 | {.Name: "sdext" , .Version: {.Major: 1, .Minor: 0}}, |
16 | {.Name: "sdtrig" , .Version: {.Major: 1, .Minor: 0}}, |
17 | {.Name: "sha" , .Version: {.Major: 1, .Minor: 0}}, |
18 | {.Name: "shcounterenw" , .Version: {.Major: 1, .Minor: 0}}, |
19 | {.Name: "shgatpa" , .Version: {.Major: 1, .Minor: 0}}, |
20 | {.Name: "shlcofideleg" , .Version: {.Major: 1, .Minor: 0}}, |
21 | {.Name: "shtvala" , .Version: {.Major: 1, .Minor: 0}}, |
22 | {.Name: "shvsatpa" , .Version: {.Major: 1, .Minor: 0}}, |
23 | {.Name: "shvstvala" , .Version: {.Major: 1, .Minor: 0}}, |
24 | {.Name: "shvstvecd" , .Version: {.Major: 1, .Minor: 0}}, |
25 | {.Name: "smaia" , .Version: {.Major: 1, .Minor: 0}}, |
26 | {.Name: "smcdeleg" , .Version: {.Major: 1, .Minor: 0}}, |
27 | {.Name: "smcntrpmf" , .Version: {.Major: 1, .Minor: 0}}, |
28 | {.Name: "smcsrind" , .Version: {.Major: 1, .Minor: 0}}, |
29 | {.Name: "smdbltrp" , .Version: {.Major: 1, .Minor: 0}}, |
30 | {.Name: "smepmp" , .Version: {.Major: 1, .Minor: 0}}, |
31 | {.Name: "smmpm" , .Version: {.Major: 1, .Minor: 0}}, |
32 | {.Name: "smnpm" , .Version: {.Major: 1, .Minor: 0}}, |
33 | {.Name: "smrnmi" , .Version: {.Major: 1, .Minor: 0}}, |
34 | {.Name: "smstateen" , .Version: {.Major: 1, .Minor: 0}}, |
35 | {.Name: "ssaia" , .Version: {.Major: 1, .Minor: 0}}, |
36 | {.Name: "ssccfg" , .Version: {.Major: 1, .Minor: 0}}, |
37 | {.Name: "ssccptr" , .Version: {.Major: 1, .Minor: 0}}, |
38 | {.Name: "sscofpmf" , .Version: {.Major: 1, .Minor: 0}}, |
39 | {.Name: "sscounterenw" , .Version: {.Major: 1, .Minor: 0}}, |
40 | {.Name: "sscsrind" , .Version: {.Major: 1, .Minor: 0}}, |
41 | {.Name: "ssdbltrp" , .Version: {.Major: 1, .Minor: 0}}, |
42 | {.Name: "ssnpm" , .Version: {.Major: 1, .Minor: 0}}, |
43 | {.Name: "sspm" , .Version: {.Major: 1, .Minor: 0}}, |
44 | {.Name: "ssqosid" , .Version: {.Major: 1, .Minor: 0}}, |
45 | {.Name: "ssstateen" , .Version: {.Major: 1, .Minor: 0}}, |
46 | {.Name: "ssstrict" , .Version: {.Major: 1, .Minor: 0}}, |
47 | {.Name: "sstc" , .Version: {.Major: 1, .Minor: 0}}, |
48 | {.Name: "sstvala" , .Version: {.Major: 1, .Minor: 0}}, |
49 | {.Name: "sstvecd" , .Version: {.Major: 1, .Minor: 0}}, |
50 | {.Name: "ssu64xl" , .Version: {.Major: 1, .Minor: 0}}, |
51 | {.Name: "supm" , .Version: {.Major: 1, .Minor: 0}}, |
52 | {.Name: "svade" , .Version: {.Major: 1, .Minor: 0}}, |
53 | {.Name: "svadu" , .Version: {.Major: 1, .Minor: 0}}, |
54 | {.Name: "svbare" , .Version: {.Major: 1, .Minor: 0}}, |
55 | {.Name: "svinval" , .Version: {.Major: 1, .Minor: 0}}, |
56 | {.Name: "svnapot" , .Version: {.Major: 1, .Minor: 0}}, |
57 | {.Name: "svpbmt" , .Version: {.Major: 1, .Minor: 0}}, |
58 | {.Name: "svvptc" , .Version: {.Major: 1, .Minor: 0}}, |
59 | {.Name: "v" , .Version: {.Major: 1, .Minor: 0}}, |
60 | {.Name: "xandesperf" , .Version: {.Major: 5, .Minor: 0}}, |
61 | {.Name: "xandesvbfhcvt" , .Version: {.Major: 5, .Minor: 0}}, |
62 | {.Name: "xandesvdot" , .Version: {.Major: 5, .Minor: 0}}, |
63 | {.Name: "xandesvpackfph" , .Version: {.Major: 5, .Minor: 0}}, |
64 | {.Name: "xcvalu" , .Version: {.Major: 1, .Minor: 0}}, |
65 | {.Name: "xcvbi" , .Version: {.Major: 1, .Minor: 0}}, |
66 | {.Name: "xcvbitmanip" , .Version: {.Major: 1, .Minor: 0}}, |
67 | {.Name: "xcvelw" , .Version: {.Major: 1, .Minor: 0}}, |
68 | {.Name: "xcvmac" , .Version: {.Major: 1, .Minor: 0}}, |
69 | {.Name: "xcvmem" , .Version: {.Major: 1, .Minor: 0}}, |
70 | {.Name: "xcvsimd" , .Version: {.Major: 1, .Minor: 0}}, |
71 | {.Name: "xmipscbop" , .Version: {.Major: 1, .Minor: 0}}, |
72 | {.Name: "xmipscmov" , .Version: {.Major: 1, .Minor: 0}}, |
73 | {.Name: "xmipslsp" , .Version: {.Major: 1, .Minor: 0}}, |
74 | {.Name: "xsfcease" , .Version: {.Major: 1, .Minor: 0}}, |
75 | {.Name: "xsfmm128t" , .Version: {.Major: 0, .Minor: 6}}, |
76 | {.Name: "xsfmm16t" , .Version: {.Major: 0, .Minor: 6}}, |
77 | {.Name: "xsfmm32a16f" , .Version: {.Major: 0, .Minor: 6}}, |
78 | {.Name: "xsfmm32a32f" , .Version: {.Major: 0, .Minor: 6}}, |
79 | {.Name: "xsfmm32a8f" , .Version: {.Major: 0, .Minor: 6}}, |
80 | {.Name: "xsfmm32a8i" , .Version: {.Major: 0, .Minor: 6}}, |
81 | {.Name: "xsfmm32t" , .Version: {.Major: 0, .Minor: 6}}, |
82 | {.Name: "xsfmm64a64f" , .Version: {.Major: 0, .Minor: 6}}, |
83 | {.Name: "xsfmm64t" , .Version: {.Major: 0, .Minor: 6}}, |
84 | {.Name: "xsfmmbase" , .Version: {.Major: 0, .Minor: 6}}, |
85 | {.Name: "xsfvcp" , .Version: {.Major: 1, .Minor: 0}}, |
86 | {.Name: "xsfvfnrclipxfqf" , .Version: {.Major: 1, .Minor: 0}}, |
87 | {.Name: "xsfvfwmaccqqq" , .Version: {.Major: 1, .Minor: 0}}, |
88 | {.Name: "xsfvqmaccdod" , .Version: {.Major: 1, .Minor: 0}}, |
89 | {.Name: "xsfvqmaccqoq" , .Version: {.Major: 1, .Minor: 0}}, |
90 | {.Name: "xsifivecdiscarddlone" , .Version: {.Major: 1, .Minor: 0}}, |
91 | {.Name: "xsifivecflushdlone" , .Version: {.Major: 1, .Minor: 0}}, |
92 | {.Name: "xtheadba" , .Version: {.Major: 1, .Minor: 0}}, |
93 | {.Name: "xtheadbb" , .Version: {.Major: 1, .Minor: 0}}, |
94 | {.Name: "xtheadbs" , .Version: {.Major: 1, .Minor: 0}}, |
95 | {.Name: "xtheadcmo" , .Version: {.Major: 1, .Minor: 0}}, |
96 | {.Name: "xtheadcondmov" , .Version: {.Major: 1, .Minor: 0}}, |
97 | {.Name: "xtheadfmemidx" , .Version: {.Major: 1, .Minor: 0}}, |
98 | {.Name: "xtheadmac" , .Version: {.Major: 1, .Minor: 0}}, |
99 | {.Name: "xtheadmemidx" , .Version: {.Major: 1, .Minor: 0}}, |
100 | {.Name: "xtheadmempair" , .Version: {.Major: 1, .Minor: 0}}, |
101 | {.Name: "xtheadsync" , .Version: {.Major: 1, .Minor: 0}}, |
102 | {.Name: "xtheadvdot" , .Version: {.Major: 1, .Minor: 0}}, |
103 | {.Name: "xventanacondops" , .Version: {.Major: 1, .Minor: 0}}, |
104 | {.Name: "xwchc" , .Version: {.Major: 2, .Minor: 2}}, |
105 | {.Name: "za128rs" , .Version: {.Major: 1, .Minor: 0}}, |
106 | {.Name: "za64rs" , .Version: {.Major: 1, .Minor: 0}}, |
107 | {.Name: "zaamo" , .Version: {.Major: 1, .Minor: 0}}, |
108 | {.Name: "zabha" , .Version: {.Major: 1, .Minor: 0}}, |
109 | {.Name: "zacas" , .Version: {.Major: 1, .Minor: 0}}, |
110 | {.Name: "zalrsc" , .Version: {.Major: 1, .Minor: 0}}, |
111 | {.Name: "zama16b" , .Version: {.Major: 1, .Minor: 0}}, |
112 | {.Name: "zawrs" , .Version: {.Major: 1, .Minor: 0}}, |
113 | {.Name: "zba" , .Version: {.Major: 1, .Minor: 0}}, |
114 | {.Name: "zbb" , .Version: {.Major: 1, .Minor: 0}}, |
115 | {.Name: "zbc" , .Version: {.Major: 1, .Minor: 0}}, |
116 | {.Name: "zbkb" , .Version: {.Major: 1, .Minor: 0}}, |
117 | {.Name: "zbkc" , .Version: {.Major: 1, .Minor: 0}}, |
118 | {.Name: "zbkx" , .Version: {.Major: 1, .Minor: 0}}, |
119 | {.Name: "zbs" , .Version: {.Major: 1, .Minor: 0}}, |
120 | {.Name: "zca" , .Version: {.Major: 1, .Minor: 0}}, |
121 | {.Name: "zcb" , .Version: {.Major: 1, .Minor: 0}}, |
122 | {.Name: "zcd" , .Version: {.Major: 1, .Minor: 0}}, |
123 | {.Name: "zce" , .Version: {.Major: 1, .Minor: 0}}, |
124 | {.Name: "zcf" , .Version: {.Major: 1, .Minor: 0}}, |
125 | {.Name: "zclsd" , .Version: {.Major: 1, .Minor: 0}}, |
126 | {.Name: "zcmop" , .Version: {.Major: 1, .Minor: 0}}, |
127 | {.Name: "zcmp" , .Version: {.Major: 1, .Minor: 0}}, |
128 | {.Name: "zcmt" , .Version: {.Major: 1, .Minor: 0}}, |
129 | {.Name: "zdinx" , .Version: {.Major: 1, .Minor: 0}}, |
130 | {.Name: "zfa" , .Version: {.Major: 1, .Minor: 0}}, |
131 | {.Name: "zfbfmin" , .Version: {.Major: 1, .Minor: 0}}, |
132 | {.Name: "zfh" , .Version: {.Major: 1, .Minor: 0}}, |
133 | {.Name: "zfhmin" , .Version: {.Major: 1, .Minor: 0}}, |
134 | {.Name: "zfinx" , .Version: {.Major: 1, .Minor: 0}}, |
135 | {.Name: "zhinx" , .Version: {.Major: 1, .Minor: 0}}, |
136 | {.Name: "zhinxmin" , .Version: {.Major: 1, .Minor: 0}}, |
137 | {.Name: "zic64b" , .Version: {.Major: 1, .Minor: 0}}, |
138 | {.Name: "zicbom" , .Version: {.Major: 1, .Minor: 0}}, |
139 | {.Name: "zicbop" , .Version: {.Major: 1, .Minor: 0}}, |
140 | {.Name: "zicboz" , .Version: {.Major: 1, .Minor: 0}}, |
141 | {.Name: "ziccamoa" , .Version: {.Major: 1, .Minor: 0}}, |
142 | {.Name: "ziccamoc" , .Version: {.Major: 1, .Minor: 0}}, |
143 | {.Name: "ziccif" , .Version: {.Major: 1, .Minor: 0}}, |
144 | {.Name: "zicclsm" , .Version: {.Major: 1, .Minor: 0}}, |
145 | {.Name: "ziccrse" , .Version: {.Major: 1, .Minor: 0}}, |
146 | {.Name: "zicntr" , .Version: {.Major: 2, .Minor: 0}}, |
147 | {.Name: "zicond" , .Version: {.Major: 1, .Minor: 0}}, |
148 | {.Name: "zicsr" , .Version: {.Major: 2, .Minor: 0}}, |
149 | {.Name: "zifencei" , .Version: {.Major: 2, .Minor: 0}}, |
150 | {.Name: "zihintntl" , .Version: {.Major: 1, .Minor: 0}}, |
151 | {.Name: "zihintpause" , .Version: {.Major: 2, .Minor: 0}}, |
152 | {.Name: "zihpm" , .Version: {.Major: 2, .Minor: 0}}, |
153 | {.Name: "zilsd" , .Version: {.Major: 1, .Minor: 0}}, |
154 | {.Name: "zimop" , .Version: {.Major: 1, .Minor: 0}}, |
155 | {.Name: "zk" , .Version: {.Major: 1, .Minor: 0}}, |
156 | {.Name: "zkn" , .Version: {.Major: 1, .Minor: 0}}, |
157 | {.Name: "zknd" , .Version: {.Major: 1, .Minor: 0}}, |
158 | {.Name: "zkne" , .Version: {.Major: 1, .Minor: 0}}, |
159 | {.Name: "zknh" , .Version: {.Major: 1, .Minor: 0}}, |
160 | {.Name: "zkr" , .Version: {.Major: 1, .Minor: 0}}, |
161 | {.Name: "zks" , .Version: {.Major: 1, .Minor: 0}}, |
162 | {.Name: "zksed" , .Version: {.Major: 1, .Minor: 0}}, |
163 | {.Name: "zksh" , .Version: {.Major: 1, .Minor: 0}}, |
164 | {.Name: "zkt" , .Version: {.Major: 1, .Minor: 0}}, |
165 | {.Name: "zmmul" , .Version: {.Major: 1, .Minor: 0}}, |
166 | {.Name: "ztso" , .Version: {.Major: 1, .Minor: 0}}, |
167 | {.Name: "zvbb" , .Version: {.Major: 1, .Minor: 0}}, |
168 | {.Name: "zvbc" , .Version: {.Major: 1, .Minor: 0}}, |
169 | {.Name: "zve32f" , .Version: {.Major: 1, .Minor: 0}}, |
170 | {.Name: "zve32x" , .Version: {.Major: 1, .Minor: 0}}, |
171 | {.Name: "zve64d" , .Version: {.Major: 1, .Minor: 0}}, |
172 | {.Name: "zve64f" , .Version: {.Major: 1, .Minor: 0}}, |
173 | {.Name: "zve64x" , .Version: {.Major: 1, .Minor: 0}}, |
174 | {.Name: "zvfbfmin" , .Version: {.Major: 1, .Minor: 0}}, |
175 | {.Name: "zvfbfwma" , .Version: {.Major: 1, .Minor: 0}}, |
176 | {.Name: "zvfh" , .Version: {.Major: 1, .Minor: 0}}, |
177 | {.Name: "zvfhmin" , .Version: {.Major: 1, .Minor: 0}}, |
178 | {.Name: "zvkb" , .Version: {.Major: 1, .Minor: 0}}, |
179 | {.Name: "zvkg" , .Version: {.Major: 1, .Minor: 0}}, |
180 | {.Name: "zvkn" , .Version: {.Major: 1, .Minor: 0}}, |
181 | {.Name: "zvknc" , .Version: {.Major: 1, .Minor: 0}}, |
182 | {.Name: "zvkned" , .Version: {.Major: 1, .Minor: 0}}, |
183 | {.Name: "zvkng" , .Version: {.Major: 1, .Minor: 0}}, |
184 | {.Name: "zvknha" , .Version: {.Major: 1, .Minor: 0}}, |
185 | {.Name: "zvknhb" , .Version: {.Major: 1, .Minor: 0}}, |
186 | {.Name: "zvks" , .Version: {.Major: 1, .Minor: 0}}, |
187 | {.Name: "zvksc" , .Version: {.Major: 1, .Minor: 0}}, |
188 | {.Name: "zvksed" , .Version: {.Major: 1, .Minor: 0}}, |
189 | {.Name: "zvksg" , .Version: {.Major: 1, .Minor: 0}}, |
190 | {.Name: "zvksh" , .Version: {.Major: 1, .Minor: 0}}, |
191 | {.Name: "zvkt" , .Version: {.Major: 1, .Minor: 0}}, |
192 | {.Name: "zvl1024b" , .Version: {.Major: 1, .Minor: 0}}, |
193 | {.Name: "zvl128b" , .Version: {.Major: 1, .Minor: 0}}, |
194 | {.Name: "zvl16384b" , .Version: {.Major: 1, .Minor: 0}}, |
195 | {.Name: "zvl2048b" , .Version: {.Major: 1, .Minor: 0}}, |
196 | {.Name: "zvl256b" , .Version: {.Major: 1, .Minor: 0}}, |
197 | {.Name: "zvl32768b" , .Version: {.Major: 1, .Minor: 0}}, |
198 | {.Name: "zvl32b" , .Version: {.Major: 1, .Minor: 0}}, |
199 | {.Name: "zvl4096b" , .Version: {.Major: 1, .Minor: 0}}, |
200 | {.Name: "zvl512b" , .Version: {.Major: 1, .Minor: 0}}, |
201 | {.Name: "zvl64b" , .Version: {.Major: 1, .Minor: 0}}, |
202 | {.Name: "zvl65536b" , .Version: {.Major: 1, .Minor: 0}}, |
203 | {.Name: "zvl8192b" , .Version: {.Major: 1, .Minor: 0}}, |
204 | }; |
205 | |
206 | static const RISCVSupportedExtension SupportedExperimentalExtensions[] = { |
207 | {.Name: "p" , .Version: {.Major: 0, .Minor: 14}}, |
208 | {.Name: "smctr" , .Version: {.Major: 1, .Minor: 0}}, |
209 | {.Name: "ssctr" , .Version: {.Major: 1, .Minor: 0}}, |
210 | {.Name: "svukte" , .Version: {.Major: 0, .Minor: 3}}, |
211 | {.Name: "xqccmp" , .Version: {.Major: 0, .Minor: 3}}, |
212 | {.Name: "xqcia" , .Version: {.Major: 0, .Minor: 7}}, |
213 | {.Name: "xqciac" , .Version: {.Major: 0, .Minor: 3}}, |
214 | {.Name: "xqcibi" , .Version: {.Major: 0, .Minor: 2}}, |
215 | {.Name: "xqcibm" , .Version: {.Major: 0, .Minor: 8}}, |
216 | {.Name: "xqcicli" , .Version: {.Major: 0, .Minor: 3}}, |
217 | {.Name: "xqcicm" , .Version: {.Major: 0, .Minor: 2}}, |
218 | {.Name: "xqcics" , .Version: {.Major: 0, .Minor: 2}}, |
219 | {.Name: "xqcicsr" , .Version: {.Major: 0, .Minor: 4}}, |
220 | {.Name: "xqciint" , .Version: {.Major: 0, .Minor: 10}}, |
221 | {.Name: "xqciio" , .Version: {.Major: 0, .Minor: 1}}, |
222 | {.Name: "xqcilb" , .Version: {.Major: 0, .Minor: 2}}, |
223 | {.Name: "xqcili" , .Version: {.Major: 0, .Minor: 2}}, |
224 | {.Name: "xqcilia" , .Version: {.Major: 0, .Minor: 2}}, |
225 | {.Name: "xqcilo" , .Version: {.Major: 0, .Minor: 3}}, |
226 | {.Name: "xqcilsm" , .Version: {.Major: 0, .Minor: 6}}, |
227 | {.Name: "xqcisim" , .Version: {.Major: 0, .Minor: 2}}, |
228 | {.Name: "xqcisls" , .Version: {.Major: 0, .Minor: 2}}, |
229 | {.Name: "xqcisync" , .Version: {.Major: 0, .Minor: 3}}, |
230 | {.Name: "xrivosvisni" , .Version: {.Major: 0, .Minor: 1}}, |
231 | {.Name: "xrivosvizip" , .Version: {.Major: 0, .Minor: 1}}, |
232 | {.Name: "xsfmclic" , .Version: {.Major: 0, .Minor: 1}}, |
233 | {.Name: "xsfsclic" , .Version: {.Major: 0, .Minor: 1}}, |
234 | {.Name: "zalasr" , .Version: {.Major: 0, .Minor: 1}}, |
235 | {.Name: "zicfilp" , .Version: {.Major: 1, .Minor: 0}}, |
236 | {.Name: "zicfiss" , .Version: {.Major: 1, .Minor: 0}}, |
237 | {.Name: "zvbc32e" , .Version: {.Major: 0, .Minor: 7}}, |
238 | {.Name: "zvkgs" , .Version: {.Major: 0, .Minor: 7}}, |
239 | {.Name: "zvqdotq" , .Version: {.Major: 0, .Minor: 0}}, |
240 | }; |
241 | |
242 | #endif // GET_SUPPORTED_EXTENSIONS |
243 | |
244 | #ifdef GET_IMPLIED_EXTENSIONS |
245 | #undef GET_IMPLIED_EXTENSIONS |
246 | |
247 | |
248 | static constexpr ImpliedExtsEntry ImpliedExts[] = { |
249 | { {"a" }, "zaamo" }, |
250 | { {"a" }, "zalrsc" }, |
251 | { {"b" }, "zba" }, |
252 | { {"b" }, "zbb" }, |
253 | { {"b" }, "zbs" }, |
254 | { {"c" }, "zca" }, |
255 | { {"d" }, "f" }, |
256 | { {"f" }, "zicsr" }, |
257 | { {"m" }, "zmmul" }, |
258 | { {"q" }, "d" }, |
259 | { {"sha" }, "h" }, |
260 | { {"sha" }, "ssstateen" }, |
261 | { {"sha" }, "shcounterenw" }, |
262 | { {"sha" }, "shvstvala" }, |
263 | { {"sha" }, "shtvala" }, |
264 | { {"sha" }, "shvstvecd" }, |
265 | { {"sha" }, "shvsatpa" }, |
266 | { {"sha" }, "shgatpa" }, |
267 | { {"smctr" }, "sscsrind" }, |
268 | { {"smdbltrp" }, "zicsr" }, |
269 | { {"ssctr" }, "sscsrind" }, |
270 | { {"ssdbltrp" }, "zicsr" }, |
271 | { {"v" }, "zvl128b" }, |
272 | { {"v" }, "zve64d" }, |
273 | { {"xandesvbfhcvt" }, "zve32f" }, |
274 | { {"xandesvdot" }, "zve32x" }, |
275 | { {"xandesvpackfph" }, "f" }, |
276 | { {"xqccmp" }, "zca" }, |
277 | { {"xqciac" }, "zca" }, |
278 | { {"xqcibi" }, "zca" }, |
279 | { {"xqcibm" }, "zca" }, |
280 | { {"xqcicm" }, "zca" }, |
281 | { {"xqciint" }, "zca" }, |
282 | { {"xqcilb" }, "zca" }, |
283 | { {"xqcili" }, "zca" }, |
284 | { {"xqcilia" }, "zca" }, |
285 | { {"xqcilo" }, "zca" }, |
286 | { {"xqcisim" }, "zca" }, |
287 | { {"xqcisync" }, "zca" }, |
288 | { {"xsfmm128t" }, "xsfmmbase" }, |
289 | { {"xsfmm128t" }, "zvl512b" }, |
290 | { {"xsfmm16t" }, "xsfmmbase" }, |
291 | { {"xsfmm16t" }, "zvl64b" }, |
292 | { {"xsfmm32a16f" }, "xsfmmbase" }, |
293 | { {"xsfmm32a16f" }, "zve32f" }, |
294 | { {"xsfmm32a32f" }, "xsfmmbase" }, |
295 | { {"xsfmm32a32f" }, "zve32f" }, |
296 | { {"xsfmm32a8f" }, "xsfmmbase" }, |
297 | { {"xsfmm32a8f" }, "zve32f" }, |
298 | { {"xsfmm32a8i" }, "xsfmmbase" }, |
299 | { {"xsfmm32t" }, "xsfmmbase" }, |
300 | { {"xsfmm32t" }, "zvl128b" }, |
301 | { {"xsfmm64a64f" }, "xsfmmbase" }, |
302 | { {"xsfmm64a64f" }, "zve64d" }, |
303 | { {"xsfmm64t" }, "xsfmmbase" }, |
304 | { {"xsfmm64t" }, "zvl256b" }, |
305 | { {"xsfmmbase" }, "zve32x" }, |
306 | { {"xsfvcp" }, "zve32x" }, |
307 | { {"xsfvfnrclipxfqf" }, "zve32f" }, |
308 | { {"xsfvfwmaccqqq" }, "zvfbfmin" }, |
309 | { {"xsfvqmaccdod" }, "zve32x" }, |
310 | { {"xsfvqmaccqoq" }, "zve32x" }, |
311 | { {"xtheadvdot" }, "v" }, |
312 | { {"xwchc" }, "zca" }, |
313 | { {"zabha" }, "zaamo" }, |
314 | { {"zacas" }, "zaamo" }, |
315 | { {"zcb" }, "zca" }, |
316 | { {"zcd" }, "d" }, |
317 | { {"zcd" }, "zca" }, |
318 | { {"zce" }, "zca" }, |
319 | { {"zce" }, "zcb" }, |
320 | { {"zce" }, "zcmp" }, |
321 | { {"zce" }, "zcmt" }, |
322 | { {"zcf" }, "f" }, |
323 | { {"zcf" }, "zca" }, |
324 | { {"zclsd" }, "zilsd" }, |
325 | { {"zclsd" }, "zca" }, |
326 | { {"zcmop" }, "zca" }, |
327 | { {"zcmp" }, "zca" }, |
328 | { {"zcmt" }, "zca" }, |
329 | { {"zcmt" }, "zicsr" }, |
330 | { {"zdinx" }, "zfinx" }, |
331 | { {"zfa" }, "f" }, |
332 | { {"zfbfmin" }, "f" }, |
333 | { {"zfh" }, "zfhmin" }, |
334 | { {"zfhmin" }, "f" }, |
335 | { {"zfinx" }, "zicsr" }, |
336 | { {"zhinx" }, "zhinxmin" }, |
337 | { {"zhinxmin" }, "zfinx" }, |
338 | { {"zicfilp" }, "zicsr" }, |
339 | { {"zicfiss" }, "zicsr" }, |
340 | { {"zicfiss" }, "zimop" }, |
341 | { {"zicntr" }, "zicsr" }, |
342 | { {"zihpm" }, "zicsr" }, |
343 | { {"zk" }, "zkn" }, |
344 | { {"zk" }, "zkr" }, |
345 | { {"zk" }, "zkt" }, |
346 | { {"zkn" }, "zbkb" }, |
347 | { {"zkn" }, "zbkc" }, |
348 | { {"zkn" }, "zbkx" }, |
349 | { {"zkn" }, "zkne" }, |
350 | { {"zkn" }, "zknd" }, |
351 | { {"zkn" }, "zknh" }, |
352 | { {"zks" }, "zbkb" }, |
353 | { {"zks" }, "zbkc" }, |
354 | { {"zks" }, "zbkx" }, |
355 | { {"zks" }, "zksed" }, |
356 | { {"zks" }, "zksh" }, |
357 | { {"zvbb" }, "zvkb" }, |
358 | { {"zvbc" }, "zve64x" }, |
359 | { {"zvbc32e" }, "zve32x" }, |
360 | { {"zve32f" }, "zve32x" }, |
361 | { {"zve32f" }, "f" }, |
362 | { {"zve32x" }, "zicsr" }, |
363 | { {"zve32x" }, "zvl32b" }, |
364 | { {"zve64d" }, "zve64f" }, |
365 | { {"zve64d" }, "d" }, |
366 | { {"zve64f" }, "zve32f" }, |
367 | { {"zve64f" }, "zve64x" }, |
368 | { {"zve64x" }, "zve32x" }, |
369 | { {"zve64x" }, "zvl64b" }, |
370 | { {"zvfbfmin" }, "zve32f" }, |
371 | { {"zvfbfwma" }, "zvfbfmin" }, |
372 | { {"zvfbfwma" }, "zfbfmin" }, |
373 | { {"zvfh" }, "zvfhmin" }, |
374 | { {"zvfh" }, "zfhmin" }, |
375 | { {"zvfhmin" }, "zve32f" }, |
376 | { {"zvkb" }, "zve32x" }, |
377 | { {"zvkg" }, "zve32x" }, |
378 | { {"zvkgs" }, "zvkg" }, |
379 | { {"zvkn" }, "zvkned" }, |
380 | { {"zvkn" }, "zvknhb" }, |
381 | { {"zvkn" }, "zvkb" }, |
382 | { {"zvkn" }, "zvkt" }, |
383 | { {"zvknc" }, "zvkn" }, |
384 | { {"zvknc" }, "zvbc" }, |
385 | { {"zvkned" }, "zve32x" }, |
386 | { {"zvkng" }, "zvkn" }, |
387 | { {"zvkng" }, "zvkg" }, |
388 | { {"zvknha" }, "zve32x" }, |
389 | { {"zvknhb" }, "zve64x" }, |
390 | { {"zvks" }, "zvksed" }, |
391 | { {"zvks" }, "zvksh" }, |
392 | { {"zvks" }, "zvkb" }, |
393 | { {"zvks" }, "zvkt" }, |
394 | { {"zvksc" }, "zvks" }, |
395 | { {"zvksc" }, "zvbc" }, |
396 | { {"zvksed" }, "zve32x" }, |
397 | { {"zvksg" }, "zvks" }, |
398 | { {"zvksg" }, "zvkg" }, |
399 | { {"zvksh" }, "zve32x" }, |
400 | { {"zvl1024b" }, "zvl512b" }, |
401 | { {"zvl128b" }, "zvl64b" }, |
402 | { {"zvl16384b" }, "zvl8192b" }, |
403 | { {"zvl2048b" }, "zvl1024b" }, |
404 | { {"zvl256b" }, "zvl128b" }, |
405 | { {"zvl32768b" }, "zvl16384b" }, |
406 | { {"zvl4096b" }, "zvl2048b" }, |
407 | { {"zvl512b" }, "zvl256b" }, |
408 | { {"zvl64b" }, "zvl32b" }, |
409 | { {"zvl65536b" }, "zvl32768b" }, |
410 | { {"zvl8192b" }, "zvl4096b" }, |
411 | { {"zvqdotq" }, "zve32x" }, |
412 | }; |
413 | |
414 | #endif // GET_IMPLIED_EXTENSIONS |
415 | |
416 | #ifdef GET_SUPPORTED_PROFILES |
417 | #undef GET_SUPPORTED_PROFILES |
418 | |
419 | static constexpr RISCVProfile SupportedProfiles[] = { |
420 | {"rva20s64" ,"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zifencei2p0_za128rs1p0_ssccptr1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0" }, |
421 | {"rva20u64" ,"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_za128rs1p0" }, |
422 | {"rva22s64" ,"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zifencei2p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0_ssccptr1p0_sscounterenw1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0_svinval1p0_svpbmt1p0" }, |
423 | {"rva22u64" ,"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0" }, |
424 | {"rva23s64" ,"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfhmin1p0_zcb1p0_zcmop1p0_zkt1p0_zvbb1p0_zvfhmin1p0_zvkt1p0_sha1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_ssnpm1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_supm1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0" }, |
425 | {"rva23u64" ,"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfhmin1p0_zcb1p0_zcmop1p0_zkt1p0_zvbb1p0_zvfhmin1p0_zvkt1p0_supm1p0" }, |
426 | {"rvb23s64" ,"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zcb1p0_zcmop1p0_zkt1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0" }, |
427 | {"rvb23u64" ,"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zcb1p0_zcmop1p0_zkt1p0" }, |
428 | {"rvi20u32" ,"rv32i2p1" }, |
429 | {"rvi20u64" ,"rv64i2p1" }, |
430 | }; |
431 | |
432 | static constexpr RISCVProfile SupportedExperimentalProfiles[] = { |
433 | {"rvm23u32" ,"rv32i2p1_m2p0_b1p0_zicbop1p0_zicond1p0_zihintntl1p0_zihintpause2p0_zimop1p0_zce1p0_zcmop1p0" }, |
434 | }; |
435 | |
436 | #endif // GET_SUPPORTED_PROFILES |
437 | |
438 | #ifndef PROC |
439 | #define PROC(ENUM, NAME, DEFAULT_MARCH, FAST_SCALAR_UNALIGN, FAST_VECTOR_UNALIGN, MVENDORID, MARCHID, MIMPID) |
440 | #endif |
441 | |
442 | PROC(ANDES_A25, {"andes-a25" }, {"rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xandesperf5p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
443 | PROC(ANDES_A45, {"andes-a45" }, {"rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xandesperf5p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
444 | PROC(ANDES_AX25, {"andes-ax25" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xandesperf5p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
445 | PROC(ANDES_AX45, {"andes-ax45" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xandesperf5p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
446 | PROC(ANDES_AX45MPV, {"andes-ax45mpv" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zicsr2p0_zifencei2p0_xandesperf5p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
447 | PROC(ANDES_N45, {"andes-n45" }, {"rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xandesperf5p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
448 | PROC(ANDES_NX45, {"andes-nx45" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_xandesperf5p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
449 | PROC(GENERIC_RV32, {"generic-rv32" }, {"rv32i2p1" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
450 | PROC(GENERIC_RV64, {"generic-rv64" }, {"rv64i2p1" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
451 | PROC(MIPS_P8700, {"mips-p8700" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zba1p0_zbb1p0_xmipscbop1p0_xmipscmov1p0_xmipslsp1p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
452 | PROC(ROCKET_RV32, {"rocket-rv32" }, {"rv32i2p1_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
453 | PROC(ROCKET_RV64, {"rocket-rv64" }, {"rv64i2p1_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
454 | PROC(RP2350_HAZARD3, {"rp2350-hazard3" }, {"rv32i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0_zcb1p0_zcmp1p0_zba1p0_zbb1p0_zbkb1p0_zbs1p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
455 | PROC(SIFIVE_E20, {"sifive-e20" }, {"rv32i2p1_m2p0_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
456 | PROC(SIFIVE_E21, {"sifive-e21" }, {"rv32i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
457 | PROC(SIFIVE_E24, {"sifive-e24" }, {"rv32i2p1_m2p0_a2p1_f2p2_c2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
458 | PROC(SIFIVE_E31, {"sifive-e31" }, {"rv32i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
459 | PROC(SIFIVE_E34, {"sifive-e34" }, {"rv32i2p1_m2p0_a2p1_f2p2_c2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
460 | PROC(SIFIVE_E76, {"sifive-e76" }, {"rv32i2p1_m2p0_a2p1_f2p2_c2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
461 | PROC(SIFIVE_P450, {"sifive-p450" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0" }, 1, 1, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
462 | PROC(SIFIVE_P470, {"sifive-p470" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0_zvbb1p0_zvknc1p0_zvkng1p0_zvksc1p0_zvksg1p0_zvl128b1p0_xsifivecdiscarddlone1p0_xsifivecflushdlone1p0" }, 1, 1, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
463 | PROC(SIFIVE_P550, {"sifive-p550" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0_zba1p0_zbb1p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
464 | PROC(SIFIVE_P670, {"sifive-p670" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfhmin1p0_zkt1p0_zvbb1p0_zvknc1p0_zvkng1p0_zvksc1p0_zvksg1p0_zvl128b1p0" }, 1, 1, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
465 | PROC(SIFIVE_P870, {"sifive-p870" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zama16b1p0_zawrs1p0_zfa1p0_zfh1p0_zfhmin1p0_zcb1p0_zcmop1p0_zkr1p0_zkt1p0_zvbb1p0_zvfbfmin1p0_zvfbfwma1p0_zvfh1p0_zvfhmin1p0_zvknc1p0_zvkng1p0_zvksc1p0_zvksg1p0_zvkt1p0_zvl128b1p0_supm1p0" }, 1, 1, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
466 | PROC(SIFIVE_S21, {"sifive-s21" }, {"rv64i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
467 | PROC(SIFIVE_S51, {"sifive-s51" }, {"rv64i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
468 | PROC(SIFIVE_S54, {"sifive-s54" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
469 | PROC(SIFIVE_S76, {"sifive-s76" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0_zihintpause2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
470 | PROC(SIFIVE_U54, {"sifive-u54" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
471 | PROC(SIFIVE_U74, {"sifive-u74" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
472 | PROC(SIFIVE_X280, {"sifive-x280" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zifencei2p0_zfh1p0_zba1p0_zbb1p0_zvfh1p0_zvl512b1p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
473 | PROC(SIFIVE_X390, {"sifive-x390" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_ziccrse1p0_zicfilp1p0_zicfiss1p0_zicntr2p0_zicond1p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfh1p0_zcb1p0_zcmop1p0_zkr1p0_zkt1p0_zvbb1p0_zvfbfmin1p0_zvfbfwma1p0_zvfh1p0_zvkt1p0_zvl1024b1p0_xsifivecdiscarddlone1p0_xsifivecflushdlone1p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
474 | PROC(SPACEMIT_X60, {"spacemit-x60" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintpause2p0_zihpm2p0_za64rs1p0_zfh1p0_zfhmin1p0_zbc1p0_zbkc1p0_zkt1p0_zvfh1p0_zvkt1p0_zvl256b1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_sstc1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0" }, 1, 0, 0x00000710, 0x8000000058000001, 0x1000000049772200) |
475 | PROC(SYNTACORE_SCR1_BASE, {"syntacore-scr1-base" }, {"rv32i2p1_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
476 | PROC(SYNTACORE_SCR1_MAX, {"syntacore-scr1-max" }, {"rv32i2p1_m2p0_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
477 | PROC(SYNTACORE_SCR3_RV32, {"syntacore-scr3-rv32" }, {"rv32i2p1_m2p0_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
478 | PROC(SYNTACORE_SCR3_RV64, {"syntacore-scr3-rv64" }, {"rv64i2p1_m2p0_a2p1_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
479 | PROC(SYNTACORE_SCR4_RV32, {"syntacore-scr4-rv32" }, {"rv32i2p1_m2p0_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
480 | PROC(SYNTACORE_SCR4_RV64, {"syntacore-scr4-rv64" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
481 | PROC(SYNTACORE_SCR5_RV32, {"syntacore-scr5-rv32" }, {"rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
482 | PROC(SYNTACORE_SCR5_RV64, {"syntacore-scr5-rv64" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
483 | PROC(SYNTACORE_SCR7, {"syntacore-scr7" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zicsr2p0_zifencei2p0_zba1p0_zbb1p0_zbc1p0_zbs1p0_zkn1p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
484 | PROC(TENSTORRENT_ASCALON_D8, {"tt-ascalon-d8" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zawrs1p0_zfa1p0_zfbfmin1p0_zfh1p0_zfhmin1p0_zcb1p0_zcmop1p0_zkt1p0_zvbb1p0_zvbc1p0_zvfbfmin1p0_zvfbfwma1p0_zvfh1p0_zvfhmin1p0_zvkng1p0_zvkt1p0_zvl256b1p0_sha1p0_smaia1p0_ssaia1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_ssnpm1p0_ssstrict1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_supm1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0" }, 1, 1, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
485 | 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, 0x0000061f, 0x8000000000010000, 0x0000000000000111) |
486 | PROC(XIANGSHAN_KUNMINGHU, {"xiangshan-kunminghu" }, {"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zacas1p0_zawrs1p0_zfa1p0_zfh1p0_zfhmin1p0_zcb1p0_zcmop1p0_zbc1p0_zkn1p0_zks1p0_zkt1p0_zvbb1p0_zvfh1p0_zvfhmin1p0_zvkt1p0_zvl128b1p0_sha1p0_smaia1p0_smcsrind1p0_smdbltrp1p0_smmpm1p0_smnpm1p0_smrnmi1p0_smstateen1p0_ssaia1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_sscsrind1p0_ssdbltrp1p0_ssnpm1p0_sspm1p0_ssstrict1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_supm1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0" }, 0, 0, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
487 | 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, 0x00000000, 0x0000000000000000, 0x0000000000000000) |
488 | |
489 | #undef PROC |
490 | |
491 | #ifndef TUNE_PROC |
492 | #define TUNE_PROC(ENUM, NAME) |
493 | #endif |
494 | |
495 | TUNE_PROC(ANDES_45, "andes-45-series" ) |
496 | TUNE_PROC(GENERIC, "generic" ) |
497 | TUNE_PROC(GENERIC_OOO, "generic-ooo" ) |
498 | TUNE_PROC(ROCKET, "rocket" ) |
499 | TUNE_PROC(SIFIVE_7, "sifive-7-series" ) |
500 | |
501 | #undef TUNE_PROC |
502 | #ifdef GET_RISCVExtensionBitmaskTable_IMPL |
503 | static const RISCVExtensionBitmask ExtensionBitmask[]={ |
504 | {"a" , 0, 0ULL}, |
505 | {"b" , 0, 1ULL}, |
506 | {"c" , 0, 2ULL}, |
507 | {"d" , 0, 3ULL}, |
508 | {"e" , 0, 4ULL}, |
509 | {"f" , 0, 5ULL}, |
510 | {"h" , 0, 7ULL}, |
511 | {"i" , 0, 8ULL}, |
512 | {"m" , 0, 12ULL}, |
513 | {"q" , 0, 16ULL}, |
514 | {"v" , 0, 21ULL}, |
515 | {"zacas" , 0, 26ULL}, |
516 | {"zba" , 0, 27ULL}, |
517 | {"zbb" , 0, 28ULL}, |
518 | {"zbc" , 0, 29ULL}, |
519 | {"zbkb" , 0, 30ULL}, |
520 | {"zbkc" , 0, 31ULL}, |
521 | {"zbkx" , 0, 32ULL}, |
522 | {"zbs" , 0, 33ULL}, |
523 | {"zfa" , 0, 34ULL}, |
524 | {"zfh" , 0, 35ULL}, |
525 | {"zfhmin" , 0, 36ULL}, |
526 | {"zicboz" , 0, 37ULL}, |
527 | {"zicond" , 0, 38ULL}, |
528 | {"zihintntl" , 0, 39ULL}, |
529 | {"zihintpause" , 0, 40ULL}, |
530 | {"zknd" , 0, 41ULL}, |
531 | {"zkne" , 0, 42ULL}, |
532 | {"zknh" , 0, 43ULL}, |
533 | {"zksed" , 0, 44ULL}, |
534 | {"zksh" , 0, 45ULL}, |
535 | {"zkt" , 0, 46ULL}, |
536 | {"ztso" , 0, 47ULL}, |
537 | {"zvbb" , 0, 48ULL}, |
538 | {"zvbc" , 0, 49ULL}, |
539 | {"zvfh" , 0, 50ULL}, |
540 | {"zvfhmin" , 0, 51ULL}, |
541 | {"zvkb" , 0, 52ULL}, |
542 | {"zvkg" , 0, 53ULL}, |
543 | {"zvkned" , 0, 54ULL}, |
544 | {"zvknha" , 0, 55ULL}, |
545 | {"zvknhb" , 0, 56ULL}, |
546 | {"zvksed" , 0, 57ULL}, |
547 | {"zvksh" , 0, 58ULL}, |
548 | {"zvkt" , 0, 59ULL}, |
549 | {"zve32x" , 0, 60ULL}, |
550 | {"zve32f" , 0, 61ULL}, |
551 | {"zve64x" , 0, 62ULL}, |
552 | {"zve64f" , 0, 63ULL}, |
553 | {"zve64d" , 1, 0ULL}, |
554 | {"zimop" , 1, 1ULL}, |
555 | {"zca" , 1, 2ULL}, |
556 | {"zcb" , 1, 3ULL}, |
557 | {"zcd" , 1, 4ULL}, |
558 | {"zcf" , 1, 5ULL}, |
559 | {"zcmop" , 1, 6ULL}, |
560 | {"zawrs" , 1, 7ULL}, |
561 | {"zilsd" , 1, 8ULL}, |
562 | {"zclsd" , 1, 9ULL}, |
563 | {"zcmp" , 1, 10ULL}, |
564 | }; |
565 | #endif |
566 | |