summaryrefslogtreecommitdiff
path: root/sim/m32r/sem-switch.c
diff options
context:
space:
mode:
authorJason Molenda <jmolenda@apple.com>1999-10-05 23:13:16 +0000
committerJason Molenda <jmolenda@apple.com>1999-10-05 23:13:16 +0000
commit9fcdce6ddf6ad9aad821d2513e8d526708aa8cb5 (patch)
treea29d9f1111e6273070daee2aba0ea5e1b22f4bd0 /sim/m32r/sem-switch.c
parentd0b91dde4bfed920418f26b115509ca0ca404abd (diff)
downloadgdb-9fcdce6ddf6ad9aad821d2513e8d526708aa8cb5.tar.gz
import gdb-1999-10-04 snapshot
Diffstat (limited to 'sim/m32r/sem-switch.c')
-rw-r--r--sim/m32r/sem-switch.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/sim/m32r/sem-switch.c b/sim/m32r/sem-switch.c
index cd7e8da2332..1b0b4470401 100644
--- a/sim/m32r/sem-switch.c
+++ b/sim/m32r/sem-switch.c
@@ -204,13 +204,15 @@ SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case)
vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
{
-#if WITH_SCACHE
- /* Update the recorded pc in the cpu state struct. */
+ /* Update the recorded pc in the cpu state struct.
+ Only necessary for WITH_SCACHE case, but to avoid the
+ conditional compilation .... */
SET_H_PC (pc);
-#endif
- sim_engine_invalid_insn (current_cpu, pc);
- sim_io_error (CPU_STATE (current_cpu), "invalid insn not handled\n");
- /* NOTREACHED */
+ /* Virtual insns have zero size. Overwrite vpc with address of next insn
+ using the default-insn-bitsize spec. When executing insns in parallel
+ we may want to queue the fault and continue execution. */
+ vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+ vpc = sim_engine_invalid_insn (current_cpu, pc, vpc);
}
#undef FLD