gem5  v21.0.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
registers.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_REGISTERS_HH__
47 #define __ARCH_RISCV_REGISTERS_HH__
48 
49 #include <softfloat.h>
50 #include <specialize.h>
51 
52 #include <map>
53 #include <string>
54 #include <vector>
55 
56 #include "arch/generic/types.hh"
58 #include "arch/generic/vec_reg.hh"
59 #include "base/bitunion.hh"
60 #include "base/types.hh"
61 
62 namespace RiscvISA
63 {
64 
65 /* Convenience wrappers to simplify softfloat code sequences */
66 #define isBoxedF32(r) ((uint32_t)((r.v >> 32) + 1) == 0)
67 #define unboxF32(r) (isBoxedF32(r) ? (uint32_t)r.v : defaultNaNF32UI)
68 #define unboxF64(r) (r.v)
69 
70 typedef int64_t sreg_t;
71 typedef uint64_t reg_t;
72 typedef float64_t freg_t;
73 inline float32_t f32(uint32_t v) { return { v }; }
74 inline float64_t f64(uint64_t v) { return { v }; }
75 inline float32_t f32(freg_t r) { return f32(unboxF32(r)); }
76 inline float64_t f64(freg_t r) { return f64(unboxF64(r)); }
77 inline freg_t freg(float32_t f) { return {((uint64_t)-1 << 32) | f.v}; }
78 inline freg_t freg(float64_t f) { return {f}; }
79 inline freg_t freg(uint_fast16_t f) { return {f}; }
80 #define F32_SIGN ((uint32_t)1 << 31)
81 #define F64_SIGN ((uint64_t)1 << 63)
82 #define fsgnj32(a, b, n, x) \
83  f32((f32(a).v & ~F32_SIGN) | \
84  ((((x) ? f32(a).v : (n) ? F32_SIGN : 0) ^ f32(b).v) & F32_SIGN))
85 #define fsgnj64(a, b, n, x) \
86  f64((f64(a).v & ~F64_SIGN) | \
87  ((((x) ? f64(a).v : (n) ? F64_SIGN : 0) ^ f64(b).v) & F64_SIGN))
88 
89 #define sext32(x) ((sreg_t)(int32_t)(x))
90 #define zext32(x) ((reg_t)(uint32_t)(x))
91 #define sext_xlen(x) (((sreg_t)(x) << (64-xlen)) >> (64-xlen))
92 #define zext_xlen(x) (((reg_t)(x) << (64-xlen)) >> (64-xlen))
93 
94 // Not applicable to RISC-V
101 
102 // Not applicable to RISC-V
108 
109 const int NumIntArchRegs = 32;
110 const int NumMicroIntRegs = 1;
112 const int NumFloatRegs = 32;
113 
114 const unsigned NumVecRegs = 1; // Not applicable to RISC-V
115  // (1 to prevent warnings)
116 const int NumVecPredRegs = 1; // Not applicable to RISC-V
117  // (1 to prevent warnings)
118 
119 const int NumCCRegs = 0;
120 
121 // Semantically meaningful register indices
122 const int ZeroReg = 0;
123 const int ReturnAddrReg = 1;
124 const int StackPointerReg = 2;
125 const int ThreadPointerReg = 4;
126 const int ReturnValueReg = 10;
127 const std::vector<int> ArgumentRegs = {10, 11, 12, 13, 14, 15, 16, 17};
128 const int AMOTempReg = 32;
129 
130 const int SyscallNumReg = 17;
131 
133  "zero", "ra", "sp", "gp",
134  "tp", "t0", "t1", "t2",
135  "s0", "s1", "a0", "a1",
136  "a2", "a3", "a4", "a5",
137  "a6", "a7", "s2", "s3",
138  "s4", "s5", "s6", "s7",
139  "s8", "s9", "s10", "s11",
140  "t3", "t4", "t5", "t6"
141 };
143  "ft0", "ft1", "ft2", "ft3",
144  "ft4", "ft5", "ft6", "ft7",
145  "fs0", "fs1", "fa0", "fa1",
146  "fa2", "fa3", "fa4", "fa5",
147  "fa6", "fa7", "fs2", "fs3",
148  "fs4", "fs5", "fs6", "fs7",
149  "fs8", "fs9", "fs10", "fs11",
150  "ft8", "ft9", "ft10", "ft11"
151 };
152 
231 
241  // pmpcfg1 rv32 only
243  // pmpcfg3 rv32 only
260 
270 
278 
280 };
282 
283 enum CSRIndex {
284  CSR_USTATUS = 0x000,
285  CSR_UIE = 0x004,
286  CSR_UTVEC = 0x005,
287  CSR_USCRATCH = 0x040,
288  CSR_UEPC = 0x041,
289  CSR_UCAUSE = 0x042,
290  CSR_UTVAL = 0x043,
291  CSR_UIP = 0x044,
292  CSR_FFLAGS = 0x001,
293  CSR_FRM = 0x002,
294  CSR_FCSR = 0x003,
295  CSR_CYCLE = 0xC00,
296  CSR_TIME = 0xC01,
297  CSR_INSTRET = 0xC02,
327  // HPMCOUNTERH rv32 only
328 
329  CSR_SSTATUS = 0x100,
330  CSR_SEDELEG = 0x102,
331  CSR_SIDELEG = 0x103,
332  CSR_SIE = 0x104,
333  CSR_STVEC = 0x105,
334  CSR_SCOUNTEREN = 0x106,
335  CSR_SSCRATCH = 0x140,
336  CSR_SEPC = 0x141,
337  CSR_SCAUSE = 0x142,
338  CSR_STVAL = 0x143,
339  CSR_SIP = 0x144,
340  CSR_SATP = 0x180,
341 
342  CSR_MVENDORID = 0xF11,
343  CSR_MARCHID = 0xF12,
344  CSR_MIMPID = 0xF13,
345  CSR_MHARTID = 0xF14,
346  CSR_MSTATUS = 0x300,
347  CSR_MISA = 0x301,
348  CSR_MEDELEG = 0x302,
349  CSR_MIDELEG = 0x303,
350  CSR_MIE = 0x304,
351  CSR_MTVEC = 0x305,
352  CSR_MCOUNTEREN = 0x306,
353  CSR_MSCRATCH = 0x340,
354  CSR_MEPC = 0x341,
355  CSR_MCAUSE = 0x342,
356  CSR_MTVAL = 0x343,
357  CSR_MIP = 0x344,
358  CSR_PMPCFG0 = 0x3A0,
359  // pmpcfg1 rv32 only
360  CSR_PMPCFG2 = 0x3A2,
361  // pmpcfg3 rv32 only
362  CSR_PMPADDR00 = 0x3B0,
363  CSR_PMPADDR01 = 0x3B1,
364  CSR_PMPADDR02 = 0x3B2,
365  CSR_PMPADDR03 = 0x3B3,
366  CSR_PMPADDR04 = 0x3B4,
367  CSR_PMPADDR05 = 0x3B5,
368  CSR_PMPADDR06 = 0x3B6,
369  CSR_PMPADDR07 = 0x3B7,
370  CSR_PMPADDR08 = 0x3B8,
371  CSR_PMPADDR09 = 0x3B9,
372  CSR_PMPADDR10 = 0x3BA,
373  CSR_PMPADDR11 = 0x3BB,
374  CSR_PMPADDR12 = 0x3BC,
375  CSR_PMPADDR13 = 0x3BD,
376  CSR_PMPADDR14 = 0x3BE,
377  CSR_PMPADDR15 = 0x3BF,
378  CSR_MCYCLE = 0xB00,
379  CSR_MINSTRET = 0xB02,
409  // MHPMCOUNTERH rv32 only
439 
440  CSR_TSELECT = 0x7A0,
441  CSR_TDATA1 = 0x7A1,
442  CSR_TDATA2 = 0x7A2,
443  CSR_TDATA3 = 0x7A3,
444  CSR_DCSR = 0x7B0,
445  CSR_DPC = 0x7B1,
446  CSR_DSCRATCH = 0x7B2
447 };
448 
450 {
451  const std::string name;
452  const int physIndex;
453 };
454 
455 const std::map<int, CSRMetadata> CSRData = {
456  {CSR_USTATUS, {"ustatus", MISCREG_STATUS}},
457  {CSR_UIE, {"uie", MISCREG_IE}},
458  {CSR_UTVEC, {"utvec", MISCREG_UTVEC}},
459  {CSR_USCRATCH, {"uscratch", MISCREG_USCRATCH}},
460  {CSR_UEPC, {"uepc", MISCREG_UEPC}},
461  {CSR_UCAUSE, {"ucause", MISCREG_UCAUSE}},
462  {CSR_UTVAL, {"utval", MISCREG_UTVAL}},
463  {CSR_UIP, {"uip", MISCREG_IP}},
464  {CSR_FFLAGS, {"fflags", MISCREG_FFLAGS}},
465  {CSR_FRM, {"frm", MISCREG_FRM}},
466  {CSR_FCSR, {"fcsr", MISCREG_FFLAGS}}, // Actually FRM << 5 | FFLAGS
467  {CSR_CYCLE, {"cycle", MISCREG_CYCLE}},
468  {CSR_TIME, {"time", MISCREG_TIME}},
469  {CSR_INSTRET, {"instret", MISCREG_INSTRET}},
470  {CSR_HPMCOUNTER03, {"hpmcounter03", MISCREG_HPMCOUNTER03}},
471  {CSR_HPMCOUNTER04, {"hpmcounter04", MISCREG_HPMCOUNTER04}},
472  {CSR_HPMCOUNTER05, {"hpmcounter05", MISCREG_HPMCOUNTER05}},
473  {CSR_HPMCOUNTER06, {"hpmcounter06", MISCREG_HPMCOUNTER06}},
474  {CSR_HPMCOUNTER07, {"hpmcounter07", MISCREG_HPMCOUNTER07}},
475  {CSR_HPMCOUNTER08, {"hpmcounter08", MISCREG_HPMCOUNTER08}},
476  {CSR_HPMCOUNTER09, {"hpmcounter09", MISCREG_HPMCOUNTER09}},
477  {CSR_HPMCOUNTER10, {"hpmcounter10", MISCREG_HPMCOUNTER10}},
478  {CSR_HPMCOUNTER11, {"hpmcounter11", MISCREG_HPMCOUNTER11}},
479  {CSR_HPMCOUNTER12, {"hpmcounter12", MISCREG_HPMCOUNTER12}},
480  {CSR_HPMCOUNTER13, {"hpmcounter13", MISCREG_HPMCOUNTER13}},
481  {CSR_HPMCOUNTER14, {"hpmcounter14", MISCREG_HPMCOUNTER14}},
482  {CSR_HPMCOUNTER15, {"hpmcounter15", MISCREG_HPMCOUNTER15}},
483  {CSR_HPMCOUNTER16, {"hpmcounter16", MISCREG_HPMCOUNTER16}},
484  {CSR_HPMCOUNTER17, {"hpmcounter17", MISCREG_HPMCOUNTER17}},
485  {CSR_HPMCOUNTER18, {"hpmcounter18", MISCREG_HPMCOUNTER18}},
486  {CSR_HPMCOUNTER19, {"hpmcounter19", MISCREG_HPMCOUNTER19}},
487  {CSR_HPMCOUNTER20, {"hpmcounter20", MISCREG_HPMCOUNTER20}},
488  {CSR_HPMCOUNTER21, {"hpmcounter21", MISCREG_HPMCOUNTER21}},
489  {CSR_HPMCOUNTER22, {"hpmcounter22", MISCREG_HPMCOUNTER22}},
490  {CSR_HPMCOUNTER23, {"hpmcounter23", MISCREG_HPMCOUNTER23}},
491  {CSR_HPMCOUNTER24, {"hpmcounter24", MISCREG_HPMCOUNTER24}},
492  {CSR_HPMCOUNTER25, {"hpmcounter25", MISCREG_HPMCOUNTER25}},
493  {CSR_HPMCOUNTER26, {"hpmcounter26", MISCREG_HPMCOUNTER26}},
494  {CSR_HPMCOUNTER27, {"hpmcounter27", MISCREG_HPMCOUNTER27}},
495  {CSR_HPMCOUNTER28, {"hpmcounter28", MISCREG_HPMCOUNTER28}},
496  {CSR_HPMCOUNTER29, {"hpmcounter29", MISCREG_HPMCOUNTER29}},
497  {CSR_HPMCOUNTER30, {"hpmcounter30", MISCREG_HPMCOUNTER30}},
498  {CSR_HPMCOUNTER31, {"hpmcounter31", MISCREG_HPMCOUNTER31}},
499 
500  {CSR_SSTATUS, {"sstatus", MISCREG_STATUS}},
501  {CSR_SEDELEG, {"sedeleg", MISCREG_SEDELEG}},
502  {CSR_SIDELEG, {"sideleg", MISCREG_SIDELEG}},
503  {CSR_SIE, {"sie", MISCREG_IE}},
504  {CSR_STVEC, {"stvec", MISCREG_STVEC}},
505  {CSR_SCOUNTEREN, {"scounteren", MISCREG_SCOUNTEREN}},
506  {CSR_SSCRATCH, {"sscratch", MISCREG_SSCRATCH}},
507  {CSR_SEPC, {"sepc", MISCREG_SEPC}},
508  {CSR_SCAUSE, {"scause", MISCREG_SCAUSE}},
509  {CSR_STVAL, {"stval", MISCREG_STVAL}},
510  {CSR_SIP, {"sip", MISCREG_IP}},
511  {CSR_SATP, {"satp", MISCREG_SATP}},
512 
513  {CSR_MVENDORID, {"mvendorid", MISCREG_VENDORID}},
514  {CSR_MARCHID, {"marchid", MISCREG_ARCHID}},
515  {CSR_MIMPID, {"mimpid", MISCREG_IMPID}},
516  {CSR_MHARTID, {"mhartid", MISCREG_HARTID}},
517  {CSR_MSTATUS, {"mstatus", MISCREG_STATUS}},
518  {CSR_MISA, {"misa", MISCREG_ISA}},
519  {CSR_MEDELEG, {"medeleg", MISCREG_MEDELEG}},
520  {CSR_MIDELEG, {"mideleg", MISCREG_MIDELEG}},
521  {CSR_MIE, {"mie", MISCREG_IE}},
522  {CSR_MTVEC, {"mtvec", MISCREG_MTVEC}},
523  {CSR_MCOUNTEREN, {"mcounteren", MISCREG_MCOUNTEREN}},
524  {CSR_MSCRATCH, {"mscratch", MISCREG_MSCRATCH}},
525  {CSR_MEPC, {"mepc", MISCREG_MEPC}},
526  {CSR_MCAUSE, {"mcause", MISCREG_MCAUSE}},
527  {CSR_MTVAL, {"mtval", MISCREG_MTVAL}},
528  {CSR_MIP, {"mip", MISCREG_IP}},
529  {CSR_PMPCFG0, {"pmpcfg0", MISCREG_PMPCFG0}},
530  // pmpcfg1 rv32 only
531  {CSR_PMPCFG2, {"pmpcfg2", MISCREG_PMPCFG2}},
532  // pmpcfg3 rv32 only
533  {CSR_PMPADDR00, {"pmpaddr0", MISCREG_PMPADDR00}},
534  {CSR_PMPADDR01, {"pmpaddr1", MISCREG_PMPADDR01}},
535  {CSR_PMPADDR02, {"pmpaddr2", MISCREG_PMPADDR02}},
536  {CSR_PMPADDR03, {"pmpaddr3", MISCREG_PMPADDR03}},
537  {CSR_PMPADDR04, {"pmpaddr4", MISCREG_PMPADDR04}},
538  {CSR_PMPADDR05, {"pmpaddr5", MISCREG_PMPADDR05}},
539  {CSR_PMPADDR06, {"pmpaddr6", MISCREG_PMPADDR06}},
540  {CSR_PMPADDR07, {"pmpaddr7", MISCREG_PMPADDR07}},
541  {CSR_PMPADDR08, {"pmpaddr8", MISCREG_PMPADDR08}},
542  {CSR_PMPADDR09, {"pmpaddr9", MISCREG_PMPADDR09}},
543  {CSR_PMPADDR10, {"pmpaddr10", MISCREG_PMPADDR10}},
544  {CSR_PMPADDR11, {"pmpaddr11", MISCREG_PMPADDR11}},
545  {CSR_PMPADDR12, {"pmpaddr12", MISCREG_PMPADDR12}},
546  {CSR_PMPADDR13, {"pmpaddr13", MISCREG_PMPADDR13}},
547  {CSR_PMPADDR14, {"pmpaddr14", MISCREG_PMPADDR14}},
548  {CSR_PMPADDR15, {"pmpaddr15", MISCREG_PMPADDR15}},
549  {CSR_MCYCLE, {"mcycle", MISCREG_CYCLE}},
550  {CSR_MINSTRET, {"minstret", MISCREG_INSTRET}},
551  {CSR_MHPMCOUNTER03, {"mhpmcounter03", MISCREG_HPMCOUNTER03}},
552  {CSR_MHPMCOUNTER04, {"mhpmcounter04", MISCREG_HPMCOUNTER04}},
553  {CSR_MHPMCOUNTER05, {"mhpmcounter05", MISCREG_HPMCOUNTER05}},
554  {CSR_MHPMCOUNTER06, {"mhpmcounter06", MISCREG_HPMCOUNTER06}},
555  {CSR_MHPMCOUNTER07, {"mhpmcounter07", MISCREG_HPMCOUNTER07}},
556  {CSR_MHPMCOUNTER08, {"mhpmcounter08", MISCREG_HPMCOUNTER08}},
557  {CSR_MHPMCOUNTER09, {"mhpmcounter09", MISCREG_HPMCOUNTER09}},
558  {CSR_MHPMCOUNTER10, {"mhpmcounter10", MISCREG_HPMCOUNTER10}},
559  {CSR_MHPMCOUNTER11, {"mhpmcounter11", MISCREG_HPMCOUNTER11}},
560  {CSR_MHPMCOUNTER12, {"mhpmcounter12", MISCREG_HPMCOUNTER12}},
561  {CSR_MHPMCOUNTER13, {"mhpmcounter13", MISCREG_HPMCOUNTER13}},
562  {CSR_MHPMCOUNTER14, {"mhpmcounter14", MISCREG_HPMCOUNTER14}},
563  {CSR_MHPMCOUNTER15, {"mhpmcounter15", MISCREG_HPMCOUNTER15}},
564  {CSR_MHPMCOUNTER16, {"mhpmcounter16", MISCREG_HPMCOUNTER16}},
565  {CSR_MHPMCOUNTER17, {"mhpmcounter17", MISCREG_HPMCOUNTER17}},
566  {CSR_MHPMCOUNTER18, {"mhpmcounter18", MISCREG_HPMCOUNTER18}},
567  {CSR_MHPMCOUNTER19, {"mhpmcounter19", MISCREG_HPMCOUNTER19}},
568  {CSR_MHPMCOUNTER20, {"mhpmcounter20", MISCREG_HPMCOUNTER20}},
569  {CSR_MHPMCOUNTER21, {"mhpmcounter21", MISCREG_HPMCOUNTER21}},
570  {CSR_MHPMCOUNTER22, {"mhpmcounter22", MISCREG_HPMCOUNTER22}},
571  {CSR_MHPMCOUNTER23, {"mhpmcounter23", MISCREG_HPMCOUNTER23}},
572  {CSR_MHPMCOUNTER24, {"mhpmcounter24", MISCREG_HPMCOUNTER24}},
573  {CSR_MHPMCOUNTER25, {"mhpmcounter25", MISCREG_HPMCOUNTER25}},
574  {CSR_MHPMCOUNTER26, {"mhpmcounter26", MISCREG_HPMCOUNTER26}},
575  {CSR_MHPMCOUNTER27, {"mhpmcounter27", MISCREG_HPMCOUNTER27}},
576  {CSR_MHPMCOUNTER28, {"mhpmcounter28", MISCREG_HPMCOUNTER28}},
577  {CSR_MHPMCOUNTER29, {"mhpmcounter29", MISCREG_HPMCOUNTER29}},
578  {CSR_MHPMCOUNTER30, {"mhpmcounter30", MISCREG_HPMCOUNTER30}},
579  {CSR_MHPMCOUNTER31, {"mhpmcounter31", MISCREG_HPMCOUNTER31}},
580  {CSR_MHPMEVENT03, {"mhpmevent03", MISCREG_HPMEVENT03}},
581  {CSR_MHPMEVENT04, {"mhpmevent04", MISCREG_HPMEVENT04}},
582  {CSR_MHPMEVENT05, {"mhpmevent05", MISCREG_HPMEVENT05}},
583  {CSR_MHPMEVENT06, {"mhpmevent06", MISCREG_HPMEVENT06}},
584  {CSR_MHPMEVENT07, {"mhpmevent07", MISCREG_HPMEVENT07}},
585  {CSR_MHPMEVENT08, {"mhpmevent08", MISCREG_HPMEVENT08}},
586  {CSR_MHPMEVENT09, {"mhpmevent09", MISCREG_HPMEVENT09}},
587  {CSR_MHPMEVENT10, {"mhpmevent10", MISCREG_HPMEVENT10}},
588  {CSR_MHPMEVENT11, {"mhpmevent11", MISCREG_HPMEVENT11}},
589  {CSR_MHPMEVENT12, {"mhpmevent12", MISCREG_HPMEVENT12}},
590  {CSR_MHPMEVENT13, {"mhpmevent13", MISCREG_HPMEVENT13}},
591  {CSR_MHPMEVENT14, {"mhpmevent14", MISCREG_HPMEVENT14}},
592  {CSR_MHPMEVENT15, {"mhpmevent15", MISCREG_HPMEVENT15}},
593  {CSR_MHPMEVENT16, {"mhpmevent16", MISCREG_HPMEVENT16}},
594  {CSR_MHPMEVENT17, {"mhpmevent17", MISCREG_HPMEVENT17}},
595  {CSR_MHPMEVENT18, {"mhpmevent18", MISCREG_HPMEVENT18}},
596  {CSR_MHPMEVENT19, {"mhpmevent19", MISCREG_HPMEVENT19}},
597  {CSR_MHPMEVENT20, {"mhpmevent20", MISCREG_HPMEVENT20}},
598  {CSR_MHPMEVENT21, {"mhpmevent21", MISCREG_HPMEVENT21}},
599  {CSR_MHPMEVENT22, {"mhpmevent22", MISCREG_HPMEVENT22}},
600  {CSR_MHPMEVENT23, {"mhpmevent23", MISCREG_HPMEVENT23}},
601  {CSR_MHPMEVENT24, {"mhpmevent24", MISCREG_HPMEVENT24}},
602  {CSR_MHPMEVENT25, {"mhpmevent25", MISCREG_HPMEVENT25}},
603  {CSR_MHPMEVENT26, {"mhpmevent26", MISCREG_HPMEVENT26}},
604  {CSR_MHPMEVENT27, {"mhpmevent27", MISCREG_HPMEVENT27}},
605  {CSR_MHPMEVENT28, {"mhpmevent28", MISCREG_HPMEVENT28}},
606  {CSR_MHPMEVENT29, {"mhpmevent29", MISCREG_HPMEVENT29}},
607  {CSR_MHPMEVENT30, {"mhpmevent30", MISCREG_HPMEVENT30}},
608  {CSR_MHPMEVENT31, {"mhpmevent31", MISCREG_HPMEVENT31}},
609 
610  {CSR_TSELECT, {"tselect", MISCREG_TSELECT}},
611  {CSR_TDATA1, {"tdata1", MISCREG_TDATA1}},
612  {CSR_TDATA2, {"tdata2", MISCREG_TDATA2}},
613  {CSR_TDATA3, {"tdata3", MISCREG_TDATA3}},
614  {CSR_DCSR, {"dcsr", MISCREG_DCSR}},
615  {CSR_DPC, {"dpc", MISCREG_DPC}},
616  {CSR_DSCRATCH, {"dscratch", MISCREG_DSCRATCH}}
617 };
618 
626 BitUnion64(STATUS)
627  Bitfield<63> sd;
628  Bitfield<35, 34> sxl;
629  Bitfield<33, 32> uxl;
630  Bitfield<22> tsr;
631  Bitfield<21> tw;
632  Bitfield<20> tvm;
633  Bitfield<19> mxr;
634  Bitfield<18> sum;
635  Bitfield<17> mprv;
636  Bitfield<16, 15> xs;
637  Bitfield<14, 13> fs;
638  Bitfield<12, 11> mpp;
639  Bitfield<8> spp;
640  Bitfield<7> mpie;
641  Bitfield<5> spie;
642  Bitfield<4> upie;
643  Bitfield<3> mie;
644  Bitfield<1> sie;
645  Bitfield<0> uie;
646 EndBitUnion(STATUS)
647 
648 
654 BitUnion64(INTERRUPT)
655  Bitfield<11> mei;
656  Bitfield<9> sei;
657  Bitfield<8> uei;
658  Bitfield<7> mti;
659  Bitfield<5> sti;
660  Bitfield<4> uti;
661  Bitfield<3> msi;
662  Bitfield<1> ssi;
663  Bitfield<0> usi;
664 EndBitUnion(INTERRUPT)
665 
666 const off_t MXL_OFFSET = (sizeof(uint64_t) * 8 - 2);
667 const off_t SXL_OFFSET = 34;
668 const off_t UXL_OFFSET = 32;
669 const off_t FS_OFFSET = 13;
670 const off_t FRM_OFFSET = 5;
671 
672 const RegVal ISA_MXL_MASK = 3ULL << MXL_OFFSET;
674 const RegVal ISA_EXT_C_MASK = 1UL << ('c' - 'a');
676 
677 const RegVal STATUS_SD_MASK = 1ULL << ((sizeof(uint64_t) * 8) - 1);
680 const RegVal STATUS_TSR_MASK = 1ULL << 22;
681 const RegVal STATUS_TW_MASK = 1ULL << 21;
682 const RegVal STATUS_TVM_MASK = 1ULL << 20;
683 const RegVal STATUS_MXR_MASK = 1ULL << 19;
684 const RegVal STATUS_SUM_MASK = 1ULL << 18;
685 const RegVal STATUS_MPRV_MASK = 1ULL << 17;
686 const RegVal STATUS_XS_MASK = 3ULL << 15;
688 const RegVal STATUS_MPP_MASK = 3ULL << 11;
689 const RegVal STATUS_SPP_MASK = 1ULL << 8;
693 const RegVal STATUS_MIE_MASK = 1ULL << 3;
694 const RegVal STATUS_SIE_MASK = 1ULL << 1;
695 const RegVal STATUS_UIE_MASK = 1ULL << 0;
716 
717 const RegVal MEI_MASK = 1ULL << 11;
718 const RegVal SEI_MASK = 1ULL << 9;
719 const RegVal UEI_MASK = 1ULL << 8;
720 const RegVal MTI_MASK = 1ULL << 7;
721 const RegVal STI_MASK = 1ULL << 5;
722 const RegVal UTI_MASK = 1ULL << 4;
723 const RegVal MSI_MASK = 1ULL << 3;
724 const RegVal SSI_MASK = 1ULL << 1;
725 const RegVal USI_MASK = 1ULL << 0;
730  STI_MASK | UTI_MASK |
731  SSI_MASK | USI_MASK;
733 const RegVal FFLAGS_MASK = (1 << FRM_OFFSET) - 1;
734 const RegVal FRM_MASK = 0x7;
735 
736 const std::map<int, RegVal> CSRMasks = {
738  {CSR_UIE, UI_MASK},
739  {CSR_UIP, UI_MASK},
741  {CSR_FRM, FRM_MASK},
744  {CSR_SIE, SI_MASK},
745  {CSR_SIP, SI_MASK},
747  {CSR_MISA, MISA_MASK},
748  {CSR_MIE, MI_MASK},
749  {CSR_MIP, MI_MASK}
750 };
751 
752 }
753 
754 #endif // __ARCH_RISCV_REGISTERS_HH__
RiscvISA::CSR_HPMCOUNTER07
@ CSR_HPMCOUNTER07
Definition: registers.hh:302
RiscvISA::MISCREG_PRV
@ MISCREG_PRV
Definition: registers.hh:154
RiscvISA::SSI_MASK
const RegVal SSI_MASK
Definition: registers.hh:724
RiscvISA::MISCREG_HPMCOUNTER30
@ MISCREG_HPMCOUNTER30
Definition: registers.hh:193
RiscvISA::MISCREG_HPMEVENT06
@ MISCREG_HPMEVENT06
Definition: registers.hh:198
RiscvISA::CSR_STVEC
@ CSR_STVEC
Definition: registers.hh:333
RiscvISA::CSR_HPMCOUNTER13
@ CSR_HPMCOUNTER13
Definition: registers.hh:308
RiscvISA::CSR_USCRATCH
@ CSR_USCRATCH
Definition: registers.hh:287
RiscvISA::CSR_FCSR
@ CSR_FCSR
Definition: registers.hh:294
RiscvISA::MISCREG_HPMEVENT07
@ MISCREG_HPMEVENT07
Definition: registers.hh:199
RiscvISA::uti
Bitfield< 4 > uti
Definition: registers.hh:660
RiscvISA::f32
float32_t f32(uint32_t v)
Definition: registers.hh:73
RiscvISA::MISA_MASK
const RegVal MISA_MASK
Definition: registers.hh:675
RiscvISA::CSR_MHPMEVENT21
@ CSR_MHPMEVENT21
Definition: registers.hh:428
RiscvISA::MISCREG_MCOUNTEREN
@ MISCREG_MCOUNTEREN
Definition: registers.hh:235
DummyVecRegSizeBytes
constexpr size_t DummyVecRegSizeBytes
Definition: vec_reg.hh:669
RiscvISA::MISCREG_HPMCOUNTER07
@ MISCREG_HPMCOUNTER07
Definition: registers.hh:170
RiscvISA::sreg_t
int64_t sreg_t
Definition: registers.hh:70
RiscvISA::CSR_HPMCOUNTER06
@ CSR_HPMCOUNTER06
Definition: registers.hh:301
RiscvISA::NumMicroIntRegs
const int NumMicroIntRegs
Definition: registers.hh:110
RiscvISA::mti
Bitfield< 7 > mti
Definition: registers.hh:658
RiscvISA::uxl
Bitfield< 33, 32 > uxl
Definition: registers.hh:629
RiscvISA::ArgumentRegs
const std::vector< int > ArgumentRegs
Definition: registers.hh:127
RiscvISA::CSR_PMPADDR05
@ CSR_PMPADDR05
Definition: registers.hh:367
RiscvISA::MISCREG_HPMCOUNTER10
@ MISCREG_HPMCOUNTER10
Definition: registers.hh:173
RiscvISA::SyscallNumReg
const int SyscallNumReg
Definition: registers.hh:130
RiscvISA::MISCREG_PMPADDR07
@ MISCREG_PMPADDR07
Definition: registers.hh:251
RiscvISA::CSR_MHPMCOUNTER09
@ CSR_MHPMCOUNTER09
Definition: registers.hh:386
RiscvISA::CSR_PMPADDR15
@ CSR_PMPADDR15
Definition: registers.hh:377
RiscvISA::MISCREG_HPMCOUNTER28
@ MISCREG_HPMCOUNTER28
Definition: registers.hh:191
RiscvISA::MISCREG_INSTRET
@ MISCREG_INSTRET
Definition: registers.hh:165
RiscvISA::MISCREG_HPMCOUNTER19
@ MISCREG_HPMCOUNTER19
Definition: registers.hh:182
RiscvISA::MISCREG_HPMCOUNTER18
@ MISCREG_HPMCOUNTER18
Definition: registers.hh:181
RiscvISA::MTI_MASK
const RegVal MTI_MASK
Definition: registers.hh:720
DummyVecPredRegSizeBits
constexpr size_t DummyVecPredRegSizeBits
Definition: vec_pred_reg.hh:398
VecPredRegContainer
Generic predicate register container.
Definition: vec_pred_reg.hh:47
RiscvISA::MSTATUS_MASK
const RegVal MSTATUS_MASK
Definition: registers.hh:696
RiscvISA::CSR_MHPMCOUNTER14
@ CSR_MHPMCOUNTER14
Definition: registers.hh:391
RiscvISA::MISCREG_UEPC
@ MISCREG_UEPC
Definition: registers.hh:273
RiscvISA::MISCREG_CYCLE
@ MISCREG_CYCLE
Definition: registers.hh:163
RiscvISA::MISCREG_HPMEVENT05
@ MISCREG_HPMEVENT05
Definition: registers.hh:197
RiscvISA::MISCREG_TDATA3
@ MISCREG_TDATA3
Definition: registers.hh:227
RiscvISA::MISCREG_HPMCOUNTER05
@ MISCREG_HPMCOUNTER05
Definition: registers.hh:168
RiscvISA::CSR_MEDELEG
@ CSR_MEDELEG
Definition: registers.hh:348
RiscvISA::NumVecElemPerVecReg
constexpr unsigned NumVecElemPerVecReg
Definition: registers.hh:99
RiscvISA::ISA_EXT_MASK
const RegVal ISA_EXT_MASK
Definition: registers.hh:673
RiscvISA::CSRMasks
const std::map< int, RegVal > CSRMasks
Definition: registers.hh:736
RiscvISA::CSR_MHPMEVENT11
@ CSR_MHPMEVENT11
Definition: registers.hh:418
RiscvISA::MISCREG_HPMCOUNTER03
@ MISCREG_HPMCOUNTER03
Definition: registers.hh:166
RiscvISA::sum
Bitfield< 18 > sum
Definition: registers.hh:634
RiscvISA::CSR_MHPMEVENT12
@ CSR_MHPMEVENT12
Definition: registers.hh:419
RiscvISA::CSR_HPMCOUNTER21
@ CSR_HPMCOUNTER21
Definition: registers.hh:316
RiscvISA::MISCREG_HPMEVENT13
@ MISCREG_HPMEVENT13
Definition: registers.hh:205
RiscvISA::STATUS_MPRV_MASK
const RegVal STATUS_MPRV_MASK
Definition: registers.hh:685
RiscvISA::STATUS_MPIE_MASK
const RegVal STATUS_MPIE_MASK
Definition: registers.hh:690
RiscvISA::MISCREG_HPMCOUNTER06
@ MISCREG_HPMCOUNTER06
Definition: registers.hh:169
RiscvISA::STATUS_MXR_MASK
const RegVal STATUS_MXR_MASK
Definition: registers.hh:683
RiscvISA::CSR_SATP
@ CSR_SATP
Definition: registers.hh:340
RiscvISA::CSR_MHPMEVENT06
@ CSR_MHPMEVENT06
Definition: registers.hh:413
RiscvISA::STATUS_FS_MASK
const RegVal STATUS_FS_MASK
Definition: registers.hh:687
RiscvISA::MISCREG_HPMEVENT24
@ MISCREG_HPMEVENT24
Definition: registers.hh:216
RiscvISA::CSR_MIE
@ CSR_MIE
Definition: registers.hh:350
RiscvISA::UTI_MASK
const RegVal UTI_MASK
Definition: registers.hh:722
RiscvISA::CSR_MHPMEVENT13
@ CSR_MHPMEVENT13
Definition: registers.hh:420
RiscvISA::MISCREG_MCAUSE
@ MISCREG_MCAUSE
Definition: registers.hh:238
RiscvISA::CSR_HPMCOUNTER28
@ CSR_HPMCOUNTER28
Definition: registers.hh:323
RiscvISA::CSR_MTVEC
@ CSR_MTVEC
Definition: registers.hh:351
RiscvISA::CSR_MIMPID
@ CSR_MIMPID
Definition: registers.hh:344
RiscvISA::SEI_MASK
const RegVal SEI_MASK
Definition: registers.hh:718
RiscvISA::mxr
Bitfield< 19 > mxr
Definition: registers.hh:633
DummyVecPredRegHasPackedRepr
constexpr bool DummyVecPredRegHasPackedRepr
Dummy type aliases and constants for architectures that do not implement vector predicate registers.
Definition: vec_pred_reg.hh:391
RiscvISA::MISCREG_HPMEVENT15
@ MISCREG_HPMEVENT15
Definition: registers.hh:207
RiscvISA::MISCREG_DPC
@ MISCREG_DPC
Definition: registers.hh:229
RiscvISA::CSR_MHPMEVENT27
@ CSR_MHPMEVENT27
Definition: registers.hh:434
RiscvISA::CSR_MCAUSE
@ CSR_MCAUSE
Definition: registers.hh:355
RiscvISA::ssi
Bitfield< 1 > ssi
Definition: registers.hh:662
RiscvISA::MISCREG_MTVEC
@ MISCREG_MTVEC
Definition: registers.hh:234
RiscvISA::MISCREG_HPMCOUNTER11
@ MISCREG_HPMCOUNTER11
Definition: registers.hh:174
RiscvISA::MISCREG_PMPADDR03
@ MISCREG_PMPADDR03
Definition: registers.hh:247
RiscvISA::MISCREG_HPMEVENT23
@ MISCREG_HPMEVENT23
Definition: registers.hh:215
RiscvISA::MISCREG_HPMEVENT29
@ MISCREG_HPMEVENT29
Definition: registers.hh:221
RiscvISA::CSR_HPMCOUNTER29
@ CSR_HPMCOUNTER29
Definition: registers.hh:324
RiscvISA::sei
Bitfield< 9 > sei
Definition: registers.hh:656
RiscvISA::MISCREG_HPMEVENT10
@ MISCREG_HPMEVENT10
Definition: registers.hh:202
RiscvISA::MISCREG_MEPC
@ MISCREG_MEPC
Definition: registers.hh:237
RiscvISA::MISCREG_PMPADDR01
@ MISCREG_PMPADDR01
Definition: registers.hh:245
RiscvISA::MISCREG_SEDELEG
@ MISCREG_SEDELEG
Definition: registers.hh:261
RiscvISA::CSR_SCOUNTEREN
@ CSR_SCOUNTEREN
Definition: registers.hh:334
RiscvISA::NumIntRegs
const int NumIntRegs
Definition: registers.hh:111
RiscvISA::MISCREG_HPMEVENT11
@ MISCREG_HPMEVENT11
Definition: registers.hh:203
RiscvISA::usi
Bitfield< 0 > usi
Definition: registers.hh:663
RiscvISA::MISCREG_STVAL
@ MISCREG_STVAL
Definition: registers.hh:268
RiscvISA::MISCREG_PMPADDR10
@ MISCREG_PMPADDR10
Definition: registers.hh:254
RiscvISA::MISCREG_PMPADDR12
@ MISCREG_PMPADDR12
Definition: registers.hh:256
RiscvISA::MISCREG_HPMEVENT30
@ MISCREG_HPMEVENT30
Definition: registers.hh:222
RiscvISA::CSR_MHPMEVENT24
@ CSR_MHPMEVENT24
Definition: registers.hh:431
RiscvISA::FloatRegNames
const std::vector< std::string > FloatRegNames
Definition: registers.hh:142
RiscvISA::tsr
Bitfield< 22 > tsr
Definition: registers.hh:630
RiscvISA::CSR_MHPMCOUNTER13
@ CSR_MHPMCOUNTER13
Definition: registers.hh:390
RiscvISA::CSR_UTVAL
@ CSR_UTVAL
Definition: registers.hh:290
RiscvISA::CSR_MSTATUS
@ CSR_MSTATUS
Definition: registers.hh:346
RiscvISA::CSR_MCOUNTEREN
@ CSR_MCOUNTEREN
Definition: registers.hh:352
RiscvISA::CSR_MHPMEVENT04
@ CSR_MHPMEVENT04
Definition: registers.hh:411
RiscvISA::MISCREG_USCRATCH
@ MISCREG_USCRATCH
Definition: registers.hh:272
RiscvISA::CSR_PMPADDR06
@ CSR_PMPADDR06
Definition: registers.hh:368
RiscvISA::CSRMetadata::physIndex
const int physIndex
Definition: registers.hh:452
RiscvISA::CSR_HPMCOUNTER26
@ CSR_HPMCOUNTER26
Definition: registers.hh:321
RiscvISA::STI_MASK
const RegVal STI_MASK
Definition: registers.hh:721
RiscvISA::CSR_SIE
@ CSR_SIE
Definition: registers.hh:332
RiscvISA::MISCREG_UTVAL
@ MISCREG_UTVAL
Definition: registers.hh:275
RiscvISA::CSR_MHPMCOUNTER03
@ CSR_MHPMCOUNTER03
Definition: registers.hh:380
RiscvISA::STATUS_TVM_MASK
const RegVal STATUS_TVM_MASK
Definition: registers.hh:682
RiscvISA::MISCREG_HPMEVENT03
@ MISCREG_HPMEVENT03
Definition: registers.hh:195
RiscvISA::MISCREG_PMPADDR00
@ MISCREG_PMPADDR00
Definition: registers.hh:244
std::vector< int >
RiscvISA::CSR_MISA
@ CSR_MISA
Definition: registers.hh:347
RiscvISA::MISCREG_SIDELEG
@ MISCREG_SIDELEG
Definition: registers.hh:262
RiscvISA::CSR_MHPMCOUNTER20
@ CSR_MHPMCOUNTER20
Definition: registers.hh:397
RiscvISA::CSR_PMPADDR08
@ CSR_PMPADDR08
Definition: registers.hh:370
RiscvISA::STATUS_SPP_MASK
const RegVal STATUS_SPP_MASK
Definition: registers.hh:689
RiscvISA::CSR_HPMCOUNTER30
@ CSR_HPMCOUNTER30
Definition: registers.hh:325
RiscvISA::CSR_MHPMEVENT29
@ CSR_MHPMEVENT29
Definition: registers.hh:436
RiscvISA::CSR_DPC
@ CSR_DPC
Definition: registers.hh:445
RiscvISA::MISCREG_HPMEVENT25
@ MISCREG_HPMEVENT25
Definition: registers.hh:217
RiscvISA::sie
Bitfield< 1 > sie
Definition: registers.hh:644
RiscvISA::MISCREG_HPMEVENT08
@ MISCREG_HPMEVENT08
Definition: registers.hh:200
RiscvISA::MISCREG_HPMEVENT22
@ MISCREG_HPMEVENT22
Definition: registers.hh:214
RiscvISA::CSR_MHPMCOUNTER30
@ CSR_MHPMCOUNTER30
Definition: registers.hh:407
RiscvISA::CSR_SIP
@ CSR_SIP
Definition: registers.hh:339
RiscvISA::ISA_MXL_MASK
const RegVal ISA_MXL_MASK
Definition: registers.hh:672
RiscvISA::CSR_MHARTID
@ CSR_MHARTID
Definition: registers.hh:345
RiscvISA::MISCREG_STATUS
@ MISCREG_STATUS
Definition: registers.hh:160
RiscvISA::MISCREG_HPMEVENT09
@ MISCREG_HPMEVENT09
Definition: registers.hh:201
RiscvISA::CSR_PMPADDR01
@ CSR_PMPADDR01
Definition: registers.hh:363
RiscvISA::MISCREG_HPMCOUNTER16
@ MISCREG_HPMCOUNTER16
Definition: registers.hh:179
RiscvISA::CSR_MHPMCOUNTER22
@ CSR_MHPMCOUNTER22
Definition: registers.hh:399
RiscvISA::MISCREG_HPMEVENT14
@ MISCREG_HPMEVENT14
Definition: registers.hh:206
RiscvISA::CSR_UIP
@ CSR_UIP
Definition: registers.hh:291
RiscvISA::MISCREG_HPMCOUNTER08
@ MISCREG_HPMCOUNTER08
Definition: registers.hh:171
RiscvISA::CSR_TSELECT
@ CSR_TSELECT
Definition: registers.hh:440
RiscvISA::MISCREG_TDATA1
@ MISCREG_TDATA1
Definition: registers.hh:225
RiscvISA::CSR_MHPMCOUNTER08
@ CSR_MHPMCOUNTER08
Definition: registers.hh:385
DummyVecPredReg
VecPredRegT< DummyVecElem, DummyNumVecElemPerVecReg, DummyVecPredRegHasPackedRepr, false > DummyVecPredReg
Definition: vec_pred_reg.hh:393
RiscvISA::CSR_MVENDORID
@ CSR_MVENDORID
Definition: registers.hh:342
RiscvISA::CSR_USTATUS
@ CSR_USTATUS
Definition: registers.hh:284
RiscvISA::CSR_HPMCOUNTER05
@ CSR_HPMCOUNTER05
Definition: registers.hh:300
RiscvISA::CSR_PMPADDR13
@ CSR_PMPADDR13
Definition: registers.hh:375
RiscvISA::CSR_MHPMCOUNTER25
@ CSR_MHPMCOUNTER25
Definition: registers.hh:402
RiscvISA::MISCREG_PMPADDR15
@ MISCREG_PMPADDR15
Definition: registers.hh:259
RiscvISA::CSR_INSTRET
@ CSR_INSTRET
Definition: registers.hh:297
RiscvISA::CSR_HPMCOUNTER04
@ CSR_HPMCOUNTER04
Definition: registers.hh:299
RiscvISA::MISCREG_PMPADDR13
@ MISCREG_PMPADDR13
Definition: registers.hh:257
RiscvISA::CSR_MHPMCOUNTER18
@ CSR_MHPMCOUNTER18
Definition: registers.hh:395
RiscvISA::NumVecRegs
const unsigned NumVecRegs
Definition: registers.hh:114
RiscvISA
Definition: fs_workload.cc:36
RiscvISA::CSR_PMPADDR07
@ CSR_PMPADDR07
Definition: registers.hh:369
RiscvISA::CSR_HPMCOUNTER31
@ CSR_HPMCOUNTER31
Definition: registers.hh:326
RiscvISA::UXL_OFFSET
const off_t UXL_OFFSET
Definition: registers.hh:668
RiscvISA::CSR_HPMCOUNTER08
@ CSR_HPMCOUNTER08
Definition: registers.hh:303
RiscvISA::MISCREG_HPMCOUNTER04
@ MISCREG_HPMCOUNTER04
Definition: registers.hh:167
RiscvISA::CSR_MHPMEVENT30
@ CSR_MHPMEVENT30
Definition: registers.hh:437
RiscvISA::CSR_MHPMCOUNTER05
@ CSR_MHPMCOUNTER05
Definition: registers.hh:382
RiscvISA::CSR_MHPMEVENT16
@ CSR_MHPMEVENT16
Definition: registers.hh:423
RiscvISA::CSR_HPMCOUNTER27
@ CSR_HPMCOUNTER27
Definition: registers.hh:322
RiscvISA::MISCREG_PMPADDR09
@ MISCREG_PMPADDR09
Definition: registers.hh:253
RiscvISA::CSR_TDATA1
@ CSR_TDATA1
Definition: registers.hh:441
RiscvISA::CSRMetadata::name
const std::string name
Definition: registers.hh:451
RiscvISA::STATUS_SPIE_MASK
const RegVal STATUS_SPIE_MASK
Definition: registers.hh:691
RiscvISA::CSR_UIE
@ CSR_UIE
Definition: registers.hh:285
RiscvISA::UEI_MASK
const RegVal UEI_MASK
Definition: registers.hh:719
RiscvISA::MISCREG_HPMEVENT20
@ MISCREG_HPMEVENT20
Definition: registers.hh:212
RiscvISA::MISCREG_HPMCOUNTER14
@ MISCREG_HPMCOUNTER14
Definition: registers.hh:177
RiscvISA::CSRIndex
CSRIndex
Definition: registers.hh:283
RiscvISA::CSR_MHPMCOUNTER23
@ CSR_MHPMCOUNTER23
Definition: registers.hh:400
RiscvISA::CSR_HPMCOUNTER24
@ CSR_HPMCOUNTER24
Definition: registers.hh:319
RiscvISA::CSR_DCSR
@ CSR_DCSR
Definition: registers.hh:444
RiscvISA::ReturnValueReg
const int ReturnValueReg
Definition: registers.hh:126
RiscvISA::MISCREG_SCAUSE
@ MISCREG_SCAUSE
Definition: registers.hh:267
RiscvISA::mpie
Bitfield< 7 > mpie
Definition: registers.hh:640
RiscvISA::CSR_MHPMEVENT08
@ CSR_MHPMEVENT08
Definition: registers.hh:415
RiscvISA::CSR_CYCLE
@ CSR_CYCLE
Definition: registers.hh:295
DummyVecRegContainer
DummyVecReg::Container DummyVecRegContainer
Definition: vec_reg.hh:668
RiscvISA::MISCREG_FFLAGS
@ MISCREG_FFLAGS
Definition: registers.hh:276
RiscvISA::NumMiscRegs
const int NumMiscRegs
Definition: registers.hh:281
RiscvISA::MISCREG_HPMCOUNTER31
@ MISCREG_HPMCOUNTER31
Definition: registers.hh:194
RiscvISA::VecPredRegSizeBits
constexpr size_t VecPredRegSizeBits
Definition: registers.hh:106
RiscvISA::CSR_HPMCOUNTER25
@ CSR_HPMCOUNTER25
Definition: registers.hh:320
RiscvISA::MISCREG_IP
@ MISCREG_IP
Definition: registers.hh:161
RiscvISA::freg
freg_t freg(float32_t f)
Definition: registers.hh:77
RiscvISA::f64
float64_t f64(uint64_t v)
Definition: registers.hh:74
RiscvISA::CSR_TIME
@ CSR_TIME
Definition: registers.hh:296
RiscvISA::CSR_UCAUSE
@ CSR_UCAUSE
Definition: registers.hh:289
RiscvISA::mpp
Bitfield< 12, 11 > mpp
Definition: registers.hh:638
RiscvISA::CSR_MHPMCOUNTER07
@ CSR_MHPMCOUNTER07
Definition: registers.hh:384
RiscvISA::CSR_SSTATUS
@ CSR_SSTATUS
Definition: registers.hh:329
RiscvISA::IntRegNames
const std::vector< std::string > IntRegNames
Definition: registers.hh:132
RiscvISA::MISCREG_ARCHID
@ MISCREG_ARCHID
Definition: registers.hh:157
RiscvISA::MISCREG_HPMCOUNTER27
@ MISCREG_HPMCOUNTER27
Definition: registers.hh:190
RiscvISA::MISCREG_PMPADDR06
@ MISCREG_PMPADDR06
Definition: registers.hh:250
RiscvISA::MISCREG_SCOUNTEREN
@ MISCREG_SCOUNTEREN
Definition: registers.hh:264
RiscvISA::MISCREG_HPMCOUNTER09
@ MISCREG_HPMCOUNTER09
Definition: registers.hh:172
RiscvISA::MISCREG_HPMCOUNTER13
@ MISCREG_HPMCOUNTER13
Definition: registers.hh:176
RiscvISA::MISCREG_HPMEVENT27
@ MISCREG_HPMEVENT27
Definition: registers.hh:219
RiscvISA::MISCREG_DSCRATCH
@ MISCREG_DSCRATCH
Definition: registers.hh:230
RiscvISA::MISCREG_HPMCOUNTER20
@ MISCREG_HPMCOUNTER20
Definition: registers.hh:183
RiscvISA::MISCREG_HPMCOUNTER24
@ MISCREG_HPMCOUNTER24
Definition: registers.hh:187
RiscvISA::MISCREG_UTVEC
@ MISCREG_UTVEC
Definition: registers.hh:271
RiscvISA::uie
Bitfield< 0 > uie
Definition: registers.hh:645
RiscvISA::spp
Bitfield< 8 > spp
Definition: registers.hh:639
RiscvISA::CSR_MHPMEVENT18
@ CSR_MHPMEVENT18
Definition: registers.hh:425
RiscvISA::MISCREG_MSCRATCH
@ MISCREG_MSCRATCH
Definition: registers.hh:236
VecPredRegT
Predicate register view.
Definition: vec_pred_reg.hh:66
RiscvISA::CSR_HPMCOUNTER18
@ CSR_HPMCOUNTER18
Definition: registers.hh:313
RiscvISA::upie
Bitfield< 4 > upie
Definition: registers.hh:642
RiscvISA::CSR_SEDELEG
@ CSR_SEDELEG
Definition: registers.hh:330
RiscvISA::BitUnion64
BitUnion64(SATP) Bitfield< 63
bitunion.hh
RiscvISA::mprv
Bitfield< 17 > mprv
Definition: registers.hh:635
RiscvISA::MISCREG_PMPCFG2
@ MISCREG_PMPCFG2
Definition: registers.hh:242
RiscvISA::CSR_MHPMCOUNTER21
@ CSR_MHPMCOUNTER21
Definition: registers.hh:398
RiscvISA::STATUS_SXL_MASK
const RegVal STATUS_SXL_MASK
Definition: registers.hh:678
RiscvISA::CSR_MHPMEVENT20
@ CSR_MHPMEVENT20
Definition: registers.hh:427
RiscvISA::MISCREG_HPMEVENT04
@ MISCREG_HPMEVENT04
Definition: registers.hh:196
RiscvISA::CSR_MHPMCOUNTER29
@ CSR_MHPMCOUNTER29
Definition: registers.hh:406
RiscvISA::MISCREG_HPMEVENT26
@ MISCREG_HPMEVENT26
Definition: registers.hh:218
RiscvISA::MiscRegIndex
MiscRegIndex
Definition: registers.hh:153
RiscvISA::MISCREG_UCAUSE
@ MISCREG_UCAUSE
Definition: registers.hh:274
DummyConstVecReg
VecRegT< DummyVecElem, DummyNumVecElemPerVecReg, true > DummyConstVecReg
Definition: vec_reg.hh:667
RiscvISA::STATUS_SUM_MASK
const RegVal STATUS_SUM_MASK
Definition: registers.hh:684
ArmISA::sd
Bitfield< 4 > sd
Definition: miscregs_types.hh:768
RiscvISA::MISCREG_DCSR
@ MISCREG_DCSR
Definition: registers.hh:228
RiscvISA::CSR_PMPADDR12
@ CSR_PMPADDR12
Definition: registers.hh:374
RiscvISA::FFLAGS_MASK
const RegVal FFLAGS_MASK
Definition: registers.hh:733
RiscvISA::CSR_MHPMCOUNTER28
@ CSR_MHPMCOUNTER28
Definition: registers.hh:405
RiscvISA::CSR_TDATA2
@ CSR_TDATA2
Definition: registers.hh:442
RiscvISA::CSR_MHPMEVENT22
@ CSR_MHPMEVENT22
Definition: registers.hh:429
RiscvISA::ISA_EXT_C_MASK
const RegVal ISA_EXT_C_MASK
Definition: registers.hh:674
RiscvISA::ThreadPointerReg
const int ThreadPointerReg
Definition: registers.hh:125
RiscvISA::CSR_PMPADDR09
@ CSR_PMPADDR09
Definition: registers.hh:371
RiscvISA::CSR_MHPMEVENT14
@ CSR_MHPMEVENT14
Definition: registers.hh:421
RiscvISA::CSR_MHPMEVENT17
@ CSR_MHPMEVENT17
Definition: registers.hh:424
RiscvISA::CSR_MHPMCOUNTER16
@ CSR_MHPMCOUNTER16
Definition: registers.hh:393
RiscvISA::MSI_MASK
const RegVal MSI_MASK
Definition: registers.hh:723
RiscvISA::CSR_UTVEC
@ CSR_UTVEC
Definition: registers.hh:286
RiscvISA::xs
Bitfield< 16, 15 > xs
Definition: registers.hh:636
RiscvISA::CSR_HPMCOUNTER23
@ CSR_HPMCOUNTER23
Definition: registers.hh:318
DummyVecElem
uint32_t DummyVecElem
Dummy type aliases and constants for architectures that do not implement vector registers.
Definition: vec_reg.hh:664
RiscvISA::MISCREG_TIME
@ MISCREG_TIME
Definition: registers.hh:164
RiscvISA::msi
Bitfield< 3 > msi
Definition: registers.hh:661
RiscvISA::spie
Bitfield< 5 > spie
Definition: registers.hh:641
RiscvISA::SSTATUS_MASK
const RegVal SSTATUS_MASK
Definition: registers.hh:706
vec_pred_reg.hh
RiscvISA::CSR_MCYCLE
@ CSR_MCYCLE
Definition: registers.hh:378
RiscvISA::NumIntArchRegs
const int NumIntArchRegs
Definition: registers.hh:109
RiscvISA::MISCREG_PMPADDR08
@ MISCREG_PMPADDR08
Definition: registers.hh:252
RiscvISA::CSR_MHPMEVENT07
@ CSR_MHPMEVENT07
Definition: registers.hh:414
RiscvISA::STATUS_MIE_MASK
const RegVal STATUS_MIE_MASK
Definition: registers.hh:693
RiscvISA::MISCREG_FRM
@ MISCREG_FRM
Definition: registers.hh:277
DummyVecReg
VecRegT< DummyVecElem, DummyNumVecElemPerVecReg, false > DummyVecReg
Definition: vec_reg.hh:666
RiscvISA::MISCREG_HPMEVENT19
@ MISCREG_HPMEVENT19
Definition: registers.hh:211
DummyVecPredRegContainer
DummyVecPredReg::Container DummyVecPredRegContainer
Definition: vec_pred_reg.hh:397
RiscvISA::STATUS_MPP_MASK
const RegVal STATUS_MPP_MASK
Definition: registers.hh:688
RiscvISA::MISCREG_HPMEVENT16
@ MISCREG_HPMEVENT16
Definition: registers.hh:208
RiscvISA::MISCREG_HPMEVENT21
@ MISCREG_HPMEVENT21
Definition: registers.hh:213
RiscvISA::STATUS_UIE_MASK
const RegVal STATUS_UIE_MASK
Definition: registers.hh:695
RiscvISA::MISCREG_HARTID
@ MISCREG_HARTID
Definition: registers.hh:159
RiscvISA::CSR_PMPADDR11
@ CSR_PMPADDR11
Definition: registers.hh:373
RiscvISA::CSR_TDATA3
@ CSR_TDATA3
Definition: registers.hh:443
RiscvISA::MISCREG_IMPID
@ MISCREG_IMPID
Definition: registers.hh:158
RiscvISA::fs
Bitfield< 14, 13 > fs
Definition: registers.hh:637
RiscvISA::v
Bitfield< 0 > v
Definition: pagetable.hh:73
RiscvISA::CSR_HPMCOUNTER15
@ CSR_HPMCOUNTER15
Definition: registers.hh:310
RiscvISA::CSR_HPMCOUNTER12
@ CSR_HPMCOUNTER12
Definition: registers.hh:307
RiscvISA::CSR_MHPMEVENT28
@ CSR_MHPMEVENT28
Definition: registers.hh:435
RiscvISA::MISCREG_TDATA2
@ MISCREG_TDATA2
Definition: registers.hh:226
vec_reg.hh
RiscvISA::sxl
Bitfield< 35, 34 > sxl
Definition: registers.hh:628
RiscvISA::CSR_STVAL
@ CSR_STVAL
Definition: registers.hh:338
RiscvISA::CSR_MEPC
@ CSR_MEPC
Definition: registers.hh:354
RiscvISA::NumCCRegs
const int NumCCRegs
Definition: registers.hh:119
RiscvISA::CSR_HPMCOUNTER11
@ CSR_HPMCOUNTER11
Definition: registers.hh:306
types.hh
RiscvISA::MISCREG_IE
@ MISCREG_IE
Definition: registers.hh:162
RiscvISA::mask
mask
Definition: pra_constants.hh:70
RiscvISA::CSR_MHPMEVENT10
@ CSR_MHPMEVENT10
Definition: registers.hh:417
RiscvISA::USI_MASK
const RegVal USI_MASK
Definition: registers.hh:725
RiscvISA::CSR_PMPADDR02
@ CSR_PMPADDR02
Definition: registers.hh:364
RiscvISA::CSR_MHPMEVENT31
@ CSR_MHPMEVENT31
Definition: registers.hh:438
RiscvISA::MISCREG_HPMEVENT31
@ MISCREG_HPMEVENT31
Definition: registers.hh:223
RiscvISA::sti
Bitfield< 5 > sti
Definition: registers.hh:659
RiscvISA::freg_t
float64_t freg_t
Definition: registers.hh:72
RiscvISA::CSR_MHPMCOUNTER17
@ CSR_MHPMCOUNTER17
Definition: registers.hh:394
RiscvISA::EndBitUnion
EndBitUnion(SATP) enum AddrXlateMode
Definition: pagetable.hh:46
RiscvISA::CSR_SCAUSE
@ CSR_SCAUSE
Definition: registers.hh:337
RiscvISA::uei
Bitfield< 8 > uei
Definition: registers.hh:657
RiscvISA::STATUS_SD_MASK
const RegVal STATUS_SD_MASK
Definition: registers.hh:677
RiscvISA::CSR_MHPMCOUNTER26
@ CSR_MHPMCOUNTER26
Definition: registers.hh:403
RiscvISA::CSR_SIDELEG
@ CSR_SIDELEG
Definition: registers.hh:331
RiscvISA::VecPredRegHasPackedRepr
constexpr bool VecPredRegHasPackedRepr
Definition: registers.hh:107
RiscvISA::MISCREG_HPMEVENT18
@ MISCREG_HPMEVENT18
Definition: registers.hh:210
RiscvISA::CSR_PMPADDR04
@ CSR_PMPADDR04
Definition: registers.hh:366
RiscvISA::MISCREG_HPMCOUNTER12
@ MISCREG_HPMCOUNTER12
Definition: registers.hh:175
RiscvISA::NumVecPredRegs
const int NumVecPredRegs
Definition: registers.hh:116
DummyConstVecPredReg
VecPredRegT< DummyVecElem, DummyNumVecElemPerVecReg, DummyVecPredRegHasPackedRepr, true > DummyConstVecPredReg
Definition: vec_pred_reg.hh:396
RiscvISA::CSR_MHPMEVENT05
@ CSR_MHPMEVENT05
Definition: registers.hh:412
RiscvISA::MISCREG_PMPADDR04
@ MISCREG_PMPADDR04
Definition: registers.hh:248
RiscvISA::STATUS_XS_MASK
const RegVal STATUS_XS_MASK
Definition: registers.hh:686
types.hh
RiscvISA::MISCREG_SSCRATCH
@ MISCREG_SSCRATCH
Definition: registers.hh:265
RiscvISA::CSR_MHPMCOUNTER31
@ CSR_MHPMCOUNTER31
Definition: registers.hh:408
RiscvISA::CSR_MHPMEVENT15
@ CSR_MHPMEVENT15
Definition: registers.hh:422
RiscvISA::CSR_PMPADDR10
@ CSR_PMPADDR10
Definition: registers.hh:372
RiscvISA::CSR_MHPMCOUNTER11
@ CSR_MHPMCOUNTER11
Definition: registers.hh:388
RiscvISA::CSR_HPMCOUNTER16
@ CSR_HPMCOUNTER16
Definition: registers.hh:311
DummyNumVecElemPerVecReg
constexpr unsigned DummyNumVecElemPerVecReg
Definition: vec_reg.hh:665
RiscvISA::ReturnAddrReg
const int ReturnAddrReg
Definition: registers.hh:123
RiscvISA::MISCREG_HPMCOUNTER29
@ MISCREG_HPMCOUNTER29
Definition: registers.hh:192
RiscvISA::CSR_MHPMEVENT25
@ CSR_MHPMEVENT25
Definition: registers.hh:432
RiscvISA::MISCREG_PMPADDR02
@ MISCREG_PMPADDR02
Definition: registers.hh:246
RiscvISA::MISCREG_HPMCOUNTER26
@ MISCREG_HPMCOUNTER26
Definition: registers.hh:189
RiscvISA::CSR_HPMCOUNTER22
@ CSR_HPMCOUNTER22
Definition: registers.hh:317
RiscvISA::UI_MASK
const RegVal UI_MASK
Definition: registers.hh:732
RiscvISA::MISCREG_PMPCFG0
@ MISCREG_PMPCFG0
Definition: registers.hh:240
RiscvISA::mie
Bitfield< 3 > mie
Definition: registers.hh:643
RiscvISA::FRM_MASK
const RegVal FRM_MASK
Definition: registers.hh:734
RiscvISA::CSR_MHPMCOUNTER15
@ CSR_MHPMCOUNTER15
Definition: registers.hh:392
RiscvISA::SXL_OFFSET
const off_t SXL_OFFSET
Definition: registers.hh:667
RiscvISA::r
Bitfield< 1 > r
Definition: pagetable.hh:72
RiscvISA::MISCREG_PMPADDR11
@ MISCREG_PMPADDR11
Definition: registers.hh:255
RiscvISA::MISCREG_TSELECT
@ MISCREG_TSELECT
Definition: registers.hh:224
RiscvISA::MISCREG_MEDELEG
@ MISCREG_MEDELEG
Definition: registers.hh:232
RiscvISA::MI_MASK
const RegVal MI_MASK
Definition: registers.hh:726
RiscvISA::CSR_PMPADDR03
@ CSR_PMPADDR03
Definition: registers.hh:365
RiscvISA::CSR_MIDELEG
@ CSR_MIDELEG
Definition: registers.hh:349
RiscvISA::tw
Bitfield< 21 > tw
Definition: registers.hh:631
RiscvISA::MISCREG_HPMEVENT17
@ MISCREG_HPMEVENT17
Definition: registers.hh:209
RiscvISA::MISCREG_HPMCOUNTER17
@ MISCREG_HPMCOUNTER17
Definition: registers.hh:180
RiscvISA::CSR_MHPMEVENT19
@ CSR_MHPMEVENT19
Definition: registers.hh:426
unboxF64
#define unboxF64(r)
Definition: registers.hh:68
RiscvISA::MISCREG_PMPADDR05
@ MISCREG_PMPADDR05
Definition: registers.hh:249
RiscvISA::CSR_MSCRATCH
@ CSR_MSCRATCH
Definition: registers.hh:353
RiscvISA::CSR_MTVAL
@ CSR_MTVAL
Definition: registers.hh:356
RiscvISA::CSR_SEPC
@ CSR_SEPC
Definition: registers.hh:336
RiscvISA::CSR_HPMCOUNTER19
@ CSR_HPMCOUNTER19
Definition: registers.hh:314
RiscvISA::CSR_PMPADDR00
@ CSR_PMPADDR00
Definition: registers.hh:362
RiscvISA::NumFloatRegs
const int NumFloatRegs
Definition: registers.hh:112
RiscvISA::CSR_HPMCOUNTER09
@ CSR_HPMCOUNTER09
Definition: registers.hh:304
RiscvISA::CSR_PMPCFG0
@ CSR_PMPCFG0
Definition: registers.hh:358
RiscvISA::CSR_MHPMCOUNTER04
@ CSR_MHPMCOUNTER04
Definition: registers.hh:381
RiscvISA::STATUS_UPIE_MASK
const RegVal STATUS_UPIE_MASK
Definition: registers.hh:692
RiscvISA::CSR_PMPCFG2
@ CSR_PMPCFG2
Definition: registers.hh:360
RiscvISA::CSR_PMPADDR14
@ CSR_PMPADDR14
Definition: registers.hh:376
RiscvISA::reg_t
uint64_t reg_t
Definition: registers.hh:71
RiscvISA::CSR_UEPC
@ CSR_UEPC
Definition: registers.hh:288
RiscvISA::MISCREG_SATP
@ MISCREG_SATP
Definition: registers.hh:269
RiscvISA::MISCREG_HPMEVENT28
@ MISCREG_HPMEVENT28
Definition: registers.hh:220
RiscvISA::CSR_MINSTRET
@ CSR_MINSTRET
Definition: registers.hh:379
RiscvISA::CSR_SSCRATCH
@ CSR_SSCRATCH
Definition: registers.hh:335
RiscvISA::CSR_MHPMCOUNTER06
@ CSR_MHPMCOUNTER06
Definition: registers.hh:383
RiscvISA::MISCREG_MTVAL
@ MISCREG_MTVAL
Definition: registers.hh:239
RiscvISA::CSRMetadata
Definition: registers.hh:449
RiscvISA::STATUS_TW_MASK
const RegVal STATUS_TW_MASK
Definition: registers.hh:681
RiscvISA::CSR_MHPMEVENT03
@ CSR_MHPMEVENT03
Definition: registers.hh:410
RiscvISA::tvm
Bitfield< 20 > tvm
Definition: registers.hh:632
RiscvISA::CSRData
const std::map< int, CSRMetadata > CSRData
Definition: registers.hh:455
RiscvISA::CSR_HPMCOUNTER03
@ CSR_HPMCOUNTER03
Definition: registers.hh:298
RiscvISA::MISCREG_STVEC
@ MISCREG_STVEC
Definition: registers.hh:263
RiscvISA::CSR_HPMCOUNTER14
@ CSR_HPMCOUNTER14
Definition: registers.hh:309
RiscvISA::AMOTempReg
const int AMOTempReg
Definition: registers.hh:128
RiscvISA::CSR_MHPMEVENT23
@ CSR_MHPMEVENT23
Definition: registers.hh:430
RiscvISA::CSR_MIP
@ CSR_MIP
Definition: registers.hh:357
RiscvISA::MEI_MASK
const RegVal MEI_MASK
Definition: registers.hh:717
RiscvISA::MISCREG_HPMCOUNTER22
@ MISCREG_HPMCOUNTER22
Definition: registers.hh:185
RiscvISA::CSR_MHPMEVENT26
@ CSR_MHPMEVENT26
Definition: registers.hh:433
RiscvISA::CSR_MHPMCOUNTER27
@ CSR_MHPMCOUNTER27
Definition: registers.hh:404
RiscvISA::SI_MASK
const RegVal SI_MASK
Definition: registers.hh:729
RiscvISA::STATUS_SIE_MASK
const RegVal STATUS_SIE_MASK
Definition: registers.hh:694
RiscvISA::CSR_FRM
@ CSR_FRM
Definition: registers.hh:293
RiscvISA::FS_OFFSET
const off_t FS_OFFSET
Definition: registers.hh:669
RiscvISA::MISCREG_HPMCOUNTER25
@ MISCREG_HPMCOUNTER25
Definition: registers.hh:188
RiscvISA::CSR_HPMCOUNTER10
@ CSR_HPMCOUNTER10
Definition: registers.hh:305
RiscvISA::USTATUS_MASK
const RegVal USTATUS_MASK
Definition: registers.hh:712
RiscvISA::FRM_OFFSET
const off_t FRM_OFFSET
Definition: registers.hh:670
RiscvISA::MISCREG_HPMEVENT12
@ MISCREG_HPMEVENT12
Definition: registers.hh:204
RiscvISA::NUM_MISCREGS
@ NUM_MISCREGS
Definition: registers.hh:279
RiscvISA::MISCREG_PMPADDR14
@ MISCREG_PMPADDR14
Definition: registers.hh:258
RiscvISA::MISCREG_ISA
@ MISCREG_ISA
Definition: registers.hh:155
RiscvISA::CSR_MHPMCOUNTER24
@ CSR_MHPMCOUNTER24
Definition: registers.hh:401
RiscvISA::MISCREG_SEPC
@ MISCREG_SEPC
Definition: registers.hh:266
RiscvISA::CSR_MHPMCOUNTER12
@ CSR_MHPMCOUNTER12
Definition: registers.hh:389
RiscvISA::CSR_MHPMCOUNTER19
@ CSR_MHPMCOUNTER19
Definition: registers.hh:396
ULL
#define ULL(N)
uint64_t constant
Definition: types.hh:46
RiscvISA::CSR_FFLAGS
@ CSR_FFLAGS
Definition: registers.hh:292
RegVal
uint64_t RegVal
Definition: types.hh:174
RiscvISA::VecRegSizeBytes
constexpr size_t VecRegSizeBytes
Definition: registers.hh:100
VecRegContainer
Vector Register Abstraction This generic class is the model in a particularization of MVC,...
Definition: vec_reg.hh:156
RiscvISA::CSR_DSCRATCH
@ CSR_DSCRATCH
Definition: registers.hh:446
RiscvISA::STATUS_UXL_MASK
const RegVal STATUS_UXL_MASK
Definition: registers.hh:679
RiscvISA::VecElem
::DummyVecElem VecElem
Definition: registers.hh:95
RiscvISA::CSR_MHPMCOUNTER10
@ CSR_MHPMCOUNTER10
Definition: registers.hh:387
RiscvISA::MISCREG_HPMCOUNTER15
@ MISCREG_HPMCOUNTER15
Definition: registers.hh:178
RiscvISA::CSR_HPMCOUNTER17
@ CSR_HPMCOUNTER17
Definition: registers.hh:312
RiscvISA::STATUS_TSR_MASK
const RegVal STATUS_TSR_MASK
Definition: registers.hh:680
VecRegT
Vector Register Abstraction This generic class is a view in a particularization of MVC,...
Definition: vec_reg.hh:170
RiscvISA::CSR_MHPMEVENT09
@ CSR_MHPMEVENT09
Definition: registers.hh:416
RiscvISA::ZeroReg
const int ZeroReg
Definition: registers.hh:122
ArmISA::f
Bitfield< 6 > f
Definition: miscregs_types.hh:64
RiscvISA::MISCREG_VENDORID
@ MISCREG_VENDORID
Definition: registers.hh:156
RiscvISA::CSR_MARCHID
@ CSR_MARCHID
Definition: registers.hh:343
RiscvISA::MISCREG_HPMCOUNTER23
@ MISCREG_HPMCOUNTER23
Definition: registers.hh:186
RiscvISA::StackPointerReg
const int StackPointerReg
Definition: registers.hh:124
RiscvISA::MISCREG_MIDELEG
@ MISCREG_MIDELEG
Definition: registers.hh:233
RiscvISA::MISCREG_HPMCOUNTER21
@ MISCREG_HPMCOUNTER21
Definition: registers.hh:184
unboxF32
#define unboxF32(r)
Definition: registers.hh:67
RiscvISA::CSR_HPMCOUNTER20
@ CSR_HPMCOUNTER20
Definition: registers.hh:315

Generated on Tue Mar 23 2021 19:41:20 for gem5 by doxygen 1.8.17