Lines Matching +full:0 +full:xc01

3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
30 // Privilege Access: Read and Write = 0, 1, 2; Read-Only = 3.
31 // Privilege Mode: User = 0, System = 1 or Machine = 3.
37 // bits<6> Number = op{5 - 0};
39 bit isRV32Only = 0;
78 def SysRegFFLAGS : SysReg<"fflags", 0x001>;
79 def SysRegFRM : SysReg<"frm", 0x002>;
80 def SysRegFCSR : SysReg<"fcsr", 0x003>;
85 def CYCLE : SysReg<"cycle", 0xC00>;
86 def TIME : SysReg<"time", 0xC01>;
87 def INSTRET : SysReg<"instret", 0xC02>;
89 // hpmcounter3-hpmcounter31 at 0xC03-0xC1F.
91 def : SysReg<"hpmcounter"#i, !add(0xC03, !sub(i, 3))>;
94 def CYCLEH : SysReg<"cycleh", 0xC80>;
95 def TIMEH : SysReg<"timeh", 0xC81>;
96 def INSTRETH : SysReg<"instreth", 0xC82>;
98 // hpmcounter3h-hpmcounter31h at 0xC83-0xC9F.
100 def : SysReg<"hpmcounter"#i#"h", !add(0xC83, !sub(i, 3))>;
106 def : SysReg<"sstatus", 0x100>;
107 def : SysReg<"sie", 0x104>;
108 def : SysReg<"stvec", 0x105>;
109 def : SysReg<"scounteren", 0x106>;
110 def : SysReg<"stimecmp", 0x14D>;
112 def : SysReg<"stimecmph", 0x15D>;
118 def : SysReg<"senvcfg", 0x10A>;
123 def : SysReg<"sscratch", 0x140>;
124 def : SysReg<"sepc", 0x141>;
125 def : SysReg<"scause", 0x142>;
127 def : SysReg<"stval", 0x143>;
128 def : SysReg<"sip", 0x144>;
134 def : SysReg<"satp", 0x180>;
139 def : SysReg<"srmcfg", 0x181>;
145 def : SysReg<"scontext", 0x5A8>;
151 def : SysReg<"scountovf", 0xDA0>;
157 def : SysReg<"hstatus", 0x600>;
158 def : SysReg<"hedeleg", 0x602>;
159 def : SysReg<"hideleg", 0x603>;
160 def : SysReg<"hie", 0x604>;
161 def : SysReg<"hcounteren", 0x606>;
162 def : SysReg<"hgeie", 0x607>;
168 def : SysReg<"htval", 0x643>;
169 def : SysReg<"hip", 0x644>;
170 def : SysReg<"hvip", 0x645>;
171 def : SysReg<"htinst", 0x64A>;
172 def : SysReg<"hgeip", 0xE12>;
178 def : SysReg<"henvcfg", 0x60A>;
180 def : SysReg<"henvcfgh", 0x61A>;
186 def : SysReg<"hgatp", 0x680>;
192 def : SysReg<"hcontext", 0x6A8>;
198 def : SysReg<"htimedelta", 0x605>;
200 def : SysReg<"htimedeltah", 0x615>;
206 def : SysReg<"vsstatus", 0x200>;
207 def : SysReg<"vsie", 0x204>;
208 def : SysReg<"vstvec", 0x205>;
209 def : SysReg<"vsscratch", 0x240>;
210 def : SysReg<"vsepc", 0x241>;
211 def : SysReg<"vscause", 0x242>;
212 def : SysReg<"vstval", 0x243>;
213 def : SysReg<"vsip", 0x244>;
214 def : SysReg<"vstimecmp", 0x24D>;
216 def : SysReg<"vstimecmph", 0x25D>;
217 def : SysReg<"vsatp", 0x280>;
223 def : SysReg<"mvendorid", 0xF11>;
224 def : SysReg<"marchid", 0xF12>;
225 def : SysReg<"mimpid", 0xF13>;
226 def : SysReg<"mhartid", 0xF14>;
227 def : SysReg<"mconfigptr", 0xF15>;
232 def : SysReg<"mstatus", 0x300>;
233 def : SysReg<"misa", 0x301>;
234 def : SysReg<"medeleg", 0x302>;
235 def : SysReg<"mideleg", 0x303>;
236 def : SysReg<"mie", 0x304>;
237 def : SysReg<"mtvec", 0x305>;
238 def : SysReg<"mcounteren", 0x306>;
240 def : SysReg<"mstatush", 0x310>;
245 def : SysReg<"mscratch", 0x340>;
246 def : SysReg<"mepc", 0x341>;
247 def : SysReg<"mcause", 0x342>;
249 def : SysReg<"mtval", 0x343>;
250 def : SysReg<"mip", 0x344>;
251 def : SysReg<"mtinst", 0x34A>;
252 def : SysReg<"mtval2", 0x34B>;
258 def : SysReg<"menvcfg", 0x30A>;
260 def : SysReg<"menvcfgh", 0x31A>;
261 def : SysReg<"mseccfg", 0x747>;
263 def : SysReg<"mseccfgh", 0x757>;
269 // pmpcfg0-pmpcfg15 at 0x3A0-0x3AF. Odd-numbered registers are RV32-only.
270 foreach i = 0...15 in {
272 def : SysReg<"pmpcfg"#i, !add(0x3A0, i)>;
275 // pmpaddr0-pmpaddr63 at 0x3B0-0x3EF.
276 foreach i = 0...63 in
277 def : SysReg<"pmpaddr"#i, !add(0x3B0, i)>;
282 def : SysReg<"mcycle", 0xB00>;
283 def : SysReg<"minstret", 0xB02>;
285 // mhpmcounter3-mhpmcounter31 at 0xB03-0xB1F.
287 def : SysReg<"mhpmcounter"#i, !add(0xB03, !sub(i, 3))>;
290 def: SysReg<"mcycleh", 0xB80>;
291 def: SysReg<"minstreth", 0xB82>;
293 // mhpmcounter3h-mhpmcounter31h at 0xB83-0xB9F.
295 def : SysReg<"mhpmcounter"#i#"h", !add(0xB83, !sub(i, 3))>;
302 def : SysReg<"mcountinhibit", 0x320>;
304 // mhpmevent3-mhpmevent31 at 0x323-0x33F.
306 def : SysReg<"mhpmevent"#i, !add(0x323, !sub(i, 3))>;
308 // mhpmevent3h-mhpmevent31h at 0x723-0x73F
311 def : SysReg<"mhpmevent"#i#"h", !add(0x723, !sub(i, 3))>;
317 def : SysReg<"scountinhibit", 0x120>;
322 def : SysReg<"tselect", 0x7A0>;
323 def : SysReg<"tdata1", 0x7A1>;
324 def : SysReg<"tdata2", 0x7A2>;
325 def : SysReg<"tdata3", 0x7A3>;
326 def : SysReg<"mcontext", 0x7A8>;
331 def : SysReg<"dcsr", 0x7B0>;
332 def : SysReg<"dpc", 0x7B1>;
337 def : SysReg<"dscratch0", 0x7B2>;
338 def : SysReg<"dscratch1", 0x7B3>;
343 def : SysReg<"vstart", 0x008>;
344 def : SysReg<"vxsat", 0x009>;
345 def SysRegVXRM : SysReg<"vxrm", 0x00A>;
346 def : SysReg<"vcsr", 0x00F>;
347 def SysRegVL : SysReg<"vl", 0xC20>;
348 def : SysReg<"vtype", 0xC21>;
349 def SysRegVLENB: SysReg<"vlenb", 0xC22>;
354 def : SysReg<"ssp", 0x011>;
360 // sstateen0-sstateen3 at 0x10C-0x10F, mstateen0-mstateen3 at 0x30C-0x30F,
361 // mstateen0h-mstateen3h at 0x31C-0x31F, hstateen0-hstateen3 at 0x60C-0x60F,
362 // and hstateen0h-hstateen3h at 0x61C-0x61F.
363 foreach i = 0...3 in {
364 def : SysReg<"sstateen"#i, !add(0x10C, i)>;
365 def : SysReg<"mstateen"#i, !add(0x30C, i)>;
367 def : SysReg<"mstateen"#i#"h", !add(0x31C, i)>;
368 def : SysReg<"hstateen"#i, !add(0x60C, i)>;
370 def : SysReg<"hstateen"#i#"h", !add(0x61C, i)>;
377 def SEED : SysReg<"seed", 0x015>;
384 def : SysReg<"miselect", 0x350>;
385 def : SysReg<"mireg", 0x351>;
387 def : SysReg<"mireg"#i, !add(0x350, i)>;
390 def : SysReg<"mireg"#i, !add(0x351, i)>;
392 def : SysReg<"mtopei", 0x35C>;
393 def : SysReg<"mtopi", 0xFB0>;
394 def : SysReg<"mvien", 0x308>;
395 def : SysReg<"mvip", 0x309>;
397 def : SysReg<"midelegh", 0x313>;
398 def : SysReg<"mieh", 0x314>;
399 def : SysReg<"mvienh", 0x318>;
400 def : SysReg<"mviph", 0x319>;
401 def : SysReg<"miph", 0x354>;
405 def : SysReg<"siselect", 0x150>;
406 def : SysReg<"sireg", 0x151>;
408 def : SysReg<"sireg"#i, !add(0x150, i)>;
411 def : SysReg<"sireg"#i, !add(0x151, i)>;
413 def : SysReg<"stopei", 0x15C>;
414 def : SysReg<"stopi", 0xDB0>;
416 def : SysReg<"sieh", 0x114>;
417 def : SysReg<"siph", 0x154>;
421 def : SysReg<"hvien", 0x608>;
422 def : SysReg<"hvictl", 0x609>;
423 def : SysReg<"hviprio1", 0x646>;
424 def : SysReg<"hviprio2", 0x647>;
425 def : SysReg<"vsiselect", 0x250>;
426 def : SysReg<"vsireg", 0x251>;
428 def : SysReg<"vsireg"#i, !add(0x250, i)>;
431 def : SysReg<"vsireg"#i, !add(0x251, i)>;
433 def : SysReg<"vstopei", 0x25C>;
434 def : SysReg<"vstopi", 0xEB0>;
436 def : SysReg<"hidelegh", 0x613>;
437 def : SysReg<"hvienh", 0x618>;
438 def : SysReg<"hviph", 0x655>;
439 def : SysReg<"hviprio1h", 0x656>;
440 def : SysReg<"hviprio2h", 0x657>;
441 def : SysReg<"vsieh", 0x214>;
442 def : SysReg<"vsiph", 0x254>;
449 def : SysReg<"jvt", 0x017>;
454 def : SysReg<"mnscratch", 0x740>;
455 def : SysReg<"mnepc", 0x741>;
456 def : SysReg<"mncause", 0x742>;
457 def : SysReg<"mnstatus", 0x744>;