次の方法で共有


__rdtscp

Microsoft 固有の仕様

rdtscp命令を生成し、TSC_AUX[31:0]をメモリに書き込み、64 ビット タイム スタンプ カウンター (TSC) の結果を返します。

構文

unsigned __int64 __rdtscp(
   unsigned int * AUX
);

パラメーター

AUX
[out] コンピューター固有のレジスタ TSC_AUX[31:0] の内容を格納する場所へのポインター。

戻り値

64 ビット符号なし整数型のティック数。

要件

Intrinsic Architecture
__rdtscp x86、x64

ヘッダー ファイル<intrin.h>

解説

__rdtscp 組み込みでは rdtscp 命令が生成されます。 この命令のハードウェア サポートを判断するには、InfoType=0x80000001__cpuid 組み込みを呼び出し、CPUInfo[3] (EDX) のビット 27 を確認します。 命令がサポートされている場合、このビットは 1 になり、それ以外の場合は 0 になります。 組み込みが使用されているコードを rdtscp 命令がサポートされないハードウェアで実行すると、結果は予測できません。

この命令は、以前のすべての命令が実行され、以前のすべての読み込みがグローバルに表示されるまで待機します。 ただし、シリアル化命令ではありません。 詳細については、Intel および AMD のマニュアルを参照してください。

TSC_AUX[31:0] の値の意味は、オペレーティング システムによって異なります。

#include <intrin.h>
#include <stdio.h>
int main()
{
    unsigned __int64 i;
    unsigned int ui;
    i = __rdtscp(&ui);
    printf_s("%I64d ticks\n", i);
    printf_s("TSC_AUX was %x\n", ui);
}
3363423610155519 ticks
TSC_AUX was 0

Microsoft 固有の仕様はここまで

関連項目

__rdtsc
コンパイラの組み込み