__rdtscp
Específicos de Microsoft
Genera la rdtscp
instrucción, escribe en TSC_AUX[31:0]
memoria y devuelve el resultado del contador de marca de tiempo (TSC) de 64 bits.
Sintaxis
unsigned __int64 __rdtscp(
unsigned int * AUX
);
Parámetros
AUX
[out] Puntero a una ubicación que va a incluir el contenido del registro específico de la máquina TSC_AUX[31:0]
.
Valor devuelto
Un contador de réplica entero sin signo de 64 bits.
Requisitos
Intrinsic | Arquitectura |
---|---|
__rdtscp |
x86, x64 |
Archivo de encabezado<intrin.h>
Comentarios
El intrínseco __rdtscp
genera la instrucción rdtscp
. Para determinar la compatibilidad del hardware con esta instrucción, llame al intrínseco __cpuid
con InfoType=0x80000001
y compruebe el bit 27 de CPUInfo[3] (EDX)
. Este bit es 1 si se admite la instrucción y 0 en caso contrario. Si ejecuta código que usa el intrínseco en hardware que no admite la instrucción rdtscp
, los resultados son impredecibles.
Esta instrucción espera hasta que se han ejecutado todas las instrucciones anteriores y todas las cargas anteriores son visibles globalmente. Pero no es una instrucción de serialización. Para obtener más información, vea los manuales de Intel y AMD.
El significado del valor de TSC_AUX[31:0]
depende del sistema operativo.
Ejemplo
#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 Específicos de Microsoft