180c180,184
< bitMask = bitMask | mask(5);
---
> if (!badMode((OperatingMode)(val & mask(5)))) {
> bitMask = bitMask | mask(5);
> } else {
> warn_once("Ignoring write of bad mode to CPSR.\n");
> }