Indications relatives aux situations dans lesquelles utiliser EMMS
[Cette documentation constitue un aperçu et peut faire l'objet de modifications avec les versions ultérieures. Blank topics are included as placeholders.]
Spécifique à Microsoft
Les indications suivantes vous aident à déterminer quand utiliser l'instruction d' EMMS :
Si l'instruction suivante est une instruction à virgule flottante, utilisez _mm_empty une fois qu'une instruction MMX (par exemple, avant d'effectuer les calculs sur flotte, des doubles, ou des longs doubles).
Ne pas vide si déjà vide. Si l'instruction suivante utilise un registre MMX, _mm_empty entraîne une opération sans aucun avantage une absence d'opération ().
Utilisez les fonctionnalités différentes pour les zones qui utilisent l'instruction à virgule flottante et ceux qui instruction de l'utilisation MMX. Cela élimine demander une instruction EMMS dans le corps d'une boucle critique.
utilisation _mm_empty pendant l'initialisation à l'exécution de __m64 et des types de données de Point gel . Cela garantit réinitialiser le registre entre les transitions de type de données. Consultez la programmation d'utilisation dans l'exemple suivant.
Utilisation correcte EMMS dans le code d'initialisation
utilisation incorrecte |
utilisation correcte |
---|---|
|
|
De plus, vous devez tenir compte de toutes les situations où votre code génère une instruction MMX :
Lorsque vous utilisez une fonction intrinsèque MMX.
Lors de l'utilisation des extensions Streaming SIMD (pour ces intrinsèques qui données d'utilisation MMX).
Lorsque vous utilisez une instruction MMX via l'assembleur inline.
en référençant une variable de type de données d' __m64 .
Pour plus de documentation sur l'instruction EMMS, consultez la documentation d'Intel.
Les intrinsèques MMX utilisent le type de données de __m64 , qui n'est pas pris en charge sur les processeurs de x64 .
Voir aussi
Référence
MMX intrinsèques générales de prise en charge de la technologie