summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
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
commite242fcd03322db2b7de5004008d44f273d6ee20c (patch)
treeec2fe4e3a18f9e1ba890f24bfaa516c3dc08c91c
parentd437c9c38511fa0e0a50f56c0d47c028cc299e10 (diff)
More fixes (nw)
-rw-r--r--src/devices/cpu/xavix2/xavix2.cpp3
-rw-r--r--src/devices/cpu/xavix2/xavix2.h1
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; }