mc2lib
Public Member Functions | Protected Attributes | List of all members
mc2lib::codegen::armv7::DMB_ST Class Reference

#include <armv7.hpp>

Inheritance diagram for mc2lib::codegen::armv7::DMB_ST:
mc2lib::codegen::Op< Backend, EvtStateT >

Public Member Functions

 DMB_ST (types::Pid pid=-1)
 
Operation::Ptr Clone () const override
 
void Reset () override
 
bool EnableEmit (EvtStateCats *evts) override
 
void InsertPo (Operation::ThreadConstIt before, EvtStateCats *evts) override
 
void RegisterCallback (Operation::CallbackStack *callback_stack) override
 
std::size_t Emit (types::InstPtr start, Backend *backend, EvtStateCats *evts, void *code, std::size_t len) override
 
const mc::EventLastEvent (const mc::Event *next_event, EvtStateCats *evts) const override
 
const mc::EventFirstEvent (const mc::Event *prev_event, EvtStateCats *evts) const override
 
bool UpdateObs (types::InstPtr ip, int part, types::Addr addr, const types::WriteID *from_id, std::size_t size, EvtStateCats *evts) override
 
- Public Member Functions inherited from mc2lib::codegen::Op< Backend, EvtStateT >
 Op (types::Pid pid)
 
virtual ~Op ()
 
virtual void AdvanceThread (ThreadItStack *it_stack) const
 
virtual bool EnableEmit (EvtState *evts)=0
 
virtual void InsertPo (ThreadConstIt before, EvtState *evts)=0
 
virtual std::size_t Emit (types::InstPtr start, Backend *backend, EvtState *evts, void *code, std::size_t len)=0
 
virtual const mc::EventLastEvent (const mc::Event *next_event, EvtState *evts) const =0
 
virtual const mc::EventFirstEvent (const mc::Event *prev_event, EvtState *evts) const =0
 
virtual bool UpdateObs (types::InstPtr ip, int part, types::Addr addr, const types::WriteID *from_id, std::size_t size, EvtState *evts)=0
 
types::Pid pid () const
 
void set_pid (types::Pid pid)
 

Protected Attributes

const Operationbefore_
 
const Operationfirst_write_before_
 

Additional Inherited Members

- Public Types inherited from mc2lib::codegen::Op< Backend, EvtStateT >
typedef EvtStateT EvtState
 
typedef std::shared_ptr< OpPtr
 
typedef std::vector< PtrThread
 
typedef Thread::const_iterator ThreadIt
 
typedef std::unordered_map< types::Pid, ThreadThreads
 
typedef std::vector< std::pair< ThreadIt, ThreadIt > > ThreadItStack
 
typedef std::vector< const Op * > ThreadConst
 
typedef ThreadConst::const_iterator ThreadConstIt
 
typedef std::function< std::size_t(Op *, types::InstPtr, Backend *, EvtState *, void *, std::size_t)> Callback
 
typedef std::vector< CallbackCallbackStack
 

Constructor & Destructor Documentation

§ DMB_ST()

mc2lib::codegen::armv7::DMB_ST::DMB_ST ( types::Pid  pid = -1)
inlineexplicit

Member Function Documentation

§ Clone()

Operation::Ptr mc2lib::codegen::armv7::DMB_ST::Clone ( ) const
inlineoverridevirtual

Clone the instance.

Implements mc2lib::codegen::Op< Backend, EvtStateT >.

§ Emit()

std::size_t mc2lib::codegen::armv7::DMB_ST::Emit ( types::InstPtr  start,
Backend backend,
EvtStateCats evts,
void *  code,
std::size_t  len 
)
inlineoverride

§ EnableEmit()

bool mc2lib::codegen::armv7::DMB_ST::EnableEmit ( EvtStateCats evts)
inlineoverride

§ FirstEvent()

const mc::Event* mc2lib::codegen::armv7::DMB_ST::FirstEvent ( const mc::Event prev_event,
EvtStateCats evts 
) const
inlineoverride

§ InsertPo()

void mc2lib::codegen::armv7::DMB_ST::InsertPo ( Operation::ThreadConstIt  before,
EvtStateCats evts 
)
inlineoverride

§ LastEvent()

const mc::Event* mc2lib::codegen::armv7::DMB_ST::LastEvent ( const mc::Event next_event,
EvtStateCats evts 
) const
inlineoverride

§ RegisterCallback()

void mc2lib::codegen::armv7::DMB_ST::RegisterCallback ( Operation::CallbackStack callback_stack)
inlineoverridevirtual

Optionally register callback.

Parameters
[out]callback_stackPointer to callback_stack with which to register the callback.

Reimplemented from mc2lib::codegen::Op< Backend, EvtStateT >.

§ Reset()

void mc2lib::codegen::armv7::DMB_ST::Reset ( )
inlineoverridevirtual

Provide Reset, as emit functions may modify the state of an Op to store information to map instructions to events.

Implements mc2lib::codegen::Op< Backend, EvtStateT >.

§ UpdateObs()

bool mc2lib::codegen::armv7::DMB_ST::UpdateObs ( types::InstPtr  ip,
int  part,
types::Addr  addr,
const types::WriteID from_id,
std::size_t  size,
EvtStateCats evts 
)
inlineoverride

Member Data Documentation

§ before_

const Operation* mc2lib::codegen::armv7::DMB_ST::before_
protected

§ first_write_before_

const Operation* mc2lib::codegen::armv7::DMB_ST::first_write_before_
protected

The documentation for this class was generated from the following file: