Prise en charge du compilateur de MMX, des intrinsèques, SSE et SSE2
[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
Pour prendre en charge l'utilisation de MMX, les intrinsèques, SSE et SSE2, le compilateur inclut les fonctionnalités suivantes :
Inscription de données
assembleur inline
Inscription de données
Précédemment, des problèmes d'alignement dans les programmes ont été traités par le compilateur ou directement au niveau matériel. De plus, toutes les modifications d'alignement nécessaires pour qu'un programme exécute correctement ont été automatiquement activées. Toutefois, avec l'arrivée de la prise en charge intrinsèque, l'utilisateur doit jouer un rôle plus actif pour garantir que des problèmes d'alignement sont traités correctement.
Plusieurs nouvelles intrinsèques ont des spécifications d'alignement de données. Si ces éléments intrinsèques sont utilisées et les données ne sont pas correctement alignée, le programme lève une exception qui doit être gérée par le programme ; sinon, le programme censurera.
Les nouvelles intrinsèques requièrent des données alignées pour permettre de meilleures performances. avec la taille de nouveaux registres implémentés pour prendre en charge les nouveaux, améliorés jeux d'instructions, de nouvelles spécifications d'alignement ont été définies de faire la meilleure utilisation des architectures récentes de cache. Des exigences spécifiques d'inscription pour chaque intrinsèque se trouvent dans la documentation de l'objet intrinsèque.
Il existe d'autres outils pour spécifier des règles appropriées pour l'alignement des données. Pour l'alignement des données statiques ou automatique de variables déclarées par utilisateur, par exemple, consultez la documentation de section d'alignement. Pour les données allouées de manière dynamique du tas, reportez -vous aux fonctions d' inscription de données .
Notes
__m64, __m128, __m128i et types de données d' __m128d les nouveaux possède déjà une valeur d'inscription.
assembleur inline
L'utilisation d'un support de compilateur les instructions assembleur intrinsèques en blocs d'assembly inline (__asm). Le compilateur accepte également la nouvelle syntaxe MMWORD PTR et XMMWORD PTR pour faire référence à 64 et des données 128 bits.
détail de FIN Microsoft
Pour plus d'informations sur la façon de détecter les fonctions d'une UC, consultez l' Exemple CPUID.