#include <OpEmulationState.h>
Onikiri::EmulatorUtility::OpEmulationStateのコラボレーション図
Public メソッド | |
template<typename TOpInfo> | |
void | ApplyEmulationState () |
template<typename TOpInfo> | |
void | ApplyEmulationStateToRegArray (u64 *regArray) |
u64 | GetDst (int index) |
OpInfo * | GetOpInfo () |
OpStateIF * | GetOpState () |
Onikiri::u64 | GetPC () const |
int | GetPID () const |
EmulatorUtility::ProcessState * | GetProcessState () |
u64 | GetSrc (int index) |
bool | GetTaken () const |
Onikiri::u64 | GetTakenPC () const |
int | GetTID () const |
template<typename TOpInfo> | |
OpEmulationState (Onikiri::OpStateIF *opState, TOpInfo *opInfo, EmulatorUtility::ProcessState *processState, PC pc, u64 takenAddr, u64 *regArray) | |
template<typename TOpInfo> | |
OpEmulationState (Onikiri::OpStateIF *opState, TOpInfo *opInfo, EmulatorUtility::ProcessState *processState) | |
void | SetDst (int index, u64 value) |
void | SetTaken (bool t) |
void | SetTakenPC (Onikiri::u64 pc) |
構成 | |
struct | RegFromOpState |
struct | RegFromRegArray |
OpEmulationState.h の 45 行で定義されています。
Onikiri::EmulatorUtility::OpEmulationState::OpEmulationState | ( | Onikiri::OpStateIF * | opState, | |
TOpInfo * | opInfo, | |||
EmulatorUtility::ProcessState * | processState | |||
) | [inline] |
OpEmulationState.h の 114 行で定義されています。
参照先 Onikiri::Addr::address・Onikiri::OpStateIF::GetPC()・Onikiri::OpStateIF::GetTakenPC()・Onikiri::LogicalData::pid・Onikiri::LogicalData::tid.
00115 : m_opState(opState), m_opInfo(opInfo), m_processState(processState) 00116 { 00117 Addr addr = m_opState->GetTakenPC(); 00118 m_takenPC = addr.address; 00119 m_taken = false; 00120 m_pid = addr.pid; 00121 m_tid = addr.tid; 00122 00123 m_PC = m_opState->GetPC().address; 00124 00125 InitOperands<TOpInfo, RegFromOpState>( RegFromOpState(opState) ); 00126 }
関数の呼び出しグラフ:
Onikiri::EmulatorUtility::OpEmulationState::OpEmulationState | ( | Onikiri::OpStateIF * | opState, | |
TOpInfo * | opInfo, | |||
EmulatorUtility::ProcessState * | processState, | |||
PC | pc, | |||
u64 | takenAddr, | |||
u64 * | regArray | |||
) | [inline] |
OpEmulationState.h の 131 行で定義されています。
参照先 Onikiri::Addr::address・Onikiri::LogicalData::pid・Onikiri::LogicalData::tid.
00132 : m_opState(opState), m_opInfo(opInfo), m_processState(processState) 00133 { 00134 m_takenPC = pc.address+4; 00135 m_taken = false; 00136 m_pid = pc.pid; 00137 m_tid = pc.tid; 00138 00139 m_PC = pc.address; 00140 00141 InitOperands<TOpInfo, RegFromRegArray<TOpInfo> >( RegFromRegArray<TOpInfo>(opInfo, regArray) ); 00142 }
void Onikiri::EmulatorUtility::OpEmulationState::ApplyEmulationState | ( | ) | [inline] |
OpEmulationState.h の 146 行で定義されています。
参照先 Onikiri::OpStateIF::SetDst()・Onikiri::OpStateIF::SetTaken()・Onikiri::OpStateIF::SetTakenPC().
参照元 Onikiri::EmulatorUtility::CommonEmulator< Traits >::Execute().
00147 { 00148 TOpInfo* opInfo = static_cast<TOpInfo*>(m_opInfo); 00149 m_opState->SetTaken(m_taken); 00150 m_opState->SetTakenPC( Addr(m_pid, m_tid, m_takenPC) ); 00151 00152 // opInfo] dst 00153 int dstRegNum = opInfo->GetDstRegNum(); 00154 for (int i = 0; i < dstRegNum; i ++) { 00155 m_opState->SetDst( i, m_dst[ opInfo->GetDstRegOpMap(i) ]); 00156 } 00157 }
関数の呼び出しグラフ:
Here is the caller graph for this function:
void Onikiri::EmulatorUtility::OpEmulationState::ApplyEmulationStateToRegArray | ( | u64 * | regArray | ) | [inline] |
OpEmulationState.h の 162 行で定義されています。
00163 { 00164 TOpInfo* opInfo = static_cast<TOpInfo*>(m_opInfo); 00165 00166 // opInfo] dst 00167 int dstRegNum = opInfo->GetDstRegNum(); 00168 for (int i = 0; i < dstRegNum; i ++) { 00169 regArray[ opInfo->GetDstReg(i) ] = m_dst[ opInfo->GetDstRegOpMap(i) ]; 00170 } 00171 }
u64 Onikiri::EmulatorUtility::OpEmulationState::GetDst | ( | int | index | ) | [inline] |
OpEmulationState.h の 181 行で定義されています。
参照元 Onikiri::EmulatorUtility::ExtraOpEmuStateWrapper< TISAInfo >::GetDst().
Here is the caller graph for this function:
OpInfo* Onikiri::EmulatorUtility::OpEmulationState::GetOpInfo | ( | ) | [inline] |
OpEmulationState.h の 225 行で定義されています。
参照元 Onikiri::EmulatorUtility::ExtraOpInfoWrapper< TISAInfo >::EmulationFunctionProxy().
Here is the caller graph for this function:
OpStateIF* Onikiri::EmulatorUtility::OpEmulationState::GetOpState | ( | ) | [inline] |
OpEmulationState.h の 221 行で定義されています。
参照元 Onikiri::EmulatorUtility::Operation::IntDiv< Type, TSrc1, TSrc2 >::operator()()・Onikiri::EmulatorUtility::ExtraOpEmuStateWrapper< TISAInfo >::Read()・Onikiri::EmulatorUtility::Operation::ReadMemory()・Onikiri::EmulatorUtility::ExtraOpEmuStateWrapper< TISAInfo >::Write()・Onikiri::EmulatorUtility::Operation::WriteMemory().
Here is the caller graph for this function:
Onikiri::u64 Onikiri::EmulatorUtility::OpEmulationState::GetPC | ( | ) | const [inline] |
OpEmulationState.h の 196 行で定義されています。
参照元 Onikiri::EmulatorUtility::Operation::current_pc()・Onikiri::PPC64Linux::PPC64LinuxSyscallConv::Execute()・Onikiri::AlphaLinux::AlphaLinuxSyscallConv::Execute()・Onikiri::EmulatorUtility::ExtraOpEmuStateWrapper< TISAInfo >::GetPC()・Onikiri::EmulatorUtility::Operation::next_pc().
Here is the caller graph for this function:
int Onikiri::EmulatorUtility::OpEmulationState::GetPID | ( | ) | const [inline] |
OpEmulationState.h の 211 行で定義されています。
参照元 Onikiri::EmulatorUtility::ExtraOpEmuStateWrapper< TISAInfo >::GetPC()・Onikiri::EmulatorUtility::ExtraOpEmuStateWrapper< TISAInfo >::GetTakenPC()・Onikiri::EmulatorUtility::Operation::ReadMemory()・Onikiri::EmulatorUtility::Linux64SyscallConv::syscall_exit()・Onikiri::EmulatorUtility::Linux64SyscallConv::syscall_read()・Onikiri::EmulatorUtility::Linux64SyscallConv::syscall_readv()・Onikiri::EmulatorUtility::Linux64SyscallConv::syscall_write()・Onikiri::EmulatorUtility::Linux64SyscallConv::syscall_writev()・Onikiri::EmulatorUtility::Operation::WriteMemory().
Here is the caller graph for this function:
EmulatorUtility::ProcessState* Onikiri::EmulatorUtility::OpEmulationState::GetProcessState | ( | ) | [inline] |
OpEmulationState.h の 229 行で定義されています。
参照元 Onikiri::AlphaLinux::Operation::AlphaPALRdUniq()・Onikiri::AlphaLinux::Operation::AlphaPALWrUniq()・Onikiri::AlphaLinux::Operation::AlphaSyscallCore()・Onikiri::AlphaLinux::Operation::AlphaSyscallSetArg()・Onikiri::PPC64Linux::Operation::PPC64SyscallCore()・Onikiri::PPC64Linux::Operation::PPC64SyscallSetArg().
Here is the caller graph for this function:
u64 Onikiri::EmulatorUtility::OpEmulationState::GetSrc | ( | int | index | ) | [inline] |
OpEmulationState.h の 177 行で定義されています。
参照元 Onikiri::EmulatorUtility::ExtraOpEmuStateWrapper< TISAInfo >::GetSrc()・Onikiri::EmulatorUtility::Operation::SrcOperand< OperandIndex >::operator()().
Here is the caller graph for this function:
bool Onikiri::EmulatorUtility::OpEmulationState::GetTaken | ( | ) | const [inline] |
OpEmulationState.h の 191 行で定義されています。
参照元 Onikiri::EmulatorUtility::ExtraOpEmuStateWrapper< TISAInfo >::GetTaken().
Here is the caller graph for this function:
Onikiri::u64 Onikiri::EmulatorUtility::OpEmulationState::GetTakenPC | ( | ) | const [inline] |
OpEmulationState.h の 206 行で定義されています。
参照元 Onikiri::EmulatorUtility::ExtraOpEmuStateWrapper< TISAInfo >::GetTakenPC().
Here is the caller graph for this function:
int Onikiri::EmulatorUtility::OpEmulationState::GetTID | ( | ) | const [inline] |
OpEmulationState.h の 216 行で定義されています。
参照元 Onikiri::EmulatorUtility::ExtraOpEmuStateWrapper< TISAInfo >::GetPC()・Onikiri::EmulatorUtility::ExtraOpEmuStateWrapper< TISAInfo >::GetTakenPC()・Onikiri::EmulatorUtility::Linux64SyscallConv::syscall_read()・Onikiri::EmulatorUtility::Linux64SyscallConv::syscall_readv()・Onikiri::EmulatorUtility::Linux64SyscallConv::syscall_write()・Onikiri::EmulatorUtility::Linux64SyscallConv::syscall_writev().
Here is the caller graph for this function:
void Onikiri::EmulatorUtility::OpEmulationState::SetDst | ( | int | index, | |
u64 | value | |||
) | [inline] |
OpEmulationState.h の 173 行で定義されています。
参照元 Onikiri::EmulatorUtility::ExtraOpEmuStateWrapper< TISAInfo >::SetDst()・Onikiri::EmulatorUtility::Operation::DstOperand< OperandIndex >::SetOperand().
Here is the caller graph for this function:
void Onikiri::EmulatorUtility::OpEmulationState::SetTaken | ( | bool | t | ) | [inline] |
OpEmulationState.h の 187 行で定義されています。
参照元 Onikiri::EmulatorUtility::Operation::do_branch()・Onikiri::PPC64Linux::PPC64LinuxSyscallConv::Execute()・Onikiri::AlphaLinux::AlphaLinuxSyscallConv::Execute()・Onikiri::EmulatorUtility::ExtraOpEmuStateWrapper< TISAInfo >::SetTaken()・Onikiri::EmulatorUtility::Linux64SyscallConv::syscall_exit().
Here is the caller graph for this function:
void Onikiri::EmulatorUtility::OpEmulationState::SetTakenPC | ( | Onikiri::u64 | pc | ) | [inline] |
OpEmulationState.h の 201 行で定義されています。
参照元 Onikiri::EmulatorUtility::Operation::BranchAbsCond()・Onikiri::EmulatorUtility::Operation::BranchAbsUncond()・Onikiri::EmulatorUtility::Operation::BranchRelCond()・Onikiri::EmulatorUtility::Operation::BranchRelUncond()・Onikiri::PPC64Linux::PPC64LinuxSyscallConv::Execute()・Onikiri::AlphaLinux::AlphaLinuxSyscallConv::Execute()・Onikiri::PPC64Linux::Operation::PPC64BranchAbsCond()・Onikiri::PPC64Linux::Operation::PPC64BranchAbsUncond()・Onikiri::PPC64Linux::Operation::PPC64BranchRelCond()・Onikiri::PPC64Linux::Operation::PPC64BranchRelUncond()・Onikiri::EmulatorUtility::ExtraOpEmuStateWrapper< TISAInfo >::SetTakenPC()・Onikiri::EmulatorUtility::Linux64SyscallConv::syscall_exit().
Here is the caller graph for this function: