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

デュアルコア インテル(R) Itanium(R) 2 プロセッサー 9000 番台では、次の表の組み込み関数をサポートします。これらの組み込み関数は、Microsoft* コンパイラーと互換性があり、Itanium 命令を生成します。組み込み関数名の後半は、その組み込み関数により生成される命令を示します。例えば、組み込み関数 _int64_cmp8xchg により生成される Itanium 命令は cmp8xchg です。組み込み関数により生成される命令についての詳細は、『インテル(R) Itanium(R) アーキテクチャー・ソフトウェア・デベロッパーズ・マニュアル、第 3 巻: 命令セット・リファレンス』を参照してください。

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

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

 

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

Itanium の比較/交換命令を生成します。

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

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

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

 

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

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

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

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

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

 

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

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

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

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

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

 

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

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

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

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

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

 

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

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

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

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

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

 

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

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

戻り値なし

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

 

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

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

戻り値なし

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