14.2 Register Conventions

The 16 general-purpose registers in the Arm® Cortex®-Mx core of PIC32C devices are shown in the table below. Certain registers are assigned to a dedicated purpose by the compiler, or have synonyms indicating their usage in the procedure call standard. The special names for use in assembly code and for dedicated usage, when applicable, are indicated.

Table 14-1. Register Conventions
Register NumberSpecial
R0-R3General purpose registers/function arguments and return value registers.


General purpose registers/variable registers.


General purpose registers/platform register.


General purpose registers/variable registers.

R11FPFrame pointer.
R12IPIntra-procedure-call scratch register.
R13SPStack pointer.
R14LRLink register.
R15PCProgram counter.
Note: The special registers R7 and R11 may be available for general-purpose use, if not required for their dedicated use. Note also that all register names, including synonyms and special names, are case-insensitive in assembly language.