More fixes (nw)

This commit is contained in:
Olivier Galibert 2020-02-11 17:28:31 +01:00
parent d437c9c385
commit e242fcd033
2 changed files with 4 additions and 0 deletions

View File

@ -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;

View File

@ -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; }