The constant in an instruction with a constant operand is not limited to the values permitted by the instruction. Instead, the compiler translates the instruction into a sequence of instructions with the same effect. For example:
might be translated into:
Another example of expansion possibility is:
With the exception of coprocessor instructions, all ARM instructions
with a constant operand support instruction expansion. In addition,
MUL instruction can be expanded into a sequence of
adds and shifts when the third operand is a constant.
The effect of updating the
CPSR by an expanded
arithmetic instructions set the NZCV flags correctly
set the NZ flags correctly
do not change the V flag
corrupt the C flag.