diff options
author | 2016-10-23 14:21:53 +0200 | |
---|---|---|
committer | 2016-10-23 14:22:07 +0200 | |
commit | 347b8cd92563b2925488098e38ddc79dac07ce89 (patch) | |
tree | 2cd503867223baf7970015e04541f5e9ccf92b36 /src/devices/cpu/ie15/ie15.cpp | |
parent | 129c0feeed5e3d66e489f3445f4390cd139658aa (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.cpp | 19 |
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) |