aboutsummaryrefslogtreecommitdiff
path: root/sim/arm/armemu.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2000-05-30 17:13:37 +0000
committerNick Clifton <nickc@redhat.com>2000-05-30 17:13:37 +0000
commitc1a72ffdd6aecb2880a7ea3a00234fd48142074c (patch)
tree856dd54c68fc6e81d5adcde3db2043fd1f859e26 /sim/arm/armemu.c
parentac73857d8010f466a881cca261aec00a13e7512d (diff)
downloadgdb-c1a72ffdd6aecb2880a7ea3a00234fd48142074c.zip
gdb-c1a72ffdd6aecb2880a7ea3a00234fd48142074c.tar.gz
gdb-c1a72ffdd6aecb2880a7ea3a00234fd48142074c.tar.bz2
Add support for v4 SystemMode.
Diffstat (limited to 'sim/arm/armemu.c')
-rw-r--r--sim/arm/armemu.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sim/arm/armemu.c b/sim/arm/armemu.c
index d890cda..acbcb75 100644
--- a/sim/arm/armemu.c
+++ b/sim/arm/armemu.c
@@ -2864,6 +2864,9 @@ ARMul_Emulate26 (register ARMul_State * state)
if (state->Emulate == ONCE)
state->Emulate = STOP;
+ /* If we have changed mode, allow the PC to advance before stopping. */
+ else if (state->Emulate == CHANGEMODE)
+ continue;
else if (state->Emulate != RUN)
break;
}
@@ -2872,7 +2875,8 @@ ARMul_Emulate26 (register ARMul_State * state)
state->decoded = decoded;
state->loaded = loaded;
state->pc = pc;
- return (pc);
+
+ return pc;
} /* Emulate 26/32 in instruction based mode */