summaryrefslogtreecommitdiffstats
path: root/src/emu/debug/debugcpu.cpp
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2016-07-03 13:43:19 -0400
committer AJR <ajrhacker@users.noreply.github.com>2016-07-03 13:46:21 -0400
commit90b08e2995d6857fa73aeea5fc61e23e1d3e74b4 (patch)
tree5315a48fdafb8d7afe2fe7aad71dbcc4f4688398 /src/emu/debug/debugcpu.cpp
parent5eebcb3fb9e1ec089248fb62eef0132187da5798 (diff)
Consolidate disassemble functions (nw)
Diffstat (limited to 'src/emu/debug/debugcpu.cpp')
-rw-r--r--src/emu/debug/debugcpu.cpp44
1 files changed, 9 insertions, 35 deletions
diff --git a/src/emu/debug/debugcpu.cpp b/src/emu/debug/debugcpu.cpp
index 94c586d8270..e76abd6fec6 100644
--- a/src/emu/debug/debugcpu.cpp
+++ b/src/emu/debug/debugcpu.cpp
@@ -1977,36 +1977,6 @@ void device_debug::set_instruction_hook(debug_instruction_hook_func hook)
//-------------------------------------------------
-// disassemble - disassemble a line at a given
-// PC on a given device
-//-------------------------------------------------
-
-offs_t device_debug::disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram) const
-{
- if (m_disasm == nullptr)
- return 0;
-
- // if we have a disassembler, run it
- offs_t result = m_disasm->disassemble(buffer, pc, oprom, opram, 0);
-
- // make sure we get good results
- assert((result & DASMFLAG_LENGTHMASK) != 0);
-#ifdef MAME_DEBUG
- if (m_memory != nullptr)
- {
- address_space &space = m_memory->space(AS_PROGRAM);
- int bytes = space.address_to_byte(result & DASMFLAG_LENGTHMASK);
- assert(bytes >= m_disasm->min_opcode_bytes());
- assert(bytes <= m_disasm->max_opcode_bytes());
- (void) bytes; // appease compiler
- }
-#endif
-
- return result;
-}
-
-
-//-------------------------------------------------
// ignore - ignore/observe a given device
//-------------------------------------------------
@@ -2653,10 +2623,14 @@ UINT32 device_debug::compute_opcode_crc32(offs_t pc) const
argbuf[numbytes] = m_device.machine().debugger().cpu().read_opcode(space, pcbyte + numbytes, 1);
}
- // disassemble to our buffer
- char diasmbuf[200];
- memset(diasmbuf, 0x00, 200);
- UINT32 numbytes = disassemble(diasmbuf, pc, opbuf, argbuf) & DASMFLAG_LENGTHMASK;
+ UINT32 numbytes = maxbytes;
+ if (m_disasm != nullptr)
+ {
+ // disassemble to our buffer
+ char diasmbuf[200];
+ memset(diasmbuf, 0x00, 200);
+ numbytes = m_disasm->disassemble(diasmbuf, pc, opbuf, argbuf) & DASMFLAG_LENGTHMASK;
+ }
// return a CRC of the exact count of opcode bytes
return core_crc32(0, opbuf, numbytes);
@@ -3054,7 +3028,7 @@ UINT32 device_debug::dasm_wrapped(std::string &buffer, offs_t pc)
// disassemble to our buffer
char diasmbuf[200];
memset(diasmbuf, 0x00, 200);
- UINT32 result = disassemble(diasmbuf, pc, opbuf, argbuf);
+ UINT32 result = m_disasm->disassemble(diasmbuf, pc, opbuf, argbuf);
buffer.assign(diasmbuf);
return result;
}