summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/pic17/pic17.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/pic17/pic17.cpp')
-rw-r--r--src/devices/cpu/pic17/pic17.cpp12
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)