diff options
Diffstat (limited to 'src/arch')
-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); |