Compartilhar via


/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é 91. Por padrão, o compilador usará o /arch:armv8.0 comportamento se nenhuma arquitetura for especificada.

/arch:armv9.x2
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_LSEde 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

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

  2. Selecione a página de propriedades Propriedades de Configuração>C/C++>Linha de Comando.

  3. Na caixa Opções adicionais, adicione /arch:armv8.0 ou substitua armv8.0 por uma extensão ARM64 diferente. Escolha OK para salvar suas alterações.

Para definir essa opção do compilador via programação

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