1.43 -marm

Requests that the compiler targets the A32 instruction set.

Most Arm®v7‑A (and earlier) processors support two instruction sets: the A32 instruction set (formerly ARM), and the T32 instruction set (formerly Thumb). Armv8‑A processors in AArch32 state continue to support these two instruction sets, but with additional instructions. Armv8‑A processors additionally introduce the A64 instruction set, used in AArch64 state.

Different architectures support different instruction sets:

  • Armv8‑A processors in AArch64 state execute A64 instructions.
  • Armv8‑A processors in AArch32 state, in addition to Armv7 and earlier A- and R- profile processors execute A32 and T32 instructions.
  • M-profile processors execute T32 instructions.


This option is only valid for targets that support the A32 instruction set. For example, the -marm option is not valid for targets in AArch64 state. The compiler ignores the -marm option and generates a warning when compiling for a target in AArch64 state.


The default for all targets that support A32 instructions is -marm.

Non-ConfidentialPDF file icon PDF version100067_0609_00_en
Copyright © 2014–2017 Arm Limited (or its affiliates). All rights reserved.