20 : plugin_cpu_(nullptr)
21 , plugin_system_(nullptr)
22 , plugin_arch_(nullptr)
23 , plugin_core_(nullptr)
31 , lastAssignedCoreName_(
"")
plugins for extensions to code translation and instruction execution
the interface to translate instructions of and processor architecture
virtual ~CoroutinePlugin()
virtual void executionEnd(int32_t code)
called when the simulation ends but before any deinitialization is done
InterruptListenerPlugin()
virtual ~InterruptListenerPlugin()
static const unsigned REGISTERDEVICE
gets noticed of changes to special registers (e.g. mmu register etc. [depends on architecture])
InterruptListenerPlugin * tplugin_
static const unsigned COROUTINE
callback after execution of each translated block
TranslationPlugin * trplugin_
static const unsigned TRANSLATION
access to translated code during translation phase or when instruction tree is built
virtual void cleanup()
this function is called after cpu execution loop (etiss::CPUCore::execute) finished.
CoroutinePlugin * cplugin_
SystemWrapperPlugin * splugin_
static const unsigned INTERRUPTLISTENER
access to translated code
virtual void init(ETISS_CPU *cpu, ETISS_System *system, CPUArch *arch)
this function is called before the plugin is used in the cpu execution loop (etiss::CPUCore::execute)...
static const unsigned SYSTEMWRAPPER
can wrap/change ETISS_System structure at execution start
RegisterDevicePlugin * rplugin_
virtual ~RegisterDevicePlugin()
virtual ~SystemWrapperPlugin()
virtual void initCodeBlock(etiss::CodeBlock &) const
called before instructions are translated for the code block
virtual void finalizeInstrSet(etiss::instr::ModedInstructionSet &) const
called after all instructions have been added to allow last changes
virtual void finalizeCodeBlock(etiss::CodeBlock &) const
called after all instructions have been translated for the code block
virtual void initInstrSet(etiss::instr::ModedInstructionSet &) const
called to add instructions to the instruction set
std::string getPointerCode() const
returns a C code expression that allows to get or assign a pointer to the variable assigned to this t...
virtual void * getPluginHandle()
called to get the handle that is available in translated code via getPoinerCode()....
virtual ~TranslationPlugin()
holds etiss::instr::VariableInstructionSet instances for different modes.
basic cpu state structure needed for execution of any cpu architecture.
memory access and time synchronization functions.