Registers such as
and the NZCV flags in the
CPSR must be used with caution.
If C or C++ expressions are used, these might be used as temporary
registers and NZCV flags might be corrupted by the compiler when
evaluating the expression.
cannot be explicitly read or modified using inline assembly code because
there is no direct access to any physical registers. However, the
__return_address can be used to read these