diff options
author | Olivier Galibert <galibert@pobox.com> | 2020-02-11 17:28:31 +0100 |
---|---|---|
committer | Olivier Galibert <galibert@pobox.com> | 2020-02-11 17:28:31 +0100 |
commit | e242fcd03322db2b7de5004008d44f273d6ee20c (patch) | |
tree | ec2fe4e3a18f9e1ba890f24bfaa516c3dc08c91c | |
parent | d437c9c38511fa0e0a50f56c0d47c028cc299e10 (diff) |
More fixes (nw)
-rw-r--r-- | src/devices/cpu/xavix2/xavix2.cpp | 3 | ||||
-rw-r--r-- | src/devices/cpu/xavix2/xavix2.h | 1 |
2 files changed, 4 insertions, 0 deletions
diff --git a/src/devices/cpu/xavix2/xavix2.cpp b/src/devices/cpu/xavix2/xavix2.cpp index 86d474b0915..689d8626dd1 100644 --- a/src/devices/cpu/xavix2/xavix2.cpp +++ b/src/devices/cpu/xavix2/xavix2.cpp @@ -325,6 +325,9 @@ void xavix2_device::execute_run() break; } + case 0xc8: case 0xc9: m_r[r1(opcode)] = snz(m_hr[val6u(opcode)]); break; + case 0xca: case 0xcb: m_hr[val6u(opcode)] = m_r[r1(opcode)]; break; + case 0xd0: if(m_f & F_V) npc = m_pc + val8s(opcode); break; case 0xd1: if(((m_f & F_N) && !(m_f & F_V)) || ((m_f & F_V) && !(m_f & F_N))) npc = m_pc + val8s(opcode); break; case 0xd2: if(m_f & F_Z) npc = m_pc + val8s(opcode); break; diff --git a/src/devices/cpu/xavix2/xavix2.h b/src/devices/cpu/xavix2/xavix2.h index 08526f30728..4b6f080f663 100644 --- a/src/devices/cpu/xavix2/xavix2.h +++ b/src/devices/cpu/xavix2/xavix2.h @@ -63,6 +63,7 @@ protected: static inline u32 val11s(u32 opcode) { return opcode & 0x40000 ? (opcode >> 8) | 0xfffff800 : (opcode >> 8) & 0x7ff; } static inline u32 val11u(u32 opcode) { return (opcode >> 8) & 0x000007ff; } static inline u32 val8s(u32 opcode) { return static_cast<s8>(opcode >> 16); } + static inline u32 val6u(u32 opcode) { return (opcode >> 16) & 0x0000003f; } static inline u32 val6s(u32 opcode) { return opcode & 0x200000 ? (opcode >> 16) | 0xffffffc0 : (opcode >> 16) & 0x3f; } static inline u32 val3u(u32 opcode) { return (opcode >> 16) & 0x00000007; } static inline u32 val3s(u32 opcode) { return opcode & 0x40000 ? (opcode >> 16) | 0xfffffff8 : (opcode >> 16) & 0x7; } |