6.3 __arm_mcr, __arm_mcr2, __arm_mcrr, __arm_mcrr2 Intrinsic Function
Inserts a coprocessor write instruction, MCR
,
MCR2
, MCRR
, or
MCRR2
. The parameters
coproc
, opc1
,
opc2
, CRn
,
and CRm
will be encoded in the instruction and must
therefore be constants.
These intrinsic functions are defined according to the Arm C Language Extensions (ACLE).
Suggested Replacement
__builtin_arm_mcr
__builtin_arm_mcr2
__builtin_arm_mcrr
__builtin_arm_mcrr2
Caveats
None.
Examples
Consider migrating IAR code such
as:
void __arm_mcr(__cpid coproc, __cpopc opc1, __ul src, __cpreg CRn, __cpreg CRm, __cpopc opc2);
void __arm_mcr2(__cpid coproc, __cpopc opc1, __ul src, __cpreg CRn, __cpreg CRm, __cpopc opc2);
void __arm_mcrr(__cpid coproc, __cpopc opc1, unsigned long long src, __cpreg CRm);
void __arm_mcrr2(__cpid coproc, __cpopc opc1, unsigned long long src, __cpreg CRm);
to
MPLAB XC codes similar
to:void __builtin_arm_mcr(__cpid coproc, __cpopc opc1, __ul src, __cpreg CRn, __cpreg CRm, __cpopc opc2);
void __builtin_arm_mcr2(__cpid coproc, __cpopc opc1, __ul src, __cpreg CRn, __cpreg CRm, __cpopc opc2);
void __builtin_arm_mcrr(__cpid coproc, __cpopc opc1, unsigned long long src, __cpreg CRm);
void __builtin_arm_mcrr2(__cpid coproc, __cpopc opc1, unsigned long long src, __cpreg CRm);
Further Information
None.