Partager via


/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 91. Par défaut, le compilateur utilise le /arch:armv8.0 comportement si aucune architecture n’est spécifiée.

/arch:armv9.x2
Spécifie l’architecture Armv9-A, où x est une valeur d’extension requise à 4partir 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_LSEd’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

  1. 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.

  2. Sélectionnez la page de propriétés Propriétés de configuration>C/C++>Ligne de commande.

  3. 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

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