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

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

組み込み関数により生成される命令についての詳細は、インテル® Itanium® プロセッサー 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 ビット