/arch
(ARM64)
Especifica a extensão de arquitetura Arm A-Profile para geração de código no ARM64. Para obter mais informações sobre /arch
outras arquiteturas de destino, consulte/arch
(x86), /arch
(x64) e /arch
(ARM).
Sintaxe
/arch:<armv8.0|armv8.1|armv8.2|armv8.3|armv8.4|armv8.5|armv8.6|armv8.7|armv8.8|armv8.9>
[+recurso]
/arch:<armv9.0|armv9.1|armv9.2|armv9.3|armv9.4>
[+recurso]
Argumentos
/arch:armv8.x
Especifica a arquitetura Armv8-A, em que x
é um valor de extensão necessário de 0
até 9
1. Por padrão, o compilador usará o /arch:armv8.0
comportamento se nenhuma arquitetura for especificada.
/arch:armv9.x
2
Especifica a arquitetura Armv9-A, em que x
é um valor de extensão necessário de 0
para 4
. Por padrão, o compilador usará o /arch:armv8.0
comportamento se nenhuma arquitetura for especificada.
Comentários
Você pode especificar uma extensão ARM64 de Armv8.0-A a Armv8.9-A e Armv9.0-A a Armv9.4-A. Opcionalmente, habilite um ou mais recursos de arquitetura anexando um argumento de recurso à opção3. Por exemplo, para direcionar o Armv8.0-A e habilitar o recurso FEAT_LSE
, anexe o argumento lse
do recurso para que a opção se torne /arch:armv8.0+lse
. Para obter mais informações sobre os recursos disponíveis e seus requisitos, consulte (ARM64)3./feature
Observação
Dependendo da sua versão do Visual Studio, o compilador pode ainda não gerar instruções de todos os conjuntos de recursos exigidos pelo nível de extensão especificado. Por exemplo, /arch:armv8.1
permite que as funções intrínsecas *Interlocked*
usem a instrução atômica apropriada introduzida com o recurso FEAT_LSE
de extensão Armv8.1-A, mas o suporte ao compilador requer o Visual Studio 2022 versão 17.2 ou posterior.
A macro _M_ARM64
é definida por padrão ao compilar para um destino ARM64. Para obter mais informações, consulte Macros predefinidas\
A __ARM_ARCH
macro é definida para /arch:ARMv8.0
e superior. Ele indica o nível de extensão da arquitetura ARM que o compilador está direcionando. Para obter mais informações, confira Macros predefinidas.
#if __ARM_ARCH >= 802
// code that requires ARMv8.2...
#endif
/arch
afeta somente a geração de código de funções nativas. Ao usar /clr
para compilar, /arch
não tem efeito sobre a geração de código das funções gerenciadas.
Para definir a opção /arch
do compilador no Visual Studio
Abra a caixa de diálogo Páginas de Propriedades do projeto. Para obter mais informações, confira Definir as propriedades de build e do compilador do C++ no Visual Studio.
Selecione a página de propriedades Propriedades de Configuração>C/C++>Linha de Comando.
Na caixa Opções adicionais, adicione
/arch:armv8.0
ou substituaarmv8.0
por uma extensão ARM64 diferente. Escolha OK para salvar suas alterações.
Para definir essa opção do compilador via programação
- Consulte AdditionalOptions.
1 A extensão armv8.9
de arquitetura Armv8-A está disponível a partir do Visual Studio 2022 versão 17.10.
2 As extensões de arquitetura Armv9-A estão disponíveis a partir do Visual Studio 2022 versão 17.10.
3 A habilitação de recursos de arquitetura está disponível a partir do Visual Studio 2022 versão 17.10.
Confira também
/arch
(arquitetura mínima de CPU)
Macros predefinidas
Opções do compilador MSVC
Sintaxe da linha de comando do compilador MSVC