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

#include <AlphaOperation.h>

すべてのメンバ一覧

Public メソッド

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


説明

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

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


関数

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

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

参照先 Type.

00276     {
00277         u64 lhs = TSrc1()(opState);
00278         u64 rhs = TSrc2()(opState);
00279 
00280         int shift_cnt = static_cast<int>( (rhs & 0x7) << 3 );
00281         int byte_loc = 64 - shift_cnt;
00282         u64 bit_mask;
00283 
00284         if (shift_cnt + sizeof(Type)*8 > 64 ) {
00285             bit_mask = ~(~(u64)0 << (shift_cnt + sizeof(Type)*8 - 64));
00286         }
00287         else {
00288             bit_mask = 0;
00289         }
00290 
00291         u64 result;
00292         result = lhs >> (byte_loc & 0x3f);
00293         result &= bit_mask;
00294 
00295         return result;
00296     }


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