From dca6901d8096cfb4257e1a25beac4e1cbb554261 Mon Sep 17 00:00:00 2001 From: Nathan Woods Date: Sun, 20 Nov 2016 18:22:31 -0500 Subject: [PATCH] Eliminated 'rsp_dasm_one(std::string &string,...' trampoline --- src/devices/cpu/rsp/rsp.cpp | 13 ++++++++----- src/devices/cpu/rsp/rsp.h | 1 - src/devices/cpu/rsp/rsp_dasm.cpp | 8 -------- src/devices/cpu/rsp/rspdrc.cpp | 5 +++-- 4 files changed, 11 insertions(+), 16 deletions(-) diff --git a/src/devices/cpu/rsp/rsp.cpp b/src/devices/cpu/rsp/rsp.cpp index b74f2664dca..cfad28e91f3 100644 --- a/src/devices/cpu/rsp/rsp.cpp +++ b/src/devices/cpu/rsp/rsp.cpp @@ -308,9 +308,10 @@ void rsp_device::unimplemented_opcode(uint32_t op) { if ((machine().debug_flags & DEBUG_FLAG_ENABLED) != 0) { - std::string string; + util::ovectorstream string; rsp_dasm_one(string, m_ppc, op); - osd_printf_debug("%08X: %s\n", m_ppc, string.c_str()); + string.put('\0'); + osd_printf_debug("%08X: %s\n", m_ppc, &string.vec()[0]); } #if SAVE_DISASM @@ -734,12 +735,14 @@ void rsp_device::execute_run() { int i, l; static uint32_t prev_regs[32]; - std::string string; + + util::ovectorstream string; rsp_dasm_one(string, m_ppc, op); + string.put('\0'); - fprintf(m_exec_output, "%08X: %s", m_ppc, string.c_str()); + fprintf(m_exec_output, "%08X: %s", m_ppc, &string.vec()[0]); - l = string.length(); + l = string.vec().size() - 1; if (l < 36) { for (i=l; i < 36; i++) diff --git a/src/devices/cpu/rsp/rsp.h b/src/devices/cpu/rsp/rsp.h index a20aea30c8b..cee8dfa2dde 100644 --- a/src/devices/cpu/rsp/rsp.h +++ b/src/devices/cpu/rsp/rsp.h @@ -327,7 +327,6 @@ private: extern const device_type RSP; extern offs_t rsp_dasm_one(std::ostream &stream, offs_t pc, uint32_t op); -extern offs_t rsp_dasm_one(std::string &string, offs_t pc, uint32_t op); #endif /* __RSP_H__ */ diff --git a/src/devices/cpu/rsp/rsp_dasm.cpp b/src/devices/cpu/rsp/rsp_dasm.cpp index da3d7a72c1d..1222c0023a4 100644 --- a/src/devices/cpu/rsp/rsp_dasm.cpp +++ b/src/devices/cpu/rsp/rsp_dasm.cpp @@ -341,14 +341,6 @@ offs_t rsp_dasm_one(std::ostream &stream, offs_t pc, uint32_t op) return 4 | flags | DASMFLAG_SUPPORTED; } -offs_t rsp_dasm_one(std::string &string, offs_t pc, uint32_t op) -{ - std::ostringstream stream; - offs_t result = rsp_dasm_one(stream, pc, op); - string = stream.str(); - return result; -} - /*****************************************************************************/ CPU_DISASSEMBLE( rsp ) diff --git a/src/devices/cpu/rsp/rspdrc.cpp b/src/devices/cpu/rsp/rspdrc.cpp index 2213a80bb01..34204110139 100644 --- a/src/devices/cpu/rsp/rspdrc.cpp +++ b/src/devices/cpu/rsp/rspdrc.cpp @@ -1283,8 +1283,9 @@ void rsp_device::log_add_disasm_comment(drcuml_block *block, uint32_t pc, uint32 { if (m_drcuml->logging()) { - std::string buffer; + util::ovectorstream buffer; rsp_dasm_one(buffer, pc, op); - block->append_comment("%08X: %s", pc, buffer.c_str()); // comment + buffer.put('\0'); + block->append_comment("%08X: %s", pc, &buffer.vec()[0]); // comment } }