diff options
author | 2016-10-25 16:20:00 +0100 | |
---|---|---|
committer | 2016-10-25 16:20:20 +0100 | |
commit | e219ed72d13b5e542ce5873fafdde15a23aa7bb6 (patch) | |
tree | 46d6cf1b3cfb666e0400ebab5226a9979f0b3a1d | |
parent | 5611934cf2768513f831ad991268711d6462de6d (diff) |
remove unnecessary formatstr() & fix setting PC (nw)
-rw-r--r-- | src/devices/cpu/am29000/am29000.cpp | 29 | ||||
-rw-r--r-- | src/devices/cpu/am29000/am29000.h | 7 | ||||
-rw-r--r-- | src/devices/cpu/am29000/am29ops.h | 2 |
3 files changed, 30 insertions, 8 deletions
diff --git a/src/devices/cpu/am29000/am29000.cpp b/src/devices/cpu/am29000/am29000.cpp index 62fbb6a5536..3c808b8c27b 100644 --- a/src/devices/cpu/am29000/am29000.cpp +++ b/src/devices/cpu/am29000/am29000.cpp @@ -176,7 +176,7 @@ void am29000_cpu_device::device_start() save_item(NAME(m_next_pc)); // Register state for debugger - state_add( AM29000_PC, "PC", m_pc ).formatstr("%08X"); + state_add( AM29000_PC, "PC", m_pc ).callimport().formatstr("%08X"); state_add( AM29000_VAB, "VAB", m_vab ).formatstr("%08X"); state_add( AM29000_OPS, "OPS", m_ops ).formatstr("%08X"); state_add( AM29000_CPS, "CPS", m_cps ).formatstr("%08X"); @@ -397,14 +397,35 @@ void am29000_cpu_device::device_start() state_add( AM29000_R254, "R254", m_r[254] ).formatstr("%08X"); state_add( AM29000_R255, "R255", m_r[255] ).formatstr("%08X"); - state_add(STATE_GENPC, "GENPC", m_pc).formatstr("%08X").noshow(); - state_add(STATE_GENPCBASE, "CURPC", m_pc).formatstr("%08X").noshow(); - state_add(STATE_GENFLAGS, "GENFLAGS", m_alu).formatstr("%13s").noshow(); + state_add(STATE_GENPCBASE, "CURPC", m_pc).callimport().noshow(); + state_add(STATE_GENFLAGS, "CURFLAGS", m_alu).formatstr("%13s").noshow(); m_icountptr = &m_icount; } +//------------------------------------------------- +// state_import - import state into the device, +// after it has been set +//------------------------------------------------- + +void am29000_cpu_device::state_import(const device_state_entry &entry) +{ + switch (entry.index()) + { + case AM29000_PC: + case STATE_GENPCBASE: + m_next_pc = m_pc; + break; + } +} + + +//------------------------------------------------- +// state_string_export - export state as a string +// for the debugger +//------------------------------------------------- + void am29000_cpu_device::state_string_export(const device_state_entry &entry, std::string &str) const { switch (entry.index()) diff --git a/src/devices/cpu/am29000/am29000.h b/src/devices/cpu/am29000/am29000.h index 2b8dd1be5f8..d78097b90df 100644 --- a/src/devices/cpu/am29000/am29000.h +++ b/src/devices/cpu/am29000/am29000.h @@ -20,8 +20,8 @@ enum { - AM29000_PC = 1, - AM29000_VAB, + AM29000_PC = STATE_GENPC, + AM29000_VAB = 0, AM29000_OPS, AM29000_CPS, AM29000_CFG, @@ -462,7 +462,8 @@ protected: } // device_state_interface overrides - void state_string_export(const device_state_entry &entry, std::string &str) const override; + virtual void state_import(const device_state_entry &entry) override; + virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; // device_disasm_interface overrides virtual uint32_t disasm_min_opcode_bytes() const override { return 4; } diff --git a/src/devices/cpu/am29000/am29ops.h b/src/devices/cpu/am29000/am29ops.h index 87890ea0137..3c44c506077 100644 --- a/src/devices/cpu/am29000/am29ops.h +++ b/src/devices/cpu/am29000/am29ops.h @@ -1298,7 +1298,7 @@ void am29000_cpu_device::CALL() m_next_pc = m_exec_pc + JMP_SEX; m_r[RA] = ret; -m_next_pl_flags |= PFLAG_JUMP; + m_next_pl_flags |= PFLAG_JUMP; } void am29000_cpu_device::CALLI() |