+ a = OP[0];
+ switch (a)
+ {
+ case TRAP_BREAKPOINT:
+ tmp = (PC);
+ JMP(tmp);
+ trace_output_void (sd);
+ EXCEPTION (SIM_SIGTRAP);
+ break;
+ case SIGTRAP: /* supervisor call ? */
+ trace_output_void (sd);
+ sim_engine_halt (sd, cpu, NULL, PC, sim_exited, GPR (2));
+ break;
+ default:
+ cb->error (cb, "Unknown syscall %d", FUNC);
+ break;
+ }