default:
{
MOXIE_TRACE_INSN ("SIGILL3");
- sim_engine_halt (sd, NULL, NULL, pc, sim_stopped, SIM_SIGILL);
+ sim_engine_halt (sd, scpu, NULL, pc, sim_stopped, SIM_SIGILL);
break;
}
}
break;
default:
MOXIE_TRACE_INSN ("SIGILL2");
- sim_engine_halt (sd, NULL, NULL, pc, sim_stopped, SIM_SIGILL);
+ sim_engine_halt (sd, scpu, NULL, pc, sim_stopped, SIM_SIGILL);
break;
}
}
case 0x00: /* bad */
opc = opcode;
MOXIE_TRACE_INSN ("SIGILL0");
- sim_engine_halt (sd, NULL, NULL, pc, sim_stopped, SIM_SIGILL);
+ sim_engine_halt (sd, scpu, NULL, pc, sim_stopped, SIM_SIGILL);
break;
case 0x01: /* ldi.l (immediate) */
{
{
opc = opcode;
MOXIE_TRACE_INSN ("SIGILL0");
- sim_engine_halt (sd, NULL, NULL, pc, sim_stopped, SIM_SIGILL);
+ sim_engine_halt (sd, scpu, NULL, pc, sim_stopped, SIM_SIGILL);
break;
}
case 0x19: /* jsr */
{
case 0x1: /* SYS_exit */
{
- sim_engine_halt (sd, NULL, NULL, pc, sim_exited,
+ sim_engine_halt (sd, scpu, NULL, pc, sim_exited,
cpu.asregs.regs[2]);
break;
}
break;
case 0x35: /* brk */
MOXIE_TRACE_INSN ("brk");
- sim_engine_halt (sd, NULL, NULL, pc, sim_stopped, SIM_SIGTRAP);
+ sim_engine_halt (sd, scpu, NULL, pc, sim_stopped, SIM_SIGTRAP);
pc -= 2; /* Adjust pc */
break;
case 0x36: /* ldo.b */
default:
opc = opcode;
MOXIE_TRACE_INSN ("SIGILL1");
- sim_engine_halt (sd, NULL, NULL, pc, sim_stopped, SIM_SIGILL);
+ sim_engine_halt (sd, scpu, NULL, pc, sim_stopped, SIM_SIGILL);
break;
}
}
cpu.asregs.insts++;
pc += 2;
cpu.asregs.regs[PC_REGNO] = pc;
+
+ if (sim_events_tick (sd))
+ sim_events_process (sd);
+
} while (1);
}