Chapter 5. An Introduction to the ARMv8 Instruction Sets

One of the most significant changes introduced in the ARMv8 architecture is the addition of a 64-bit instruction set. This set complements the existing 32-bit instruction set architecture. This addition provides access to 64-bit wide integer registers and data operations, and the ability to use 64-bit sized pointers to memory. The new instructions are known as A64 and execute in the AArch64 execution state. ARMv8 also includes the original ARM instruction set, now called A32, and the Thumb (T32) instruction set. Both A32 and T32 execute in AArch32 state, and provide backward compatibility with ARMv7.

Although ARMv8-A provides backward compatibility with the 32-bit ARM Architectures, the A64 instruction set is separate and distinct from the older ISA and is encoded differently. A64 adds some additional capabilities while also removing other features that would potentially limit the speed or energy efficiency of high performance implementations. The ARMv8 architecture includes some enhancements to the 32-bit instruction sets (A32 and T32) as well. However, code that makes use of such features is not compatible with older ARMv7 implementations. Instruction opcodes in the A64 instruction set, however, are still 32 bits long, not 64 bits.

Programmers seeking a more detailed description of A64 assembly language can also refer to the ARM® Compiler armasm Reference Guide v6.01.

Copyright © 2015 ARM. All rights reserved.ARM DEN0024A
Non-ConfidentialID050815