Thumb-2 technology is a major enhancement to the Thumb instruction set. It adds 32-bit instructions that can be freely intermixed with 16-bit instructions in a program.
Thumb-2 technology is available in the ARMv6T2 and later architectures. However, the ARMv6-M architecture only uses a limited set of 32-bit Thumb instructions.
The additional 32-bit encoded Thumb instructions enable Thumb to cover most of the functionality of the ARM instruction set. The availability of 16-bit and 32-bit instructions enables Thumb-2 technology to combine the code density of earlier versions of Thumb with the performance of the ARM instruction set.
An important difference between the Thumb and ARM instruction sets is that most Thumb
instructions are unconditional, whereas most ARM instructions can be conditional. Thumb-2
technology introduces a conditional execution instruction,
IT, that is a
logical if-then-else operation that you can apply to subsequent instructions to make them
For more information, see the Technical Reference Manual for your processor.