From f9b28ee6f5b8aeffa8d664e66dc3e2589474c193 Mon Sep 17 00:00:00 2001 From: Olivier Galibert Date: Fri, 27 Jul 2018 22:34:45 +0200 Subject: Prevent aggressive incompetence (nw) --- src/devices/cpu/psx/psx.cpp | 12 ++++++------ src/devices/cpu/score/score.cpp | 2 +- src/emu/diexec.cpp | 4 +++- src/emu/diexec.h | 5 ----- 4 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/devices/cpu/psx/psx.cpp b/src/devices/cpu/psx/psx.cpp index a8366bdea91..050a090b456 100644 --- a/src/devices/cpu/psx/psx.cpp +++ b/src/devices/cpu/psx/psx.cpp @@ -1456,12 +1456,12 @@ void psxcpu_device::update_cop0(int reg) { if (ip & CAUSE_IP0) debugger_exception_hook(EXC_INT); if (ip & CAUSE_IP1) debugger_exception_hook(EXC_INT); - if (ip & CAUSE_IP2) debugger_interrupt_hook(PSXCPU_IRQ0); - if (ip & CAUSE_IP3) debugger_interrupt_hook(PSXCPU_IRQ1); - if (ip & CAUSE_IP4) debugger_interrupt_hook(PSXCPU_IRQ2); - if (ip & CAUSE_IP5) debugger_interrupt_hook(PSXCPU_IRQ3); - if (ip & CAUSE_IP6) debugger_interrupt_hook(PSXCPU_IRQ4); - if (ip & CAUSE_IP7) debugger_interrupt_hook(PSXCPU_IRQ5); + if (ip & CAUSE_IP2) standard_irq_callback(PSXCPU_IRQ0); + if (ip & CAUSE_IP3) standard_irq_callback(PSXCPU_IRQ1); + if (ip & CAUSE_IP4) standard_irq_callback(PSXCPU_IRQ2); + if (ip & CAUSE_IP5) standard_irq_callback(PSXCPU_IRQ3); + if (ip & CAUSE_IP6) standard_irq_callback(PSXCPU_IRQ4); + if (ip & CAUSE_IP7) standard_irq_callback(PSXCPU_IRQ5); m_op = m_cache->read_dword(m_pc); execute_unstoppable_instructions(1); exception(EXC_INT); diff --git a/src/devices/cpu/score/score.cpp b/src/devices/cpu/score/score.cpp index 3a3b1ce6b15..bf5b434cb06 100644 --- a/src/devices/cpu/score/score.cpp +++ b/src/devices/cpu/score/score.cpp @@ -325,7 +325,7 @@ void score7_cpu_device::check_irq() if (m_pending_interrupt[i]) { m_pending_interrupt[i] = false; - debugger_interrupt_hook(i); + standard_irq_callback(i); gen_exception(EXCEPTION_INTERRUPT, i); return; } diff --git a/src/emu/diexec.cpp b/src/emu/diexec.cpp index 37fdcaa362c..67cb9bd123f 100644 --- a/src/emu/diexec.cpp +++ b/src/emu/diexec.cpp @@ -522,7 +522,9 @@ int device_execute_interface::standard_irq_callback(int irqline) vector = m_driver_irq(device(), irqline); // notify the debugger - debugger_interrupt_hook(irqline); + if (device().machine().debug_flags & DEBUG_FLAG_ENABLED) + device().debug()->interrupt_hook(irqline); + return vector; } diff --git a/src/emu/diexec.h b/src/emu/diexec.h index 3c9d754434e..e4973c2296f 100644 --- a/src/emu/diexec.h +++ b/src/emu/diexec.h @@ -237,11 +237,6 @@ protected: if (device().machine().debug_flags & DEBUG_FLAG_ENABLED) device().debug()->exception_hook(exception); } - void debugger_interrupt_hook(int irqline) - { - if (device().machine().debug_flags & DEBUG_FLAG_ENABLED) - device().debug()->interrupt_hook(irqline); - } private: // internal information about the state of inputs -- cgit v1.2.3