Previous 199869 Revisions Next

r34087 Saturday 27th December, 2014 at 14:45:56 UTC by David Haywood
(nw)
[src/emu/cpu/arcompact]arcompact_execute.c arcompact_make.py

trunk/src/emu/cpu/arcompact/arcompact_execute.c
r242598r242599
24402440}
24412441
24422442
2443ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0d_00(OPS_16) // ADD_S c, b,  u3   (note, c destination)
2444{
2445   int u, breg, creg;
24462443
2447   COMMON16_GET_u3;
2448   COMMON16_GET_breg;
2449   COMMON16_GET_creg;
2450
2451   REG_16BIT_RANGE(breg);
2452   REG_16BIT_RANGE(creg);
2453
2454   m_regs[creg] = m_regs[breg] + u;
2455
2456   return m_pc + (2 >> 0);
2457}
2458
2459ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0d_01(OPS_16)
2460{
2461   return arcompact_handle0d_helper(PARAMS, "SUB_S");
2462}
2463
2464ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0d_02(OPS_16) // ASL_S c, b asl u3   (note, c destination)
2465{
2466   int u, breg, creg;
2467
2468   COMMON16_GET_u3;
2469   COMMON16_GET_breg;
2470   COMMON16_GET_creg;
2471
2472   REG_16BIT_RANGE(breg);
2473   REG_16BIT_RANGE(creg);
2474
2475   m_regs[creg] = m_regs[breg] << u;
2476
2477   return m_pc + (2 >> 0);
2478}
2479
24802444ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0d_03(OPS_16)
24812445{
24822446   return arcompact_handle0d_helper(PARAMS, "ASR_S");
trunk/src/emu/cpu/arcompact/arcompact_make.py
r242598r242599
286286        print >>f, ""
287287        print >>f, ""
288288
289
290# xxx_S  c, b, u3  format opcodes (note c is destination)
291def EmitGroup0d(f,funcname, opname, opexecute, opwrite):
292    print >>f, "ARCOMPACT_RETTYPE arcompact_device::arcompact_handle%s(OPS_16)"  % (funcname)
293    print >>f, "{"
294    print >>f, "   int u, breg, creg;"
295    print >>f, ""
296    print >>f, "   COMMON16_GET_u3;"
297    print >>f, "   COMMON16_GET_breg;"
298    print >>f, "   COMMON16_GET_creg;"
299    print >>f, ""
300    print >>f, "   REG_16BIT_RANGE(breg);"
301    print >>f, "   REG_16BIT_RANGE(creg);"
302    print >>f, ""
303    print >>f, "   %s" % (opexecute)
304    print >>f, "   %s" % (opwrite)
305    print >>f, ""
306    print >>f, "   return m_pc + (2 >> 0);"
307    print >>f, "}"
308
309
289310# xxx_S b <- b,c format opcodes
290311def EmitGroup0f(f,funcname, opname, opexecute, opwrite):
291312    print >>f, "ARCOMPACT_RETTYPE arcompact_device::arcompact_handle%s(OPS_16)"% (funcname)
r242598r242599
368389EmitGroup04(f, "04_2f_07", "EXTB", "UINT32 result = c & 0x000000ff;",  "m_regs[breg] = result;","", 2,1, -1, EmitGroup04_unsupported_Flags  ) # ^
369390EmitGroup04(f, "04_2f_08", "EXTW", "UINT32 result = c & 0x0000ffff;",  "m_regs[breg] = result;","", 2,1, -1, EmitGroup04_unsupported_Flags  ) # ^
370391
392# xxx_S  c, b, u3  format opcodes (note c is destination)
393EmitGroup0d(f, "0d_00", "ADD_S", "UINT32 result = m_regs[breg] + u;",         "m_regs[creg] = result;" )
394EmitGroup0d(f, "0d_01", "SUB_S", "UINT32 result = m_regs[breg] - u;",         "m_regs[creg] = result;" )
395EmitGroup0d(f, "0d_02", "ASL_S", "UINT32 result = m_regs[breg] << u;",        "m_regs[creg] = result;" )
396
371397# xxx_S b <- b,c format opcodes  (or in some cases xxx_S b,c)
372398EmitGroup0f(f, "0f_02", "SUB_S", "UINT32 result = m_regs[breg] - m_regs[creg];",        "m_regs[breg] = result;" )
373399EmitGroup0f(f, "0f_04", "AND_S", "UINT32 result = m_regs[breg] & m_regs[creg];",        "m_regs[breg] = result;" )


Previous 199869 Revisions Next


© 1997-2024 The MAME Team