8.3.2. ARM Compiler 6 options for ARMv8-A

It is important to supply the correct options to the compiler to allow code generation or an ARMv8-A target, . The following are options are available, use:


to generate code for the specified target.

The --target option is mandatory and has no default. You must always specify a target architecture.




triple has the form architecture-vendor-OS-abi.

Supported targets are as follows:


The AArch64 state of the ARMv8-A architecture.


The AArch32 state of the ARMv8-A architecture.


The ARMv7-A architecture.

For example:



The --target option is an armclang option. For all of the other tools, such as armasm and armlink, use the --cpu and --fpu options to specify target processors and architectures.

Use the --mcpu option to enable code generation for a specific ARM processor. See

  -mcpu=<processor>+(no)crc    - enable or disable crc instructions
  -mcpu=<processor>+(no)crypto - enable or disable crytographic extension
  -mcpu=<processor>+(no)fp     - enable or disable the floating point extension
  -mcpu=<processor>+(no)simd   - enable or disable the NEON extension

where <processor> is either cortex-a53 or cortex-a57.

Compiling code for AArch32 produces very similar code to compiling for ARMv7-A. Although AArch32 has some new instructions (such as Load-Acquire and Store-Release), and the SWP instruction has been removed, these are not instructions generally generated by a compiler.

Compiling with the +nosimd option avoids any use of NEON/floating-point instructions or registers. This might be useful for systems in which the NEON unit is not powered up or for particular code segments, for example reset code and exception handlers, in which it is important to ensure that NEON/floating-point is not used. The default is for no cryptographic extension, but with NEON.

Copyright © 2015 ARM. All rights reserved.ARM DEN0024A