1.4.2. The Thumb instruction set

The Thumb instruction set is a subset of the most commonly
used 32-bit ARM instructions. Thumb instructions are 16 bits long,
and have a corresponding 32-bit ARM instruction that has the same
effect on the processor model. Thumb instructions operate with the
standard ARM register configuration, enabling excellent interoperability
between ARM and Thumb states.

Thumb has all the advantages of a 32-bit core:

32-bit address
space

32-bit registers

32-bit shifter and Arithmetic Logic Unit (ALU)

32-bit memory transfer.

Thumb therefore offers a long branch range, powerful arithmetic
operations, and a large address space.

The availability of both 16-bit Thumb and 32-bit ARM instruction
sets, gives you the flexibility to emphasize performance or code
size on a subroutine level, according to the requirements of their
applications. For example, you can code critical loops for applications
such as fast interrupts and DSP algorithms using the full ARM instruction
set, and linked with Thumb code.