Changing betweenAArch64 and AArch32 states
The processor must be in the correct execution state for the instructions it is executing.
A processor that is executing A64 instructions is operatingin AArch64 state. In this state, the instructions can access boththe 64-bit and 32-bit registers.
A processor that is executing A32 or T32 instructions is operatingin AArch32 state. In this state, the instructions can only accessthe 32-bit registers, and not the 64-bit registers.
A processor based on ARMv8 can run applications built forAArch32 and AArch64 states but a change between AArch32 and AArch64states can only happen at exception boundaries.
ARM Compiler toolchain builds images for either the AArch32state or AArch64 state. Therefore, an image built with ARM Compilertoolchain can either contain only A32 and T32 instructions or onlyA64 instructions.
A processor can only execute instructions from the instructionset that matches its current execution state. A processor in AArch32state cannot execute A64 instructions, and a processor in AArch64state cannot execute A32 or T32 instructions. You must ensure thatthe processor never receives instructions from the wrong instructionset for the current execution state.