ARM > Introduction to ARM > Instruction Sets
Remarks
Thumb instructions are a 16-bit compressed form of the most commonly used ARM instructions. Instructions are (can be) dynamically decompressed in the instruction pipeline. Thumb increases code density (commonly by 25%) at the cost of reduced execution speed.
Java bytecodes are 8-bit instructions designed to be architecture-independent. Jazelle DBX transparently executes most bytecodes in hardware and some in highly optimised ARM code. This is due to a trade-off between hardware complexity (power consumption and silicon area) and speed.
Thumb-2 is the progression of Thumb (strictly it is Thumb v3). It improves performance whilst keeping the code density tight by allowing a mixture of 16- and 32-bit instructions.