__lwpval32, __lwpval64
Visual Studio 2010 SP1 est requis
Spécifique à Microsoft
Génère le lwpval de l'instruction du profilage léger (LWP) pour insérer un enregistrement d'exemple de valeur dans la mémoire tampon d'anneau LWP active.
void __lwpval32(
unsigned int data2,
unsigned int data1,
unsigned int flags
);
void __lwpval64(
unsigned __int64 data2,
unsigned int data1,
unsigned int flags
);
Paramètres
[in] data2
Paramètre de 32 ou 64 bits qui sera enregistré dans le champ Data2 d'un enregistrement de mémoire tampon de l'anneau de LWP.[in] data1
Paramètre de 32 bits qui sera enregistré dans le champ Data1 d'un enregistrement de mémoire tampon de l'anneau de LWP.[in] flags
Paramètre de 32 bits dans lequel les 16 bits inférieurs sont enregistrés dans le champ Indicateurs d'un enregistrement de la mémoire tampon de l'anneau de LWP.
Valeur de retour
Aucun
Configuration requise
Intrinsèque |
Architecture |
---|---|
__lwpval32 |
LWP |
__lwpval64 |
LWP, X64 uniquement |
Fichier d'en-tête <intrin.h>
Notes
Ces fonctions intrinsèques peuvent être utilisées pour enregistrer des exemples de valeurs avec EventId 1 dans la mémoire tampon de l'anneau du profilage léger. Contrairement à lwpins, l'instruction lwpval écrit seulement dans la mémoire tampon toutes les k fois que lwpval est exécuté, où k-1 est la valeur de du champ EventInterval1 de LWPCB. Consultez __lwpins32 pour plus d'informations.
Lorsqu'un enregistrement est écrit, il passe dans l'emplacement disponible suivant de la mémoire tampon d'anneau LWP active. Si la mémoire tampon de l'anneau est saturée, le nouvel enregistrement remplace le dernier enregistrement dans la mémoire tampon. Lorsque le profilage léger n'est pas activé ou que LWP est activé, mais que l'événement Exemple de valeur programmée n'est pas activé, ces fonctions intrinsèques n'ont aucun effet sur la mémoire tampon de l'anneau.
__lwpval32 et __lwpval64 enregistrent la valeur de data2 dans le champ Data2 de l'enregistrement de la mémoire tampon de l'anneau (octets 23-16), data1 dans le champ Data1 (octets 7-4), et flags dans le champ Indicateurs (octets 3-2). Notez que flags doit être constant et sera tronqué à 16 bits. __lwpval32 intrinsèque définit les octets 23 à 20 de l'enregistrement de la mémoire tampon de l'anneau avec la valeur zéro.
L'instruction lwpval fait partie de la famille LWP d'instructions. Les instructions LWP nécessitent une prise en charge du matériel et du système d'exploitation. Pour déterminer la prise en charge du matériel de LWP, appelez la fonction intrinsèque __cpuid avec InfoType = 0x80000001 et vérifiez le bit 15 de CPUInfo[2] (ECX). Ce bit est égal à 1 lorsque LWP est pris en charge, sinon il est égal à 0. Dès que vous savez que LWP est pris en charge par le processeur, appelez la fonction intrinsèque __cpuid avec InfoType = 0x8000001C et vérifiez le bit 0 de CPUInfo[0] (EAX). Ce bit est égal à 1 si le système d'exploitation prend également en charge LWP, sinon il est égal à 0. Si le système d'exploitation prend en charge LWP, vérifiez le bit 1 de CPUInfo [0] (EAX) qui est égal à 1 si l'instruction LWPVAL est disponible. Ce test __cpuid retourne également des informations supplémentaires sur l'implémentation LWP. Pour plus d'informations, consultez __llwpcb et « Spécification du profilage LWP (Lightweight Profiling) d'AMD » (Numéro de publication 43724) (éventuellement en anglais).
Pour obtenir un exemple, consultez __llwpcb.
Voir aussi
Autres ressources
Fonctions LWP intrinsèques ajoutées pour Visual Studio 2010 SP1
Historique des modifications
Date |
Historique |
Motif |
---|---|---|
Mars 2011 |
Ce contenu a été ajouté. |
Modifications de fonctionnalités dans le SP1. |