2001-02-19 Ben Elliston <bje@redhat.com>
* sim-main.h (sim_monitor): Return an int. * interp.c (sim_monitor): Add return values. (signal_exception): Handle error conditions from sim_monitor.
This commit is contained in:
parent
9b0c4aebb4
commit
8030f85769
|
@ -1,3 +1,9 @@
|
||||||
|
2001-02-19 Ben Elliston <bje@redhat.com>
|
||||||
|
|
||||||
|
* sim-main.h (sim_monitor): Return an int.
|
||||||
|
* interp.c (sim_monitor): Add return values.
|
||||||
|
(signal_exception): Handle error conditions from sim_monitor.
|
||||||
|
|
||||||
2001-02-08 Ben Elliston <bje@redhat.com>
|
2001-02-08 Ben Elliston <bje@redhat.com>
|
||||||
|
|
||||||
* sim-main.c (load_memory): Pass cia to sim_core_read* functions.
|
* sim-main.c (load_memory): Pass cia to sim_core_read* functions.
|
||||||
|
|
|
@ -1128,7 +1128,7 @@ Recognized firmware names are: `idt', `pmon', `lsipmon', and `none'.\n",
|
||||||
|
|
||||||
|
|
||||||
/* Simple monitor interface (currently setup for the IDT and PMON monitors) */
|
/* Simple monitor interface (currently setup for the IDT and PMON monitors) */
|
||||||
void
|
int
|
||||||
sim_monitor (SIM_DESC sd,
|
sim_monitor (SIM_DESC sd,
|
||||||
sim_cpu *cpu,
|
sim_cpu *cpu,
|
||||||
address_word cia,
|
address_word cia,
|
||||||
|
@ -1358,11 +1358,10 @@ sim_monitor (SIM_DESC sd,
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
sim_io_error (sd, "TODO: sim_monitor(%d) : PC = 0x%s\n",
|
/* Unknown reason. */
|
||||||
reason, pr_addr(cia));
|
return 0;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
return;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Store a word into memory. */
|
/* Store a word into memory. */
|
||||||
|
@ -1713,7 +1712,10 @@ signal_exception (SIM_DESC sd,
|
||||||
perform this magic. */
|
perform this magic. */
|
||||||
if ((instruction & RSVD_INSTRUCTION_MASK) == RSVD_INSTRUCTION)
|
if ((instruction & RSVD_INSTRUCTION_MASK) == RSVD_INSTRUCTION)
|
||||||
{
|
{
|
||||||
sim_monitor (SD, CPU, cia, ((instruction >> RSVD_INSTRUCTION_ARG_SHIFT) & RSVD_INSTRUCTION_ARG_MASK) );
|
int reason = (instruction >> RSVD_INSTRUCTION_ARG_SHIFT) & RSVD_INSTRUCTION_ARG_MASK;
|
||||||
|
if (!sim_monitor (SD, CPU, cia, reason))
|
||||||
|
sim_io_error (sd, "sim_monitor: unhandled reason = %d, pc = 0x%s\n", reason, pr_addr (cia));
|
||||||
|
|
||||||
/* NOTE: This assumes that a branch-and-link style
|
/* NOTE: This assumes that a branch-and-link style
|
||||||
instruction was used to enter the vector (which is the
|
instruction was used to enter the vector (which is the
|
||||||
case with the current IDT monitor). */
|
case with the current IDT monitor). */
|
||||||
|
|
|
@ -690,7 +690,7 @@ void decode_coproc PARAMS ((SIM_DESC sd, sim_cpu *cpu, address_word cia, unsigne
|
||||||
#define DecodeCoproc(instruction) \
|
#define DecodeCoproc(instruction) \
|
||||||
decode_coproc (SD, CPU, cia, (instruction))
|
decode_coproc (SD, CPU, cia, (instruction))
|
||||||
|
|
||||||
void sim_monitor (SIM_DESC sd, sim_cpu *cpu, address_word cia, unsigned int arg);
|
int sim_monitor (SIM_DESC sd, sim_cpu *cpu, address_word cia, unsigned int arg);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue