/arch
(ARM64)
Spécifie l’extension d’architecture Arm A-Profile pour la génération de code sur ARM64. Pour plus d’informations sur les /arch
autres architectures cibles, consultez/arch
(x86), /arch
(x64) et /arch
(ARM).
Syntaxe
/arch:<armv8.0|armv8.1|armv8.2|armv8.3|armv8.4|armv8.5|armv8.6|armv8.7|armv8.8|armv8.9>
[+feature]
/arch:<armv9.0|armv9.1|armv9.2|armv9.3|armv9.4>
[+feature]
Arguments
/arch:armv8.x
Spécifie l’architecture Armv8-A, où x
est une valeur d’extension requise de0
9
1. Par défaut, le compilateur utilise le /arch:armv8.0
comportement si aucune architecture n’est spécifiée.
/arch:armv9.x
2
Spécifie l’architecture Armv9-A, où x
est une valeur d’extension requise à 4
partir de 0
. Par défaut, le compilateur utilise le /arch:armv8.0
comportement si aucune architecture n’est spécifiée.
Notes
Vous pouvez spécifier une extension ARM64 à partir d’Armv8.0-A via Armv8.9-A et Armv9.0-A à Armv9.4-A. Si vous le souhaitez, activez une ou plusieurs fonctionnalités d’architecture en ajoutant un argument de fonctionnalité à l’option3. Par exemple, pour cibler Armv8.0-A et activer la fonctionnalité FEAT_LSE
, ajoutez l’argument lse
de fonctionnalité afin que l’option devienne /arch:armv8.0+lse
. Pour plus d’informations sur les fonctionnalités disponibles et leurs exigences, consultez (ARM64)3./feature
Remarque
Selon votre version de Visual Studio, le compilateur peut ne pas encore générer d’instructions à partir de tous les ensembles de fonctionnalités requis par le niveau d’extension que vous spécifiez. Par exemple, /arch:armv8.1
permet *Interlocked*
aux fonctions intrinsèques d’utiliser l’instruction atomique appropriée introduite avec la fonctionnalité FEAT_LSE
d’extension Armv8.1-A, mais la prise en charge du compilateur nécessite Visual Studio 2022 version 17.2 ou ultérieure.
La _M_ARM64
macro est définie par défaut lors de la compilation pour une cible ARM64. Pour plus d’informations, consultez Macros prédéfinies\
La __ARM_ARCH
macro est définie pour /arch:ARMv8.0
et versions ultérieures. Il indique le niveau d’extension d’architecture ARM que le compilateur cible. Pour plus d’informations, consultez Macros prédéfinies.
#if __ARM_ARCH >= 802
// code that requires ARMv8.2...
#endif
/arch
affecte uniquement la génération de code pour les fonctions natives. Lorsque vous utilisez /clr
pour compiler, /arch
n’a aucun effet sur la génération de code pour les fonctions managées.
Pour définir l’option du /arch
compilateur dans Visual Studio
Ouvrez la boîte de dialogue Pages de propriétés du projet. Pour plus d’informations, consultez Définir le compilateur C++ et les propriétés de build dans Visual Studio.
Sélectionnez la page de propriétés Propriétés de configuration>C/C++>Ligne de commande.
Dans la zone Options supplémentaires, ajoutez ou remplacez
/arch:armv8.0
armv8.0
par une autre extension ARM64. Sélectionnez OK pour enregistrer vos modifications.
Pour définir cette option du compilateur par programmation
- Consultez AdditionalOptions.
L’extension armv8.9
d’architecture Armv8-A est disponible à partir de Visual Studio 2022 version 17.10.
Les extensions d’architecture Armv9-A sont disponibles à partir de Visual Studio 2022 version 17.10.
L’activation des fonctionnalités d’architecture 3 est disponible à partir de Visual Studio 2022 version 17.10.
Voir aussi
/arch
(Architecture minimale du processeur)
Macros prédéfinies
Options du compilateur MSVC
Syntaxe de ligne de commande du compilateur MSVC
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour