クラス Onikiri::EmulationOp

#include <EmulationOp.h>

Onikiri::EmulationOpに対する継承グラフ

Inheritance graph
[凡例]
Onikiri::EmulationOpのコラボレーション図

Collaboration graph
[凡例]
すべてのメンバ一覧

Public メソッド

 EmulationOp (const EmulationOp &op)
 EmulationOp (MemIF *mainMem=NULL)
virtual const u64 GetDst (const int index) const
const OpInfoGetOpInfo () const
virtual PC GetPC () const
virtual const u64 GetSrc (const int index) const
virtual bool GetTaken () const
virtual PC GetTakenPC () const
virtual void Read (MemAccess *access)
virtual void SetDst (const int index, const u64 value)
void SetMem (MemIF *mem)
void SetOpInfo (OpInfo *opInfo)
void SetPC (const PC &pc)
void SetSrc (const int index, const u64 value)
virtual void SetTaken (const bool taken)
virtual void SetTakenPC (const PC takenPC)
virtual void Write (MemAccess *access)
virtual ~EmulationOp ()

説明

EmulationOp.h42 行で定義されています。


コンストラクタとデストラクタ

EmulationOp::EmulationOp ( MemIF mainMem = NULL  ) 

EmulationOp.cpp39 行で定義されています。

00039                                          :
00040     m_opInfo ( NULL ),
00041     m_taken  ( false ),
00042     m_mem( mainMem )
00043 {
00044 }

EmulationOp::EmulationOp ( const EmulationOp op  ) 

EmulationOp.cpp46 行で定義されています。

00046                                                 :
00047     m_pc     ( op.m_pc ),
00048     m_opInfo ( op.m_opInfo ),
00049     m_takenPC( op.m_takenPC ),
00050     m_taken  ( op.m_taken ),
00051     m_mem( op.m_mem ),
00052     m_dstReg ( op.m_dstReg ),
00053     m_srcReg ( op.m_srcReg )
00054 {
00055 }

EmulationOp::~EmulationOp (  )  [virtual]

EmulationOp.cpp57 行で定義されています。

00058 {
00059 }


関数

const u64 EmulationOp::GetDst ( const int  index  )  const [virtual]

Onikiri::OpStateIFを実装しています。

EmulationOp.cpp95 行で定義されています。

00096 {
00097     return m_dstReg[index];
00098 }

const OpInfo * EmulationOp::GetOpInfo (  )  const

EmulationOp.cpp69 行で定義されています。

参照元 Onikiri::DebugStub::OnExec().

00070 {
00071     return m_opInfo;
00072 }

Here is the caller graph for this function:

PC EmulationOp::GetPC (  )  const [virtual]

Onikiri::OpStateIFを実装しています。

EmulationOp.cpp80 行で定義されています。

参照元 Onikiri::ForwardEmulator::UpdateFixedPath().

00081 {
00082     return m_pc;
00083 }

Here is the caller graph for this function:

const u64 EmulationOp::GetSrc ( const int  index  )  const [virtual]

Onikiri::OpStateIFを実装しています。

EmulationOp.cpp85 行で定義されています。

00086 {
00087     return m_srcReg[index];
00088 }

bool EmulationOp::GetTaken (  )  const [virtual]

Onikiri::OpStateIFを実装しています。

EmulationOp.cpp121 行で定義されています。

00122 {
00123     return m_taken;
00124 }

PC EmulationOp::GetTakenPC (  )  const [virtual]

Onikiri::OpStateIFを実装しています。

EmulationOp.cpp111 行で定義されています。

00112 {
00113     return m_takenPC;
00114 }

void EmulationOp::Read ( MemAccess access  )  [virtual]

Onikiri::MemIFを実装しています。

Onikiri::EmulationDebugOpで再定義されています。

EmulationOp.cpp127 行で定義されています。

参照先 Onikiri::MemAccess::addressASSERTOnikiri::MemAccess::MAR_SUCCESSOnikiri::MemIF::Read()Onikiri::MemAccess::resultRUNTIME_WARNINGOnikiri::LogicalData::tidOnikiri::MemAccess::ToString().

参照元 Onikiri::EmulationDebugOp::Read().

00128 {
00129     ASSERT( m_mem != NULL );
00130     
00131     // Write correct 'tid', because an emulator does not initialized it.
00132     access->address.tid = m_pc.tid;
00133     
00134     m_mem->Read( access );
00135     if( access->result != MemAccess::MAR_SUCCESS ){
00136         RUNTIME_WARNING( "An access violation occurs.\n%s", access->ToString().c_str() );
00137     }
00138 }

関数の呼び出しグラフ:

Here is the caller graph for this function:

void EmulationOp::SetDst ( const int  index,
const u64  value 
) [virtual]

Onikiri::OpStateIFを実装しています。

EmulationOp.cpp101 行で定義されています。

00102 {
00103     m_dstReg[index] = value;
00104 }

void EmulationOp::SetMem ( MemIF mem  ) 

EmulationOp.cpp74 行で定義されています。

参照元 Onikiri::ForwardEmulator::OnFetch().

00075 {
00076     m_mem = mem;
00077 }

Here is the caller graph for this function:

void EmulationOp::SetOpInfo ( OpInfo opInfo  ) 

EmulationOp.cpp65 行で定義されています。

参照元 Onikiri::ForwardEmulator::OnFetch().

00065                                             {
00066     m_opInfo = opInfo;
00067 }

Here is the caller graph for this function:

void EmulationOp::SetPC ( const PC pc  ) 

EmulationOp.cpp61 行で定義されています。

参照元 Onikiri::ForwardEmulator::OnFetch().

00061                                       {
00062     m_pc = pc;
00063 }

Here is the caller graph for this function:

void EmulationOp::SetSrc ( const int  index,
const u64  value 
)

EmulationOp.cpp90 行で定義されています。

参照元 Onikiri::ForwardEmulator::OnFetch().

00091 {
00092     m_srcReg[index] = value;
00093 }

Here is the caller graph for this function:

void EmulationOp::SetTaken ( const bool  taken  )  [virtual]

Onikiri::OpStateIFを実装しています。

EmulationOp.cpp116 行で定義されています。

参照元 Onikiri::ForwardEmulator::OnFetch().

00117 {
00118     m_taken = taken;
00119 }

Here is the caller graph for this function:

void EmulationOp::SetTakenPC ( const PC  takenPC  )  [virtual]

Onikiri::OpStateIFを実装しています。

EmulationOp.cpp106 行で定義されています。

参照元 Onikiri::ForwardEmulator::OnFetch().

00107 {
00108     m_takenPC = takenPC;
00109 }

Here is the caller graph for this function:

void EmulationOp::Write ( MemAccess access  )  [virtual]

Onikiri::MemIFを実装しています。

Onikiri::EmulationDebugOpで再定義されています。

EmulationOp.cpp140 行で定義されています。

参照先 Onikiri::MemAccess::addressASSERTOnikiri::MemAccess::MAR_SUCCESSOnikiri::MemAccess::resultRUNTIME_WARNINGOnikiri::LogicalData::tidOnikiri::MemAccess::ToString()Onikiri::MemIF::Write().

参照元 Onikiri::EmulationDebugOp::Write().

00141 {
00142     ASSERT( m_mem != NULL );
00143 
00144     // Write correct 'tid', because an emulator does not initialized it.
00145     access->address.tid = m_pc.tid;
00146 
00147     m_mem->Write( access );
00148     if( access->result != MemAccess::MAR_SUCCESS ){
00149         RUNTIME_WARNING( "An access violation occurs.\n%s", access->ToString().c_str() );
00150     }
00151 }

関数の呼び出しグラフ:

Here is the caller graph for this function:


このクラスの説明は次のファイルから生成されました:
Onikiri2に対してTue Jun 18 14:57:15 2013に生成されました。  doxygen 1.4.7