__rdtscp
Spécifique à Microsoft
Génère des instructions d' rdtscp , écrit TSC_AUX[31:0] dans la mémoire, et retourne le compteur de groupe date/heure d'heure 64 bits (résultat d'TSC) .
unsigned __int64 __rdtscp(
unsigned int * Aux
);
Paramètres
- [out] Aux
Pointeur vers un emplacement qui contiendra le contenu du registre spécifique à l'ordinateur TSC_AUX[31:0].
Valeur de retour
Un nombre de cycles 64 bits d'entier non signé.
Configuration requise
Intrinsèque |
Architecture |
---|---|
__rdtscp |
Famille 0Fh d'AMD TNP ou versions ultérieures |
Fichier d'en-tête <intrin.h>
Notes
Cette intrinsèque génère des instructions d' rdtscp . Pour déterminer la prise en charge matérielle pour cette instruction, appelez l'intrinsèque de __cpuidavec InfoType=0x80000001 et le bit de contrôle 27 d' CPUInfo[3] (EDX). Ce bit est 1 si l'instruction est prise en charge, et 0 sinon. Si vous exécutez le code qui utilise cette intrinsèque sur le matériel qui ne prend pas en charge l'instruction d' rdtscp , les résultats sont imprévisibles.
Avertissement
Contrairement à rdtsc, rdtscp est une instruction sérialisante ; néanmoins, le compilateur peut déplacer le code qui encadrent cette fonction intrinsèque.
L'interprétation de la valeur de centre technique dans cette génération de matériel diffère de celle dans les versions antérieures d' x64. Consultez les manuels de matériel pour plus d'informations.
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);
}
TERMINEZ le détail de Microsoft
Copyright 2007 par Advanced Micro Devices, Inc tous droits réservés. Reproduit avec l'autorisation d'Advanced Micro Devices, Inc