__rdtscp

Блок, относящийся только к системам Майкрософт

Создает инструкцию rdtscp , записывает TSC_AUX[31:0] в память и возвращает 64-разрядный результат счетчика меток времени (TSC).

Синтаксис

unsigned __int64 __rdtscp(
   unsigned int * AUX
);

Параметры

AUX
[out] Указатель на расположение, содержащее содержимое регистра TSC_AUX[31:0]для конкретного компьютера.

Возвращаемое значение

64-разрядное целое число без знака.

Requirements

Intrinsic Архитектура
__rdtscp x86, x64

Файл<заголовка intrin.h>

Замечания

Встроенная __rdtscp функция создает инструкцию rdtscp . Чтобы определить поддержку оборудования для этой инструкции, вызовите __cpuid встроенную функцию и InfoType=0x80000001 проверка бит 27CPUInfo[3] (EDX). Этот бит равен 1, если инструкция поддерживается и 0 в противном случае. Если вы запускаете код, использующий встроенную функцию на оборудовании, которое не поддерживает инструкцию rdtscp , результаты непредсказуемы.

Эта инструкция ожидает выполнения всех предыдущих инструкций, а все предыдущие нагрузки будут глобально видны. Однако это не инструкция сериализации. Дополнительные сведения см. в руководствах Intel и AMD.

Значение значения TSC_AUX[31:0] зависит от операционной системы.

Пример

#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

Завершение блока, относящегося только к системам Майкрософт

См. также

__rdtsc
Встроенные компоненты компилятора