5.7.1.19 Mips16/Mips16e Options

The -mips16 option generates MIPS16 code, suitable for MIPS16 or microMIPS Instruction Set Architecture (ISA) mode. The -mips16e option is equivalent and is provided for backwards compatibility with older toolchains. These options are only available in the PRO edition.

The -mno-mips16 option (note the slightly different 'no' form of this option, which includes an additional 'm' character) will have all code built using the MIPS32 ISA.

On PIC32M devices, bit 0 of the program counter indicates the ISA mode. When this bit is clear, the device is running in MIPS32 mode. When this bit is set, the device is running in either MIPS16 or microMIPS mode, depending on the core of the selected device. This means that if you execute a hard-coded jump, bit 0 must be set to the appropriate value for the destination function. Hard-coded jumps are most commonly seen when jumping from a bootloader to a bootloaded application.