__rdtscp
Microsoft 专用
生成 rdtscp
指令,将 TSC_AUX[31:0]
写入内存,并返回 64 位时间戳计数器 (TSC) 结果。
语法
unsigned __int64 __rdtscp(
unsigned int * AUX
);
参数
AUX
[out] 指向包含计算机特定寄存器 TSC_AUX[31:0]
内容的位置的指针。
返回值
64 位无符号整数滴答计数。
要求
Intrinsic | 体系结构 |
---|---|
__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 专用