Partager via


__rdtscp

Section spécifique à Microsoft

Génère l’instruction rdtscp , écrit TSC_AUX[31:0] en mémoire et retourne le résultat du compteur d’horodatage 64 bits (TSC).

Syntaxe

unsigned __int64 __rdtscp(
   unsigned int * AUX
);

Paramètres

AUX
[out] Pointeur vers un emplacement qui contiendra le contenu du registre TSC_AUX[31:0]spécifique à l’ordinateur.

Valeur retournée

Nombre de graduations entiers non signés 64 bits.

Spécifications

Intrinsic Architecture
__rdtscp x86, x64

Fichier<d’en-tête intrin.h>

Notes

L’intrinsèque __rdtscp génère l’instruction rdtscp . Pour déterminer la prise en charge matérielle de cette instruction, appelez l’intrinsèque __cpuid avec InfoType=0x80000001 et vérifiez le bit 27 de CPUInfo[3] (EDX). Ce bit est 1 si l’instruction est prise en charge, et 0 sinon. Si vous exécutez du code qui utilise l’intrinsèque sur le matériel qui ne prend pas en charge l’instruction rdtscp , les résultats sont imprévisibles.

Cette instruction attend que toutes les instructions précédentes aient été exécutées et que toutes les charges précédentes soient globalement visibles. Toutefois, il ne s’agit pas d’une instruction sérialisante. Pour plus d’informations, consultez les manuels Intel et AMD.

La signification de la valeur dans TSC_AUX[31:0] dépend du système d’exploitation.

Exemple

#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

FIN de la section spécifique à Microsoft

Voir aussi

__rdtsc
Intrinsèques du compilateur