This pragma switches code generation to the Thumb instruction
set. It overrides the
--arm compiler option.
If you are compiling code for a Thumb processor without Thumb-2 technology and using VFP, any function containing floating-point operations is compiled for ARM.
#pragma push and
#pragma pop on
#pragma thumb outside of functions,
but not inside of them, to change state. This is because
#pragma thumb only apply at
the function level. Instead, put them around the function definition.