Compartilhar via


__rdtscp

Seção específica da Microsoft

Gera a rdtscp instrução, grava TSC_AUX[31:0] na memória e retorna o resultado do TSC (Contador de Carimbo de Data/Hora) de 64 bits.

Sintaxe

unsigned __int64 __rdtscp(
   unsigned int * AUX
);

Parâmetros

AUX
[out] Ponteiro para um local que conterá o conteúdo do registro TSC_AUX[31:0] específico a um computador.

Valor retornado

Uma contagem em escala de inteiros sem sinal de 64 bits.

Requisitos

Intrinsic Arquitetura
__rdtscp x86, x64

Arquivo de cabeçalho<intrin.h>

Comentários

O __rdtscp intrínseco gera a instrução rdtscp. Para determinar o suporte de hardware para esta instrução, chame o intrínseco __cpuid com InfoType=0x80000001 e verifique o bit 27 de CPUInfo[3] (EDX). Esse bit será 1 se a instrução for compatível e, caso contrário, 0. Se você executar código que usa o intrínseco em hardware que não dá suporte à instrução rdtscp, os resultados serão imprevisíveis.

Essa instrução aguarda até que todas as instruções anteriores tenham sido executadas e todas as cargas anteriores fiquem visíveis globalmente. No entanto, ela não é uma instrução serializadora. Para obter mais informações, confira os manuais da Intel e da AMD.

O significado do valor em TSC_AUX[31:0] depende do sistema operacional.

Exemplo

#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

Fim da seção específica da Microsoft

Confira também

__rdtsc
Intrínsecos do compilador