Compartir a través de


/arch (ARM64)

Especifica la extensión de arquitectura arm A-Profile para la generación de código en ARM64. Para obtener más información sobre /arch otras arquitecturas de destino, consulte/arch (x86),/arch (x64) y /arch (ARM).

Sintaxis

/arch:<armv8.0|armv8.1|armv8.2|armv8.3|armv8.4|armv8.5|armv8.6|armv8.7|armv8.8|armv8.9>[+característica]
/arch:<armv9.0|armv9.1|armv9.2|armv9.3|armv9.4>[+característica]

Argumentos

/arch:armv8.x
Especifica la arquitectura Armv8-A, donde x es un valor de extensión necesario de 0 a 91. De forma predeterminada, el compilador usa el /arch:armv8.0 comportamiento si no se especifica ninguna arquitectura.

/arch:armv9.x2
Especifica la arquitectura armv9-A, donde x es un valor de extensión necesario de 0 a 4. De forma predeterminada, el compilador usa el /arch:armv8.0 comportamiento si no se especifica ninguna arquitectura.

Comentarios

Puede especificar una extensión ARM64 de Armv8.0-A a Armv8.9-A y Armv9.0-A a Armv9.4-A. Opcionalmente, habilite una o varias características de arquitectura anexando un argumento de característica a la opción3. Por ejemplo, para dirigirse a Armv8.0-A y habilitar la característica FEAT_LSE, anexe el argumento lse de característica para que la opción se convierta en /arch:armv8.0+lse. Para obtener más información sobre las características disponibles y sus requisitos, consulte (ARM64)3./feature

Nota:

Según la versión de Visual Studio, es posible que el compilador aún no genere instrucciones de todos los conjuntos de características requeridos por el nivel de extensión que especifique. Por ejemplo, /arch:armv8.1 permite que las *Interlocked* funciones intrínsecas usen la instrucción atómica adecuada introducida con la característica FEAT_LSEde extensión Armv8.1-A, pero la compatibilidad del compilador requiere Visual Studio 2022 versión 17.2 o posterior.

La macro _M_ARM64 se define de forma predeterminada al compilar para un destino ARM64. Para obtener más información, consulte Macros predefinidas.\

La __ARM_ARCH macro se define para /arch:ARMv8.0 y versiones posteriores. Indica el nivel de extensión de arquitectura de ARM que el compilador tiene como destino. Para obtener más información, consulte Macros predefinidas.

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

/arch solo afecta a la generación de código de las funciones nativas. Cuando se usa /clr para compilar, /arch no tiene ningún efecto en la generación de código para las funciones administradas.

Para establecer la opción del compilador /arch en Visual Studio

  1. Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para más información, vea Establecimiento del compilador de C++ y de propiedades de compilación en Visual Studio.

  2. Seleccione la página de propiedades Propiedades de configuración>C/C++>Línea de comandos.

  3. En el cuadro Opciones adicionales , agregue /arch:armv8.0 o reemplace por armv8.0 una extensión ARM64 diferente. Elija Aceptar para guardar los cambios.

Para establecer esta opción del compilador mediante programación

1 La extensión armv8.9 de arquitectura Armv8-A está disponible a partir de la versión 17.10 de Visual Studio 2022.
2 Las extensiones de arquitectura armv9-A están disponibles a partir de la versión 17.10 de Visual Studio 2022.
3 La habilitación de características de arquitectura está disponible a partir de la versión 17.10 de Visual Studio 2022.

Consulte también

/arch (Arquitectura de CPU mínima)
Macros predefinidas
Opciones del compilador de MSVC
Sintaxis de línea de comandos del compilador de MSVC