gem5  [DEVELOP-FOR-23.0]
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
misc.hh
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013 ARM Limited
3  * Copyright (c) 2014-2015 Sven Karlsson
4  * Copyright (c) 2019 Yifei Liu
5  * Copyright (c) 2020 Barkhausen Institut
6  * Copyright (c) 2021 StreamComputing Corp
7  * All rights reserved
8  *
9  * The license below extends only to copyright in the software and shall
10  * not be construed as granting a license to any other intellectual
11  * property including but not limited to intellectual property relating
12  * to a hardware implementation of the functionality of the software
13  * licensed hereunder. You may use the software subject to the license
14  * terms below provided that you ensure that this notice is replicated
15  * unmodified and in its entirety in all distributions of the software,
16  * modified or unmodified, in source code or in binary form.
17  *
18  * Copyright (c) 2016 RISC-V Foundation
19  * Copyright (c) 2016 The University of Virginia
20  * All rights reserved.
21  *
22  * Redistribution and use in source and binary forms, with or without
23  * modification, are permitted provided that the following conditions are
24  * met: redistributions of source code must retain the above copyright
25  * notice, this list of conditions and the following disclaimer;
26  * redistributions in binary form must reproduce the above copyright
27  * notice, this list of conditions and the following disclaimer in the
28  * documentation and/or other materials provided with the distribution;
29  * neither the name of the copyright holders nor the names of its
30  * contributors may be used to endorse or promote products derived from
31  * this software without specific prior written permission.
32  *
33  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
34  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
35  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
36  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
37  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
38  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
39  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
40  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
41  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
42  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
43  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
44  */
45 
46 #ifndef __ARCH_RISCV_REGS_MISC_HH__
47 #define __ARCH_RISCV_REGS_MISC_HH__
48 
49 #include <string>
50 #include <unordered_map>
51 
53 #include "arch/generic/vec_reg.hh"
54 #include "arch/riscv/types.hh"
55 #include "base/bitunion.hh"
56 #include "base/types.hh"
57 #include "cpu/reg_class.hh"
58 #include "debug/MiscRegs.hh"
59 #include "enums/RiscvType.hh"
60 
61 namespace gem5
62 {
63 
64 namespace RiscvISA
65 {
66 
68 {
146 
156  MISCREG_PMPCFG1, // pmpcfg1 is rv32 only
158  MISCREG_PMPCFG3, // pmpcfg3 is rv32 only
175 
185 
193 
194  // These registers are not in the standard, hence does not exist in the
195  // CSRData map. These are mainly used to provide a minimal implementation
196  // for non-maskable-interrupt in our simple cpu.
197  // non-maskable-interrupt-vector-base-address: NMI version of xTVEC
199  // non-maskable-interrupt-enable: NMI version of xIE
201  // non-maskable-interrupt-pending: NMI version of xIP
203 
204  // the following MicsRegIndex are RV32 only
206 
239 
241 };
242 
244  NUM_MISCREGS, debug::MiscRegs);
245 
247 {
248  CSR_USTATUS = 0x000,
249  CSR_UIE = 0x004,
250  CSR_UTVEC = 0x005,
251  CSR_USCRATCH = 0x040,
252  CSR_UEPC = 0x041,
253  CSR_UCAUSE = 0x042,
254  CSR_UTVAL = 0x043,
255  CSR_UIP = 0x044,
256  CSR_FFLAGS = 0x001,
257  CSR_FRM = 0x002,
258  CSR_FCSR = 0x003,
259  CSR_CYCLE = 0xC00,
260  CSR_TIME = 0xC01,
261  CSR_INSTRET = 0xC02,
291 
292  // rv32 only csr register begin
293  CSR_CYCLEH = 0xC80,
294  CSR_TIMEH = 0xC81,
295  CSR_INSTRETH = 0xC82,
325  // rv32 only csr register end
326 
327  CSR_SSTATUS = 0x100,
328  CSR_SEDELEG = 0x102,
329  CSR_SIDELEG = 0x103,
330  CSR_SIE = 0x104,
331  CSR_STVEC = 0x105,
332  CSR_SCOUNTEREN = 0x106,
333  CSR_SSCRATCH = 0x140,
334  CSR_SEPC = 0x141,
335  CSR_SCAUSE = 0x142,
336  CSR_STVAL = 0x143,
337  CSR_SIP = 0x144,
338  CSR_SATP = 0x180,
339 
340  CSR_MVENDORID = 0xF11,
341  CSR_MARCHID = 0xF12,
342  CSR_MIMPID = 0xF13,
343  CSR_MHARTID = 0xF14,
344  CSR_MSTATUS = 0x300,
345  CSR_MISA = 0x301,
346  CSR_MEDELEG = 0x302,
347  CSR_MIDELEG = 0x303,
348  CSR_MIE = 0x304,
349  CSR_MTVEC = 0x305,
350  CSR_MCOUNTEREN = 0x306,
351  CSR_MSTATUSH = 0x310, // rv32 only
352  CSR_MSCRATCH = 0x340,
353  CSR_MEPC = 0x341,
354  CSR_MCAUSE = 0x342,
355  CSR_MTVAL = 0x343,
356  CSR_MIP = 0x344,
357  CSR_PMPCFG0 = 0x3A0,
358  CSR_PMPCFG1 = 0x3A1, // pmpcfg1 rv32 only
359  CSR_PMPCFG2 = 0x3A2,
360  CSR_PMPCFG3 = 0x3A3,// pmpcfg3 rv32 only
361  CSR_PMPADDR00 = 0x3B0,
362  CSR_PMPADDR01 = 0x3B1,
363  CSR_PMPADDR02 = 0x3B2,
364  CSR_PMPADDR03 = 0x3B3,
365  CSR_PMPADDR04 = 0x3B4,
366  CSR_PMPADDR05 = 0x3B5,
367  CSR_PMPADDR06 = 0x3B6,
368  CSR_PMPADDR07 = 0x3B7,
369  CSR_PMPADDR08 = 0x3B8,
370  CSR_PMPADDR09 = 0x3B9,
371  CSR_PMPADDR10 = 0x3BA,
372  CSR_PMPADDR11 = 0x3BB,
373  CSR_PMPADDR12 = 0x3BC,
374  CSR_PMPADDR13 = 0x3BD,
375  CSR_PMPADDR14 = 0x3BE,
376  CSR_PMPADDR15 = 0x3BF,
377  CSR_MCYCLE = 0xB00,
378  CSR_MINSTRET = 0xB02,
408 
409  // rv32 only csr register begin
410  CSR_MCYCLEH = 0xB80,
411  CSR_MINSTRETH = 0xB82,
441  // rv32 only csr register end
442 
472 
473  CSR_TSELECT = 0x7A0,
474  CSR_TDATA1 = 0x7A1,
475  CSR_TDATA2 = 0x7A2,
476  CSR_TDATA3 = 0x7A3,
477  CSR_DCSR = 0x7B0,
478  CSR_DPC = 0x7B1,
479  CSR_DSCRATCH = 0x7B2
480 };
481 
483 {
484  const std::string name;
485  const int physIndex;
486  const uint64_t rvTypes;
487 };
488 
489 template <typename... T>
490 constexpr uint64_t rvTypeFlags(T... args) {
491  return ((1 << args) | ...);
492 }
493 
494 const std::unordered_map<int, CSRMetadata> CSRData = {
495  {CSR_USTATUS, {"ustatus", MISCREG_STATUS, rvTypeFlags(RV64, RV32)}},
496  {CSR_UIE, {"uie", MISCREG_IE, rvTypeFlags(RV64, RV32)}},
497  {CSR_UTVEC, {"utvec", MISCREG_UTVEC, rvTypeFlags(RV64, RV32)}},
498  {CSR_USCRATCH, {"uscratch", MISCREG_USCRATCH, rvTypeFlags(RV64, RV32)}},
499  {CSR_UEPC, {"uepc", MISCREG_UEPC, rvTypeFlags(RV64, RV32)}},
500  {CSR_UCAUSE, {"ucause", MISCREG_UCAUSE, rvTypeFlags(RV64, RV32)}},
501  {CSR_UTVAL, {"utval", MISCREG_UTVAL, rvTypeFlags(RV64, RV32)}},
502  {CSR_UIP, {"uip", MISCREG_IP, rvTypeFlags(RV64, RV32)}},
503  {CSR_FFLAGS, {"fflags", MISCREG_FFLAGS, rvTypeFlags(RV64, RV32)}},
504  {CSR_FRM, {"frm", MISCREG_FRM, rvTypeFlags(RV64, RV32)}},
505  {CSR_FCSR, {"fcsr", MISCREG_FFLAGS, rvTypeFlags(RV64, RV32)}}, // Actually FRM << 5 | FFLAGS
506  {CSR_CYCLE, {"cycle", MISCREG_CYCLE, rvTypeFlags(RV64, RV32)}},
507  {CSR_TIME, {"time", MISCREG_TIME, rvTypeFlags(RV64, RV32)}},
508  {CSR_INSTRET, {"instret", MISCREG_INSTRET, rvTypeFlags(RV64, RV32)}},
538  {CSR_CYCLEH, {"cycleh", MISCREG_CYCLEH, rvTypeFlags(RV32)}},
539  {CSR_TIMEH, {"timeh", MISCREG_TIMEH, rvTypeFlags(RV32)}},
540  {CSR_INSTRETH, {"instreth", MISCREG_INSTRETH, rvTypeFlags(RV32)}},
570 
571  {CSR_SSTATUS, {"sstatus", MISCREG_STATUS, rvTypeFlags(RV64, RV32)}},
572  {CSR_SEDELEG, {"sedeleg", MISCREG_SEDELEG, rvTypeFlags(RV64, RV32)}},
573  {CSR_SIDELEG, {"sideleg", MISCREG_SIDELEG, rvTypeFlags(RV64, RV32)}},
574  {CSR_SIE, {"sie", MISCREG_IE, rvTypeFlags(RV64, RV32)}},
575  {CSR_STVEC, {"stvec", MISCREG_STVEC, rvTypeFlags(RV64, RV32)}},
576  {CSR_SCOUNTEREN, {"scounteren", MISCREG_SCOUNTEREN, rvTypeFlags(RV64, RV32)}},
577  {CSR_SSCRATCH, {"sscratch", MISCREG_SSCRATCH, rvTypeFlags(RV64, RV32)}},
578  {CSR_SEPC, {"sepc", MISCREG_SEPC, rvTypeFlags(RV64, RV32)}},
579  {CSR_SCAUSE, {"scause", MISCREG_SCAUSE, rvTypeFlags(RV64, RV32)}},
580  {CSR_STVAL, {"stval", MISCREG_STVAL, rvTypeFlags(RV64, RV32)}},
581  {CSR_SIP, {"sip", MISCREG_IP, rvTypeFlags(RV64, RV32)}},
582  {CSR_SATP, {"satp", MISCREG_SATP, rvTypeFlags(RV64, RV32)}},
583 
584  {CSR_MVENDORID, {"mvendorid", MISCREG_VENDORID, rvTypeFlags(RV64, RV32)}},
585  {CSR_MARCHID, {"marchid", MISCREG_ARCHID, rvTypeFlags(RV64, RV32)}},
586  {CSR_MIMPID, {"mimpid", MISCREG_IMPID, rvTypeFlags(RV64, RV32)}},
587  {CSR_MHARTID, {"mhartid", MISCREG_HARTID, rvTypeFlags(RV64, RV32)}},
588  {CSR_MSTATUS, {"mstatus", MISCREG_STATUS, rvTypeFlags(RV64, RV32)}},
589  {CSR_MISA, {"misa", MISCREG_ISA, rvTypeFlags(RV64, RV32)}},
590  {CSR_MEDELEG, {"medeleg", MISCREG_MEDELEG, rvTypeFlags(RV64, RV32)}},
591  {CSR_MIDELEG, {"mideleg", MISCREG_MIDELEG, rvTypeFlags(RV64, RV32)}},
592  {CSR_MIE, {"mie", MISCREG_IE, rvTypeFlags(RV64, RV32)}},
593  {CSR_MTVEC, {"mtvec", MISCREG_MTVEC, rvTypeFlags(RV64, RV32)}},
594  {CSR_MCOUNTEREN, {"mcounteren", MISCREG_MCOUNTEREN, rvTypeFlags(RV64, RV32)}},
595  {CSR_MSTATUSH, {"mstatush", MISCREG_MSTATUSH, rvTypeFlags(RV32)}},
596  {CSR_MSCRATCH, {"mscratch", MISCREG_MSCRATCH, rvTypeFlags(RV64, RV32)}},
597  {CSR_MEPC, {"mepc", MISCREG_MEPC, rvTypeFlags(RV64, RV32)}},
598  {CSR_MCAUSE, {"mcause", MISCREG_MCAUSE, rvTypeFlags(RV64, RV32)}},
599  {CSR_MTVAL, {"mtval", MISCREG_MTVAL, rvTypeFlags(RV64, RV32)}},
600  {CSR_MIP, {"mip", MISCREG_IP, rvTypeFlags(RV64, RV32)}},
601  {CSR_PMPCFG0, {"pmpcfg0", MISCREG_PMPCFG0, rvTypeFlags(RV64, RV32)}},
602  {CSR_PMPCFG1, {"pmpcfg1", MISCREG_PMPCFG1, rvTypeFlags(RV32)}}, // pmpcfg1 rv32 only
603  {CSR_PMPCFG2, {"pmpcfg2", MISCREG_PMPCFG2, rvTypeFlags(RV64, RV32)}},
604  {CSR_PMPCFG3, {"pmpcfg3", MISCREG_PMPCFG3, rvTypeFlags(RV32)}}, // pmpcfg3 rv32 only
615  {CSR_PMPADDR10, {"pmpaddr10", MISCREG_PMPADDR10, rvTypeFlags(RV64, RV32)}},
616  {CSR_PMPADDR11, {"pmpaddr11", MISCREG_PMPADDR11, rvTypeFlags(RV64, RV32)}},
617  {CSR_PMPADDR12, {"pmpaddr12", MISCREG_PMPADDR12, rvTypeFlags(RV64, RV32)}},
618  {CSR_PMPADDR13, {"pmpaddr13", MISCREG_PMPADDR13, rvTypeFlags(RV64, RV32)}},
619  {CSR_PMPADDR14, {"pmpaddr14", MISCREG_PMPADDR14, rvTypeFlags(RV64, RV32)}},
620  {CSR_PMPADDR15, {"pmpaddr15", MISCREG_PMPADDR15, rvTypeFlags(RV64, RV32)}},
621  {CSR_MCYCLE, {"mcycle", MISCREG_CYCLE, rvTypeFlags(RV64, RV32)}},
622  {CSR_MINSTRET, {"minstret", MISCREG_INSTRET, rvTypeFlags(RV64, RV32)}},
652 
653  {CSR_MCYCLEH, {"mcycleh", MISCREG_CYCLEH, rvTypeFlags(RV32)}},
654  {CSR_MINSTRETH, {"minstreth", MISCREG_INSTRETH, rvTypeFlags(RV32)}},
655  {CSR_MHPMCOUNTER03H, {"mhpmcounter03h", MISCREG_HPMCOUNTER03H, rvTypeFlags(RV32)}},
656  {CSR_MHPMCOUNTER04H, {"mhpmcounter04h", MISCREG_HPMCOUNTER04H, rvTypeFlags(RV32)}},
657  {CSR_MHPMCOUNTER05H, {"mhpmcounter05h", MISCREG_HPMCOUNTER05H, rvTypeFlags(RV32)}},
658  {CSR_MHPMCOUNTER06H, {"mhpmcounter06h", MISCREG_HPMCOUNTER06H, rvTypeFlags(RV32)}},
659  {CSR_MHPMCOUNTER07H, {"mhpmcounter07h", MISCREG_HPMCOUNTER07H, rvTypeFlags(RV32)}},
660  {CSR_MHPMCOUNTER08H, {"mhpmcounter08h", MISCREG_HPMCOUNTER08H, rvTypeFlags(RV32)}},
661  {CSR_MHPMCOUNTER09H, {"mhpmcounter09h", MISCREG_HPMCOUNTER09H, rvTypeFlags(RV32)}},
662  {CSR_MHPMCOUNTER10H, {"mhpmcounter10h", MISCREG_HPMCOUNTER10H, rvTypeFlags(RV32)}},
663  {CSR_MHPMCOUNTER11H, {"mhpmcounter11h", MISCREG_HPMCOUNTER11H, rvTypeFlags(RV32)}},
664  {CSR_MHPMCOUNTER12H, {"mhpmcounter12h", MISCREG_HPMCOUNTER12H, rvTypeFlags(RV32)}},
665  {CSR_MHPMCOUNTER13H, {"mhpmcounter13h", MISCREG_HPMCOUNTER13H, rvTypeFlags(RV32)}},
666  {CSR_MHPMCOUNTER14H, {"mhpmcounter14h", MISCREG_HPMCOUNTER14H, rvTypeFlags(RV32)}},
667  {CSR_MHPMCOUNTER15H, {"mhpmcounter15h", MISCREG_HPMCOUNTER15H, rvTypeFlags(RV32)}},
668  {CSR_MHPMCOUNTER16H, {"mhpmcounter16h", MISCREG_HPMCOUNTER16H, rvTypeFlags(RV32)}},
669  {CSR_MHPMCOUNTER17H, {"mhpmcounter17h", MISCREG_HPMCOUNTER17H, rvTypeFlags(RV32)}},
670  {CSR_MHPMCOUNTER18H, {"mhpmcounter18h", MISCREG_HPMCOUNTER18H, rvTypeFlags(RV32)}},
671  {CSR_MHPMCOUNTER19H, {"mhpmcounter19h", MISCREG_HPMCOUNTER19H, rvTypeFlags(RV32)}},
672  {CSR_MHPMCOUNTER20H, {"mhpmcounter20h", MISCREG_HPMCOUNTER20H, rvTypeFlags(RV32)}},
673  {CSR_MHPMCOUNTER21H, {"mhpmcounter21h", MISCREG_HPMCOUNTER21H, rvTypeFlags(RV32)}},
674  {CSR_MHPMCOUNTER22H, {"mhpmcounter22h", MISCREG_HPMCOUNTER22H, rvTypeFlags(RV32)}},
675  {CSR_MHPMCOUNTER23H, {"mhpmcounter23h", MISCREG_HPMCOUNTER23H, rvTypeFlags(RV32)}},
676  {CSR_MHPMCOUNTER24H, {"mhpmcounter24h", MISCREG_HPMCOUNTER24H, rvTypeFlags(RV32)}},
677  {CSR_MHPMCOUNTER25H, {"mhpmcounter25h", MISCREG_HPMCOUNTER25H, rvTypeFlags(RV32)}},
678  {CSR_MHPMCOUNTER26H, {"mhpmcounter26h", MISCREG_HPMCOUNTER26H, rvTypeFlags(RV32)}},
679  {CSR_MHPMCOUNTER27H, {"mhpmcounter27h", MISCREG_HPMCOUNTER27H, rvTypeFlags(RV32)}},
680  {CSR_MHPMCOUNTER28H, {"mhpmcounter28h", MISCREG_HPMCOUNTER28H, rvTypeFlags(RV32)}},
681  {CSR_MHPMCOUNTER29H, {"mhpmcounter29h", MISCREG_HPMCOUNTER29H, rvTypeFlags(RV32)}},
682  {CSR_MHPMCOUNTER30H, {"mhpmcounter30h", MISCREG_HPMCOUNTER30H, rvTypeFlags(RV32)}},
683  {CSR_MHPMCOUNTER31H, {"mhpmcounter31h", MISCREG_HPMCOUNTER31H, rvTypeFlags(RV32)}},
684 
685  {CSR_MHPMEVENT03, {"mhpmevent03", MISCREG_HPMEVENT03, rvTypeFlags(RV64, RV32)}},
686  {CSR_MHPMEVENT04, {"mhpmevent04", MISCREG_HPMEVENT04, rvTypeFlags(RV64, RV32)}},
687  {CSR_MHPMEVENT05, {"mhpmevent05", MISCREG_HPMEVENT05, rvTypeFlags(RV64, RV32)}},
688  {CSR_MHPMEVENT06, {"mhpmevent06", MISCREG_HPMEVENT06, rvTypeFlags(RV64, RV32)}},
689  {CSR_MHPMEVENT07, {"mhpmevent07", MISCREG_HPMEVENT07, rvTypeFlags(RV64, RV32)}},
690  {CSR_MHPMEVENT08, {"mhpmevent08", MISCREG_HPMEVENT08, rvTypeFlags(RV64, RV32)}},
691  {CSR_MHPMEVENT09, {"mhpmevent09", MISCREG_HPMEVENT09, rvTypeFlags(RV64, RV32)}},
692  {CSR_MHPMEVENT10, {"mhpmevent10", MISCREG_HPMEVENT10, rvTypeFlags(RV64, RV32)}},
693  {CSR_MHPMEVENT11, {"mhpmevent11", MISCREG_HPMEVENT11, rvTypeFlags(RV64, RV32)}},
694  {CSR_MHPMEVENT12, {"mhpmevent12", MISCREG_HPMEVENT12, rvTypeFlags(RV64, RV32)}},
695  {CSR_MHPMEVENT13, {"mhpmevent13", MISCREG_HPMEVENT13, rvTypeFlags(RV64, RV32)}},
696  {CSR_MHPMEVENT14, {"mhpmevent14", MISCREG_HPMEVENT14, rvTypeFlags(RV64, RV32)}},
697  {CSR_MHPMEVENT15, {"mhpmevent15", MISCREG_HPMEVENT15, rvTypeFlags(RV64, RV32)}},
698  {CSR_MHPMEVENT16, {"mhpmevent16", MISCREG_HPMEVENT16, rvTypeFlags(RV64, RV32)}},
699  {CSR_MHPMEVENT17, {"mhpmevent17", MISCREG_HPMEVENT17, rvTypeFlags(RV64, RV32)}},
700  {CSR_MHPMEVENT18, {"mhpmevent18", MISCREG_HPMEVENT18, rvTypeFlags(RV64, RV32)}},
701  {CSR_MHPMEVENT19, {"mhpmevent19", MISCREG_HPMEVENT19, rvTypeFlags(RV64, RV32)}},
702  {CSR_MHPMEVENT20, {"mhpmevent20", MISCREG_HPMEVENT20, rvTypeFlags(RV64, RV32)}},
703  {CSR_MHPMEVENT21, {"mhpmevent21", MISCREG_HPMEVENT21, rvTypeFlags(RV64, RV32)}},
704  {CSR_MHPMEVENT22, {"mhpmevent22", MISCREG_HPMEVENT22, rvTypeFlags(RV64, RV32)}},
705  {CSR_MHPMEVENT23, {"mhpmevent23", MISCREG_HPMEVENT23, rvTypeFlags(RV64, RV32)}},
706  {CSR_MHPMEVENT24, {"mhpmevent24", MISCREG_HPMEVENT24, rvTypeFlags(RV64, RV32)}},
707  {CSR_MHPMEVENT25, {"mhpmevent25", MISCREG_HPMEVENT25, rvTypeFlags(RV64, RV32)}},
708  {CSR_MHPMEVENT26, {"mhpmevent26", MISCREG_HPMEVENT26, rvTypeFlags(RV64, RV32)}},
709  {CSR_MHPMEVENT27, {"mhpmevent27", MISCREG_HPMEVENT27, rvTypeFlags(RV64, RV32)}},
710  {CSR_MHPMEVENT28, {"mhpmevent28", MISCREG_HPMEVENT28, rvTypeFlags(RV64, RV32)}},
711  {CSR_MHPMEVENT29, {"mhpmevent29", MISCREG_HPMEVENT29, rvTypeFlags(RV64, RV32)}},
712  {CSR_MHPMEVENT30, {"mhpmevent30", MISCREG_HPMEVENT30, rvTypeFlags(RV64, RV32)}},
713  {CSR_MHPMEVENT31, {"mhpmevent31", MISCREG_HPMEVENT31, rvTypeFlags(RV64, RV32)}},
714 
715  {CSR_TSELECT, {"tselect", MISCREG_TSELECT, rvTypeFlags(RV64, RV32)}},
716  {CSR_TDATA1, {"tdata1", MISCREG_TDATA1, rvTypeFlags(RV64, RV32)}},
717  {CSR_TDATA2, {"tdata2", MISCREG_TDATA2, rvTypeFlags(RV64, RV32)}},
718  {CSR_TDATA3, {"tdata3", MISCREG_TDATA3, rvTypeFlags(RV64, RV32)}},
719  {CSR_DCSR, {"dcsr", MISCREG_DCSR, rvTypeFlags(RV64, RV32)}},
720  {CSR_DPC, {"dpc", MISCREG_DPC, rvTypeFlags(RV64, RV32)}},
722 };
723 
731 BitUnion64(STATUS)
732  Bitfield<63> rv64_sd;
733  Bitfield<35, 34> sxl;
734  Bitfield<33, 32> uxl;
735  Bitfield<31> rv32_sd;
736  Bitfield<22> tsr;
737  Bitfield<21> tw;
738  Bitfield<20> tvm;
739  Bitfield<19> mxr;
740  Bitfield<18> sum;
741  Bitfield<17> mprv;
742  Bitfield<16, 15> xs;
743  Bitfield<14, 13> fs;
744  Bitfield<12, 11> mpp;
745  Bitfield<10, 9> vs;
746  Bitfield<8> spp;
747  Bitfield<7> mpie;
748  Bitfield<5> spie;
749  Bitfield<4> upie;
750  Bitfield<3> mie;
751  Bitfield<1> sie;
752  Bitfield<0> uie;
753 EndBitUnion(STATUS)
754 
755 
760 BitUnion64(MISA)
761  Bitfield<63, 62> rv64_mxl;
762  Bitfield<31, 30> rv32_mxl;
763  Bitfield<23> rvx;
764  Bitfield<21> rvv;
765  Bitfield<20> rvu;
766  Bitfield<19> rvt;
767  Bitfield<18> rvs;
768  Bitfield<16> rvq;
769  Bitfield<15> rvp;
770  Bitfield<13> rvn;
771  Bitfield<12> rvm;
772  Bitfield<11> rvl;
773  Bitfield<10> rvk;
774  Bitfield<9> rvj;
775  Bitfield<8> rvi;
776  Bitfield<7> rvh;
777  Bitfield<6> rvg;
778  Bitfield<5> rvf;
779  Bitfield<4> rve;
780  Bitfield<3> rvd;
781  Bitfield<2> rvc;
782  Bitfield<1> rvb;
783  Bitfield<0> rva;
784 EndBitUnion(MISA)
785 
792 BitUnion64(INTERRUPT)
793  Bitfield<11> mei;
794  Bitfield<9> sei;
795  Bitfield<8> uei;
796  Bitfield<7> mti;
797  Bitfield<5> sti;
798  Bitfield<4> uti;
799  Bitfield<3> msi;
800  Bitfield<1> ssi;
801  Bitfield<0> usi;
802 EndBitUnion(INTERRUPT)
803 
804 const off_t MXL_OFFSETS[enums::Num_RiscvType] = {
805  [RV32] = (sizeof(uint32_t) * 8 - 2),
806  [RV64] = (sizeof(uint64_t) * 8 - 2),
807 };
808 const off_t MBE_OFFSET[enums::Num_RiscvType] = {
809  [RV32] = 5,
810  [RV64] = 37,
811 };
812 const off_t SBE_OFFSET[enums::Num_RiscvType] = {
813  [RV32] = 4,
814  [RV64] = 36,
815 };
816 const off_t SXL_OFFSET = 34;
817 const off_t UXL_OFFSET = 32;
818 const off_t FS_OFFSET = 13;
819 const off_t FRM_OFFSET = 5;
820 
821 const RegVal ISA_MXL_MASKS[enums::Num_RiscvType] = {
822  [RV32] = 3ULL << MXL_OFFSETS[RV32],
823  [RV64] = 3ULL << MXL_OFFSETS[RV64],
824 };
826 const RegVal ISA_EXT_C_MASK = 1UL << ('c' - 'a');
827 const RegVal MISA_MASKS[enums::Num_RiscvType] = {
830 };
831 
832 
833 const RegVal STATUS_SD_MASKS[enums::Num_RiscvType] = {
834  [RV32] = 1ULL << ((sizeof(uint32_t) * 8) - 1),
835  [RV64] = 1ULL << ((sizeof(uint64_t) * 8) - 1),
836 };
837 const RegVal STATUS_MBE_MASK[enums::Num_RiscvType] = {
838  [RV32] = 1ULL << MBE_OFFSET[RV32],
839  [RV64] = 1ULL << MBE_OFFSET[RV64],
840 };
841 const RegVal STATUS_SBE_MASK[enums::Num_RiscvType] = {
842  [RV32] = 1ULL << SBE_OFFSET[RV32],
843  [RV64] = 1ULL << SBE_OFFSET[RV64],
844 };
847 const RegVal STATUS_TSR_MASK = 1ULL << 22;
848 const RegVal STATUS_TW_MASK = 1ULL << 21;
849 const RegVal STATUS_TVM_MASK = 1ULL << 20;
850 const RegVal STATUS_MXR_MASK = 1ULL << 19;
851 const RegVal STATUS_SUM_MASK = 1ULL << 18;
852 const RegVal STATUS_MPRV_MASK = 1ULL << 17;
853 const RegVal STATUS_XS_MASK = 3ULL << 15;
855 const RegVal STATUS_MPP_MASK = 3ULL << 11;
856 const RegVal STATUS_VS_MASK = 3ULL << 9;
857 const RegVal STATUS_SPP_MASK = 1ULL << 8;
858 const RegVal STATUS_MPIE_MASK = 1ULL << 7;
859 const RegVal STATUS_SPIE_MASK = 1ULL << 5;
860 const RegVal STATUS_UPIE_MASK = 1ULL << 4;
861 const RegVal STATUS_MIE_MASK = 1ULL << 3;
862 const RegVal STATUS_SIE_MASK = 1ULL << 1;
863 const RegVal STATUS_UIE_MASK = 1ULL << 0;
864 const RegVal MSTATUS_MASKS[enums::Num_RiscvType] = {
879 };
880 // rv32 only
882 const RegVal SSTATUS_MASKS[enums::Num_RiscvType] = {
891 };
892 const RegVal USTATUS_MASKS[enums::Num_RiscvType] = {
899 };
900 
901 const RegVal MEI_MASK = 1ULL << 11;
902 const RegVal SEI_MASK = 1ULL << 9;
903 const RegVal UEI_MASK = 1ULL << 8;
904 const RegVal MTI_MASK = 1ULL << 7;
905 const RegVal STI_MASK = 1ULL << 5;
906 const RegVal UTI_MASK = 1ULL << 4;
907 const RegVal MSI_MASK = 1ULL << 3;
908 const RegVal SSI_MASK = 1ULL << 1;
909 const RegVal USI_MASK = 1ULL << 0;
914  STI_MASK | UTI_MASK |
915  SSI_MASK | USI_MASK;
917 const RegVal FFLAGS_MASK = (1 << FRM_OFFSET) - 1;
918 const RegVal FRM_MASK = 0x7;
919 
920 const RegVal CAUSE_INTERRUPT_MASKS[enums::Num_RiscvType] = {
921  [RV32] = (1ULL << 31),
922  [RV64] = (1ULL << 63),
923 };
924 
925 const std::unordered_map<int, RegVal> CSRMasks[enums::Num_RiscvType] = {
927  {CSR_UIE, UI_MASK},
928  {CSR_UIP, UI_MASK},
930  {CSR_FRM, FRM_MASK},
933  {CSR_SIE, SI_MASK},
934  {CSR_SIP, SI_MASK},
937  {CSR_MIE, MI_MASK},
939  {CSR_MIP, MI_MASK}},
941  {CSR_UIE, UI_MASK},
942  {CSR_UIP, UI_MASK},
944  {CSR_FRM, FRM_MASK},
947  {CSR_SIE, SI_MASK},
948  {CSR_SIP, SI_MASK},
951  {CSR_MIE, MI_MASK},
952  {CSR_MIP, MI_MASK}},
953 };
954 
955 } // namespace RiscvISA
956 } // namespace gem5
957 
958 #endif // __ARCH_RISCV_REGS_MISC_HH__
gem5::RiscvISA::ISA_MXL_MASKS
const RegVal ISA_MXL_MASKS[enums::Num_RiscvType]
Definition: misc.hh:821
gem5::RiscvISA::MI_MASK
const RegVal MI_MASK
Definition: misc.hh:910
gem5::RiscvISA::CSR_HPMCOUNTER26H
@ CSR_HPMCOUNTER26H
Definition: misc.hh:319
gem5::RiscvISA::CSR_MSCRATCH
@ CSR_MSCRATCH
Definition: misc.hh:352
gem5::RiscvISA::CSR_MIDELEG
@ CSR_MIDELEG
Definition: misc.hh:347
gem5::RiscvISA::MISCREG_HPMCOUNTER31
@ MISCREG_HPMCOUNTER31
Definition: misc.hh:109
gem5::RiscvISA::MISCREG_HPMEVENT11
@ MISCREG_HPMEVENT11
Definition: misc.hh:118
gem5::RiscvISA::CSR_MHPMEVENT23
@ CSR_MHPMEVENT23
Definition: misc.hh:463
gem5::RiscvISA::rvv
Bitfield< 21 > rvv
Definition: misc.hh:764
gem5::RiscvISA::MISCREG_STATUS
@ MISCREG_STATUS
Definition: misc.hh:75
gem5::RiscvISA::CSR_HPMCOUNTER04
@ CSR_HPMCOUNTER04
Definition: misc.hh:263
gem5::RiscvISA::CSR_UTVAL
@ CSR_UTVAL
Definition: misc.hh:254
gem5::RiscvISA::upie
Bitfield< 4 > upie
Definition: misc.hh:749
gem5::RiscvISA::mprv
Bitfield< 17 > mprv
Definition: misc.hh:741
gem5::RiscvISA::FRM_MASK
const RegVal FRM_MASK
Definition: misc.hh:918
gem5::RiscvISA::sxl
Bitfield< 35, 34 > sxl
Definition: misc.hh:733
gem5::RiscvISA::uie
Bitfield< 0 > uie
Definition: misc.hh:752
gem5::RiscvISA::CSR_MHPMEVENT15
@ CSR_MHPMEVENT15
Definition: misc.hh:455
gem5::RiscvISA::CSR_MHPMCOUNTER04H
@ CSR_MHPMCOUNTER04H
Definition: misc.hh:413
gem5::RiscvISA::rvd
Bitfield< 3 > rvd
Definition: misc.hh:780
gem5::RiscvISA::CSR_SIDELEG
@ CSR_SIDELEG
Definition: misc.hh:329
gem5::RiscvISA::MISCREG_HPMCOUNTER09
@ MISCREG_HPMCOUNTER09
Definition: misc.hh:87
gem5::RiscvISA::CSR_PMPADDR15
@ CSR_PMPADDR15
Definition: misc.hh:376
gem5::RiscvISA::mti
Bitfield< 7 > mti
Definition: misc.hh:796
gem5::RiscvISA::CSR_DPC
@ CSR_DPC
Definition: misc.hh:478
gem5::RiscvISA::MISCREG_HPMCOUNTER08H
@ MISCREG_HPMCOUNTER08H
Definition: misc.hh:215
gem5::RiscvISA::CSR_UIP
@ CSR_UIP
Definition: misc.hh:255
gem5::RiscvISA::MISCREG_HPMCOUNTER27H
@ MISCREG_HPMCOUNTER27H
Definition: misc.hh:234
gem5::RiscvISA::rvk
Bitfield< 10 > rvk
Definition: misc.hh:773
gem5::RiscvISA::MISCREG_HPMCOUNTER21H
@ MISCREG_HPMCOUNTER21H
Definition: misc.hh:228
gem5::RiscvISA::MISCREG_PMPADDR11
@ MISCREG_PMPADDR11
Definition: misc.hh:170
gem5::RegVal
uint64_t RegVal
Definition: types.hh:173
gem5::RiscvISA::MISCREG_HPMEVENT16
@ MISCREG_HPMEVENT16
Definition: misc.hh:123
gem5::RiscvISA::CSR_HPMCOUNTER12
@ CSR_HPMCOUNTER12
Definition: misc.hh:271
gem5::RiscvISA::MISCREG_HPMCOUNTER27
@ MISCREG_HPMCOUNTER27
Definition: misc.hh:105
gem5::RiscvISA::tsr
Bitfield< 22 > tsr
Definition: misc.hh:736
gem5::RiscvISA::MISCREG_HPMCOUNTER08
@ MISCREG_HPMCOUNTER08
Definition: misc.hh:86
gem5::RiscvISA::tw
Bitfield< 21 > tw
Definition: misc.hh:737
gem5::RiscvISA::CSR_TDATA1
@ CSR_TDATA1
Definition: misc.hh:474
gem5::RiscvISA::rvp
Bitfield< 15 > rvp
Definition: misc.hh:769
gem5::RiscvISA::CSR_SIP
@ CSR_SIP
Definition: misc.hh:337
gem5::RiscvISA::CSR_TSELECT
@ CSR_TSELECT
Definition: misc.hh:473
gem5::RiscvISA::MISCREG_HPMCOUNTER12
@ MISCREG_HPMCOUNTER12
Definition: misc.hh:90
gem5::RiscvISA::mpie
Bitfield< 7 > mpie
Definition: misc.hh:747
gem5::RiscvISA::CSR_MHPMEVENT14
@ CSR_MHPMEVENT14
Definition: misc.hh:454
gem5::RiscvISA::MISCREG_SIDELEG
@ MISCREG_SIDELEG
Definition: misc.hh:177
gem5::RiscvISA::CSR_PMPADDR02
@ CSR_PMPADDR02
Definition: misc.hh:363
gem5::RiscvISA::CSR_PMPADDR06
@ CSR_PMPADDR06
Definition: misc.hh:367
gem5::RiscvISA::rvn
Bitfield< 13 > rvn
Definition: misc.hh:770
gem5::RiscvISA::CSR_MHPMEVENT07
@ CSR_MHPMEVENT07
Definition: misc.hh:447
gem5::RiscvISA::CSR_MHPMCOUNTER19
@ CSR_MHPMCOUNTER19
Definition: misc.hh:395
gem5::RiscvISA::STATUS_SD_MASKS
const RegVal STATUS_SD_MASKS[enums::Num_RiscvType]
Definition: misc.hh:833
gem5::RiscvISA::CSR_MHPMCOUNTER12H
@ CSR_MHPMCOUNTER12H
Definition: misc.hh:421
gem5::RiscvISA::CSR_HPMCOUNTER22
@ CSR_HPMCOUNTER22
Definition: misc.hh:281
gem5::RiscvISA::CSR_USCRATCH
@ CSR_USCRATCH
Definition: misc.hh:251
gem5::RiscvISA::STATUS_MBE_MASK
const RegVal STATUS_MBE_MASK[enums::Num_RiscvType]
Definition: misc.hh:837
gem5::RiscvISA::CSR_HPMCOUNTER24
@ CSR_HPMCOUNTER24
Definition: misc.hh:283
gem5::RiscvISA::CSR_HPMCOUNTER08
@ CSR_HPMCOUNTER08
Definition: misc.hh:267
gem5::RiscvISA::CSR_HPMCOUNTER14H
@ CSR_HPMCOUNTER14H
Definition: misc.hh:307
gem5::RiscvISA::CSR_DSCRATCH
@ CSR_DSCRATCH
Definition: misc.hh:479
gem5::RiscvISA::CSR_HPMCOUNTER15H
@ CSR_HPMCOUNTER15H
Definition: misc.hh:308
gem5::RiscvISA::CSR_MHPMCOUNTER13H
@ CSR_MHPMCOUNTER13H
Definition: misc.hh:422
gem5::RiscvISA::MISCREG_SSCRATCH
@ MISCREG_SSCRATCH
Definition: misc.hh:180
gem5::RiscvISA::CSR_HPMCOUNTER07
@ CSR_HPMCOUNTER07
Definition: misc.hh:266
gem5::RiscvISA::CSR_MHPMEVENT09
@ CSR_MHPMEVENT09
Definition: misc.hh:449
gem5::RiscvISA::CSR_HPMCOUNTER28H
@ CSR_HPMCOUNTER28H
Definition: misc.hh:321
gem5::RiscvISA::STATUS_UPIE_MASK
const RegVal STATUS_UPIE_MASK
Definition: misc.hh:860
gem5::RiscvISA::MISCREG_HPMEVENT19
@ MISCREG_HPMEVENT19
Definition: misc.hh:126
gem5::RiscvISA::usi
Bitfield< 0 > usi
Definition: misc.hh:801
gem5::RiscvISA::CSR_MHPMCOUNTER26
@ CSR_MHPMCOUNTER26
Definition: misc.hh:402
gem5::RiscvISA::MISCREG_HPMCOUNTER23H
@ MISCREG_HPMCOUNTER23H
Definition: misc.hh:230
gem5::RiscvISA::CSR_PMPADDR01
@ CSR_PMPADDR01
Definition: misc.hh:362
gem5::RiscvISA::CSR_HPMCOUNTER17H
@ CSR_HPMCOUNTER17H
Definition: misc.hh:310
gem5::RiscvISA::CSR_MHPMEVENT20
@ CSR_MHPMEVENT20
Definition: misc.hh:460
gem5::RiscvISA::MISCREG_PMPADDR09
@ MISCREG_PMPADDR09
Definition: misc.hh:168
gem5::RiscvISA::CSR_HPMCOUNTER23H
@ CSR_HPMCOUNTER23H
Definition: misc.hh:316
gem5::RiscvISA::MISCREG_PMPCFG1
@ MISCREG_PMPCFG1
Definition: misc.hh:156
gem5::RiscvISA::MISCREG_HPMCOUNTER26
@ MISCREG_HPMCOUNTER26
Definition: misc.hh:104
gem5::RiscvISA::CSR_MHPMEVENT19
@ CSR_MHPMEVENT19
Definition: misc.hh:459
gem5::RiscvISA::CSR_PMPADDR08
@ CSR_PMPADDR08
Definition: misc.hh:369
gem5::RiscvISA::RV64
constexpr enums::RiscvType RV64
Definition: pcstate.hh:55
gem5::RiscvISA::CSR_MARCHID
@ CSR_MARCHID
Definition: misc.hh:341
gem5::RiscvISA::CSR_MHPMCOUNTER09
@ CSR_MHPMCOUNTER09
Definition: misc.hh:385
gem5::RiscvISA::MISCREG_MSTATUSH
@ MISCREG_MSTATUSH
Definition: misc.hh:205
gem5::RiscvISA::CSR_MHPMEVENT21
@ CSR_MHPMEVENT21
Definition: misc.hh:461
gem5::RiscvISA::MISCREG_HPMCOUNTER04H
@ MISCREG_HPMCOUNTER04H
Definition: misc.hh:211
gem5::RiscvISA::CSR_MHPMCOUNTER28H
@ CSR_MHPMCOUNTER28H
Definition: misc.hh:437
gem5::RiscvISA::MISCREG_TIMEH
@ MISCREG_TIMEH
Definition: misc.hh:208
gem5::RiscvISA::MSI_MASK
const RegVal MSI_MASK
Definition: misc.hh:907
gem5::RiscvISA::CSR_HPMCOUNTER05
@ CSR_HPMCOUNTER05
Definition: misc.hh:264
gem5::RiscvISA::MISCREG_MTVAL
@ MISCREG_MTVAL
Definition: misc.hh:154
gem5::RiscvISA::CSR_HPMCOUNTER18H
@ CSR_HPMCOUNTER18H
Definition: misc.hh:311
gem5::RiscvISA::CSR_UCAUSE
@ CSR_UCAUSE
Definition: misc.hh:253
gem5::RiscvISA::sie
Bitfield< 1 > sie
Definition: misc.hh:751
gem5::RiscvISA::CSR_MHPMCOUNTER05H
@ CSR_MHPMCOUNTER05H
Definition: misc.hh:414
gem5::RiscvISA::MISCREG_HPMEVENT15
@ MISCREG_HPMEVENT15
Definition: misc.hh:122
gem5::RiscvISA::MISCREG_HPMEVENT05
@ MISCREG_HPMEVENT05
Definition: misc.hh:112
gem5::RiscvISA::MISCREG_SEDELEG
@ MISCREG_SEDELEG
Definition: misc.hh:176
gem5::RiscvISA::CSR_MHPMEVENT04
@ CSR_MHPMEVENT04
Definition: misc.hh:444
gem5::RiscvISA::MISCREG_HPMCOUNTER28H
@ MISCREG_HPMCOUNTER28H
Definition: misc.hh:235
gem5::RiscvISA::MISCREG_HPMCOUNTER07
@ MISCREG_HPMCOUNTER07
Definition: misc.hh:85
gem5::RiscvISA::NUM_MISCREGS
@ NUM_MISCREGS
Definition: misc.hh:240
gem5::RiscvISA::STATUS_TW_MASK
const RegVal STATUS_TW_MASK
Definition: misc.hh:848
gem5::RiscvISA::MISCREG_DPC
@ MISCREG_DPC
Definition: misc.hh:144
gem5::RiscvISA::CSRMetadata::physIndex
const int physIndex
Definition: misc.hh:485
gem5::RiscvISA::CSR_HPMCOUNTER19
@ CSR_HPMCOUNTER19
Definition: misc.hh:278
gem5::RiscvISA::MISCREG_HPMCOUNTER15H
@ MISCREG_HPMCOUNTER15H
Definition: misc.hh:222
gem5::RiscvISA::CSR_MHPMCOUNTER10H
@ CSR_MHPMCOUNTER10H
Definition: misc.hh:419
gem5::RiscvISA::MISCREG_ISA
@ MISCREG_ISA
Definition: misc.hh:70
gem5::RiscvISA::MISCREG_IE
@ MISCREG_IE
Definition: misc.hh:77
gem5::RiscvISA::MISCREG_HPMEVENT14
@ MISCREG_HPMEVENT14
Definition: misc.hh:121
gem5::RiscvISA::CSR_TDATA2
@ CSR_TDATA2
Definition: misc.hh:475
gem5::RiscvISA::STATUS_TSR_MASK
const RegVal STATUS_TSR_MASK
Definition: misc.hh:847
gem5::RiscvISA::MISCREG_HPMCOUNTER24H
@ MISCREG_HPMCOUNTER24H
Definition: misc.hh:231
gem5::RiscvISA::MISCREG_CYCLE
@ MISCREG_CYCLE
Definition: misc.hh:78
gem5::RiscvISA::CSR_HPMCOUNTER25
@ CSR_HPMCOUNTER25
Definition: misc.hh:284
gem5::RiscvISA::CSR_MCOUNTEREN
@ CSR_MCOUNTEREN
Definition: misc.hh:350
gem5::RiscvISA::RV32
constexpr enums::RiscvType RV32
Definition: pcstate.hh:54
gem5::RiscvISA::STATUS_SPP_MASK
const RegVal STATUS_SPP_MASK
Definition: misc.hh:857
gem5::RiscvISA::MISCREG_HPMCOUNTER14
@ MISCREG_HPMCOUNTER14
Definition: misc.hh:92
gem5::RiscvISA::CSR_PMPADDR09
@ CSR_PMPADDR09
Definition: misc.hh:370
gem5::RiscvISA::STATUS_XS_MASK
const RegVal STATUS_XS_MASK
Definition: misc.hh:853
gem5::RiscvISA::CSR_SCOUNTEREN
@ CSR_SCOUNTEREN
Definition: misc.hh:332
gem5::RiscvISA::CSR_MHPMCOUNTER11
@ CSR_MHPMCOUNTER11
Definition: misc.hh:387
gem5::RiscvISA::CSR_HPMCOUNTER30H
@ CSR_HPMCOUNTER30H
Definition: misc.hh:323
gem5::RiscvISA::sei
Bitfield< 9 > sei
Definition: misc.hh:794
gem5::RiscvISA::rvc
Bitfield< 2 > rvc
Definition: misc.hh:781
gem5::RiscvISA::CSR_MHPMEVENT05
@ CSR_MHPMEVENT05
Definition: misc.hh:445
gem5::RiscvISA::MISCREG_HPMCOUNTER11H
@ MISCREG_HPMCOUNTER11H
Definition: misc.hh:218
gem5::RiscvISA::CSR_DCSR
@ CSR_DCSR
Definition: misc.hh:477
gem5::RiscvISA::xs
Bitfield< 16, 15 > xs
Definition: misc.hh:742
gem5::RiscvISA::STATUS_SPIE_MASK
const RegVal STATUS_SPIE_MASK
Definition: misc.hh:859
gem5::RiscvISA::CSR_SEDELEG
@ CSR_SEDELEG
Definition: misc.hh:328
gem5::RiscvISA::CSR_FFLAGS
@ CSR_FFLAGS
Definition: misc.hh:256
gem5::RiscvISA::MISCREG_HPMEVENT22
@ MISCREG_HPMEVENT22
Definition: misc.hh:129
gem5::RiscvISA::MISCREG_HPMCOUNTER13
@ MISCREG_HPMCOUNTER13
Definition: misc.hh:91
gem5::RiscvISA::CSR_MHPMCOUNTER08H
@ CSR_MHPMCOUNTER08H
Definition: misc.hh:417
gem5::RiscvISA::CSR_MHPMCOUNTER05
@ CSR_MHPMCOUNTER05
Definition: misc.hh:381
gem5::RiscvISA::MISCREG_HPMCOUNTER14H
@ MISCREG_HPMCOUNTER14H
Definition: misc.hh:221
gem5::RiscvISA::CSR_HPMCOUNTER12H
@ CSR_HPMCOUNTER12H
Definition: misc.hh:305
gem5::RiscvISA::MISCREG_HPMCOUNTER26H
@ MISCREG_HPMCOUNTER26H
Definition: misc.hh:233
gem5::RiscvISA::CSR_PMPCFG1
@ CSR_PMPCFG1
Definition: misc.hh:358
gem5::RiscvISA::MISCREG_HPMEVENT09
@ MISCREG_HPMEVENT09
Definition: misc.hh:116
gem5::RiscvISA::CSR_MHPMCOUNTER30
@ CSR_MHPMCOUNTER30
Definition: misc.hh:406
gem5::RiscvISA::CSR_HPMCOUNTER29
@ CSR_HPMCOUNTER29
Definition: misc.hh:288
gem5::RiscvISA::STATUS_UXL_MASK
const RegVal STATUS_UXL_MASK
Definition: misc.hh:846
gem5::RiscvISA::MISCREG_PMPADDR12
@ MISCREG_PMPADDR12
Definition: misc.hh:171
gem5::RiscvISA::MISCREG_HPMCOUNTER25H
@ MISCREG_HPMCOUNTER25H
Definition: misc.hh:232
gem5::RiscvISA::CSR_MHPMCOUNTER20H
@ CSR_MHPMCOUNTER20H
Definition: misc.hh:429
gem5::RiscvISA::MISCREG_SCAUSE
@ MISCREG_SCAUSE
Definition: misc.hh:182
gem5::RiscvISA::CSR_MINSTRET
@ CSR_MINSTRET
Definition: misc.hh:378
gem5::RiscvISA::CSR_MHPMCOUNTER31H
@ CSR_MHPMCOUNTER31H
Definition: misc.hh:440
gem5::RiscvISA::MISCREG_NMIE
@ MISCREG_NMIE
Definition: misc.hh:200
gem5::RiscvISA::FFLAGS_MASK
const RegVal FFLAGS_MASK
Definition: misc.hh:917
gem5::RiscvISA::MISCREG_HPMCOUNTER06
@ MISCREG_HPMCOUNTER06
Definition: misc.hh:84
gem5::RiscvISA::MISCREG_MEDELEG
@ MISCREG_MEDELEG
Definition: misc.hh:147
gem5::RiscvISA::CSR_HPMCOUNTER20H
@ CSR_HPMCOUNTER20H
Definition: misc.hh:313
gem5::RiscvISA::CSR_MINSTRETH
@ CSR_MINSTRETH
Definition: misc.hh:411
gem5::RiscvISA::CSR_MIMPID
@ CSR_MIMPID
Definition: misc.hh:342
gem5::RiscvISA::STATUS_UIE_MASK
const RegVal STATUS_UIE_MASK
Definition: misc.hh:863
gem5::RiscvISA::CSR_HPMCOUNTER27H
@ CSR_HPMCOUNTER27H
Definition: misc.hh:320
gem5::RiscvISA::MISCREG_DSCRATCH
@ MISCREG_DSCRATCH
Definition: misc.hh:145
gem5::RiscvISA::CSR_UTVEC
@ CSR_UTVEC
Definition: misc.hh:250
gem5::RiscvISA::MISCREG_HPMEVENT29
@ MISCREG_HPMEVENT29
Definition: misc.hh:136
gem5::RiscvISA::MISCREG_INSTRETH
@ MISCREG_INSTRETH
Definition: misc.hh:209
gem5::RiscvISA::MISA_MASKS
const RegVal MISA_MASKS[enums::Num_RiscvType]
Definition: misc.hh:827
gem5::RiscvISA::rvu
Bitfield< 20 > rvu
Definition: misc.hh:765
gem5::RiscvISA::MSTATUSH_MASKS
const RegVal MSTATUSH_MASKS
Definition: misc.hh:881
gem5::RiscvISA::CSR_MHPMCOUNTER06
@ CSR_MHPMCOUNTER06
Definition: misc.hh:382
gem5::RiscvISA::CSR_MHPMEVENT24
@ CSR_MHPMEVENT24
Definition: misc.hh:464
gem5::RiscvISA::CSR_MHPMCOUNTER28
@ CSR_MHPMCOUNTER28
Definition: misc.hh:404
gem5::RiscvISA::CSR_HPMCOUNTER21
@ CSR_HPMCOUNTER21
Definition: misc.hh:280
gem5::RiscvISA::FS_OFFSET
const off_t FS_OFFSET
Definition: misc.hh:818
gem5::RiscvISA::MISCREG_PMPADDR01
@ MISCREG_PMPADDR01
Definition: misc.hh:160
gem5::RiscvISA::MISCREG_INSTRET
@ MISCREG_INSTRET
Definition: misc.hh:80
gem5::RiscvISA::CSR_INSTRETH
@ CSR_INSTRETH
Definition: misc.hh:295
gem5::RiscvISA::STATUS_TVM_MASK
const RegVal STATUS_TVM_MASK
Definition: misc.hh:849
gem5::RiscvISA::CSR_HPMCOUNTER16H
@ CSR_HPMCOUNTER16H
Definition: misc.hh:309
gem5::RiscvISA::MISCREG_HPMCOUNTER29
@ MISCREG_HPMCOUNTER29
Definition: misc.hh:107
gem5::RiscvISA::CSR_PMPADDR07
@ CSR_PMPADDR07
Definition: misc.hh:368
gem5::RiscvISA::CSR_PMPADDR12
@ CSR_PMPADDR12
Definition: misc.hh:373
gem5::RiscvISA::CSR_HPMCOUNTER04H
@ CSR_HPMCOUNTER04H
Definition: misc.hh:297
gem5::RiscvISA::CSR_FCSR
@ CSR_FCSR
Definition: misc.hh:258
gem5::RiscvISA::mpp
Bitfield< 12, 11 > mpp
Definition: misc.hh:744
gem5::RiscvISA::CSR_MCAUSE
@ CSR_MCAUSE
Definition: misc.hh:354
gem5::RiscvISA::CSR_HPMCOUNTER07H
@ CSR_HPMCOUNTER07H
Definition: misc.hh:300
gem5::RiscvISA::rva
Bitfield< 0 > rva
Definition: misc.hh:783
gem5::RiscvISA::tvm
Bitfield< 20 > tvm
Definition: misc.hh:738
gem5::RiscvISA::rvj
Bitfield< 9 > rvj
Definition: misc.hh:774
gem5::RiscvISA::CSR_SEPC
@ CSR_SEPC
Definition: misc.hh:334
gem5::RiscvISA::MISCREG_PMPADDR05
@ MISCREG_PMPADDR05
Definition: misc.hh:164
gem5::RiscvISA::CSR_MHPMCOUNTER23H
@ CSR_MHPMCOUNTER23H
Definition: misc.hh:432
gem5::RiscvISA::CSR_MHPMCOUNTER19H
@ CSR_MHPMCOUNTER19H
Definition: misc.hh:428
gem5::RiscvISA::MISCREG_HPMEVENT24
@ MISCREG_HPMEVENT24
Definition: misc.hh:131
gem5::RiscvISA::CSR_USTATUS
@ CSR_USTATUS
Definition: misc.hh:248
gem5::RiscvISA::MISCREG_HPMCOUNTER25
@ MISCREG_HPMCOUNTER25
Definition: misc.hh:103
gem5::RiscvISA::SXL_OFFSET
const off_t SXL_OFFSET
Definition: misc.hh:816
gem5::RiscvISA::CSR_HPMCOUNTER13H
@ CSR_HPMCOUNTER13H
Definition: misc.hh:306
gem5::RiscvISA::CSR_HPMCOUNTER11
@ CSR_HPMCOUNTER11
Definition: misc.hh:270
gem5::RiscvISA::MISCREG_HPMCOUNTER09H
@ MISCREG_HPMCOUNTER09H
Definition: misc.hh:216
gem5::RiscvISA::CSR_MHPMCOUNTER10
@ CSR_MHPMCOUNTER10
Definition: misc.hh:386
gem5::RiscvISA::CSR_MTVAL
@ CSR_MTVAL
Definition: misc.hh:355
gem5::RiscvISA::MISCREG_HPMEVENT31
@ MISCREG_HPMEVENT31
Definition: misc.hh:138
gem5::RiscvISA::CSR_MHPMEVENT17
@ CSR_MHPMEVENT17
Definition: misc.hh:457
gem5::RiscvISA::CSR_HPMCOUNTER31H
@ CSR_HPMCOUNTER31H
Definition: misc.hh:324
gem5::RiscvISA::MISCREG_FRM
@ MISCREG_FRM
Definition: misc.hh:192
gem5::RiscvISA::MISCREG_SEPC
@ MISCREG_SEPC
Definition: misc.hh:181
gem5::RiscvISA::MISCREG_MSCRATCH
@ MISCREG_MSCRATCH
Definition: misc.hh:151
gem5::RiscvISA::SEI_MASK
const RegVal SEI_MASK
Definition: misc.hh:902
gem5::RiscvISA::CSR_MHPMEVENT13
@ CSR_MHPMEVENT13
Definition: misc.hh:453
gem5::RiscvISA::CSR_MIE
@ CSR_MIE
Definition: misc.hh:348
gem5::RiscvISA::CSR_MHPMEVENT31
@ CSR_MHPMEVENT31
Definition: misc.hh:471
gem5::RiscvISA::CSR_MHPMEVENT28
@ CSR_MHPMEVENT28
Definition: misc.hh:468
gem5::RiscvISA::MISCREG_HPMCOUNTER19H
@ MISCREG_HPMCOUNTER19H
Definition: misc.hh:226
gem5::RiscvISA::CSR_PMPADDR05
@ CSR_PMPADDR05
Definition: misc.hh:366
gem5::RiscvISA::rv32_mxl
Bitfield< 31, 30 > rv32_mxl
Definition: misc.hh:762
gem5::RiscvISA::CSR_SCAUSE
@ CSR_SCAUSE
Definition: misc.hh:335
gem5::RiscvISA::CSR_SSCRATCH
@ CSR_SSCRATCH
Definition: misc.hh:333
gem5::RiscvISA::CSR_CYCLEH
@ CSR_CYCLEH
Definition: misc.hh:293
gem5::RiscvISA::MISCREG_HPMCOUNTER31H
@ MISCREG_HPMCOUNTER31H
Definition: misc.hh:238
gem5::RiscvISA::MISCREG_HPMCOUNTER18
@ MISCREG_HPMCOUNTER18
Definition: misc.hh:96
gem5::RiscvISA::MSTATUS_MASKS
const RegVal MSTATUS_MASKS[enums::Num_RiscvType]
Definition: misc.hh:864
gem5::RiscvISA::CSR_HPMCOUNTER05H
@ CSR_HPMCOUNTER05H
Definition: misc.hh:298
gem5::RiscvISA::CSR_MHPMEVENT22
@ CSR_MHPMEVENT22
Definition: misc.hh:462
gem5::RiscvISA::CSR_HPMCOUNTER25H
@ CSR_HPMCOUNTER25H
Definition: misc.hh:318
gem5::RiscvISA::MISCREG_IMPID
@ MISCREG_IMPID
Definition: misc.hh:73
gem5::RiscvISA::CSR_MSTATUS
@ CSR_MSTATUS
Definition: misc.hh:344
gem5::RiscvISA::MISCREG_HPMCOUNTER17
@ MISCREG_HPMCOUNTER17
Definition: misc.hh:95
gem5::RiscvISA::vs
Bitfield< 9, 5 > vs
Definition: pra_constants.hh:149
gem5::RiscvISA::MISCREG_PMPCFG3
@ MISCREG_PMPCFG3
Definition: misc.hh:158
gem5::RiscvISA::MISCREG_PMPADDR00
@ MISCREG_PMPADDR00
Definition: misc.hh:159
gem5::RiscvISA::STATUS_SXL_MASK
const RegVal STATUS_SXL_MASK
Definition: misc.hh:845
gem5::RiscvISA::MISCREG_HPMCOUNTER23
@ MISCREG_HPMCOUNTER23
Definition: misc.hh:101
gem5::RiscvISA::CSR_MHPMEVENT30
@ CSR_MHPMEVENT30
Definition: misc.hh:470
gem5::RiscvISA::MISCREG_VENDORID
@ MISCREG_VENDORID
Definition: misc.hh:71
bitunion.hh
gem5::RiscvISA::CSR_FRM
@ CSR_FRM
Definition: misc.hh:257
gem5::RiscvISA::MISCREG_HPMCOUNTER06H
@ MISCREG_HPMCOUNTER06H
Definition: misc.hh:213
gem5::RiscvISA::MISCREG_SATP
@ MISCREG_SATP
Definition: misc.hh:184
gem5::RiscvISA::CSR_MHPMCOUNTER29H
@ CSR_MHPMCOUNTER29H
Definition: misc.hh:438
gem5::RiscvISA::CSR_HPMCOUNTER15
@ CSR_HPMCOUNTER15
Definition: misc.hh:274
gem5::RiscvISA::MISCREG_PMPADDR08
@ MISCREG_PMPADDR08
Definition: misc.hh:167
types.hh
gem5::RiscvISA::rvl
Bitfield< 11 > rvl
Definition: misc.hh:772
gem5::RiscvISA::CSR_MHPMCOUNTER14
@ CSR_MHPMCOUNTER14
Definition: misc.hh:390
gem5::RiscvISA::CSR_MHPMCOUNTER26H
@ CSR_MHPMCOUNTER26H
Definition: misc.hh:435
gem5::RiscvISA::CSR_HPMCOUNTER16
@ CSR_HPMCOUNTER16
Definition: misc.hh:275
gem5::RiscvISA::MISCREG_HPMEVENT21
@ MISCREG_HPMEVENT21
Definition: misc.hh:128
gem5::RiscvISA::MISCREG_HPMEVENT08
@ MISCREG_HPMEVENT08
Definition: misc.hh:115
gem5::RiscvISA::CSR_MHPMCOUNTER30H
@ CSR_MHPMCOUNTER30H
Definition: misc.hh:439
gem5::RiscvISA::CSR_MHPMCOUNTER03H
@ CSR_MHPMCOUNTER03H
Definition: misc.hh:412
gem5::RiscvISA::STATUS_FS_MASK
const RegVal STATUS_FS_MASK
Definition: misc.hh:854
gem5::RiscvISA::MISCREG_MCAUSE
@ MISCREG_MCAUSE
Definition: misc.hh:153
gem5::RiscvISA::CSR_HPMCOUNTER03
@ CSR_HPMCOUNTER03
Definition: misc.hh:262
gem5::RiscvISA::CSR_MHPMCOUNTER13
@ CSR_MHPMCOUNTER13
Definition: misc.hh:389
gem5::RiscvISA::MISCREG_HPMCOUNTER29H
@ MISCREG_HPMCOUNTER29H
Definition: misc.hh:236
gem5::RiscvISA::MISCREG_HPMEVENT13
@ MISCREG_HPMEVENT13
Definition: misc.hh:120
gem5::RiscvISA::CSR_HPMCOUNTER11H
@ CSR_HPMCOUNTER11H
Definition: misc.hh:304
gem5::RiscvISA::STATUS_MPIE_MASK
const RegVal STATUS_MPIE_MASK
Definition: misc.hh:858
gem5::RiscvISA::rvq
Bitfield< 16 > rvq
Definition: misc.hh:768
gem5::RiscvISA::ssi
Bitfield< 1 > ssi
Definition: misc.hh:800
gem5::RiscvISA::CSR_TIMEH
@ CSR_TIMEH
Definition: misc.hh:294
gem5::RiscvISA::CSR_SIE
@ CSR_SIE
Definition: misc.hh:330
gem5::RiscvISA::MISCREG_HPMCOUNTER12H
@ MISCREG_HPMCOUNTER12H
Definition: misc.hh:219
gem5::RiscvISA::MISCREG_HPMEVENT20
@ MISCREG_HPMEVENT20
Definition: misc.hh:127
gem5::RiscvISA::rvg
Bitfield< 6 > rvg
Definition: misc.hh:777
gem5::RiscvISA::MISCREG_HPMEVENT07
@ MISCREG_HPMEVENT07
Definition: misc.hh:114
gem5::RiscvISA::mie
Bitfield< 3 > mie
Definition: misc.hh:750
gem5::RiscvISA::uti
Bitfield< 4 > uti
Definition: misc.hh:798
gem5::RiscvISA::CSR_MHPMCOUNTER27
@ CSR_MHPMCOUNTER27
Definition: misc.hh:403
gem5::RiscvISA::MISCREG_TDATA1
@ MISCREG_TDATA1
Definition: misc.hh:140
gem5::RiscvISA::MISCREG_HPMEVENT30
@ MISCREG_HPMEVENT30
Definition: misc.hh:137
gem5::RiscvISA::CSR_MCYCLE
@ CSR_MCYCLE
Definition: misc.hh:377
gem5::RiscvISA::MISCREG_CYCLEH
@ MISCREG_CYCLEH
Definition: misc.hh:207
gem5::RiscvISA::CSR_MHPMCOUNTER25H
@ CSR_MHPMCOUNTER25H
Definition: misc.hh:434
gem5::RiscvISA::msi
Bitfield< 3 > msi
Definition: misc.hh:799
gem5::RiscvISA::CSR_PMPADDR03
@ CSR_PMPADDR03
Definition: misc.hh:364
gem5::RiscvISA::MISCREG_PMPCFG2
@ MISCREG_PMPCFG2
Definition: misc.hh:157
gem5::RiscvISA::CSR_HPMCOUNTER10
@ CSR_HPMCOUNTER10
Definition: misc.hh:269
gem5::RiscvISA::MISCREG_TDATA3
@ MISCREG_TDATA3
Definition: misc.hh:142
gem5::RiscvISA::CSR_MHPMEVENT06
@ CSR_MHPMEVENT06
Definition: misc.hh:446
gem5::RiscvISA::MISCREG_TSELECT
@ MISCREG_TSELECT
Definition: misc.hh:139
gem5::RiscvISA::CSR_HPMCOUNTER30
@ CSR_HPMCOUNTER30
Definition: misc.hh:289
gem5::RiscvISA::MISCREG_HPMEVENT17
@ MISCREG_HPMEVENT17
Definition: misc.hh:124
gem5::RiscvISA::MISCREG_USCRATCH
@ MISCREG_USCRATCH
Definition: misc.hh:187
gem5::RiscvISA::MISCREG_HPMCOUNTER22H
@ MISCREG_HPMCOUNTER22H
Definition: misc.hh:229
gem5::RiscvISA::mask
mask
Definition: pra_constants.hh:73
gem5::RiscvISA::rvf
Bitfield< 5 > rvf
Definition: misc.hh:778
gem5::RiscvISA::CSR_TDATA3
@ CSR_TDATA3
Definition: misc.hh:476
gem5::RiscvISA::MISCREG_NMIVEC
@ MISCREG_NMIVEC
Definition: misc.hh:198
vec_pred_reg.hh
gem5::RiscvISA::MISCREG_HPMCOUNTER17H
@ MISCREG_HPMCOUNTER17H
Definition: misc.hh:224
gem5::RiscvISA::MISCREG_HPMCOUNTER04
@ MISCREG_HPMCOUNTER04
Definition: misc.hh:82
gem5::RiscvISA::rvm
Bitfield< 12 > rvm
Definition: misc.hh:771
gem5::RiscvISA::CSR_UIE
@ CSR_UIE
Definition: misc.hh:249
gem5::RiscvISA::rv64_mxl
rv64_mxl
Definition: misc.hh:761
gem5::RiscvISA::CSR_SATP
@ CSR_SATP
Definition: misc.hh:338
gem5::RiscvISA::CSR_STVAL
@ CSR_STVAL
Definition: misc.hh:336
gem5::RiscvISA::CSR_MHPMCOUNTER23
@ CSR_MHPMCOUNTER23
Definition: misc.hh:399
gem5::RiscvISA::CSR_MHPMCOUNTER27H
@ CSR_MHPMCOUNTER27H
Definition: misc.hh:436
gem5::RiscvISA::STATUS_MPP_MASK
const RegVal STATUS_MPP_MASK
Definition: misc.hh:855
gem5::RiscvISA::MISCREG_PMPADDR15
@ MISCREG_PMPADDR15
Definition: misc.hh:174
gem5::RiscvISA::CSR_MHPMCOUNTER17
@ CSR_MHPMCOUNTER17
Definition: misc.hh:393
gem5::RiscvISA::CSR_MHPMCOUNTER11H
@ CSR_MHPMCOUNTER11H
Definition: misc.hh:420
gem5::RiscvISA::CSR_HPMCOUNTER20
@ CSR_HPMCOUNTER20
Definition: misc.hh:279
gem5::RiscvISA::MISCREG_PMPADDR03
@ MISCREG_PMPADDR03
Definition: misc.hh:162
gem5::RiscvISA::CSR_MHPMEVENT25
@ CSR_MHPMEVENT25
Definition: misc.hh:465
gem5::RiscvISA::CSR_HPMCOUNTER19H
@ CSR_HPMCOUNTER19H
Definition: misc.hh:312
gem5::RegClass
Definition: reg_class.hh:184
gem5::RiscvISA::MISCREG_PMPADDR10
@ MISCREG_PMPADDR10
Definition: misc.hh:169
gem5::RiscvISA::MISCREG_HPMEVENT27
@ MISCREG_HPMEVENT27
Definition: misc.hh:134
gem5::RiscvISA::CSR_TIME
@ CSR_TIME
Definition: misc.hh:260
gem5::RiscvISA::CSR_MHPMEVENT29
@ CSR_MHPMEVENT29
Definition: misc.hh:469
gem5::RiscvISA::MISCREG_HPMCOUNTER03H
@ MISCREG_HPMCOUNTER03H
Definition: misc.hh:210
gem5::RiscvISA::MISCREG_HPMEVENT12
@ MISCREG_HPMEVENT12
Definition: misc.hh:119
gem5::RiscvISA::FRM_OFFSET
const off_t FRM_OFFSET
Definition: misc.hh:819
gem5::RiscvISA::CSR_MTVEC
@ CSR_MTVEC
Definition: misc.hh:349
gem5::RiscvISA::CSR_STVEC
@ CSR_STVEC
Definition: misc.hh:331
gem5::RiscvISA::CSR_HPMCOUNTER03H
@ CSR_HPMCOUNTER03H
Definition: misc.hh:296
gem5::RiscvISA::rvt
Bitfield< 19 > rvt
Definition: misc.hh:766
gem5::RiscvISA::MISCREG_MEPC
@ MISCREG_MEPC
Definition: misc.hh:152
gem5::RiscvISA::CSR_MHPMCOUNTER07
@ CSR_MHPMCOUNTER07
Definition: misc.hh:383
gem5::RiscvISA::SBE_OFFSET
const off_t SBE_OFFSET[enums::Num_RiscvType]
Definition: misc.hh:812
gem5::RiscvISA::SSTATUS_MASKS
const RegVal SSTATUS_MASKS[enums::Num_RiscvType]
Definition: misc.hh:882
gem5::RiscvISA::spie
Bitfield< 5 > spie
Definition: misc.hh:748
gem5::RiscvISA::CSR_CYCLE
@ CSR_CYCLE
Definition: misc.hh:259
gem5::RiscvISA::CSR_HPMCOUNTER09H
@ CSR_HPMCOUNTER09H
Definition: misc.hh:302
gem5::RiscvISA::MISCREG_HARTID
@ MISCREG_HARTID
Definition: misc.hh:74
gem5::RiscvISA::MISCREG_HPMCOUNTER22
@ MISCREG_HPMCOUNTER22
Definition: misc.hh:100
gem5::RiscvISA::rvb
Bitfield< 1 > rvb
Definition: misc.hh:782
gem5::RiscvISA::MISCREG_HPMCOUNTER03
@ MISCREG_HPMCOUNTER03
Definition: misc.hh:81
vec_reg.hh
gem5::RiscvISA::MISCREG_PMPADDR07
@ MISCREG_PMPADDR07
Definition: misc.hh:166
gem5::RiscvISA::CSR_MHPMCOUNTER24
@ CSR_MHPMCOUNTER24
Definition: misc.hh:400
gem5::RiscvISA::MISCREG_HPMCOUNTER10H
@ MISCREG_HPMCOUNTER10H
Definition: misc.hh:217
gem5::RiscvISA::CSR_MEDELEG
@ CSR_MEDELEG
Definition: misc.hh:346
gem5::MiscRegClassName
constexpr char MiscRegClassName[]
Definition: reg_class.hh:81
gem5::RiscvISA::CSR_MHPMCOUNTER22
@ CSR_MHPMCOUNTER22
Definition: misc.hh:398
gem5::RiscvISA::CSR_HPMCOUNTER09
@ CSR_HPMCOUNTER09
Definition: misc.hh:268
gem5::RiscvISA::CSR_MHPMEVENT11
@ CSR_MHPMEVENT11
Definition: misc.hh:451
gem5::RiscvISA::CSR_MHPMCOUNTER16
@ CSR_MHPMCOUNTER16
Definition: misc.hh:392
gem5::RiscvISA::CSR_MHPMCOUNTER21
@ CSR_MHPMCOUNTER21
Definition: misc.hh:397
gem5::RiscvISA::UI_MASK
const RegVal UI_MASK
Definition: misc.hh:916
gem5::RiscvISA::MISCREG_HPMCOUNTER13H
@ MISCREG_HPMCOUNTER13H
Definition: misc.hh:220
gem5::RiscvISA::CSR_MHPMCOUNTER20
@ CSR_MHPMCOUNTER20
Definition: misc.hh:396
gem5::RiscvISA::CSR_HPMCOUNTER14
@ CSR_HPMCOUNTER14
Definition: misc.hh:273
gem5::RiscvISA::MISCREG_HPMEVENT10
@ MISCREG_HPMEVENT10
Definition: misc.hh:117
gem5::RiscvISA::spp
Bitfield< 8 > spp
Definition: misc.hh:746
gem5::RiscvISA::MISCREG_HPMCOUNTER30H
@ MISCREG_HPMCOUNTER30H
Definition: misc.hh:237
gem5::RiscvISA::USI_MASK
const RegVal USI_MASK
Definition: misc.hh:909
gem5::RiscvISA::CSR_MHPMCOUNTER18
@ CSR_MHPMCOUNTER18
Definition: misc.hh:394
gem5::RiscvISA::USTATUS_MASKS
const RegVal USTATUS_MASKS[enums::Num_RiscvType]
Definition: misc.hh:892
gem5::RiscvISA::CSR_MHPMEVENT10
@ CSR_MHPMEVENT10
Definition: misc.hh:450
gem5::RiscvISA::rvi
Bitfield< 8 > rvi
Definition: misc.hh:775
gem5::RiscvISA::MISCREG_HPMEVENT26
@ MISCREG_HPMEVENT26
Definition: misc.hh:133
gem5::RiscvISA::CSR_MHPMEVENT18
@ CSR_MHPMEVENT18
Definition: misc.hh:458
gem5::RiscvISA::STATUS_MIE_MASK
const RegVal STATUS_MIE_MASK
Definition: misc.hh:861
gem5::RiscvISA::CSR_MHPMEVENT03
@ CSR_MHPMEVENT03
Definition: misc.hh:443
gem5::RiscvISA::uxl
Bitfield< 33, 32 > uxl
Definition: misc.hh:734
gem5::RiscvISA::CSR_PMPADDR13
@ CSR_PMPADDR13
Definition: misc.hh:374
gem5::RiscvISA::MISCREG_ARCHID
@ MISCREG_ARCHID
Definition: misc.hh:72
gem5::RiscvISA::CSR_PMPCFG2
@ CSR_PMPCFG2
Definition: misc.hh:359
gem5::RiscvISA::MISCREG_UTVEC
@ MISCREG_UTVEC
Definition: misc.hh:186
gem5::RiscvISA::MISCREG_HPMCOUNTER21
@ MISCREG_HPMCOUNTER21
Definition: misc.hh:99
gem5::RiscvISA::miscRegClass
constexpr RegClass miscRegClass(MiscRegClass, MiscRegClassName, NUM_MISCREGS, debug::MiscRegs)
gem5::RiscvISA::CSR_HPMCOUNTER24H
@ CSR_HPMCOUNTER24H
Definition: misc.hh:317
gem5::MiscRegClass
@ MiscRegClass
Control (misc) register.
Definition: reg_class.hh:69
gem5::RiscvISA::MISCREG_HPMEVENT23
@ MISCREG_HPMEVENT23
Definition: misc.hh:130
gem5::RiscvISA::CSR_HPMCOUNTER29H
@ CSR_HPMCOUNTER29H
Definition: misc.hh:322
gem5::RiscvISA::rv32_sd
Bitfield< 31 > rv32_sd
Definition: misc.hh:735
gem5::RiscvISA::sti
Bitfield< 5 > sti
Definition: misc.hh:797
gem5::RiscvISA::MISCREG_PMPADDR06
@ MISCREG_PMPADDR06
Definition: misc.hh:165
types.hh
gem5::RiscvISA::CSR_MHPMEVENT12
@ CSR_MHPMEVENT12
Definition: misc.hh:452
gem5::RiscvISA::CSR_HPMCOUNTER08H
@ CSR_HPMCOUNTER08H
Definition: misc.hh:301
gem5::RiscvISA::CSR_MHPMCOUNTER09H
@ CSR_MHPMCOUNTER09H
Definition: misc.hh:418
gem5::RiscvISA::CSRIndex
CSRIndex
Definition: misc.hh:246
gem5::RiscvISA::MISCREG_PMPCFG0
@ MISCREG_PMPCFG0
Definition: misc.hh:155
gem5::RiscvISA::CSR_SSTATUS
@ CSR_SSTATUS
Definition: misc.hh:327
gem5::RiscvISA::CSR_HPMCOUNTER31
@ CSR_HPMCOUNTER31
Definition: misc.hh:290
gem5::RiscvISA::STATUS_MXR_MASK
const RegVal STATUS_MXR_MASK
Definition: misc.hh:850
gem5::RiscvISA::MISCREG_HPMCOUNTER18H
@ MISCREG_HPMCOUNTER18H
Definition: misc.hh:225
gem5::RiscvISA::CSR_MHPMEVENT16
@ CSR_MHPMEVENT16
Definition: misc.hh:456
gem5::RiscvISA::CSR_HPMCOUNTER13
@ CSR_HPMCOUNTER13
Definition: misc.hh:272
gem5::RiscvISA::mxr
Bitfield< 19 > mxr
Definition: misc.hh:739
gem5::RiscvISA::CSR_HPMCOUNTER18
@ CSR_HPMCOUNTER18
Definition: misc.hh:277
gem5::RiscvISA::MISCREG_PMPADDR04
@ MISCREG_PMPADDR04
Definition: misc.hh:163
gem5::RiscvISA::CSR_MHPMCOUNTER21H
@ CSR_MHPMCOUNTER21H
Definition: misc.hh:430
reg_class.hh
gem5::RiscvISA::CSR_PMPADDR04
@ CSR_PMPADDR04
Definition: misc.hh:365
gem5::RiscvISA::rve
Bitfield< 4 > rve
Definition: misc.hh:779
gem5::RiscvISA::rvs
Bitfield< 18 > rvs
Definition: misc.hh:767
gem5::RiscvISA::CSR_MHPMCOUNTER03
@ CSR_MHPMCOUNTER03
Definition: misc.hh:379
gem5::RiscvISA::MISCREG_PMPADDR14
@ MISCREG_PMPADDR14
Definition: misc.hh:173
gem5::RiscvISA::CSR_PMPADDR11
@ CSR_PMPADDR11
Definition: misc.hh:372
gem5::RiscvISA::CSR_HPMCOUNTER17
@ CSR_HPMCOUNTER17
Definition: misc.hh:276
gem5::RiscvISA::MISCREG_TIME
@ MISCREG_TIME
Definition: misc.hh:79
gem5::RiscvISA::CSR_MHPMCOUNTER15
@ CSR_MHPMCOUNTER15
Definition: misc.hh:391
gem5::RiscvISA::MISCREG_UEPC
@ MISCREG_UEPC
Definition: misc.hh:188
gem5::RiscvISA::rvh
Bitfield< 7 > rvh
Definition: misc.hh:776
gem5::RiscvISA::CSR_MVENDORID
@ CSR_MVENDORID
Definition: misc.hh:340
gem5::RiscvISA::UXL_OFFSET
const off_t UXL_OFFSET
Definition: misc.hh:817
gem5::RiscvISA::MISCREG_HPMEVENT25
@ MISCREG_HPMEVENT25
Definition: misc.hh:132
gem5::RiscvISA::UTI_MASK
const RegVal UTI_MASK
Definition: misc.hh:906
gem5::RiscvISA::MISCREG_MIDELEG
@ MISCREG_MIDELEG
Definition: misc.hh:148
gem5::RiscvISA::CSR_MISA
@ CSR_MISA
Definition: misc.hh:345
gem5::RiscvISA::CSR_HPMCOUNTER22H
@ CSR_HPMCOUNTER22H
Definition: misc.hh:315
gem5::RiscvISA::MISCREG_HPMCOUNTER07H
@ MISCREG_HPMCOUNTER07H
Definition: misc.hh:214
gem5::RiscvISA::ISA_EXT_MASK
const RegVal ISA_EXT_MASK
Definition: misc.hh:825
gem5::RiscvISA::STATUS_MPRV_MASK
const RegVal STATUS_MPRV_MASK
Definition: misc.hh:852
gem5::RiscvISA::MISCREG_PMPADDR02
@ MISCREG_PMPADDR02
Definition: misc.hh:161
gem5::RiscvISA::CSR_MHPMEVENT08
@ CSR_MHPMEVENT08
Definition: misc.hh:448
gem5::RiscvISA::MISCREG_STVAL
@ MISCREG_STVAL
Definition: misc.hh:183
gem5::RiscvISA::CSR_MHPMCOUNTER17H
@ CSR_MHPMCOUNTER17H
Definition: misc.hh:426
gem5::RiscvISA::CSR_MSTATUSH
@ CSR_MSTATUSH
Definition: misc.hh:351
gem5::RiscvISA::CSR_MHPMCOUNTER24H
@ CSR_MHPMCOUNTER24H
Definition: misc.hh:433
gem5::RiscvISA::sum
Bitfield< 18 > sum
Definition: misc.hh:740
gem5::RiscvISA::MISCREG_HPMCOUNTER10
@ MISCREG_HPMCOUNTER10
Definition: misc.hh:88
gem5::RiscvISA::MISCREG_UCAUSE
@ MISCREG_UCAUSE
Definition: misc.hh:189
gem5::RiscvISA::uei
Bitfield< 8 > uei
Definition: misc.hh:795
gem5::RiscvISA::MEI_MASK
const RegVal MEI_MASK
Definition: misc.hh:901
gem5::RiscvISA::MISCREG_HPMCOUNTER24
@ MISCREG_HPMCOUNTER24
Definition: misc.hh:102
gem5::RiscvISA::MISCREG_HPMCOUNTER20H
@ MISCREG_HPMCOUNTER20H
Definition: misc.hh:227
gem5::RiscvISA::MISCREG_HPMCOUNTER05H
@ MISCREG_HPMCOUNTER05H
Definition: misc.hh:212
gem5::RiscvISA::CSR_MHPMCOUNTER08
@ CSR_MHPMCOUNTER08
Definition: misc.hh:384
gem5::RiscvISA::STATUS_SUM_MASK
const RegVal STATUS_SUM_MASK
Definition: misc.hh:851
gem5::RiscvISA::MiscRegIndex
MiscRegIndex
Definition: misc.hh:67
gem5::RiscvISA::MISCREG_HPMCOUNTER30
@ MISCREG_HPMCOUNTER30
Definition: misc.hh:108
gem5::RiscvISA::CSR_MHPMCOUNTER22H
@ CSR_MHPMCOUNTER22H
Definition: misc.hh:431
gem5::RiscvISA::MISCREG_UTVAL
@ MISCREG_UTVAL
Definition: misc.hh:190
gem5::RiscvISA::CSR_HPMCOUNTER06H
@ CSR_HPMCOUNTER06H
Definition: misc.hh:299
gem5::RiscvISA::MISCREG_HPMCOUNTER16
@ MISCREG_HPMCOUNTER16
Definition: misc.hh:94
gem5::RiscvISA::CSR_MEPC
@ CSR_MEPC
Definition: misc.hh:353
gem5::RiscvISA::EndBitUnion
EndBitUnion(SATP) enum AddrXlateMode
Definition: pagetable.hh:49
gem5::RiscvISA::CSR_HPMCOUNTER26
@ CSR_HPMCOUNTER26
Definition: misc.hh:285
gem5::RiscvISA::SI_MASK
const RegVal SI_MASK
Definition: misc.hh:913
gem5::RiscvISA::CSR_MHARTID
@ CSR_MHARTID
Definition: misc.hh:343
gem5::RiscvISA::CSR_PMPCFG0
@ CSR_PMPCFG0
Definition: misc.hh:357
gem5::RiscvISA::CSR_MHPMCOUNTER25
@ CSR_MHPMCOUNTER25
Definition: misc.hh:401
gem5::RiscvISA::CSR_PMPADDR00
@ CSR_PMPADDR00
Definition: misc.hh:361
gem5::RiscvISA::MISCREG_MCOUNTEREN
@ MISCREG_MCOUNTEREN
Definition: misc.hh:150
gem5::RiscvISA::MISCREG_HPMEVENT28
@ MISCREG_HPMEVENT28
Definition: misc.hh:135
gem5
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
Definition: gpu_translation_state.hh:37
gem5::RiscvISA::MISCREG_PRV
@ MISCREG_PRV
Definition: misc.hh:69
gem5::RiscvISA::CSR_PMPADDR10
@ CSR_PMPADDR10
Definition: misc.hh:371
gem5::RiscvISA::CSR_MHPMCOUNTER29
@ CSR_MHPMCOUNTER29
Definition: misc.hh:405
gem5::RiscvISA::MTI_MASK
const RegVal MTI_MASK
Definition: misc.hh:904
gem5::RiscvISA::rvx
Bitfield< 23 > rvx
Definition: misc.hh:763
gem5::RiscvISA::CSR_MHPMEVENT27
@ CSR_MHPMEVENT27
Definition: misc.hh:467
gem5::RiscvISA::CSR_PMPADDR14
@ CSR_PMPADDR14
Definition: misc.hh:375
gem5::RiscvISA::CSR_UEPC
@ CSR_UEPC
Definition: misc.hh:252
gem5::RiscvISA::ISA_EXT_C_MASK
const RegVal ISA_EXT_C_MASK
Definition: misc.hh:826
gem5::RiscvISA::MISCREG_HPMEVENT18
@ MISCREG_HPMEVENT18
Definition: misc.hh:125
gem5::RiscvISA::CSR_MHPMEVENT26
@ CSR_MHPMEVENT26
Definition: misc.hh:466
gem5::RiscvISA::MISCREG_HPMCOUNTER19
@ MISCREG_HPMCOUNTER19
Definition: misc.hh:97
gem5::RiscvISA::CSR_HPMCOUNTER21H
@ CSR_HPMCOUNTER21H
Definition: misc.hh:314
gem5::RiscvISA::MISCREG_PMPADDR13
@ MISCREG_PMPADDR13
Definition: misc.hh:172
gem5::RiscvISA::STATUS_SBE_MASK
const RegVal STATUS_SBE_MASK[enums::Num_RiscvType]
Definition: misc.hh:841
gem5::RiscvISA::CSRData
const std::unordered_map< int, CSRMetadata > CSRData
Definition: misc.hh:494
gem5::RiscvISA::CSR_HPMCOUNTER06
@ CSR_HPMCOUNTER06
Definition: misc.hh:265
gem5::RiscvISA::CSR_PMPCFG3
@ CSR_PMPCFG3
Definition: misc.hh:360
gem5::RiscvISA::fs
Bitfield< 14, 13 > fs
Definition: misc.hh:743
gem5::RiscvISA::MISCREG_TDATA2
@ MISCREG_TDATA2
Definition: misc.hh:141
gem5::RiscvISA::MISCREG_HPMEVENT04
@ MISCREG_HPMEVENT04
Definition: misc.hh:111
gem5::RiscvISA::CSR_MHPMCOUNTER15H
@ CSR_MHPMCOUNTER15H
Definition: misc.hh:424
gem5::RiscvISA::MISCREG_FFLAGS
@ MISCREG_FFLAGS
Definition: misc.hh:191
gem5::RiscvISA::BitUnion64
BitUnion64(SATP) Bitfield< 63
gem5::RiscvISA::MISCREG_DCSR
@ MISCREG_DCSR
Definition: misc.hh:143
gem5::RiscvISA::MISCREG_IP
@ MISCREG_IP
Definition: misc.hh:76
gem5::RiscvISA::MISCREG_STVEC
@ MISCREG_STVEC
Definition: misc.hh:178
gem5::RiscvISA::STATUS_SIE_MASK
const RegVal STATUS_SIE_MASK
Definition: misc.hh:862
gem5::RiscvISA::MBE_OFFSET
const off_t MBE_OFFSET[enums::Num_RiscvType]
Definition: misc.hh:808
gem5::RiscvISA::MISCREG_HPMEVENT06
@ MISCREG_HPMEVENT06
Definition: misc.hh:113
gem5::RiscvISA::CSRMetadata::name
const std::string name
Definition: misc.hh:484
gem5::RiscvISA::CSRMetadata::rvTypes
const uint64_t rvTypes
Definition: misc.hh:486
gem5::RiscvISA::STATUS_VS_MASK
const RegVal STATUS_VS_MASK
Definition: misc.hh:856
gem5::RiscvISA::MISCREG_HPMCOUNTER15
@ MISCREG_HPMCOUNTER15
Definition: misc.hh:93
gem5::RiscvISA::CSR_MHPMCOUNTER18H
@ CSR_MHPMCOUNTER18H
Definition: misc.hh:427
gem5::RiscvISA::CSR_MHPMCOUNTER16H
@ CSR_MHPMCOUNTER16H
Definition: misc.hh:425
gem5::RiscvISA::CSR_MHPMCOUNTER06H
@ CSR_MHPMCOUNTER06H
Definition: misc.hh:415
gem5::RiscvISA::MISCREG_NMIP
@ MISCREG_NMIP
Definition: misc.hh:202
gem5::RiscvISA::CSR_MHPMCOUNTER07H
@ CSR_MHPMCOUNTER07H
Definition: misc.hh:416
gem5::RiscvISA::CAUSE_INTERRUPT_MASKS
const RegVal CAUSE_INTERRUPT_MASKS[enums::Num_RiscvType]
Definition: misc.hh:920
gem5::RiscvISA::CSR_HPMCOUNTER27
@ CSR_HPMCOUNTER27
Definition: misc.hh:286
gem5::RiscvISA::MISCREG_MTVEC
@ MISCREG_MTVEC
Definition: misc.hh:149
gem5::RiscvISA::MISCREG_SCOUNTEREN
@ MISCREG_SCOUNTEREN
Definition: misc.hh:179
gem5::RiscvISA::SSI_MASK
const RegVal SSI_MASK
Definition: misc.hh:908
gem5::RiscvISA::CSR_MHPMCOUNTER04
@ CSR_MHPMCOUNTER04
Definition: misc.hh:380
gem5::RiscvISA::CSR_MHPMCOUNTER12
@ CSR_MHPMCOUNTER12
Definition: misc.hh:388
gem5::RiscvISA::UEI_MASK
const RegVal UEI_MASK
Definition: misc.hh:903
gem5::RiscvISA::CSR_HPMCOUNTER28
@ CSR_HPMCOUNTER28
Definition: misc.hh:287
gem5::RiscvISA::MISCREG_HPMCOUNTER11
@ MISCREG_HPMCOUNTER11
Definition: misc.hh:89
gem5::RiscvISA::MISCREG_HPMCOUNTER05
@ MISCREG_HPMCOUNTER05
Definition: misc.hh:83
gem5::RiscvISA::CSR_MHPMCOUNTER31
@ CSR_MHPMCOUNTER31
Definition: misc.hh:407
gem5::RiscvISA::STI_MASK
const RegVal STI_MASK
Definition: misc.hh:905
gem5::RiscvISA::CSR_MHPMCOUNTER14H
@ CSR_MHPMCOUNTER14H
Definition: misc.hh:423
gem5::RiscvISA::rvTypeFlags
constexpr uint64_t rvTypeFlags(T... args)
Definition: misc.hh:490
gem5::RiscvISA::CSR_MIP
@ CSR_MIP
Definition: misc.hh:356
gem5::RiscvISA::MISCREG_HPMCOUNTER28
@ MISCREG_HPMCOUNTER28
Definition: misc.hh:106
gem5::RiscvISA::CSR_MCYCLEH
@ CSR_MCYCLEH
Definition: misc.hh:410
gem5::RiscvISA::MISCREG_HPMCOUNTER20
@ MISCREG_HPMCOUNTER20
Definition: misc.hh:98
gem5::RiscvISA::CSR_HPMCOUNTER10H
@ CSR_HPMCOUNTER10H
Definition: misc.hh:303
gem5::RiscvISA::MISCREG_HPMEVENT03
@ MISCREG_HPMEVENT03
Definition: misc.hh:110
gem5::RiscvISA::CSR_HPMCOUNTER23
@ CSR_HPMCOUNTER23
Definition: misc.hh:282
gem5::RiscvISA::CSR_INSTRET
@ CSR_INSTRET
Definition: misc.hh:261
gem5::RiscvISA::CSRMetadata
Definition: misc.hh:482
gem5::RiscvISA::CSRMasks
const std::unordered_map< int, RegVal > CSRMasks[enums::Num_RiscvType]
Definition: misc.hh:925
gem5::RiscvISA::MISCREG_HPMCOUNTER16H
@ MISCREG_HPMCOUNTER16H
Definition: misc.hh:223

Generated on Sun Jul 30 2023 01:56:48 for gem5 by doxygen 1.8.17