diff options
Diffstat (limited to 'src/devices/cpu/unsp/unspfe.cpp')
-rw-r--r-- | src/devices/cpu/unsp/unspfe.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/devices/cpu/unsp/unspfe.cpp b/src/devices/cpu/unsp/unspfe.cpp index 3d2cd6f6855..f93423379a1 100644 --- a/src/devices/cpu/unsp/unspfe.cpp +++ b/src/devices/cpu/unsp/unspfe.cpp @@ -24,7 +24,7 @@ unsp_frontend::unsp_frontend(unsp_device *unsp, uint32_t window_start, uint32_t inline uint16_t unsp_frontend::read_op_word(opcode_desc &desc, int offset) { - return m_cpu->m_pr16(desc.physpc + offset); + return m_cpu->m_cache.read_word(desc.physpc + offset); } /*------------------------------------------------- @@ -67,6 +67,8 @@ bool unsp_frontend::describe(opcode_desc &desc, const opcode_desc *prev) case 9: // JA case 10: // JLE case 11: // JG + case 12: // JVC + case 13: // JVS desc.regin[0] |= 1 << unsp_device::REG_SR; desc.regout[0] |= 1 << unsp_device::REG_SR; desc.regout[0] |= 1 << unsp_device::REG_PC; @@ -186,6 +188,8 @@ bool unsp_frontend::describe(opcode_desc &desc, const opcode_desc *prev) case 1: case 2: case 3: + case 4: + case 5: case 8: case 9: case 12: @@ -195,6 +199,17 @@ bool unsp_frontend::describe(opcode_desc &desc, const opcode_desc *prev) } return false; + case 0x06: + case 0x07: // MULS + desc.regin[0] |= 1 << opa; + desc.regin[0] |= 1 << opb; + desc.regout[0] |= 1 << opa; + desc.regout[0] |= 1 << opb; + desc.regout[0] |= 1 << unsp_device::REG_R3; + desc.regout[0] |= 1 << unsp_device::REG_R4; + desc.flags = OPFLAG_READS_MEMORY | OPFLAG_WRITES_MEMORY; + return true; + default: return false; } |