From: Gabe Black Date: Wed, 2 Jun 2010 17:58:11 +0000 (-0500) Subject: ARM: Ignore writing a bad mode to CPSR with MSR. X-Git-Tag: stable_2012_02_02~1176 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5943f0fc84ba51d8341a97437b798225fd36da56;p=gem5.git ARM: Ignore writing a bad mode to CPSR with MSR. --- diff --git a/src/arch/arm/insts/static_inst.hh b/src/arch/arm/insts/static_inst.hh index c26053cef..33453bec6 100644 --- a/src/arch/arm/insts/static_inst.hh +++ b/src/arch/arm/insts/static_inst.hh @@ -177,7 +177,11 @@ class ArmStaticInst : public StaticInst if (bits(byteMask, 0)) { if (privileged) { 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) bitMask = bitMask | (1 << 5);