sim: m68hc11: switch to common sim_resume
authorMike Frysinger <vapier@gentoo.org>
Tue, 9 Jun 2015 15:44:13 +0000 (23:44 +0800)
committerMike Frysinger <vapier@gentoo.org>
Thu, 11 Jun 2015 14:17:54 +0000 (10:17 -0400)
This code already matched the common sim reusme logic, so we can simply
drop it and pull in the common code.

sim/m68hc11/ChangeLog
sim/m68hc11/Makefile.in
sim/m68hc11/interp.c

index ac228b8e6f1075749720b760054d56dfd4461e2a..8621ce4aa58eea368aead46afcd1bf514ef6baf8 100644 (file)
@@ -1,3 +1,8 @@
+2015-06-11  Mike Frysinger  <vapier@gentoo.org>
+
+       * Makefile.in (SIM_OBJS): Add sim-resume.o
+       * interp.c (has_stepped, sim_resume): Delete.
+
 2015-06-11  Mike Frysinger  <vapier@gentoo.org>
 
        * interp.c (INLINE): Delete define.
index 9b931a19958122e22bdb3a46a1c4c2b53cf3d6a1..98b811a26487e03dfc113e633de9ba860a9bde60 100644 (file)
@@ -25,7 +25,8 @@ SIM_OBJS = $(M68HC11_OBJS) \
        sim-load.o \
        sim-hload.o \
        sim-stop.o \
-       sim-reason.o
+       sim-reason.o \
+       sim-resume.o
 
 SIM_PROFILE= -DPROFILE=1 -DWITH_PROFILE=-1
 # We must use 32-bit addresses to support memory bank switching.
index e9f3aab6857b1ed91ad9499730d099f1aa123fa0..14a823170c817cadae1b430b4665d0d2b9f6faab 100644 (file)
@@ -699,79 +699,3 @@ sim_store_register (SIM_DESC sd, int rn, unsigned char *memory, int length)
 
   return 2;
 }
-
-/* Halt the simulator after just one instruction */
-
-static void
-has_stepped (SIM_DESC sd,
-            void *data)
-{
-  ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER);
-  sim_engine_halt (sd, NULL, NULL, NULL_CIA, sim_stopped, SIM_SIGTRAP);
-}
-
-
-/* Generic resume - assumes the existance of sim_engine_run */
-
-void
-sim_resume (SIM_DESC sd,
-           int step,
-           int siggnal)
-{
-  sim_engine *engine = STATE_ENGINE (sd);
-  jmp_buf buf;
-  int jmpval;
-
-  ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER);
-
-  /* we only want to be single stepping the simulator once */
-  if (engine->stepper != NULL)
-    {
-      sim_events_deschedule (sd, engine->stepper);
-      engine->stepper = NULL;
-    }
-  sim_module_resume (sd);
-
-  /* run/resume the simulator */
-  engine->jmpbuf = &buf;
-  jmpval = setjmp (buf);
-  if (jmpval == sim_engine_start_jmpval
-      || jmpval == sim_engine_restart_jmpval)
-    {
-      int last_cpu_nr = sim_engine_last_cpu_nr (sd);
-      int next_cpu_nr = sim_engine_next_cpu_nr (sd);
-      int nr_cpus = sim_engine_nr_cpus (sd);
-
-      sim_events_preprocess (sd, last_cpu_nr >= nr_cpus, next_cpu_nr >= nr_cpus);
-      if (next_cpu_nr >= nr_cpus)
-       next_cpu_nr = 0;
-
-      /* Only deliver the siggnal ]sic] the first time through - don't
-         re-deliver any siggnal during a restart. */
-      if (jmpval == sim_engine_restart_jmpval)
-       siggnal = 0;
-
-      /* Install the stepping event after having processed some
-         pending events.  This is necessary for HC11/HC12 simulator
-         because the tick counter is incremented by the number of cycles
-         the instruction took.  Some pending ticks to process can still
-         be recorded internally by the simulator and sim_events_preprocess
-         will handle them.  If the stepping event is inserted before,
-         these pending ticks will raise the event and the simulator will
-         stop without having executed any instruction.  */
-      if (step)
-        engine->stepper = sim_events_schedule (sd, 0, has_stepped, sd);
-
-#ifdef SIM_CPU_EXCEPTION_RESUME
-      {
-       sim_cpu* cpu = STATE_CPU (sd, next_cpu_nr);
-       SIM_CPU_EXCEPTION_RESUME(sd, cpu, siggnal);
-      }
-#endif
-
-      sim_engine_run (sd, next_cpu_nr, nr_cpus, siggnal);
-    }
-  engine->jmpbuf = NULL;
-
-  sim_module_suspend (sd);
-}