__rdtscp
Specifické pro Microsoft
Vygeneruje instrukce, zapisuje rdtscp
TSC_AUX[31:0]
do paměti a vrátí výsledek 64bitového čítače časového razítka (TSC).
Syntaxe
unsigned __int64 __rdtscp(
unsigned int * AUX
);
Parametry
AUX
[ven] Ukazatel na umístění, které bude obsahovat obsah registru TSC_AUX[31:0]
specifického pro počítač .
Vrácená hodnota
64bitový počet celočíselného čísla bez znaménka.
Požadavky
Vnitřní | Architektura |
---|---|
__rdtscp |
x86, x64 |
Hlavičkový soubor<intrin.h>
Poznámky
Vnitřní __rdtscp
vygeneruje rdtscp
instrukce. Chcete-li určit podporu hardwaru pro tuto instrukci, zavolejte __cpuid
vnitřní s InfoType=0x80000001
bitem 27 z CPUInfo[3] (EDX)
. Tento bit je 1, pokud je instrukce podporovaná, a 0 jinak. Pokud spustíte kód, který používá vnitřní objekt na hardwaru, který nepodporuje rdtscp
instrukce, budou výsledky nepředvídatelné.
Tato instrukce čeká, dokud se všechny předchozí instrukce nespustí a všechny předchozí načtení budou globálně viditelné. Nejedná se ale o serializaci instrukce. Další informace najdete v příručkách Intel a AMD.
Význam hodnoty závisí TSC_AUX[31:0]
na operačním systému.
Příklad
#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
END Microsoft Specific