ETISS 0.8.0
Extendable Translating Instruction Set Simulator (version 0.8.0)
|
writes the value of a field before each instruction More...
#include <InstructionAccurateCallback.h>
Public Member Functions | |
InstructionAccurateCallback () | |
virtual | ~InstructionAccurateCallback () |
virtual void | initCodeBlock (etiss::CodeBlock &block) const |
called before instructions are translated for the code block More... | |
virtual void | finalizeInstrSet (etiss::instr::ModedInstructionSet &) const |
called after all instructions have been added to allow last changes More... | |
void | call () |
Public Member Functions inherited from etiss::TranslationPlugin | |
TranslationPlugin () | |
virtual | ~TranslationPlugin () |
virtual void | initInstrSet (etiss::instr::ModedInstructionSet &) const |
called to add instructions to the instruction set More... | |
virtual void | finalizeCodeBlock (etiss::CodeBlock &) const |
called after all instructions have been translated for the code block More... | |
virtual void * | getPluginHandle () |
called to get the handle that is available in translated code via getPoinerCode(). [default: this] More... | |
Public Member Functions inherited from etiss::Plugin | |
virtual | ~Plugin () |
unsigned | getType () |
InterruptListenerPlugin * | getInterruptListenerPlugin () |
CoroutinePlugin * | getCoroutinePlugin () |
SystemWrapperPlugin * | getSystemWrapperPlugin () |
RegisterDevicePlugin * | getRegisterDevicePlugin () |
TranslationPlugin * | getTranslationPlugin () |
std::string | getPluginName () const |
const std::string & | getLastAssignedCoreName () |
std::string | toString () const |
Public Member Functions inherited from etiss::ToString | |
ToString () | |
virtual | ~ToString () |
Protected Member Functions | |
virtual std::string | _getPluginName () const |
Protected Member Functions inherited from etiss::TranslationPlugin | |
std::string | getPointerCode () const |
returns a C code expression that allows to get or assign a pointer to the variable assigned to this translation plugin. More... | |
Protected Member Functions inherited from etiss::Plugin | |
Plugin (unsigned type=0) | |
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). More... | |
virtual void | cleanup () |
this function is called after cpu execution loop (etiss::CPUCore::execute) finished. More... | |
void | setCorrespondingCPUCoreName (std::string name) |
virtual void | addedToCPUCore (etiss::CPUCore *core) |
called as soon a plugin has been added to its CPUCore. More... | |
virtual void | removedFromCPUCore (etiss::CPUCore *core) |
called as soon a plugin has been removed from its CPUCore. More... | |
Additional Inherited Members | |
Static Public Attributes inherited from etiss::Plugin | |
static const unsigned | INTERRUPTLISTENER = 1 << 0 |
access to translated code More... | |
static const unsigned | COROUTINE = 1 << 1 |
callback after execution of each translated block More... | |
static const unsigned | SYSTEMWRAPPER = 1 << 2 |
can wrap/change ETISS_System structure at execution start More... | |
static const unsigned | REGISTERDEVICE |
gets noticed of changes to special registers (e.g. mmu register etc. [depends on architecture]) More... | |
static const unsigned | TRANSLATION |
access to translated code during translation phase or when instruction tree is built More... | |
Protected Attributes inherited from etiss::Plugin | |
ETISS_CPU * | plugin_cpu_ |
holds a pointer to the cpu structure. will be set before init call and after cleanup call More... | |
ETISS_System * | plugin_system_ |
holds a pointer to the system structure. More... | |
CPUArch * | plugin_arch_ |
holds a pointer to the CPUArch instance. will be set before init call and after cleanup call More... | |
CPUCore * | plugin_core_ |
holds a pointer to the associated CPUCore instance. More... | |
writes the value of a field before each instruction
Definition at line 60 of file InstructionAccurateCallback.h.
etiss::plugin::InstructionAccurateCallback::InstructionAccurateCallback | ( | ) |
Definition at line 62 of file InstructionAccurateCallback.cpp.
|
virtual |
Definition at line 63 of file InstructionAccurateCallback.cpp.
|
protectedvirtual |
Implements etiss::Plugin.
Definition at line 88 of file InstructionAccurateCallback.cpp.
void etiss::plugin::InstructionAccurateCallback::call | ( | ) |
Definition at line 93 of file InstructionAccurateCallback.cpp.
References ETISS_CPU::cpuTime_ps, etiss::CPUCore::getStruct(), etiss::Plugin::plugin_core_, and etiss::Plugin::plugin_cpu_.
Referenced by etiss_plugin_InstructionAccurateCallback().
|
virtual |
called after all instructions have been added to allow last changes
Reimplemented from etiss::TranslationPlugin.
Definition at line 70 of file InstructionAccurateCallback.cpp.
References etiss::instr::Instruction::addCallback(), etiss::CodeSet::append(), etiss::CodePart::code(), etiss::instr::InstructionSet::foreach(), etiss::instr::VariableInstructionSet::foreach(), etiss::instr::ModedInstructionSet::foreach(), etiss::TranslationPlugin::getPointerCode(), etiss::CodePart::getRegisterDependencies(), and etiss::CodePart::INITIALREQUIRED.
|
virtual |
called before instructions are translated for the code block
Reimplemented from etiss::TranslationPlugin.
Definition at line 65 of file InstructionAccurateCallback.cpp.
References etiss::CodeBlock::fileglobalCode().