¥Í¡¼¥à¥¹¥Ú¡¼¥¹ Onikiri::AlphaLinux::Operation


¹½À®

struct  AlphaAddr
struct  AlphaAddrUnaligned
struct  AlphaCmpBge
struct  AlphaCompare
struct  AlphaCvtLQ
struct  AlphaCvtQL
struct  AlphaCvtQS
struct  AlphaCvtQT
struct  AlphaCvtTQ_c
struct  AlphaCvtTQ_m
struct  AlphaCvtTS
struct  AlphaExtxh
struct  AlphaExtxl
struct  AlphaFPCondUnordered
struct  AlphaFtois
struct  AlphaInsxh
struct  AlphaInsxl
struct  AlphaItofs
struct  AlphaLdah
struct  AlphaLds
struct  AlphaMskxh
struct  AlphaMskxl
struct  AlphaPackLongWords
struct  AlphaPackWords
struct  AlphaPixelError
struct  AlphaRoundModeFromFPCR
struct  AlphaSextb
struct  AlphaSextw
struct  AlphaTFloatCompare
struct  AlphaUnpackLongWords
struct  AlphaUnpackWords
struct  AlphaVectorMax
struct  AlphaVectorMin
struct  AlphaZap
struct  AlphaZapNot

´Ø¿ô

void AlphaPALGenTrap (EmulatorUtility::OpEmulationState *opState)
void AlphaPALHalt (EmulatorUtility::OpEmulationState *opState)
void AlphaPALIMB (EmulatorUtility::OpEmulationState *opState)
void AlphaPALRdUniq (EmulatorUtility::OpEmulationState *opState)
void AlphaPALWrUniq (EmulatorUtility::OpEmulationState *opState)
template<typename TSrc, typename TAddr>
void AlphaSts (EmulatorUtility::OpEmulationState *opState)
void AlphaSyscallCore (EmulatorUtility::OpEmulationState *opState)
void AlphaSyscallSetArg (EmulatorUtility::OpEmulationState *opState)
u64 AlphaZapNotBitMask (u64 byte_mask)

ÊÑ¿ô

const RegisterType REG_VALUE_FALSE = 0
const RegisterType REG_VALUE_TRUE = 1


´Ø¿ô

void Onikiri::AlphaLinux::Operation::AlphaPALGenTrap ( EmulatorUtility::OpEmulationState *  opState  )  [inline]

AlphaOperation.h ¤Î 75 ¹Ô¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

»²¾ÈÀè THROW_RUNTIME_ERROR.

00076 {
00077     THROW_RUNTIME_ERROR("AlphaPALGenTrap called."); // <TODO>
00078 }

void Onikiri::AlphaLinux::Operation::AlphaPALHalt ( EmulatorUtility::OpEmulationState *  opState  )  [inline]

AlphaOperation.h ¤Î 52 ¹Ô¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

»²¾ÈÀè THROW_RUNTIME_ERROR.

00053 {
00054     THROW_RUNTIME_ERROR("AlphaPALHalt called.");    // <TODO>
00055 }

void Onikiri::AlphaLinux::Operation::AlphaPALIMB ( EmulatorUtility::OpEmulationState *  opState  )  [inline]

AlphaOperation.h ¤Î 58 ¹Ô¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

00059 {
00060     // ƒVƒ“ƒOƒ‹ƒXƒŒƒbƒh‚Ȃ̂ʼn½‚à‚µ‚È‚¢
00061 }

void Onikiri::AlphaLinux::Operation::AlphaPALRdUniq ( EmulatorUtility::OpEmulationState *  opState  )  [inline]

AlphaOperation.h ¤Î 64 ¹Ô¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

»²¾ÈÀè Onikiri::EmulatorUtility::OpEmulationState::GetProcessState()¡¦Onikiri::EmulatorUtility::ProcessState::GetThreadUniqueValue().

00065 {
00066     DstOperand<0>::SetOperand( opState, opState->GetProcessState()->GetThreadUniqueValue() );
00067 }

´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¥°¥é¥Õ:

void Onikiri::AlphaLinux::Operation::AlphaPALWrUniq ( EmulatorUtility::OpEmulationState *  opState  )  [inline]

AlphaOperation.h ¤Î 70 ¹Ô¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

»²¾ÈÀè Onikiri::EmulatorUtility::OpEmulationState::GetProcessState()¡¦Onikiri::EmulatorUtility::ProcessState::SetThreadUniqueValue().

00071 {
00072     opState->GetProcessState()->SetThreadUniqueValue( SrcOperand<0>()(opState) );
00073 }

´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¥°¥é¥Õ:

template<typename TSrc, typename TAddr>
void Onikiri::AlphaLinux::Operation::AlphaSts ( EmulatorUtility::OpEmulationState *  opState  )  [inline]

AlphaOperation.h ¤Î 685 ¹Ô¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

00686 {
00687     u64 va = TSrc()(opState);
00688 
00689     WriteMemory<u32>( opState, TAddr()(opState), 
00690         (u32) (((va >> 32) & 0xc0000000) |
00691         ((va >> 29) & 0x3fffffff)));
00692 }

void Onikiri::AlphaLinux::Operation::AlphaSyscallCore ( EmulatorUtility::OpEmulationState *  opState  )  [inline]

AlphaOperation.h ¤Î 104 ¹Ô¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

»²¾ÈÀè Onikiri::EmulatorUtility::SyscallConvIF::ErrorFlagIndex¡¦Onikiri::EmulatorUtility::SyscallConvIF::Execute()¡¦Onikiri::EmulatorUtility::OpEmulationState::GetProcessState()¡¦Onikiri::EmulatorUtility::SyscallConvIF::GetResult()¡¦Onikiri::EmulatorUtility::ProcessState::GetSyscallConv()¡¦Onikiri::EmulatorUtility::SyscallConvIF::RetValueIndex¡¦Onikiri::EmulatorUtility::SyscallConvIF::SetArg().

00105 {
00106     EmulatorUtility::SyscallConvIF* syscallConv = opState->GetProcessState()->GetSyscallConv();
00107     syscallConv->SetArg(3, SrcOperand<0>()(opState));
00108     syscallConv->SetArg(4, SrcOperand<1>()(opState));
00109     syscallConv->SetArg(5, SrcOperand<2>()(opState));
00110     syscallConv->Execute(opState);
00111 
00112     DstOperand<0>::SetOperand(opState, syscallConv->GetResult(EmulatorUtility::SyscallConvIF::RetValueIndex) );
00113     DstOperand<1>::SetOperand(opState, syscallConv->GetResult(EmulatorUtility::SyscallConvIF::ErrorFlagIndex) );
00114 }

´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¥°¥é¥Õ:

void Onikiri::AlphaLinux::Operation::AlphaSyscallSetArg ( EmulatorUtility::OpEmulationState *  opState  )  [inline]

AlphaOperation.h ¤Î 95 ¹Ô¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

»²¾ÈÀè Onikiri::EmulatorUtility::OpEmulationState::GetProcessState()¡¦Onikiri::EmulatorUtility::ProcessState::GetSyscallConv()¡¦Onikiri::EmulatorUtility::SyscallConvIF::SetArg().

00096 {
00097     EmulatorUtility::SyscallConvIF* syscallConv = opState->GetProcessState()->GetSyscallConv();
00098     syscallConv->SetArg(0, SrcOperand<0>()(opState));
00099     syscallConv->SetArg(1, SrcOperand<1>()(opState));
00100     syscallConv->SetArg(2, SrcOperand<2>()(opState));
00101 }

´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¥°¥é¥Õ:

u64 Onikiri::AlphaLinux::Operation::AlphaZapNotBitMask ( u64  byte_mask  )  [inline]

AlphaOperation.h ¤Î 349 ¹Ô¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

»²¾È¸µ Onikiri::AlphaLinux::Operation::AlphaZapNot< TSrc1, TSrc2 >::operator()()¡¦Onikiri::AlphaLinux::Operation::AlphaZap< TSrc1, TSrc2 >::operator()().

00350 {
00351     u64 result = 0;
00352     
00353     for (int i = 0; i < 8; i ++) {
00354         result <<= 8;
00355         result |= (((byte_mask & 0x80) >> 7) - 1) & 0xff;
00356         byte_mask <<= 1;
00357     }
00358 
00359     return result;
00360 }

Here is the caller graph for this function:


ÊÑ¿ô

const RegisterType Onikiri::AlphaLinux::Operation::REG_VALUE_FALSE = 0

AlphaOperation.h ¤Î 50 ¹Ô¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

»²¾È¸µ Onikiri::AlphaLinux::Operation::AlphaCompare< TSrc1, TSrc2, Comp >::operator()().

const RegisterType Onikiri::AlphaLinux::Operation::REG_VALUE_TRUE = 1

AlphaOperation.h ¤Î 49 ¹Ô¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

»²¾È¸µ Onikiri::AlphaLinux::Operation::AlphaCompare< TSrc1, TSrc2, Comp >::operator()().


Onikiri2¤ËÂФ·¤ÆTue Jun 18 15:24:34 2013¤ËÀ¸À®¤µ¤ì¤Þ¤·¤¿¡£  doxygen 1.4.7