ARM architectures supported by the toolchain
ARM® Compiler supports a number of different architecture profiles.
ARM Compiler supports the following architectures:
- ARMv8-A bare metal targets.
- ARMv8.1-A bare metal targets.
- ARMv8.2-A bare metal targets.
- ARMv8.3-A bare metal targets.
- ARMv8-R targets.
- ARMv8-M targets.
- ARMv7-A bare metal targets.
- ARMv7-R targets.
- ARMv7-M targets.
- ARMv6-M targets.
When compiling code, the compiler needs to know which architecture to target in order to take advantage of features specific to that architecture.
To specify a target, you must supply the target execution state (AArch32 or AArch64), together with either a target architecture (for example ARMv8-A) or a target processor (for example Cortex-A53).
To specify a target execution state (AArch64 or AArch32) with armclang, use the mandatory
--target command-line option:
Supported targets include:
- Generates A64 instructions for AArch64 state. Implies
- Generates A32 and T32 instructions for AArch32 state. Must be used in
-march(to target an architecture) or
-mcpu(to target a processor).
To generate generic code that runs on any processor with a particular
architecture, use the
-march option. Use the
-march=list option to see all
To optimize your code for a particular processor, use the
-mcpu option. Use the
-mcpu=list option to see all supported processors.
armclangoptions. For all of the other tools, such as armasm and armlink, use the
--cpuoption to specify target processors and architectures.