diff options
author | 2023-03-11 20:16:38 -0500 | |
---|---|---|
committer | 2023-03-11 20:40:39 -0500 | |
commit | 445e9e20aa6db377236a05d5ab034b2d766d7f2a (patch) | |
tree | 220435dc2e1838270adebe1383da48b263686942 /src/devices/cpu/romp | |
parent | 671434f7dac6a38a54a41417a994b7b8f47f6b49 (diff) |
Interrupt callback rationalization
- Make CPUs pass interrupt return PC as a second argument to standard_irq_callback
- Add interrupt return PC to "Stopped at interrupt" message produced by debugger 'gint' command
- Add messages to trace logs whenever interrupts are accepted
- Attempt to step over interrupt routines for applicable debugger commands
- Eliminate standard_irq_callback_member wrapper method
- Update many CPU cores to invoke standard_irq_callback at the start of or during interrupt processing, rather than at the end or when the input line changes
- Remove IRQ callbacks for some input lines that never cause interrupts
- mb88xx, mcs48: Add IRQ callbacks for internal interrupts
Diffstat (limited to 'src/devices/cpu/romp')
-rw-r--r-- | src/devices/cpu/romp/romp.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/devices/cpu/romp/romp.cpp b/src/devices/cpu/romp/romp.cpp index 6057c7621d4..c46c7b29f2d 100644 --- a/src/devices/cpu/romp/romp.cpp +++ b/src/devices/cpu/romp/romp.cpp @@ -1004,12 +1004,7 @@ void romp_device::execute_set_input(int irqline, int state) default: // interrupt lines are active low if (!state) - { m_reqi |= 1U << irqline; - - // enable debugger interrupt breakpoints - standard_irq_callback(irqline); - } else m_reqi &= ~(1U << irqline); break; @@ -1111,6 +1106,9 @@ void romp_device::interrupt_check() { if (BIT(m_reqi, irl) || BIT(m_scr[IRB], 15 - irl)) { + // enable debugger interrupt breakpoints + standard_irq_callback(irl, m_scr[IAR]); + LOGMASKED(LOG_INTERRUPT, "interrupt_check taking interrupt request level %d\n", irl); interrupt_enter(irl, m_scr[IAR]); |