デュアルコア インテル(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 ビット |