From e242fcd03322db2b7de5004008d44f273d6ee20c Mon Sep 17 00:00:00 2001 From: Olivier Galibert Date: Tue, 11 Feb 2020 17:28:31 +0100 Subject: More fixes (nw) --- src/devices/cpu/xavix2/xavix2.cpp | 3 +++ src/devices/cpu/xavix2/xavix2.h | 1 + 2 files changed, 4 insertions(+) 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(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; } -- cgit v1.2.3