__lwpval32, __lwpval64

È necessario Visual Studio 2010 SP1.

Specifici di Microsoft

Genera l'istruzione della profilatura leggera (LWP) lwpval per inserire un record di esempio del valore nel buffer circolare LWP attivo.

void __lwpval32(
   unsigned int data2,
   unsigned int data1,
   unsigned int flags
);

void __lwpval64(
   unsigned __int64 data2,
   unsigned int data1,
   unsigned int flags
);

Parametri

  • [in] data2
    Un parametro a 32 o a 64 bit che verrà scritto nel campo Data2 di un record del buffer circolare LWP.

  • [in] data1
    Parametro a 32 bit che verrà scritto nel campo Data1 di un record del buffer circolare LWP.

  • [in] flags
    Un parametro a 32 i cui 16 bit rimanenti verranno scritti nel campo Flag di un record del buffer circolare LWP.

Valore restituito

Nessuno.

Requisiti

Intrinseco

Architettura

__lwpval32

LWP

__lwpval64

LWP, solo X64

File di intestazione <intrin.h>

Note

Questi intrinseci possono essere utilizzati per registrare campioni di valori con EventID 1 nel buffer circolare della profilatura leggera. A differenza dell'istruzione lwpins, l'istruzione lwpval scrive nel buffer solo a ogni intervallo di tempo k in cui viene eseguito lwpval dove k-1 è il valore del campo EventInterval1 di LWPCB. Per ulteriori informazioni, vedere __lwpins32.

Quando viene scritto un record, viene aggiunto nel successivo slot disponibile del buffer circolare LWP attivo. Se il buffer circolare è pieno, il nuovo record sovrascrive l'ultimo record nel buffer. Quando la profilatura leggera non è abilitata o LWP è abilitato ma l'evento dell'esempio di valore programmato non è abilitato, questi intrinseci non hanno effetto sul buffer circolare.

Sia __lwpval32 che __lwpval64 scrivono il valore di data2 nel campo Data2 del record del buffer circolare (byte 23-16), data1 nel campo Data1 (byte 7-4) e flags nel campo Flag (byte 3-2). Si noti che flags deve essere costante e verrà troncato a 16 bit. L'intrinseco __lwpval32 imposta byte 23-20 del record del buffer circolare su zero.

L'istruzione lwpval fa parte della famiglia LWP di istruzioni. Le istruzioni LWP richiedono sia il supporto dell'hardware che del sistema operativo. Per determinare il supporto hardware per LWP, chiamare __cpuid intrinseco con InfoType = 0x80000001 e il bit di controllo 15 di CPUInfo[2] (ECX). Questo bit è 1 quando LWP è supportato, e 0 in caso contrario. Una volta che si sa che LWP è supportato dal processore, chiamare __cpuid intrinseco con InfoType = 0x8000001C e bit di controllo 0 di CPUInfo[0](EAX). Questo bit è 1 se il sistema operativo supporta anche LWP, in caso contrario è 0. Se il sistema operativo supporta LWP, il bit di controllo 1 di CPUInfo [0] (EAX), che sarà 1 se è disponibile l'istruzione LWPVAL. Questo test __cpuid restituisce informazioni aggiuntive sull'implementazione LWP. Vedere __llwpcb e "Lightweight Profiling Specification" di AMD (numero pubblicazione 43724) per ulteriori informazioni.

Per un esempio, vedere __llwpcb.

Vedere anche

Altre risorse

__lwpins32, __lwpins64

__llwpcb

__slwpcb

Oggetti intrinseci LWP aggiunti per Visual Studio 2010 SP1

Cronologia delle modifiche

Data

Cronologia

Motivo

Marzo 2011

È stato aggiunto questo contenuto.

Modifica di funzionalità in SP1.