summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/ie15/ie15.cpp
diff options
context:
space:
mode:
author therealmogminer@gmail.com <therealmogminer@gmail.com>2016-10-23 14:21:53 +0200
committer therealmogminer@gmail.com <therealmogminer@gmail.com>2016-10-23 14:22:07 +0200
commit347b8cd92563b2925488098e38ddc79dac07ce89 (patch)
tree2cd503867223baf7970015e04541f5e9ccf92b36 /src/devices/cpu/ie15/ie15.cpp
parent129c0feeed5e3d66e489f3445f4390cd139658aa (diff)
More ie15 optimizations, nw. Also removes cache-line padding of dubious performance value in core bitmap class in favor of behavior of least surprise
Diffstat (limited to 'src/devices/cpu/ie15/ie15.cpp')
-rw-r--r--src/devices/cpu/ie15/ie15.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/devices/cpu/ie15/ie15.cpp b/src/devices/cpu/ie15/ie15.cpp
index 37b2e648eba..608d363e8a4 100644
--- a/src/devices/cpu/ie15/ie15.cpp
+++ b/src/devices/cpu/ie15/ie15.cpp
@@ -207,11 +207,22 @@ uint32_t ie15_device::execute_max_cycles() const
void ie15_device::execute_run()
{
- do
+ // Removing the hook entirely is considerably faster than calling it for every instruction if the debugger is disabled entirely
+ if (machine().debug_flags & DEBUG_FLAG_ENABLED)
{
- debugger_instruction_hook(this, m_PC.d);
- execute_one(rop());
- } while (m_icount > 0);
+ do
+ {
+ debugger_instruction_hook(this, m_PC.d);
+ execute_one(rop());
+ } while (m_icount > 0);
+ }
+ else
+ {
+ do
+ {
+ execute_one(rop());
+ } while (m_icount > 0);
+ }
}
inline void ie15_device::illegal(uint8_t opcode)