ARM: Ignore writing a bad mode to CPSR with MSR.

This commit is contained in:
Gabe Black 2010-06-02 12:58:11 -05:00
parent ba33db8fd6
commit 5943f0fc84

View file

@ -177,7 +177,11 @@ class ArmStaticInst : public StaticInst
if (bits(byteMask, 0)) { if (bits(byteMask, 0)) {
if (privileged) { if (privileged) {
bitMask = bitMask | mask(7, 6); bitMask = bitMask | mask(7, 6);
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");
}
} }
if (affectState) if (affectState)
bitMask = bitMask | (1 << 5); bitMask = bitMask | (1 << 5);