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);