The Armv8-A architecture is the latest generation Arm architecture targeted at the Applications ('A') profile.
It introduces the ability to use 64-bit and 32-bit Execution states, known as AArch64 and AArch32 respectively. The AArch64 Execution state supports the A64 instruction set, holds addresses in 64-bit registers and allows instructions in the base instruction set to use 64-bit registers for their processing. The AArch32 Execution state is a 32-bit Execution state that preserves backwards compatibility with the Armv7-A architecture and enhances that profile so that it can support some features included in the AArch64 state. It supports the T32 and A32 instruction sets.
Armv8-A is the only profile that supports AArch64 execution, where the relationship between AArch64 and AArch32 is known as interprocessing. In addition, the Armv8-A architecture allows different levels of AArch64 and AArch32 support, for example:
- AArch64 only designs.
- AArch64 designs that also support AArch32 operating systems/virtual machines.
- AArch64 support with AArch32 at (unprivileged) application level only.