7 #ifndef ETISS_RV64IMACFDArch_RV64IMACFDArch_H_
8 #define ETISS_RV64IMACFDArch_RV64IMACFDArch_H_
19 extern const char *
const reg_name[];
60 virtual const std::set<std::string> &
getHeaders()
const;
contains neccesary interfaces for instruction translation.
contains container classes to store instruction definitions + translation functions and build a trans...
defines a general interface to set interrupt bits
const char *const reg_name[]
Generated on Thu, 24 Oct 2024 10:16:12 +0200.
etiss::instr::InstructionCollection RV64IMACFDISA
etiss::instr::InstructionGroup ISA16_RV64IMACFD
etiss::instr::InstructionGroup ISA32_RV64IMACFD
etiss::instr::InstructionClass ISA16_RV64IMACFDClass
etiss::instr::InstructionClass ISA32_RV64IMACFDClass
virtual void compensateEndianess(ETISS_CPU *cpu, etiss::instr::BitArray &ba) const
Target architecture may have inconsistent endianess.
virtual etiss::int32 handleException(etiss::int32 code, ETISS_CPU *cpu)
This function will be called automatically in order to handling architecure dependent exceptions such...
virtual void initInstrSet(etiss::instr::ModedInstructionSet &) const
This function is called during CPUArch initialization.
std::set< std::string > listenerSupportedRegisters_
virtual etiss::InterruptVector * createInterruptVector(ETISS_CPU *cpu)
If interrupt handling is expected, vector table could be provided to support interrupt triggering.
virtual void deleteCPU(ETISS_CPU *)
delete cpu structure
virtual void deleteInterruptEnable(etiss::InterruptEnable *en, ETISS_CPU *cpu)
virtual unsigned getInstructionSizeInBytes()
virtual unsigned getMaximumInstructionSizeInBytes()
RV64IMACFDGDBCore gdbcore_
RV64IMACFDArch(unsigned int)
virtual void deleteInterruptVector(etiss::InterruptVector *vec, ETISS_CPU *cpu)
delete an allocated interrupt vector object
virtual std::shared_ptr< etiss::VirtualStruct > getVirtualStruct(ETISS_CPU *cpu)
get the VirtualStruct of the core to mitigate register access
virtual const std::set< std::string > & getHeaders() const
required headers (RV64IMACFD.h)
virtual ETISS_CPU * newCPU()
allocate new cpu structure
virtual void resetCPU(ETISS_CPU *cpu, etiss::uint64 *startpointer)
reset cpu (structure)
virtual etiss::InterruptEnable * createInterruptEnable(ETISS_CPU *cpu)
virtual void initCodeBlock(etiss::CodeBlock &cb) const
called before instructions are translated for the code block
virtual etiss::plugin::gdb::GDBCore & getGDBCore()
get the GDBcore for RV64IMACFD architecture
std::set< std::string > headers_
virtual const std::set< std::string > & getListenerSupportedRegisters()
Generated on Thu, 24 Oct 2024 10:16:12 +0200.
the interface to translate instructions of and processor architecture
interface to set interrupt bits
maps to VariableInstructionSet
maps to ModedInstructionSet
holds etiss::instr::VariableInstructionSet instances for different modes.
provides to architecture dependent registers as defined by gdb
basic cpu state structure needed for execution of any cpu architecture.