ETISS 0.11.2
ExtendableTranslatingInstructionSetSimulator(version0.11.2)
Loading...
Searching...
No Matches
RV32IMACFDArch.cpp
Go to the documentation of this file.
1
7/*********************************************************************************************************************************
8
9* Modification guidelines:
10
11 1. The initial value of SP register should be initialized by ctr0.S/board.S. If not, it could be initialized
12 through utility class etiss::VirtualStruct::Field.
13
14 2. Debug mode print out all assignment results. GDB in 8 is prefered.
15
16 3. Manually copy the content in bracket ["return ETISS_RETURNCODE_CPUFINISHED; \n"] to terminating instruction,
17 otherwise the emulation can not be ended.
18
19 4. If subset of encoding error occurs, it means the format of the encoding in the input model was not appropriate
20
21 5. If the PC register points to wrong address, please notice that some assembly may cause branch operation
22 implicitly such as "MOV Rd Rn" in ARMv6-M
23
24 6. If a variable is the result of dynamic slicing such as, var_1 = var_2<Hshift-1..Lshift-2>, the size would be
25 calculated during process (if possible), otherwise it is assumed to be the register size. Problems may occur
26 when var_1 encounters bit manipulation such as "~" due to bit expansion. To change the nml model with explicit
27 slicing e.g var_1 = val_2<3..0> or avoid bit manipulation for dynamic sliced variable. Otherwise, you have to
28 manually correct it.
29
30 7. Implementation dependent functionalities such as exception handling should be manully added. Corresponding
31 interfaces are provided in RV32IMACFDArchSpecificImp.h
32
33 8. RV32IMACFDGDBCore.h provides the GDBCore class to support gdb flavor debugging feature, modify iy if in need.
34
35 *********************************************************************************************************************************/
36
37#include "RV32IMACFDArch.h"
38#include "RV32IMACFDFuncs.h"
39
40#define RV32IMACFD_DEBUG_CALL 0
41using namespace etiss;
42using namespace etiss::instr;
43
44RV32IMACFDArch::RV32IMACFDArch(unsigned int coreno) : CPUArch("RV32IMACFD"), coreno_(coreno)
45{
46 headers_.insert("Arch/RV32IMACFD/RV32IMACFD.h");
47}
48
50{
52}
53
55{
56 ETISS_CPU *ret = (ETISS_CPU *)new RV32IMACFD();
57 resetCPU(ret, 0);
58 return ret;
59}
60
61void RV32IMACFDArch::resetCPU(ETISS_CPU *cpu, etiss::uint64 *startpointer)
62{
63 memset(cpu, 0, sizeof(RV32IMACFD));
64 RV32IMACFD *rv32imacfdcpu = (RV32IMACFD *)cpu;
65
66 if (startpointer)
67 cpu->instructionPointer = *startpointer & ~((etiss::uint64)0x1);
68 else
69 cpu->instructionPointer = 0x0; // reference to manual
70 cpu->nextPc = cpu->instructionPointer;
71 cpu->mode = 1;
72 cpu->cpuTime_ps = 0;
73 cpu->cpuCycleTime_ps = 31250;
74
75 for (int i = 0; i < 32; ++i)
76 {
77 rv32imacfdcpu->ins_X[i] = 0;
78 rv32imacfdcpu->X[i] = &rv32imacfdcpu->ins_X[i];
79 }
80 for (int i = 0; i < 4096; ++i)
81 {
82 rv32imacfdcpu->ins_CSR[i] = 0;
83 rv32imacfdcpu->CSR[i] = &rv32imacfdcpu->ins_CSR[i];
84 }
85 for (int i = 0; i < 32; ++i)
86 {
87 rv32imacfdcpu->ins_F[i] = 0;
88 rv32imacfdcpu->F[i] = &rv32imacfdcpu->ins_F[i];
89 }
90
91 rv32imacfdcpu->ZERO = 0;
92 rv32imacfdcpu->RA = 0;
93 rv32imacfdcpu->SP = 0;
94 rv32imacfdcpu->GP = 0;
95 rv32imacfdcpu->TP = 0;
96 rv32imacfdcpu->T0 = 0;
97 rv32imacfdcpu->T1 = 0;
98 rv32imacfdcpu->T2 = 0;
99 rv32imacfdcpu->S0 = 0;
100 rv32imacfdcpu->S1 = 0;
101 rv32imacfdcpu->A0 = 0;
102 rv32imacfdcpu->A1 = 0;
103 rv32imacfdcpu->A2 = 0;
104 rv32imacfdcpu->A3 = 0;
105 rv32imacfdcpu->A4 = 0;
106 rv32imacfdcpu->A5 = 0;
107 rv32imacfdcpu->A6 = 0;
108 rv32imacfdcpu->A7 = 0;
109 rv32imacfdcpu->S2 = 0;
110 rv32imacfdcpu->S3 = 0;
111 rv32imacfdcpu->S4 = 0;
112 rv32imacfdcpu->S5 = 0;
113 rv32imacfdcpu->S6 = 0;
114 rv32imacfdcpu->S7 = 0;
115 rv32imacfdcpu->S8 = 0;
116 rv32imacfdcpu->S9 = 0;
117 rv32imacfdcpu->S10 = 0;
118 rv32imacfdcpu->S11 = 0;
119 rv32imacfdcpu->T3 = 0;
120 rv32imacfdcpu->T4 = 0;
121 rv32imacfdcpu->T5 = 0;
122 rv32imacfdcpu->T6 = 0;
123 for (int i = 0; i < 8; ++i)
124 {
125 rv32imacfdcpu->FENCE[i] = 0;
126 }
127 for (int i = 0; i < 8; ++i)
128 {
129 rv32imacfdcpu->RES[i] = 0;
130 }
131 rv32imacfdcpu->PRIV = 0;
132 rv32imacfdcpu->DPC = 0;
133 rv32imacfdcpu->FCSR = 0;
134 rv32imacfdcpu->FFLAGS = 0;
135 rv32imacfdcpu->FRM = 0;
136 rv32imacfdcpu->MSTATUS = 0;
137 rv32imacfdcpu->MIE = 0;
138 rv32imacfdcpu->MIP = 0;
139 rv32imacfdcpu->CYCLE = 0;
140 rv32imacfdcpu->CYCLEH = 0;
141 rv32imacfdcpu->MCYCLE = 0;
142 rv32imacfdcpu->MCYCLEH = 0;
143 rv32imacfdcpu->TIME = 0;
144 rv32imacfdcpu->TIMEH = 0;
145 rv32imacfdcpu->INSTRET = 0;
146 rv32imacfdcpu->INSTRETH = 0;
147 rv32imacfdcpu->MINSTRET = 0;
148 rv32imacfdcpu->MINSTRETH = 0;
149 rv32imacfdcpu->MVENDORID = 0;
150 rv32imacfdcpu->MARCHID = 0;
151 rv32imacfdcpu->MIMPID = 0;
152 rv32imacfdcpu->MHARTID = 0;
153 rv32imacfdcpu->MISA = 0;
154 rv32imacfdcpu->MEDELEG = 0;
155 rv32imacfdcpu->MIDELEG = 0;
156 rv32imacfdcpu->MTVEC = 0;
157 rv32imacfdcpu->MCOUNTEREN = 0;
158 rv32imacfdcpu->MSCRATCH = 0;
159 rv32imacfdcpu->MEPC = 0;
160 rv32imacfdcpu->MCAUSE = 0;
161 rv32imacfdcpu->MTVAL = 0;
162 rv32imacfdcpu->FT0 = 0;
163 rv32imacfdcpu->FT1 = 0;
164 rv32imacfdcpu->FT2 = 0;
165 rv32imacfdcpu->FT3 = 0;
166 rv32imacfdcpu->FT4 = 0;
167 rv32imacfdcpu->FT5 = 0;
168 rv32imacfdcpu->FT6 = 0;
169 rv32imacfdcpu->FT7 = 0;
170 rv32imacfdcpu->FS0 = 0;
171 rv32imacfdcpu->FS1 = 0;
172 rv32imacfdcpu->FA0 = 0;
173 rv32imacfdcpu->FA1 = 0;
174 rv32imacfdcpu->FA2 = 0;
175 rv32imacfdcpu->FA3 = 0;
176 rv32imacfdcpu->FA4 = 0;
177 rv32imacfdcpu->FA5 = 0;
178 rv32imacfdcpu->FA6 = 0;
179 rv32imacfdcpu->FA7 = 0;
180 rv32imacfdcpu->FS2 = 0;
181 rv32imacfdcpu->FS3 = 0;
182 rv32imacfdcpu->FS4 = 0;
183 rv32imacfdcpu->FS5 = 0;
184 rv32imacfdcpu->FS6 = 0;
185 rv32imacfdcpu->FS7 = 0;
186 rv32imacfdcpu->FS8 = 0;
187 rv32imacfdcpu->FS9 = 0;
188 rv32imacfdcpu->FS10 = 0;
189 rv32imacfdcpu->FS11 = 0;
190 rv32imacfdcpu->FT8 = 0;
191 rv32imacfdcpu->FT9 = 0;
192 rv32imacfdcpu->FT10 = 0;
193 rv32imacfdcpu->FT11 = 0;
194 rv32imacfdcpu->RES_ADDR = 0;
195
196 rv32imacfdcpu->X[0] = &rv32imacfdcpu->ZERO;
197 rv32imacfdcpu->X[1] = &rv32imacfdcpu->RA;
198 rv32imacfdcpu->X[2] = &rv32imacfdcpu->SP;
199 rv32imacfdcpu->X[3] = &rv32imacfdcpu->GP;
200 rv32imacfdcpu->X[4] = &rv32imacfdcpu->TP;
201 rv32imacfdcpu->X[5] = &rv32imacfdcpu->T0;
202 rv32imacfdcpu->X[6] = &rv32imacfdcpu->T1;
203 rv32imacfdcpu->X[7] = &rv32imacfdcpu->T2;
204 rv32imacfdcpu->X[8] = &rv32imacfdcpu->S0;
205 rv32imacfdcpu->X[9] = &rv32imacfdcpu->S1;
206 rv32imacfdcpu->X[10] = &rv32imacfdcpu->A0;
207 rv32imacfdcpu->X[11] = &rv32imacfdcpu->A1;
208 rv32imacfdcpu->X[12] = &rv32imacfdcpu->A2;
209 rv32imacfdcpu->X[13] = &rv32imacfdcpu->A3;
210 rv32imacfdcpu->X[14] = &rv32imacfdcpu->A4;
211 rv32imacfdcpu->X[15] = &rv32imacfdcpu->A5;
212 rv32imacfdcpu->X[16] = &rv32imacfdcpu->A6;
213 rv32imacfdcpu->X[17] = &rv32imacfdcpu->A7;
214 rv32imacfdcpu->X[18] = &rv32imacfdcpu->S2;
215 rv32imacfdcpu->X[19] = &rv32imacfdcpu->S3;
216 rv32imacfdcpu->X[20] = &rv32imacfdcpu->S4;
217 rv32imacfdcpu->X[21] = &rv32imacfdcpu->S5;
218 rv32imacfdcpu->X[22] = &rv32imacfdcpu->S6;
219 rv32imacfdcpu->X[23] = &rv32imacfdcpu->S7;
220 rv32imacfdcpu->X[24] = &rv32imacfdcpu->S8;
221 rv32imacfdcpu->X[25] = &rv32imacfdcpu->S9;
222 rv32imacfdcpu->X[26] = &rv32imacfdcpu->S10;
223 rv32imacfdcpu->X[27] = &rv32imacfdcpu->S11;
224 rv32imacfdcpu->X[28] = &rv32imacfdcpu->T3;
225 rv32imacfdcpu->X[29] = &rv32imacfdcpu->T4;
226 rv32imacfdcpu->X[30] = &rv32imacfdcpu->T5;
227 rv32imacfdcpu->X[31] = &rv32imacfdcpu->T6;
228 rv32imacfdcpu->CSR[3] = &rv32imacfdcpu->FCSR;
229 rv32imacfdcpu->CSR[1] = &rv32imacfdcpu->FFLAGS;
230 rv32imacfdcpu->CSR[2] = &rv32imacfdcpu->FRM;
231 rv32imacfdcpu->CSR[768] = &rv32imacfdcpu->MSTATUS;
232 rv32imacfdcpu->CSR[772] = &rv32imacfdcpu->MIE;
233 rv32imacfdcpu->CSR[836] = &rv32imacfdcpu->MIP;
234 rv32imacfdcpu->CSR[3072] = &rv32imacfdcpu->CYCLE;
235 rv32imacfdcpu->CSR[3200] = &rv32imacfdcpu->CYCLEH;
236 rv32imacfdcpu->CSR[2816] = &rv32imacfdcpu->MCYCLE;
237 rv32imacfdcpu->CSR[2944] = &rv32imacfdcpu->MCYCLEH;
238 rv32imacfdcpu->CSR[3073] = &rv32imacfdcpu->TIME;
239 rv32imacfdcpu->CSR[3201] = &rv32imacfdcpu->TIMEH;
240 rv32imacfdcpu->CSR[3074] = &rv32imacfdcpu->INSTRET;
241 rv32imacfdcpu->CSR[3202] = &rv32imacfdcpu->INSTRETH;
242 rv32imacfdcpu->CSR[2818] = &rv32imacfdcpu->MINSTRET;
243 rv32imacfdcpu->CSR[2946] = &rv32imacfdcpu->MINSTRETH;
244 rv32imacfdcpu->CSR[3857] = &rv32imacfdcpu->MVENDORID;
245 rv32imacfdcpu->CSR[3858] = &rv32imacfdcpu->MARCHID;
246 rv32imacfdcpu->CSR[3859] = &rv32imacfdcpu->MIMPID;
247 rv32imacfdcpu->CSR[3860] = &rv32imacfdcpu->MHARTID;
248 rv32imacfdcpu->CSR[769] = &rv32imacfdcpu->MISA;
249 rv32imacfdcpu->CSR[770] = &rv32imacfdcpu->MEDELEG;
250 rv32imacfdcpu->CSR[771] = &rv32imacfdcpu->MIDELEG;
251 rv32imacfdcpu->CSR[773] = &rv32imacfdcpu->MTVEC;
252 rv32imacfdcpu->CSR[774] = &rv32imacfdcpu->MCOUNTEREN;
253 rv32imacfdcpu->CSR[832] = &rv32imacfdcpu->MSCRATCH;
254 rv32imacfdcpu->CSR[833] = &rv32imacfdcpu->MEPC;
255 rv32imacfdcpu->CSR[834] = &rv32imacfdcpu->MCAUSE;
256 rv32imacfdcpu->CSR[835] = &rv32imacfdcpu->MTVAL;
257 rv32imacfdcpu->F[0] = &rv32imacfdcpu->FT0;
258 rv32imacfdcpu->F[1] = &rv32imacfdcpu->FT1;
259 rv32imacfdcpu->F[2] = &rv32imacfdcpu->FT2;
260 rv32imacfdcpu->F[3] = &rv32imacfdcpu->FT3;
261 rv32imacfdcpu->F[4] = &rv32imacfdcpu->FT4;
262 rv32imacfdcpu->F[5] = &rv32imacfdcpu->FT5;
263 rv32imacfdcpu->F[6] = &rv32imacfdcpu->FT6;
264 rv32imacfdcpu->F[7] = &rv32imacfdcpu->FT7;
265 rv32imacfdcpu->F[8] = &rv32imacfdcpu->FS0;
266 rv32imacfdcpu->F[9] = &rv32imacfdcpu->FS1;
267 rv32imacfdcpu->F[10] = &rv32imacfdcpu->FA0;
268 rv32imacfdcpu->F[11] = &rv32imacfdcpu->FA1;
269 rv32imacfdcpu->F[12] = &rv32imacfdcpu->FA2;
270 rv32imacfdcpu->F[13] = &rv32imacfdcpu->FA3;
271 rv32imacfdcpu->F[14] = &rv32imacfdcpu->FA4;
272 rv32imacfdcpu->F[15] = &rv32imacfdcpu->FA5;
273 rv32imacfdcpu->F[16] = &rv32imacfdcpu->FA6;
274 rv32imacfdcpu->F[17] = &rv32imacfdcpu->FA7;
275 rv32imacfdcpu->F[18] = &rv32imacfdcpu->FS2;
276 rv32imacfdcpu->F[19] = &rv32imacfdcpu->FS3;
277 rv32imacfdcpu->F[20] = &rv32imacfdcpu->FS4;
278 rv32imacfdcpu->F[21] = &rv32imacfdcpu->FS5;
279 rv32imacfdcpu->F[22] = &rv32imacfdcpu->FS6;
280 rv32imacfdcpu->F[23] = &rv32imacfdcpu->FS7;
281 rv32imacfdcpu->F[24] = &rv32imacfdcpu->FS8;
282 rv32imacfdcpu->F[25] = &rv32imacfdcpu->FS9;
283 rv32imacfdcpu->F[26] = &rv32imacfdcpu->FS10;
284 rv32imacfdcpu->F[27] = &rv32imacfdcpu->FS11;
285 rv32imacfdcpu->F[28] = &rv32imacfdcpu->FT8;
286 rv32imacfdcpu->F[29] = &rv32imacfdcpu->FT9;
287 rv32imacfdcpu->F[30] = &rv32imacfdcpu->FT10;
288 rv32imacfdcpu->F[31] = &rv32imacfdcpu->FT11;
289
290 rv32imacfdcpu->PRIV = 3ULL;
291 rv32imacfdcpu->DPC = 0LL;
292 *rv32imacfdcpu->CSR[0] = 11ULL;
293 *rv32imacfdcpu->CSR[256] = 11ULL;
294 *rv32imacfdcpu->CSR[768] = 11ULL;
295 *rv32imacfdcpu->CSR[769] = 1075056941ULL;
296 *rv32imacfdcpu->CSR[3088] = 3ULL;
297 *rv32imacfdcpu->CSR[772] = 4294966203ULL;
298 *rv32imacfdcpu->CSR[260] = 4294964019ULL;
299 *rv32imacfdcpu->CSR[4] = 4294963473ULL;
300 rv32imacfdcpu->RES_ADDR = -1LL;
301}
302
304{
305 delete (RV32IMACFD *)cpu;
306}
307
312{
313 return 8;
314}
315
320{
321 return 2;
322}
323
327const std::set<std::string> &RV32IMACFDArch::getHeaders() const
328{
329 return headers_;
330}
331
333{
334 cb.fileglobalCode().insert("#include \"Arch/RV32IMACFD/RV32IMACFD.h\"\n");
335 cb.fileglobalCode().insert("#include \"Arch/RV32IMACFD/RV32IMACFDFuncs.h\"\n");
336 cb.functionglobalCode().insert("cpu->exception = 0;\n");
337 cb.functionglobalCode().insert("cpu->return_pending = 0;\n");
338 cb.functionglobalCode().insert("etiss_uint32 mem_ret_code = 0;\n");
339}
340
345
346// clang-format off
347const char * const reg_name[] =
348{
349 "X0",
350 "X1",
351 "X2",
352 "X3",
353 "X4",
354 "X5",
355 "X6",
356 "X7",
357 "X8",
358 "X9",
359 "X10",
360 "X11",
361 "X12",
362 "X13",
363 "X14",
364 "X15",
365 "X16",
366 "X17",
367 "X18",
368 "X19",
369 "X20",
370 "X21",
371 "X22",
372 "X23",
373 "X24",
374 "X25",
375 "X26",
376 "X27",
377 "X28",
378 "X29",
379 "X30",
380 "X31",
381};
382// clang-format on
383
388
const char *const reg_name[]
Generated on Mon, 15 Jun 2026 06:54:08 +0000.
etiss::instr::InstructionCollection RV32IMACFDISA("RV32IMACFDISA", ISA16_RV32IMACFDClass, ISA32_RV32IMACFDClass)
etiss::instr::InstructionGroup ISA32_RV32IMACFD("ISA32_RV32IMACFD", 32)
etiss::instr::InstructionClass ISA16_RV32IMACFDClass(1, "ISA16_RV32IMACFD", 16, ISA16_RV32IMACFD)
etiss::instr::InstructionGroup ISA16_RV32IMACFD("ISA16_RV32IMACFD", 16)
etiss::instr::InstructionClass ISA32_RV32IMACFDClass(1, "ISA32_RV32IMACFD", 32, ISA32_RV32IMACFD)
__DEVICE__ void * memset(void *__a, int __b, size_t __c)
RV32IMACFDArch(unsigned int)
virtual void deleteCPU(ETISS_CPU *)
delete cpu structure
virtual ETISS_CPU * newCPU()
allocate new cpu structure
RV32IMACFDGDBCore gdbcore_
virtual const std::set< std::string > & getHeaders() const
required headers (RV32IMACFD.h)
virtual unsigned getMaximumInstructionSizeInBytes()
std::set< std::string > listenerSupportedRegisters_
virtual unsigned getInstructionSizeInBytes()
virtual etiss::plugin::gdb::GDBCore & getGDBCore()
get the GDBcore for RV32IMACFD architecture
virtual const std::set< std::string > & getListenerSupportedRegisters()
virtual void initCodeBlock(etiss::CodeBlock &cb) const
called before instructions are translated for the code block
virtual void resetCPU(ETISS_CPU *cpu, etiss::uint64 *startpointer)
reset cpu (structure)
std::set< std::string > headers_
the interface to translate instructions of and processor architecture
Definition CPUArch.h:116
A list of CodeSets.
Definition CodePart.h:532
std::set< std::string > & functionglobalCode()
Definition CodePart.h:567
std::set< std::string > & fileglobalCode()
Definition CodePart.h:566
maps to VariableInstructionSet
maps to ModedInstructionSet
maps to InstructionSet
provides to architecture dependent registers as defined by gdb
Definition GDBCore.h:39
forwards: include/jit/*
Definition Benchmark.h:17
basic cpu state structure needed for execution of any cpu architecture.
Definition CPU.h:51
etiss_uint64 instructionPointer
pointer to next instruction.
Definition CPU.h:54
etiss_uint64 cpuCycleTime_ps
frequency of the cpu. use to allign e.g. memory delays
Definition CPU.h:67
etiss_uint64 cpuTime_ps
simulation time of cpu
Definition CPU.h:59
etiss_uint64 nextPc
Definition CPU.h:57
etiss_uint32 mode
instruction set mode of the processor
Definition CPU.h:71
Generated on Mon, 15 Jun 2026 06:54:08 +0000.
Definition RV32IMACFD.h:18
etiss_uint32 MTVEC
Definition RV32IMACFD.h:82
etiss_uint32 MIP
Definition RV32IMACFD.h:64
etiss_uint64 FT5
Definition RV32IMACFD.h:95
etiss_uint32 MISA
Definition RV32IMACFD.h:79
etiss_uint64 FS3
Definition RV32IMACFD.h:109
etiss_uint32 MSTATUS
Definition RV32IMACFD.h:62
etiss_uint64 FT11
Definition RV32IMACFD.h:121
etiss_uint64 FS0
Definition RV32IMACFD.h:98
etiss_uint32 MCYCLEH
Definition RV32IMACFD.h:68
etiss_uint64 FT4
Definition RV32IMACFD.h:94
etiss_uint32 RES_ADDR
Definition RV32IMACFD.h:124
etiss_uint32 S11
Definition RV32IMACFD.h:48
etiss_uint32 A5
Definition RV32IMACFD.h:36
etiss_uint64 FT2
Definition RV32IMACFD.h:92
etiss_uint32 S4
Definition RV32IMACFD.h:41
etiss_uint32 MVENDORID
Definition RV32IMACFD.h:75
etiss_uint64 FS9
Definition RV32IMACFD.h:115
etiss_uint64 FA5
Definition RV32IMACFD.h:105
etiss_uint32 MEPC
Definition RV32IMACFD.h:85
etiss_uint64 FA0
Definition RV32IMACFD.h:100
etiss_uint32 * X[32]
Definition RV32IMACFD.h:53
etiss_uint32 MARCHID
Definition RV32IMACFD.h:76
etiss_uint32 A7
Definition RV32IMACFD.h:38
etiss_uint32 T1
Definition RV32IMACFD.h:27
etiss_uint32 T4
Definition RV32IMACFD.h:50
etiss_uint32 S0
Definition RV32IMACFD.h:29
etiss_uint32 * CSR[4096]
Definition RV32IMACFD.h:88
etiss_uint32 SP
Definition RV32IMACFD.h:23
etiss_uint64 FA1
Definition RV32IMACFD.h:101
etiss_uint32 FRM
Definition RV32IMACFD.h:61
etiss_uint64 FS11
Definition RV32IMACFD.h:117
etiss_uint64 FS2
Definition RV32IMACFD.h:108
etiss_uint64 FS10
Definition RV32IMACFD.h:116
etiss_uint64 FA7
Definition RV32IMACFD.h:107
etiss_uint64 FT8
Definition RV32IMACFD.h:118
etiss_uint32 FFLAGS
Definition RV32IMACFD.h:60
etiss_uint32 CYCLE
Definition RV32IMACFD.h:65
etiss_uint32 S1
Definition RV32IMACFD.h:30
etiss_uint32 TIME
Definition RV32IMACFD.h:69
etiss_uint32 TIMEH
Definition RV32IMACFD.h:70
etiss_uint32 A3
Definition RV32IMACFD.h:34
etiss_uint64 FA2
Definition RV32IMACFD.h:102
etiss_uint32 ins_CSR[4096]
Definition RV32IMACFD.h:89
etiss_uint32 INSTRETH
Definition RV32IMACFD.h:72
etiss_uint64 FS4
Definition RV32IMACFD.h:110
etiss_uint32 A2
Definition RV32IMACFD.h:33
etiss_uint64 FT3
Definition RV32IMACFD.h:93
etiss_uint32 MCAUSE
Definition RV32IMACFD.h:86
etiss_uint32 T5
Definition RV32IMACFD.h:51
etiss_uint32 MCYCLE
Definition RV32IMACFD.h:67
etiss_uint32 S5
Definition RV32IMACFD.h:42
etiss_uint32 ZERO
Definition RV32IMACFD.h:21
etiss_uint32 S8
Definition RV32IMACFD.h:45
etiss_uint64 FT7
Definition RV32IMACFD.h:97
etiss_uint32 TP
Definition RV32IMACFD.h:25
etiss_uint32 MSCRATCH
Definition RV32IMACFD.h:84
etiss_uint32 A1
Definition RV32IMACFD.h:32
etiss_uint32 ins_X[32]
Definition RV32IMACFD.h:54
etiss_uint64 ins_F[32]
Definition RV32IMACFD.h:123
etiss_uint32 MINSTRETH
Definition RV32IMACFD.h:74
etiss_uint8 PRIV
Definition RV32IMACFD.h:57
etiss_uint32 A4
Definition RV32IMACFD.h:35
etiss_uint64 FS5
Definition RV32IMACFD.h:111
etiss_uint32 MIE
Definition RV32IMACFD.h:63
etiss_uint32 T3
Definition RV32IMACFD.h:49
etiss_uint64 FT1
Definition RV32IMACFD.h:91
etiss_uint32 S10
Definition RV32IMACFD.h:47
etiss_uint64 FS8
Definition RV32IMACFD.h:114
etiss_uint64 FT10
Definition RV32IMACFD.h:120
etiss_uint32 S7
Definition RV32IMACFD.h:44
etiss_uint32 FCSR
Definition RV32IMACFD.h:59
etiss_uint32 CYCLEH
Definition RV32IMACFD.h:66
etiss_uint32 T6
Definition RV32IMACFD.h:52
etiss_uint32 S3
Definition RV32IMACFD.h:40
etiss_uint32 S6
Definition RV32IMACFD.h:43
etiss_uint32 MHARTID
Definition RV32IMACFD.h:78
etiss_uint64 FA6
Definition RV32IMACFD.h:106
etiss_uint64 FA4
Definition RV32IMACFD.h:104
etiss_uint32 MINSTRET
Definition RV32IMACFD.h:73
etiss_uint32 MEDELEG
Definition RV32IMACFD.h:80
etiss_uint32 DPC
Definition RV32IMACFD.h:58
etiss_uint32 S9
Definition RV32IMACFD.h:46
etiss_uint64 FT6
Definition RV32IMACFD.h:96
etiss_uint32 T0
Definition RV32IMACFD.h:26
etiss_uint32 RA
Definition RV32IMACFD.h:22
etiss_uint8 RES[8]
Definition RV32IMACFD.h:56
etiss_uint32 GP
Definition RV32IMACFD.h:24
etiss_uint32 MCOUNTEREN
Definition RV32IMACFD.h:83
etiss_uint64 FS1
Definition RV32IMACFD.h:99
etiss_uint32 T2
Definition RV32IMACFD.h:28
etiss_uint32 A0
Definition RV32IMACFD.h:31
etiss_uint32 MIMPID
Definition RV32IMACFD.h:77
etiss_uint32 A6
Definition RV32IMACFD.h:37
etiss_uint32 MIDELEG
Definition RV32IMACFD.h:81
etiss_uint32 MTVAL
Definition RV32IMACFD.h:87
etiss_uint32 INSTRET
Definition RV32IMACFD.h:71
etiss_uint64 FT9
Definition RV32IMACFD.h:119
etiss_uint64 FT0
Definition RV32IMACFD.h:90
etiss_uint64 FS7
Definition RV32IMACFD.h:113
etiss_uint32 FENCE[8]
Definition RV32IMACFD.h:55
etiss_uint64 FA3
Definition RV32IMACFD.h:103
etiss_uint64 FS6
Definition RV32IMACFD.h:112
etiss_uint64 * F[32]
Definition RV32IMACFD.h:122
etiss_uint32 S2
Definition RV32IMACFD.h:39