Udostępnij za pośrednictwem


__rdtscp

Specyficzne dla firmy Microsoft

Generuje instrukcję rdtscp , zapisuje TSC_AUX[31:0] w pamięci i zwraca wynik 64-bitowego licznika sygnatury czasowej (TSC).

Składnia

unsigned __int64 __rdtscp(
   unsigned int * AUX
);

Parametry

AUX
[out] Wskaźnik do lokalizacji, która będzie zawierać zawartość rejestru TSC_AUX[31:0]specyficznego dla maszyny .

Wartość zwracana

64-bitowa liczba niepodpisanych liczb całkowitych.

Wymagania

Nieodłączny Architektura
__rdtscp x86, x64

Plik<nagłówka intrin.h>

Uwagi

Funkcja wewnętrzna __rdtscp generuje instrukcję rdtscp . Aby określić obsługę sprzętu dla tej instrukcji, wywołaj __cpuid funkcję wewnętrzną za pomocą InfoType=0x80000001 polecenia i sprawdź bit 27 z CPUInfo[3] (EDX). Ten bit to 1, jeśli instrukcja jest obsługiwana, a w przeciwnym razie 0. Jeśli uruchamiasz kod korzystający z wewnętrznego sprzętu, który nie obsługuje rdtscp instrukcji, wyniki są nieprzewidywalne.

Ta instrukcja czeka na wykonanie wszystkich poprzednich instrukcji, a wszystkie poprzednie obciążenia są globalnie widoczne. Jednak nie jest to instrukcja serializacji. Aby uzyskać więcej informacji, zobacz podręczniki firmy Intel i AMD.

Znaczenie wartości w TSC_AUX[31:0] pliku zależy od systemu operacyjnego.

Przykład

#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

Zobacz też

__rdtsc
Funkcje wewnętrzne kompilatora