6.22 Inline assembler intermediate operands in C and C++ code
A C or C++ constant expression of an integral type might be used as an immediate value in an inline assembly language instruction.
A constant expression that specifies an immediate shift must have a value that lies in the
range defined in the ARM Architecture Reference Manual, as appropriate for the
A constant expression that specifies an immediate offset for a memory or coprocessor data
transfer instruction must have a value with suitable alignment.