diff options
Diffstat (limited to 'src/devices/cpu/pic17/pic17.cpp')
-rw-r--r-- | src/devices/cpu/pic17/pic17.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/devices/cpu/pic17/pic17.cpp b/src/devices/cpu/pic17/pic17.cpp index 67d9caa23b7..0258b052ca9 100644 --- a/src/devices/cpu/pic17/pic17.cpp +++ b/src/devices/cpu/pic17/pic17.cpp @@ -443,28 +443,28 @@ u16 pic17_cpu_device::interrupt_vector() if (BIT(active_ints, 0)) { // Interrupt on RA0/INT pin edge - standard_irq_callback(0); + standard_irq_callback(0, m_pc); m_intsta &= 0xef; // INTF is cleared return 0x0008; } else if (BIT(active_ints, 1)) { // Interrupt on TMR0 overflow - standard_irq_callback(1); + standard_irq_callback(1, m_pc); m_intsta &= 0xdf; // T0IF is cleared return 0x0010; } else if (BIT(active_ints, 2)) { // Interrupt on RA1/T0CKI pin edge - standard_irq_callback(2); + standard_irq_callback(2, m_pc); m_intsta &= 0xbf; // T0CKIF is cleared return 0x0018; } else if (BIT(active_ints, 3)) { // Peripheral interrupts (not further distinguished here, and PEIF is *not* cleared) - standard_irq_callback(3); + standard_irq_callback(3, m_pc); return 0x0020; } else @@ -890,6 +890,7 @@ void pic17_cpu_device::execute_run() { while (true) { + [[fallthrough]]; case exec_phase::Q1: if ((m_execflags & SLEEP) != 0) { @@ -922,6 +923,7 @@ void pic17_cpu_device::execute_run() m_execphase = exec_phase::Q2; return; } + [[fallthrough]]; case exec_phase::Q2: if ((m_execflags & INTRPT) == 0) @@ -942,6 +944,7 @@ void pic17_cpu_device::execute_run() m_execphase = exec_phase::Q3; return; } + [[fallthrough]]; case exec_phase::Q3: if ((m_execflags & (TABLRD | TABLWT)) == 0) @@ -967,6 +970,7 @@ void pic17_cpu_device::execute_run() m_execphase = exec_phase::Q4; return; } + [[fallthrough]]; case exec_phase::Q4: if ((m_intsample & m_intsta) != 0) |