summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAli Saidi <Ali.Saidi@ARM.com>2010-11-15 14:04:03 -0600
committerAli Saidi <Ali.Saidi@ARM.com>2010-11-15 14:04:03 -0600
commit265e145db2d3675d2ac25fac975a21701f92fe50 (patch)
treecbe8540f7c0006eb3e9338287b518701a2bf964e
parent46472279c0eac0bb0d9c511adbf57686cc2eadf3 (diff)
downloadgem5-265e145db2d3675d2ac25fac975a21701f92fe50.tar.xz
ARM: Do something predictable for an UNPREDICTABLE branch.
-rw-r--r--src/arch/arm/types.hh4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/arch/arm/types.hh b/src/arch/arm/types.hh
index a679686c7..e270813ef 100644
--- a/src/arch/arm/types.hh
+++ b/src/arch/arm/types.hh
@@ -333,6 +333,10 @@ namespace ArmISA
nextThumb(false);
} else {
warn("Bad interworking branch address %#x.\n", newPC);
+ // This state is UNPREDICTABLE in the ARM architecture
+ // The easy thing to do is just mask off the bit and
+ // stay in the current mode, so we'll do that.
+ newPC &= ~mask(2);
}
}
npc(newPC);