You copied the Doc URL to your clipboard.

A32 and T32 instruction sets

A32 instructions are 32 bits wide. T32 instructions are 32-bits wide with 16-bit instructions in some architectures.

The A32 instruction set provides a comprehensive range of operations.

Most of the functionality of the 32-bit A32 instruction set is available, but some operations require more instructions. The T32 instruction set provides better code density, at the expense of performance.

The 32-bit and 16-bit T32 instructions together provide almost exactly the same functionality as the A32 instruction set. The T32 instruction set achieves the high performance of A32 code along with the benefits of better code density.

ARMv6-M, ARMv7-M, ARMv8-M.baseline, and ARMv8-M.mainline do not support the A32 instruction set. On these architectures, instructions must not attempt to change to A32 state. ARMv7-A, ARMv7-R, ARMv8-A, and ARMv8-R support both A32 and T32 instruction sets.


With the exception of ARMv6-M and ARMv6S-M, assembling code for architectures earlier than ARMv7 is not supported in ARM® Compiler 6.

In ARMv8, the A32 and T32 instruction sets are largely unchanged from ARMv7. They are only available when the processor is in AArch32 state. The main changes in ARMv8 are the addition of a few new instructions and the deprecation of some behavior, including many uses of the IT instruction.

ARMv8 also defines an optional Crypto Extension. This extension provides cryptographic and hash instructions in the A32 instruction set.


  • The term A32 is an alias for the ARM instruction set.
  • The term T32 is an alias for the Thumb® instruction set.