From 61ed3c962397dd86903971e5ae42f3185dd12c6e Mon Sep 17 00:00:00 2001 From: mamehaze Date: Sat, 27 Dec 2014 14:45:56 +0000 Subject: (nw) --- src/emu/cpu/arcompact/arcompact_execute.c | 36 ------------------------------- src/emu/cpu/arcompact/arcompact_make.py | 26 ++++++++++++++++++++++ 2 files changed, 26 insertions(+), 36 deletions(-) diff --git a/src/emu/cpu/arcompact/arcompact_execute.c b/src/emu/cpu/arcompact/arcompact_execute.c index e5623089737..8e79c587ba1 100644 --- a/src/emu/cpu/arcompact/arcompact_execute.c +++ b/src/emu/cpu/arcompact/arcompact_execute.c @@ -2440,42 +2440,6 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0d_helper(OPS_16, const char } -ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0d_00(OPS_16) // ADD_S c, b, u3 (note, c destination) -{ - int u, breg, creg; - - COMMON16_GET_u3; - COMMON16_GET_breg; - COMMON16_GET_creg; - - REG_16BIT_RANGE(breg); - REG_16BIT_RANGE(creg); - - m_regs[creg] = m_regs[breg] + u; - - return m_pc + (2 >> 0); -} - -ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0d_01(OPS_16) -{ - return arcompact_handle0d_helper(PARAMS, "SUB_S"); -} - -ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0d_02(OPS_16) // ASL_S c, b asl u3 (note, c destination) -{ - int u, breg, creg; - - COMMON16_GET_u3; - COMMON16_GET_breg; - COMMON16_GET_creg; - - REG_16BIT_RANGE(breg); - REG_16BIT_RANGE(creg); - - m_regs[creg] = m_regs[breg] << u; - - return m_pc + (2 >> 0); -} ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0d_03(OPS_16) { diff --git a/src/emu/cpu/arcompact/arcompact_make.py b/src/emu/cpu/arcompact/arcompact_make.py index 9268a6c55e0..110595c6585 100644 --- a/src/emu/cpu/arcompact/arcompact_make.py +++ b/src/emu/cpu/arcompact/arcompact_make.py @@ -286,6 +286,27 @@ def EmitGroup04(f,funcname, opname, opexecute, opwrite, opwrite_alt, ignore_a, b print >>f, "" print >>f, "" + +# xxx_S c, b, u3 format opcodes (note c is destination) +def EmitGroup0d(f,funcname, opname, opexecute, opwrite): + print >>f, "ARCOMPACT_RETTYPE arcompact_device::arcompact_handle%s(OPS_16)" % (funcname) + print >>f, "{" + print >>f, " int u, breg, creg;" + print >>f, "" + print >>f, " COMMON16_GET_u3;" + print >>f, " COMMON16_GET_breg;" + print >>f, " COMMON16_GET_creg;" + print >>f, "" + print >>f, " REG_16BIT_RANGE(breg);" + print >>f, " REG_16BIT_RANGE(creg);" + print >>f, "" + print >>f, " %s" % (opexecute) + print >>f, " %s" % (opwrite) + print >>f, "" + print >>f, " return m_pc + (2 >> 0);" + print >>f, "}" + + # xxx_S b <- b,c format opcodes def EmitGroup0f(f,funcname, opname, opexecute, opwrite): print >>f, "ARCOMPACT_RETTYPE arcompact_device::arcompact_handle%s(OPS_16)"% (funcname) @@ -368,6 +389,11 @@ EmitGroup04(f, "04_2f_02", "LSR1", "UINT32 result = c >> 1;", "m_regs[b EmitGroup04(f, "04_2f_07", "EXTB", "UINT32 result = c & 0x000000ff;", "m_regs[breg] = result;","", 2,1, -1, EmitGroup04_unsupported_Flags ) # ^ EmitGroup04(f, "04_2f_08", "EXTW", "UINT32 result = c & 0x0000ffff;", "m_regs[breg] = result;","", 2,1, -1, EmitGroup04_unsupported_Flags ) # ^ +# xxx_S c, b, u3 format opcodes (note c is destination) +EmitGroup0d(f, "0d_00", "ADD_S", "UINT32 result = m_regs[breg] + u;", "m_regs[creg] = result;" ) +EmitGroup0d(f, "0d_01", "SUB_S", "UINT32 result = m_regs[breg] - u;", "m_regs[creg] = result;" ) +EmitGroup0d(f, "0d_02", "ASL_S", "UINT32 result = m_regs[breg] << u;", "m_regs[creg] = result;" ) + # xxx_S b <- b,c format opcodes (or in some cases xxx_S b,c) EmitGroup0f(f, "0f_02", "SUB_S", "UINT32 result = m_regs[breg] - m_regs[creg];", "m_regs[breg] = result;" ) EmitGroup0f(f, "0f_04", "AND_S", "UINT32 result = m_regs[breg] & m_regs[creg];", "m_regs[breg] = result;" ) -- cgit v1.2.3