diff options
author | Ali Saidi <Ali.Saidi@ARM.com> | 2010-11-15 14:04:03 -0600 |
---|---|---|
committer | Ali Saidi <Ali.Saidi@ARM.com> | 2010-11-15 14:04:03 -0600 |
commit | 265e145db2d3675d2ac25fac975a21701f92fe50 (patch) | |
tree | cbe8540f7c0006eb3e9338287b518701a2bf964e /src | |
parent | 46472279c0eac0bb0d9c511adbf57686cc2eadf3 (diff) | |
download | gem5-265e145db2d3675d2ac25fac975a21701f92fe50.tar.xz |
ARM: Do something predictable for an UNPREDICTABLE branch.
Diffstat (limited to 'src')
-rw-r--r-- | src/arch/arm/types.hh | 4 |
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); |