* int.c (trigger_peripheral_interrupt): Clear interrupt pending
authorDJ Delorie <dj@redhat.com>
Wed, 1 Oct 2008 20:44:21 +0000 (20:44 +0000)
committerDJ Delorie <dj@redhat.com>
Wed, 1 Oct 2008 20:44:21 +0000 (20:44 +0000)
bit when peripheral interrupts are serviced.

sim/m32c/ChangeLog
sim/m32c/int.c

index c77bf25789a6be26c58d6b5389c56440ba525238..5512d6995a588a102cf8a10ba7128d6c98ae7fbc 100644 (file)
@@ -1,3 +1,8 @@
+2008-10-01  DJ Delorie  <dj@redhat.com>
+
+       * int.c (trigger_peripheral_interrupt): Clear interrupt pending
+       bit when peripheral interrupts are serviced.
+
 2008-07-11  Hans-Peter Nilsson  <hp@axis.com>
 
        * configure: Regenerate to track ../common/common.m4 changes.
index 5556a120dc878957c3f6b4c3f2bb1a1ae4ee7c0f..ac7ac975964a273b34540c633c388082d7767ccf 100644 (file)
@@ -72,4 +72,5 @@ trigger_peripheral_interrupt (int vector, int icaddr)
   int addr = get_reg (intb) + vector * 4;
   trigger_interrupt (addr, 1);
   put_reg (flags, (get_reg (flags) & 0x8fff) | ((old_ic & 7) << 12));
+  mem_put_qi (icaddr, old_ic & ~ 0x08);
 }