__rdtscp
Microsoft 特定的
產生 rdtscp
指令、寫入 TSC_AUX[31:0]
記憶體,並傳回 64 位時間戳計數器 (TSC) 結果。
語法
unsigned __int64 __rdtscp(
unsigned int * AUX
);
參數
輔助
[out]將包含電腦特定快取器 TSC_AUX[31:0]
內容之位置的指標。
傳回值
64 位無符號整數刻度計數。
需求
內建 | 架構 |
---|---|
__rdtscp |
x86、x64 |
頭檔<intrin.h>
備註
內部 __rdtscp
函數會產生 rdtscp
指令。 若要判斷此指令的硬體支援,請使用呼叫 __cpuid
內部函數, InfoType=0x80000001
並檢查的 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
END Microsoft 特定的