Line 566... |
Line 566... |
/* Set debug unit to handle TRAP exceptions */
|
/* Set debug unit to handle TRAP exceptions */
|
(void) or1ksim_read_spr (OR32_SPR_DSR, &dsr);
|
(void) or1ksim_read_spr (OR32_SPR_DSR, &dsr);
|
dsr |= OR32_SPR_DSR_TE;
|
dsr |= OR32_SPR_DSR_TE;
|
(void) or1ksim_write_spr (OR32_SPR_DSR, dsr);
|
(void) or1ksim_write_spr (OR32_SPR_DSR, dsr);
|
|
|
/* Set the single step trigger in Debug Mode Register 1 if we are stepping. */
|
/* Set the single step trigger in Debug Mode Register 1 if we are
|
|
stepping. Otherwise clear it! */
|
if (step)
|
if (step)
|
{
|
{
|
(void) or1ksim_read_spr (OR32_SPR_DMR1, &dmr1);
|
(void) or1ksim_read_spr (OR32_SPR_DMR1, &dmr1);
|
dmr1 |= OR32_SPR_DMR1_ST;
|
dmr1 |= OR32_SPR_DMR1_ST;
|
(void) or1ksim_write_spr (OR32_SPR_DMR1, dmr1);
|
(void) or1ksim_write_spr (OR32_SPR_DMR1, dmr1);
|
}
|
}
|
|
else
|
|
{
|
|
(void) or1ksim_read_spr (OR32_SPR_DMR1, &dmr1);
|
|
dmr1 &= ~OR32_SPR_DMR1_ST;
|
|
(void) or1ksim_write_spr (OR32_SPR_DMR1, dmr1);
|
|
}
|
|
|
/* Set the NPC if it has changed */
|
/* Set the NPC if it has changed */
|
(void) or1ksim_read_reg (OR32_NPC_REGNUM, &npc);
|
(void) or1ksim_read_reg (OR32_NPC_REGNUM, &npc);
|
|
|
if (npc != sd->resume_npc)
|
if (npc != sd->resume_npc)
|
Line 601... |
Line 608... |
break;
|
break;
|
|
|
case OR1KSIM_RC_BRKPT:
|
case OR1KSIM_RC_BRKPT:
|
sd->last_reason = sim_stopped;
|
sd->last_reason = sim_stopped;
|
sd->last_rc = TARGET_SIGNAL_TRAP;
|
sd->last_rc = TARGET_SIGNAL_TRAP;
|
|
|
|
/* This could have been a breakpoint or single step. */
|
|
if (step)
|
|
{
|
|
(void) or1ksim_read_reg (OR32_NPC_REGNUM, &(sd->resume_npc));
|
|
}
|
|
else
|
|
{
|
(void) or1ksim_read_reg (OR32_PPC_REGNUM, &(sd->resume_npc));
|
(void) or1ksim_read_reg (OR32_PPC_REGNUM, &(sd->resume_npc));
|
|
}
|
|
|
break;
|
break;
|
|
|
case OR1KSIM_RC_OK:
|
case OR1KSIM_RC_OK:
|
/* Should not happen */
|
/* Should not happen */
|
fprintf (stderr, "Ooops. Didn't expect OK return from Or1ksim.\n");
|
fprintf (stderr, "Ooops. Didn't expect OK return from Or1ksim.\n");
|