__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 专用

另请参阅

__rdtsc
编译器内部函数