Keil™, An ARM® Company

RealView Assembler User's Guide

ARM, Thumb, Thumb‑2, and Thumb‑2EE instruction sets

2.2.2. ARM, Thumb, Thumb‑2, and Thumb‑2EE instruction sets

The ARM instruction set is a set of 32‑bit instructions providing a comprehensive range of operations.

ARMv4T and above define a 16‑bit instruction set called the Thumb instruction set. Most of the functionality of the 32‑bit ARM instruction set is available, but some operations require more instructions. The Thumb instruction set provides better code density, at the expense of inferior performance.

ARMv6T2 defines Thumb‑2, a major enhancement of the Thumb instruction set. Thumb‑2 provides almost exactly the same functionality as the ARM instruction set. It has both 16‑bit and 32‑bit instructions, and achieves ARM‑like performance with Thumb‑like code density.

In ARMv6, and above, all ARM and Thumb instructions are little‑endian. In ARMv6T2, and above, all Thumb‑2 instruction fetches are little‑endian.

ARMv7 defines the Thumb‑2 Execution Environment (Thumb‑2EE). The Thumb‑2EE instruction set is based on Thumb‑2, with some changes and additions to make it a better target for dynamically generated code, that is, code compiled on the device either shortly before or during execution.

For more information, see Instruction set overview.

Copyright © 2007 ARM Limited. All rights reserved.ARM DUI 0379A