/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