Partilhar via


/arch (ARM64)

Especifica a extensão de arquitetura Arm A-Profile para geração de código no ARM64. Essas opções se aplicam à versão de destino ARM64 do compilador. Para obter mais informações sobre /arch para 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, onde x é um valor de extensão necessário de 0 a 91. Por padrão, o compilador usa o comportamento /arch:armv8.0 se nenhuma arquitetura for especificada.

/arch:armv9.x 2
Especifica a arquitetura Armv9-A, onde x é um valor de extensão necessário de 0 a 4. Por padrão, o compilador usa o comportamento /arch:armv8.0 se nenhuma arquitetura for especificada.

Comentários

Você pode especificar uma extensão ARM64 de Armv8.0-A até Armv8.9-A e Armv9.0-A até Armv9.4-A. Opcionalmente, habilite um ou mais recursos de arquitetura anexando um argumento de recurso à opção3. Por exemplo, para direcionar Armv8.0-A e habilitar o recurso FEAT_LSE, anexe o argumento do recurso lse 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 /feature (ARM64)3.

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 de extensão Armv8.1-A FEAT_LSE, 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 macro __ARM_ARCH é 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, consulte Macros predefinidas.

#if __ARM_ARCH >= 802
    // code that requires ARMv8.2...
#endif

/arch afeta apenas a geração de código para funções nativas. Quando você usa /clr para compilar, /arch não tem efeito na geração de código para funções gerenciadas.

Para definir a opção de compilador /arch no Visual Studio

  1. Abra a caixa de diálogo Property Pages para o projeto. Para obter mais informações, consulte Definir compilador C++ e criar propriedades no Visual Studio.

  2. Selecione a Configuration Properties>C/C++>Command Line página de propriedades.

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

Para definir essa opção do compilador programaticamente

1 Armv8-A armv8.9 de extensão de arquitetura está disponível a partir do Visual Studio 2022 versão 17.10.
2 extensões de arquitetura Armv9-A estão disponíveis a partir do Visual Studio 2022 versão 17.10.
3 A ativação do recurso Arquitetura está disponível a partir do Visual Studio 2022 versão 17.10.

Ver também

/arch (Arquitetura mínima de CPU)
Macros predefinidas
opções do compilador MSVC
de sintaxe de linha de comando do compilador MSVC