|
ETISS 0.11.2
ExtendableTranslatingInstructionSetSimulator(version0.11.2)
|
structure to store additional information with a function pointer to the translated code More...
#include <Translation.h>

Public Member Functions | |
| BlockLink (etiss::uint64 start, etiss::uint64 end, ExecBlockCall execBlock, std::shared_ptr< void > lib) | |
| ~BlockLink () | |
Static Public Member Functions | |
| static void | incrRef (BlockLink *link) |
| increase reference count to a BlockLink | |
| static void | decrRef (BlockLink *&link) |
| decrease reference count to a BlockLink and delete the instance if no other references exist | |
| static void | updateRef (BlockLink *&link, BlockLink *newValue) |
| change the value of a BlockLink pointer. | |
Public Attributes | |
| const etiss::uint64 | start |
| start instruction index | |
| const etiss::uint64 | end |
| end instruction index (excluded) | |
| BlockLink * | next |
| next block; ONLY MODIFY WITH updateRef | |
| BlockLink * | branch |
| last branch block; ONLY MODIFY WITH updateRef | |
| unsigned | refcount |
| number of references to this instance; DO NOT MODIFY | |
| const ExecBlockCall | execBlock |
| function pointer | |
| bool | valid |
| true if the associated function implements current code | |
| const std::shared_ptr< void > | jitlib |
| library of the associated function | |
structure to store additional information with a function pointer to the translated code
Definition at line 23 of file Translation.h.
| etiss::BlockLink::BlockLink | ( | etiss::uint64 | start, |
| etiss::uint64 | end, | ||
| ExecBlockCall | execBlock, | ||
| std::shared_ptr< void > | lib | ||
| ) |
| etiss::BlockLink::~BlockLink | ( | ) |
Definition at line 26 of file Translation.cpp.
References branch, decrRef(), and next.

|
inlinestatic |
decrease reference count to a BlockLink and delete the instance if no other references exist
| link | MAY NOT BE 0 |
Definition at line 45 of file Translation.h.
References refcount, and unlikely.
Referenced by etiss::Translation::getBlock(), etiss::Translation::unloadBlocks(), and ~BlockLink().

|
inlinestatic |
increase reference count to a BlockLink
| link | MAY NOT BE 0 |
Definition at line 40 of file Translation.h.
References refcount.
Referenced by etiss::Translation::getBlock(), and updateRef().

change the value of a BlockLink pointer.
handles reference count updates and cleanup of unreferenced BlockLinks
| link | may be 0 |
| newValue | may be 0 |
Definition at line 60 of file Translation.h.
References incrRef(), likely, refcount, and unlikely.
Referenced by etiss::Translation::getBlock(), etiss::Translation::getBlockFast(), and etiss::Translation::unloadBlocks().


| BlockLink* etiss::BlockLink::branch |
last branch block; ONLY MODIFY WITH updateRef
Definition at line 29 of file Translation.h.
Referenced by BlockLink(), etiss::Translation::getBlock(), etiss::Translation::getBlockFast(), etiss::Translation::unloadBlocks(), and ~BlockLink().
| const etiss::uint64 etiss::BlockLink::end |
end instruction index (excluded)
Definition at line 27 of file Translation.h.
Referenced by etiss::CPUCore::execute(), etiss::Translation::getBlock(), etiss::Translation::getBlockFast(), and etiss::Translation::unloadBlocks().
| const ExecBlockCall etiss::BlockLink::execBlock |
function pointer
Definition at line 31 of file Translation.h.
Referenced by etiss::CPUCore::execute().
| const std::shared_ptr<void> etiss::BlockLink::jitlib |
library of the associated function
Definition at line 33 of file Translation.h.
| BlockLink* etiss::BlockLink::next |
next block; ONLY MODIFY WITH updateRef
Definition at line 28 of file Translation.h.
Referenced by BlockLink(), etiss::Translation::getBlock(), etiss::Translation::getBlockFast(), etiss::Translation::unloadBlocks(), and ~BlockLink().
| unsigned etiss::BlockLink::refcount |
number of references to this instance; DO NOT MODIFY
Definition at line 30 of file Translation.h.
Referenced by BlockLink(), decrRef(), incrRef(), and updateRef().
| const etiss::uint64 etiss::BlockLink::start |
start instruction index
Definition at line 26 of file Translation.h.
Referenced by etiss::Translation::getBlock(), etiss::Translation::getBlockFast(), and etiss::Translation::unloadBlocks().
| bool etiss::BlockLink::valid |
true if the associated function implements current code
Definition at line 32 of file Translation.h.
Referenced by BlockLink(), etiss_CPUCore_handleException(), etiss::Translation::getBlock(), etiss::Translation::getBlockFast(), and etiss::Translation::unloadBlocks().