構造体 Onikiri::SimISAInfoDef::SimISAInfo_IW32_RW64_AS64

#include <ISAInfo.h>

すべてのメンバ一覧

Static Public メソッド

static bool TestISAInfo (ISAInfoIF *info)

Static Public 変数

static const int INSTRUCTION_WORD_BIT_SIZE = 32
static const int INSTRUCTION_WORD_BYTE_SHIFT = 2
static const int INSTRUCTION_WORD_BYTE_SIZE = 4
static const int MAX_DST_REG_COUNT = 3
static const int MAX_OP_INFO_COUNT_PER_PC = 4
static const int MAX_REG_COUNT = 80
static const int MAX_REG_SEGMENT_COUNT = 6
static const int MAX_SRC_REG_COUNT = 4


説明

ISAInfo.h57 行で定義されています。


関数

bool SimISAInfoDef::SimISAInfo_IW32_RW64_AS64::TestISAInfo ( ISAInfoIF info  )  [static]

ISAInfo.cpp38 行で定義されています。

参照先 Onikiri::ISAInfoIF::GetAddressSpaceBitSize()Onikiri::ISAInfoIF::GetInstructionWordBitSize()Onikiri::ISAInfoIF::GetMaxDstRegCount()Onikiri::ISAInfoIF::GetMaxOpInfoCountPerPC()Onikiri::ISAInfoIF::GetMaxSrcRegCount()Onikiri::ISAInfoIF::GetRegisterCount()Onikiri::ISAInfoIF::GetRegisterSegmentCount()Onikiri::ISAInfoIF::GetRegisterWordBitSize()MAX_DST_REG_COUNTMAX_OP_INFO_COUNT_PER_PCMAX_REG_COUNTMAX_REG_SEGMENT_COUNTMAX_SRC_REG_COUNTTHROW_RUNTIME_ERROR.

参照元 Onikiri::SystemManager::InitializeEmulator().

00039 {
00040     int iw = info->GetInstructionWordBitSize();
00041     if(iw != 32){
00042         THROW_RUNTIME_ERROR(
00043             "An emulator of ISA with instruction"
00044             "word size(%d) is not supported.", iw );
00045     }
00046 
00047     int rw = info->GetRegisterWordBitSize();
00048     if(rw > 64){
00049         THROW_RUNTIME_ERROR(
00050             "An emulator of ISA with register"
00051             "word size(%d) is not supported.", rw );
00052     }
00053 
00054     int as = info->GetAddressSpaceBitSize();
00055     if(as > 64){
00056         THROW_RUNTIME_ERROR(
00057             "An emulator of ISA with address"
00058             "space size(%d) is not supported.", as );
00059     }
00060 
00061     int maxSN = info->GetMaxSrcRegCount();
00062     if(maxSN > MAX_SRC_REG_COUNT){
00063         THROW_RUNTIME_ERROR(
00064             "An emulator of ISA with max source register"
00065             "number(%d) is not supported.", maxSN );
00066     }
00067 
00068     int maxDN = info->GetMaxDstRegCount();
00069     if(maxDN > MAX_DST_REG_COUNT){
00070         THROW_RUNTIME_ERROR(
00071             "An emulator of ISA with max destination register"
00072             "number(%d) is not supported.", maxDN );
00073     }
00074 
00075     int regCnt = info->GetRegisterCount();
00076     if(regCnt > MAX_REG_COUNT){
00077         THROW_RUNTIME_ERROR(
00078             "An emulator of ISA with register"
00079             "number(%d) is not supported.", regCnt );
00080     }
00081     
00082     int maxOpInfo = info->GetMaxOpInfoCountPerPC();
00083     if(maxOpInfo > MAX_OP_INFO_COUNT_PER_PC){
00084         THROW_RUNTIME_ERROR(
00085             "An emulator of ISA with register"
00086             "number(%d) is not supported.", maxOpInfo );
00087     }
00088 
00089     int regSegmentCount = info->GetRegisterSegmentCount();
00090     if( regSegmentCount > MAX_REG_SEGMENT_COUNT ){
00091         THROW_RUNTIME_ERROR(
00092             "An emulator of ISA with register"
00093             "segments(%d) is not supported.", regSegmentCount );
00094     }
00095 
00096     return true;
00097 }

関数の呼び出しグラフ:

Here is the caller graph for this function:


変数

const int Onikiri::SimISAInfoDef::SimISAInfo_IW32_RW64_AS64::INSTRUCTION_WORD_BIT_SIZE = 32 [static]

ISAInfo.h59 行で定義されています。

const int Onikiri::SimISAInfoDef::SimISAInfo_IW32_RW64_AS64::INSTRUCTION_WORD_BYTE_SHIFT = 2 [static]

ISAInfo.h61 行で定義されています。

参照元 Onikiri::GShare::GetPHTIndex().

const int Onikiri::SimISAInfoDef::SimISAInfo_IW32_RW64_AS64::INSTRUCTION_WORD_BYTE_SIZE = 4 [static]

ISAInfo.h60 行で定義されています。

参照元 Onikiri::ForwardEmulator::GetExecutedNextPC()Onikiri::ForwardEmulator::OnFetch()Onikiri::InorderSystem::Run()Onikiri::EmulationTraceSystem::Run()Onikiri::EmulationDebugSystem::Run().

const int Onikiri::SimISAInfoDef::SimISAInfo_IW32_RW64_AS64::MAX_DST_REG_COUNT = 3 [static]

ISAInfo.h64 行で定義されています。

参照元 Onikiri::Op::Initialize()Onikiri::EmulationTraceSystem::Run()TestISAInfo()Onikiri::Op::ToString().

const int Onikiri::SimISAInfoDef::SimISAInfo_IW32_RW64_AS64::MAX_OP_INFO_COUNT_PER_PC = 4 [static]

ISAInfo.h68 行で定義されています。

参照元 TestISAInfo().

const int Onikiri::SimISAInfoDef::SimISAInfo_IW32_RW64_AS64::MAX_REG_COUNT = 80 [static]

ISAInfo.h66 行で定義されています。

参照元 TestISAInfo().

const int Onikiri::SimISAInfoDef::SimISAInfo_IW32_RW64_AS64::MAX_REG_SEGMENT_COUNT = 6 [static]

ISAInfo.h67 行で定義されています。

参照元 TestISAInfo().

const int Onikiri::SimISAInfoDef::SimISAInfo_IW32_RW64_AS64::MAX_SRC_REG_COUNT = 4 [static]

ISAInfo.h63 行で定義されています。

参照元 Onikiri::Op::Initialize()Onikiri::EmulationTraceSystem::Run()TestISAInfo()Onikiri::Op::ToString().


この構造体の説明は次のファイルから生成されました:
Onikiri2に対してTue Jun 18 15:33:10 2013に生成されました。  doxygen 1.4.7