Msg/IntrClobberedRegs
From CPUlator Wiki
< Msg
An interrupt handler should not modify any registers that are used outside an interrupt context (e.g., et on Nios II), because interrupts can occur at any time. Clobbering a register means overwriting its value. This message tells you that there were registers that were changed inside the interrupt handler.
The rules for interrupt handlers are much more stringent than for function calls, because a parent function has the opportunity to prepare for a child function to clobber caller-saved registers, which does not happen for interrupts. From the perspective of the non-interrupt code, any register that is modified by an interrupt handler can have its value lost at any time in the program.
Debugging
See Msg/ClobberedRegs, which is a similar warning for functions.
Implementation
The simulator identifies interrupts and return-from-interrupt instructions executed at runtime. It records the values of registers at interrupts, and verifies that they haven't changed when executing the matching interrupt return. This warning is generated at the interrupt return instruction.
Disabling this message
This debugging check can be disabled in the Debugging Checks section of the Settings box: Interrupt clobbered a register.