8.5.3 Mips16 Option

The -mips16 option generates MIPS16 code, suitable for MIPS16 or microMIPS Instruction Set Architecture (ISA) mode. This option is 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.