構造体 テンプレート Onikiri::AlphaLinux::Operation::AlphaExtxh< Type, TSrc1, TSrc2 >

#include <AlphaOperation.h>

すべてのメンバ一覧

Public メソッド

u64 operator() (EmulatorUtility::OpEmulationState *opState) const


説明

template<typename Type, typename TSrc1, typename TSrc2>
struct Onikiri::AlphaLinux::Operation::AlphaExtxh< Type, TSrc1, TSrc2 >

AlphaOperation.h232 行で定義されています。


関数

template<typename Type, typename TSrc1, typename TSrc2>
u64 Onikiri::AlphaLinux::Operation::AlphaExtxh< Type, TSrc1, TSrc2 >::operator() ( EmulatorUtility::OpEmulationState opState  )  const [inline]

AlphaOperation.h234 行で定義されています。

参照先 Type.

00235     {
00236         u64 result = 0;
00237         u64 lhs = TSrc1()(opState);
00238         u64 rhs = TSrc2()(opState);
00239 
00240         int shift_cnt = static_cast<int>( (rhs & 0x7) << 3 );
00241         int byte_loc = 64 - shift_cnt;
00242         result = lhs << (byte_loc & 0x3f);
00243         
00244         // To avoid a optimization bug in VS2010 SP1.
00245         // Left shift is mistakenly done on u16 value...
00246         if( (size_t)( byte_loc & 0x3f ) >= sizeof(Type)*8 ){
00247             result = 0;
00248         }
00249 
00250         return  static_cast<Type>(result);
00251     }


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