デュアルコア インテル(R) Itanium(R) 2 プロセッサー 9000 系の Microsoft* 互換組み込み関数

デュアルコア インテル(R) Itanium(R) 2 プロセッサー 9000 系のプロセッサーでは、次の表の組み込み関数をサポートします。これらの組み込み関数は、Microsoft* コンパイラーと互換性があり、これらの組み込み関数は、それぞれ IA-64 命令を生成します。組み込み関数名の後半は、その組み込み関数により生成される命令を示します。例えば、組み込み関数 _int64_cmp8xchg により生成される IA-64 命令は cmp8xchg です。

組み込み関数により生成される命令についての詳細は、Itanium 2 プロセッサー Web サイトのドキュメントを参照してください。

次の表の組み込み関数名をクリックすると、その組み込み関数の詳細が表示されます。

組み込み関数名 操作 対応する IA-64 命令
_InterlockedCompare64Exchange128 比較/交換  
_InterlockedCompare64Exchange128_acq 比較/交換  
_InterlockedCompare64Exchange128_rel 比較/交換  
__load128 ロード  
__load128_acq ロード  
__store128 ストア  
__store128_rel ストア  

 

__int64 _InterlockedCompare64Exchange128( __int64 volatile * <Destination>, __int64 <ExchangeHigh>, __int64 <ExchangeLow>, __int64 <Comperand>)

IA-64 の比較/交換命令を生成します。

デスティネーションの下位 64 ビット値を返します。

次の表は、この組み込み関数の引数について説明しています。

Destination ExchangeHigh ExchangeLow Comperand
128 ビットのデスティネーション値へのポインター 交換する値の最上位 64 ビット 交換する値の最下位 64 ビット デスティネーションと比較する値

 

__int64 _InterlockedCompare64Exchange128_acq( __int64 volatile * <Destination>, __int64 <ExchangeHigh>, __int64 <ExchangeLow>, __int64 <Comperand>)

IA-64 の比較/交換命令を生成します。_InterlockedCompare64Exchange128 と同じですが、この組み込み関数は acquire セマンティクスを使用します。

デスティネーションの下位 64 ビット値を返します。

次の表は、この組み込み関数の引数について説明しています。

Destination ExchangeHigh ExchangeLow Comperand
128 ビットのデスティネーション値へのポインター 交換する値の最上位 64 ビット 交換する値の最下位 64 ビット デスティネーションと比較する値

 

__int64 _InterlockedCompare64Exchange128_rel( __int64 volatile * <Destination>, __int64 <ExchangeHigh>, __int64 <ExchangeLow>, __int64 <Comperand>

IA-64 の比較/交換命令を生成します。_InterlockedCompare64Exchange128 と同じですが、この組み込み関数は release セマンティクスを使用します。

デスティネーションの下位 64 ビット値を返します。

次の表は、この組み込み関数の引数について説明しています。

Destination ExchangeHigh ExchangeLow Comperand
128 ビットのデスティネーション値へのポインター 交換する値の最上位 64 ビット 交換する値の最下位 64 ビット デスティネーションと比較する値

 

__int64 __load128(   __int64 volatile * Source, __int64 *<DestinationHigh>)

メモリー位置から 128 ビットをアトミックに読み取る IA-64 命令を生成します。

ロードされる 128 ビット値の下位 64 ビットを返します。

次の表は、この組み込み関数の引数について説明しています。

Source DestinationHigh
128 ビットのソース値へのポインター ロードされる 128 ビット値の上位 64 ビットをストアするメモリー位置へのポインター

 

__int64 __load128_acq( __int64 volatile * <Source>, __int64 *<DestinationHigh>

メモリー位置から 128 ビットをアトミックに読み取る IA-64 命令を生成します。__load128 と同じですが、この組み込み関数は acquire セマンティクスを使用します。

ロードされる 128 ビット値の下位 64 ビットを返します。

次の表は、この組み込み関数の引数について説明しています。

Source DestinationHigh
128 ビットのソース値へのポインター ロードされる 128 ビット値の上位 64 ビットをストアするメモリー位置へのポインター

 

void __store128( __int64 volatile * <Destination>, __int64 <SourceHigh> __int64 <SourceLow>)

メモリー位置に 128 ビット値をアトミックにストアする IA-64 命令を生成します。

戻り値なし

Destination SourceHigh SourceLow
128 ビットのデスティネーション値へのポインター ストアする値の最上位 64 ビット ストアする値の最下位 64 ビット

 

void __store128_rel( __int64 volatile * <Destination>, __int64 <SourceHigh> __int64 <SourceLow>)

メモリー位置に 128 ビット値をアトミックにストアする IA-64 命令を生成します。__store128 と同じですが、この組み込み関数は release セマンティクスを使用します。

戻り値なし

Destination SourceHigh SourceLow
128 ビットのデスティネーション値へのポインター ストアする値の最上位 64 ビット ストアする値の最下位 64 ビット