When setting optimization to no optimization, MicroBlaze does not jump to the interrupt handler. MicroBlaze does jump to the interrupt handler when setting optimization to 2. MicroBlaze v4.0 does not experience this problem.
This bug has been fixed for MicroBlaze v6.00.a, available in EDK 9.1i.
This problem was caused by invalid instructions in EX that erroneously affected interrupt handling.