40#define RV32IMACFD_DEBUG_CALL 0
46 headers_.insert(
"Arch/RV32IMACFD/RV32IMACFD.h");
75 for (
int i = 0; i < 32; ++i)
77 rv32imacfdcpu->
ins_X[i] = 0;
78 rv32imacfdcpu->
X[i] = &rv32imacfdcpu->
ins_X[i];
80 for (
int i = 0; i < 4096; ++i)
83 rv32imacfdcpu->
CSR[i] = &rv32imacfdcpu->
ins_CSR[i];
86 rv32imacfdcpu->
ZERO = 0;
87 rv32imacfdcpu->
RA = 0;
88 rv32imacfdcpu->
SP = 0;
89 rv32imacfdcpu->
GP = 0;
90 rv32imacfdcpu->
TP = 0;
91 rv32imacfdcpu->
T0 = 0;
92 rv32imacfdcpu->
T1 = 0;
93 rv32imacfdcpu->
T2 = 0;
94 rv32imacfdcpu->
S0 = 0;
95 rv32imacfdcpu->
S1 = 0;
96 rv32imacfdcpu->
A0 = 0;
97 rv32imacfdcpu->
A1 = 0;
98 rv32imacfdcpu->
A2 = 0;
99 rv32imacfdcpu->
A3 = 0;
100 rv32imacfdcpu->
A4 = 0;
101 rv32imacfdcpu->
A5 = 0;
102 rv32imacfdcpu->
A6 = 0;
103 rv32imacfdcpu->
A7 = 0;
104 rv32imacfdcpu->
S2 = 0;
105 rv32imacfdcpu->
S3 = 0;
106 rv32imacfdcpu->
S4 = 0;
107 rv32imacfdcpu->
S5 = 0;
108 rv32imacfdcpu->
S6 = 0;
109 rv32imacfdcpu->
S7 = 0;
110 rv32imacfdcpu->
S8 = 0;
111 rv32imacfdcpu->
S9 = 0;
112 rv32imacfdcpu->
S10 = 0;
113 rv32imacfdcpu->
S11 = 0;
114 rv32imacfdcpu->
T3 = 0;
115 rv32imacfdcpu->
T4 = 0;
116 rv32imacfdcpu->
T5 = 0;
117 rv32imacfdcpu->
T6 = 0;
118 for (
int i = 0; i < 8; ++i)
120 rv32imacfdcpu->
FENCE[i] = 0;
122 for (
int i = 0; i < 8; ++i)
124 rv32imacfdcpu->
RES[i] = 0;
126 rv32imacfdcpu->
PRIV = 0;
127 rv32imacfdcpu->
DPC = 0;
128 rv32imacfdcpu->
FCSR = 0;
130 rv32imacfdcpu->
MIE = 0;
131 rv32imacfdcpu->
MIP = 0;
132 for (
int i = 0; i < 32; ++i)
134 rv32imacfdcpu->
F[i] = 0;
138 rv32imacfdcpu->
X[0] = &rv32imacfdcpu->
ZERO;
139 rv32imacfdcpu->
X[1] = &rv32imacfdcpu->
RA;
140 rv32imacfdcpu->
X[2] = &rv32imacfdcpu->
SP;
141 rv32imacfdcpu->
X[3] = &rv32imacfdcpu->
GP;
142 rv32imacfdcpu->
X[4] = &rv32imacfdcpu->
TP;
143 rv32imacfdcpu->
X[5] = &rv32imacfdcpu->
T0;
144 rv32imacfdcpu->
X[6] = &rv32imacfdcpu->
T1;
145 rv32imacfdcpu->
X[7] = &rv32imacfdcpu->
T2;
146 rv32imacfdcpu->
X[8] = &rv32imacfdcpu->
S0;
147 rv32imacfdcpu->
X[9] = &rv32imacfdcpu->
S1;
148 rv32imacfdcpu->
X[10] = &rv32imacfdcpu->
A0;
149 rv32imacfdcpu->
X[11] = &rv32imacfdcpu->
A1;
150 rv32imacfdcpu->
X[12] = &rv32imacfdcpu->
A2;
151 rv32imacfdcpu->
X[13] = &rv32imacfdcpu->
A3;
152 rv32imacfdcpu->
X[14] = &rv32imacfdcpu->
A4;
153 rv32imacfdcpu->
X[15] = &rv32imacfdcpu->
A5;
154 rv32imacfdcpu->
X[16] = &rv32imacfdcpu->
A6;
155 rv32imacfdcpu->
X[17] = &rv32imacfdcpu->
A7;
156 rv32imacfdcpu->
X[18] = &rv32imacfdcpu->
S2;
157 rv32imacfdcpu->
X[19] = &rv32imacfdcpu->
S3;
158 rv32imacfdcpu->
X[20] = &rv32imacfdcpu->
S4;
159 rv32imacfdcpu->
X[21] = &rv32imacfdcpu->
S5;
160 rv32imacfdcpu->
X[22] = &rv32imacfdcpu->
S6;
161 rv32imacfdcpu->
X[23] = &rv32imacfdcpu->
S7;
162 rv32imacfdcpu->
X[24] = &rv32imacfdcpu->
S8;
163 rv32imacfdcpu->
X[25] = &rv32imacfdcpu->
S9;
164 rv32imacfdcpu->
X[26] = &rv32imacfdcpu->
S10;
165 rv32imacfdcpu->
X[27] = &rv32imacfdcpu->
S11;
166 rv32imacfdcpu->
X[28] = &rv32imacfdcpu->
T3;
167 rv32imacfdcpu->
X[29] = &rv32imacfdcpu->
T4;
168 rv32imacfdcpu->
X[30] = &rv32imacfdcpu->
T5;
169 rv32imacfdcpu->
X[31] = &rv32imacfdcpu->
T6;
170 rv32imacfdcpu->
CSR[3] = &rv32imacfdcpu->
FCSR;
171 rv32imacfdcpu->
CSR[768] = &rv32imacfdcpu->
MSTATUS;
172 rv32imacfdcpu->
CSR[772] = &rv32imacfdcpu->
MIE;
173 rv32imacfdcpu->
CSR[836] = &rv32imacfdcpu->
MIP;
175 rv32imacfdcpu->
PRIV = 3ULL;
176 rv32imacfdcpu->
DPC = 0LL;
177 *rv32imacfdcpu->
CSR[0] = 11ULL;
178 *rv32imacfdcpu->
CSR[256] = 11ULL;
179 *rv32imacfdcpu->
CSR[768] = 11ULL;
180 *rv32imacfdcpu->
CSR[769] = 1075056941ULL;
181 *rv32imacfdcpu->
CSR[3088] = 3ULL;
182 *rv32imacfdcpu->
CSR[772] = 4294966203ULL;
183 *rv32imacfdcpu->
CSR[260] = 4294964019ULL;
184 *rv32imacfdcpu->
CSR[4] = 4294963473ULL;
219 cb.
fileglobalCode().insert(
"#include \"Arch/RV32IMACFD/RV32IMACFD.h\"\n");
220 cb.
fileglobalCode().insert(
"#include \"Arch/RV32IMACFD/RV32IMACFDFuncs.h\"\n");
const char *const reg_name[]
Generated on Mon, 10 Nov 2025 11:27:12 +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
std::set< std::string > & functionglobalCode()
std::set< std::string > & fileglobalCode()
maps to VariableInstructionSet
maps to ModedInstructionSet
provides to architecture dependent registers as defined by gdb
basic cpu state structure needed for execution of any cpu architecture.
etiss_uint64 instructionPointer
pointer to next instruction.
etiss_uint64 cpuCycleTime_ps
frequency of the cpu. use to allign e.g. memory delays
etiss_uint64 cpuTime_ps
simulation time of cpu
etiss_uint32 mode
instruction set mode of the processor
Generated on Mon, 10 Nov 2025 11:27:12 +0000.
etiss_uint32 ins_CSR[4096]