Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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