15.2.22 No_fpu Function Attribute

The no_fpu attribute must be used in conjunction with the interrupt (priority) attribute and specifies that the interrupt service routine (ISR) should not preserve the Floating-Point Unit (FPU) context. In addition it causes the compiler to insert code into the ISR that will disable the FPU, by clearing the CU1 bit of the CP0 Status register. If your ISR attempts to perform floating-point operations while the FPU is disabled, the device will trigger a general exception. This also means that any higher-priority ISR interrupting an ISR using the no_fpu attribute must re-enable the FPU if floating-point operations are required. The ISR restores the original value of the status register before returning from the interrupt. For example:
void __attribute__((interrupt(IPL7SRS), vector(_CORE_TIMER_VECTOR), no_fpu)) isr(void);