diff options
author | Andrew Cagney <cagney@redhat.com> | 1998-03-26 14:00:18 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 1998-03-26 14:00:18 +0000 |
commit | 1b756ba6d58c63dfdb588fa900208f03f7ec8567 (patch) | |
tree | 22c9528215eed96ec6f30e946da1d62976ff2399 /sim/mn10300/dv-mn103cpu.c | |
parent | abf6ba256af6ec99e6c5bbe61cdbdf56459a5d9a (diff) | |
download | gdb-1b756ba6d58c63dfdb588fa900208f03f7ec8567.zip gdb-1b756ba6d58c63dfdb588fa900208f03f7ec8567.tar.gz gdb-1b756ba6d58c63dfdb588fa900208f03f7ec8567.tar.bz2 |
* dv-mn103cpu.c (deliver_mn103cpu_interrupt): Stop loss of succeeding
interrupts, clear pending_handler when the handler isn't re-scheduled.
Diffstat (limited to 'sim/mn10300/dv-mn103cpu.c')
-rw-r--r-- | sim/mn10300/dv-mn103cpu.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sim/mn10300/dv-mn103cpu.c b/sim/mn10300/dv-mn103cpu.c index 87c684e..89b60b8 100644 --- a/sim/mn10300/dv-mn103cpu.c +++ b/sim/mn10300/dv-mn103cpu.c @@ -255,14 +255,20 @@ deliver_mn103cpu_interrupt (struct hw *me, (long) CIA_GET (cpu), (unsigned) PSW, (long) SP)); } - /* As long as there is the potential need to deliver an interrupt we - keep rescheduling this routine. */ if (controller->pending_level < 7) /* FIXME */ { + /* As long as there is the potential need to deliver an + interrupt we keep rescheduling this routine. */ if (controller->pending_handler != NULL) controller->pending_handler = hw_event_queue_schedule (me, 1, deliver_mn103cpu_interrupt, NULL); } + else + { + /* Don't bother re-scheduling the interrupt handler as there is + nothing to deliver */ + controller->pending_handler = NULL; + } } |