#include <compiler.hpp>
|
| NullOp (types::Pid pid) |
|
bool | EnableEmit (EvtState *evts) override |
|
void | InsertPo (typename Op< Backend, EvtState >::ThreadConstIt before, EvtState *evts) override |
|
std::size_t | Emit (types::InstPtr start, Backend *backend, EvtState *evts, void *code, std::size_t len) override |
|
bool | UpdateObs (types::InstPtr ip, int part, types::Addr addr, const types::WriteID *from_id, std::size_t size, EvtState *evts) override |
|
const mc::Event * | LastEvent (const mc::Event *next_event, EvtState *evts) const override |
|
const mc::Event * | FirstEvent (const mc::Event *prev_event, EvtState *evts) const override |
|
| Op (types::Pid pid) |
|
virtual | ~Op () |
|
virtual void | AdvanceThread (ThreadItStack *it_stack) const |
|
virtual Ptr | Clone () const=0 |
|
virtual void | Reset ()=0 |
|
virtual void | InsertPo (ThreadConstIt before, EvtState *evts)=0 |
|
virtual void | RegisterCallback (CallbackStack *callback_stack) |
|
types::Pid | pid () const |
|
void | set_pid (types::Pid pid) |
|
§ NullOp()
template<class Backend , class EvtState >
§ Emit()
template<class Backend , class EvtState >
Emit machine code.
- Parameters
-
| start | Instruction pointer to first instruction when executing. |
[in,out] | backend | Architecture backend. |
[in,out] | evts | Pointer to EvtState instance of calling Compiler. |
[out] | code | Pointer to memory to be copied into. |
| len | Maximum lenth of code. |
- Returns
- Size of emitted code.
Implements mc2lib::codegen::Op< Backend, EvtState >.
§ EnableEmit()
template<class Backend , class EvtState >
§ FirstEvent()
template<class Backend , class EvtState >
Accessor for first event generated.
- Parameters
-
| prev_event | Event before first in program order; nullptr if none exists. |
[in,out] | evts | Pointer to EvtState instance maintained by Compiler. |
- Returns
- First event in program-order; nullptr if none exists.
Implements mc2lib::codegen::Op< Backend, EvtState >.
§ InsertPo()
template<class Backend , class EvtState >
§ LastEvent()
template<class Backend , class EvtState >
Accessor for last event generated. Also used to insert additional ordering based on passed next_event (e.g. fences).
- Parameters
-
| next_event | Event after last in program order; nullptr if none exists. |
[in,out] | evts | Pointer to EvtState instance maintained by Compiler. |
- Returns
- Last event in program-order; nullptr if none exists.
Implements mc2lib::codegen::Op< Backend, EvtState >.
§ UpdateObs()
template<class Backend , class EvtState >
Updates dynamic observation for instruction's memory operation.
- Parameters
-
| ip | Instruction pointer of instruction for which a value was observed. |
| part | Which part of an instruction; e.g., if an instruction generates multiple memory events, part can be used to denote which. |
| addr | Address for observed operation. |
| from_id | Pointer to observed memory (WriteIDs). |
| size | Total size of observed memory operations in from_id; implementation should assert expected size. |
[in,out] | evts | Pointer to EvtState instance maintained by Compiler. |
- Returns
- Success or not.
Implements mc2lib::codegen::Op< Backend, EvtState >.
The documentation for this class was generated from the following file: