#include <AlphaOperation.h>
Public メソッド | |
u64 | operator() (EmulatorUtility::OpEmulationState *opState) const |
AlphaOperation.h の 300 行で定義されています。
u64 Onikiri::AlphaLinux::Operation::AlphaMskxl< Type, TSrc1, TSrc2 >::operator() | ( | EmulatorUtility::OpEmulationState * | opState | ) | const [inline] |
AlphaOperation.h の 302 行で定義されています。
参照先 Type.
00303 { 00304 u64 lhs = TSrc1()(opState); 00305 u64 rhs = TSrc2()(opState); 00306 00307 int shift_cnt = static_cast<int>( (rhs & 0x7) << 3 ); 00308 u64 bit_mask; 00309 int type_bits = sizeof(Type) * 8; 00310 if (type_bits < 64) 00311 bit_mask = (((u64)1 << type_bits) - 1); 00312 else 00313 bit_mask = ~((u64)0); 00314 bit_mask <<= shift_cnt; 00315 bit_mask = ~bit_mask; 00316 00317 u64 result; 00318 result = lhs & bit_mask; 00319 00320 return result; 00321 }