summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author mamehaze <mamehaze@users.noreply.github.com>2014-12-20 00:17:21 +0000
committer mamehaze <mamehaze@users.noreply.github.com>2014-12-20 00:17:21 +0000
commit4878a6643ac9f27be77318878ad8144a98dc53e8 (patch)
tree9dec6a88f5db6656b548b5b89d96c5b26d085bf5
parent4db0f3b64da3d9bb22921ce06d9c6e8f55f955e8 (diff)
start making an actual CPU core out of the arcompact disassembler, executes the first few jumps (nw)
-rw-r--r--src/emu/cpu/arcompact/arcompact.c80
-rw-r--r--src/emu/cpu/arcompact/arcompact.h703
-rw-r--r--src/emu/cpu/arcompact/arcompact_common.c526
-rw-r--r--src/emu/cpu/arcompact/arcompact_common.h18
-rw-r--r--src/emu/cpu/arcompact/arcompact_execute.c2741
-rw-r--r--src/emu/cpu/arcompact/arcompactdasm_ops.c382
-rw-r--r--src/emu/cpu/arcompact/arcompactdasm_ops.h542
-rw-r--r--src/emu/cpu/cpu.mak21
8 files changed, 4313 insertions, 700 deletions
diff --git a/src/emu/cpu/arcompact/arcompact.c b/src/emu/cpu/arcompact/arcompact.c
index 703ab5bf94f..b955a3754be 100644
--- a/src/emu/cpu/arcompact/arcompact.c
+++ b/src/emu/cpu/arcompact/arcompact.c
@@ -19,11 +19,11 @@
#include "emu.h"
#include "debugger.h"
#include "arcompact.h"
+#include "arcompact_common.h"
const device_type ARCA5 = &device_creator<arcompact_device>;
-
arcompact_device::arcompact_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: cpu_device(mconfig, ARCA5, "ARCtangent-A5", tag, owner, clock, "arca5", __FILE__)
, m_program_config("program", ENDIANNESS_LITTLE, 32, 32, 0) // some docs describe these as 'middle endian'?!
@@ -49,26 +49,6 @@ void arcompact_device::unimplemented_opcode(UINT16 op)
/*****************************************************************************/
-UINT32 arcompact_device::READ32(UINT32 address)
-{
- return m_program->read_dword(address << 2);
-}
-
-void arcompact_device::WRITE32(UINT32 address, UINT32 data)
-{
- m_program->write_dword(address << 2, data);
-}
-
-UINT16 arcompact_device::READ16(UINT32 address)
-{
- return m_program->read_word(address << 1);
-}
-
-void arcompact_device::WRITE16(UINT32 address, UINT16 data)
-{
- m_program->write_word(address << 1, data);
-}
-
/*****************************************************************************/
@@ -83,29 +63,54 @@ void arcompact_device::device_start()
state_add( 0, "PC", m_debugger_temp).callimport().callexport().formatstr("%08X");
state_add(STATE_GENPC, "GENPC", m_debugger_temp).callexport().noshow();
+ for (int i = 0x100; i < 0x140; i++)
+ {
+ state_add(i, regnames[i-0x100], m_debugger_temp).callimport().callexport().formatstr("%08X");
+ }
+
+
m_icountptr = &m_icount;
}
void arcompact_device::state_export(const device_state_entry &entry)
{
- switch (entry.index())
+ int index = entry.index();
+
+ switch (index)
{
case 0:
- m_debugger_temp = m_pc << 1;
+ m_debugger_temp = m_pc;
break;
case STATE_GENPC:
- m_debugger_temp = m_pc << 1;
+ m_debugger_temp = m_pc;
break;
+
+ default:
+ if ((index >= 0x100) && (index < 0x140))
+ {
+ m_debugger_temp = m_regs[index - 0x100];
+ }
+ break;
+
}
}
void arcompact_device::state_import(const device_state_entry &entry)
{
- switch (entry.index())
+ int index = entry.index();
+
+ switch (index)
{
case 0:
- m_pc = (m_debugger_temp & 0xfffffffe) >> 1;
+ m_pc = (m_debugger_temp & 0xfffffffe);
+ break;
+
+ default:
+ if ((index >= 0x100) && (index < 0x140))
+ {
+ m_regs[index - 0x100] = m_debugger_temp;
+ }
break;
}
}
@@ -113,6 +118,9 @@ void arcompact_device::state_import(const device_state_entry &entry)
void arcompact_device::device_reset()
{
m_pc = 0x00000000;
+
+ m_delayactive = 0;
+ m_delayjump = 0x00000000;
}
/*****************************************************************************/
@@ -121,23 +129,3 @@ void arcompact_device::execute_set_input(int irqline, int state)
{
}
-
-
-void arcompact_device::execute_run()
-{
- //UINT32 lres;
- //lres = 0;
-
- while (m_icount > 0)
- {
- debugger_instruction_hook(this, m_pc<<2);
-
- //UINT32 op = READ32(m_pc);
-
-
- m_pc++;
-
- m_icount--;
- }
-
-}
diff --git a/src/emu/cpu/arcompact/arcompact.h b/src/emu/cpu/arcompact/arcompact.h
index 573ff27c629..10cfed6e195 100644
--- a/src/emu/cpu/arcompact/arcompact.h
+++ b/src/emu/cpu/arcompact/arcompact.h
@@ -9,6 +9,15 @@
#ifndef __ARCOMPACT_H__
#define __ARCOMPACT_H__
+#define ARCOMPACT_RETTYPE UINT32
+#define OPS_32 UINT32 op
+#define OPS_16 UINT16 op
+#define PARAMS op
+#define LIMM_REG 62
+#define ARCOMPACT_OPERATION ((op & 0xf800) >> 11)
+
+
+
class arcompact_device : public cpu_device
{
public:
@@ -39,6 +48,685 @@ protected:
virtual UINT32 disasm_max_opcode_bytes() const { return 8; }
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options);
+
+
+ // Dispatch
+ ARCOMPACT_RETTYPE arcompact_handle00(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_00(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_00(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_01(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05(OPS_32);
+
+ ARCOMPACT_RETTYPE arcompact_handle05_2f(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f(OPS_32);
+
+ ARCOMPACT_RETTYPE arcompact_handle0c(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0d(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0e(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_00(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_00_07(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle17(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_05(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle19(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle1c(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle1d(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle1e(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle1e_03(OPS_16);
+
+ // Handler
+
+ ARCOMPACT_RETTYPE arcompact_handle00_00(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle00_01(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_00_00dasm(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_00_01dasm(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_00_00(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_00_01(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_00_02(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_00_03(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_00_04(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_00_05(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_00_0e(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_00_0f(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_01_00(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_01_01(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_01_02(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_01_03(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_01_04(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_01_05(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_01_0e(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_01_0f(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle02(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle03(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_00(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_01(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_02(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_03(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_04(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_05(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_06(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_07(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_08(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_09(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_0a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_0b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_0c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_0d(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_0e(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_0f(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_10(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_11(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_12(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_13(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_14(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_15(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_16(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_17(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_18(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_19(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_1a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_1b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_1c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_1d(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_20(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_21(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_22(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_23(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_28(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_29(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_00(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_01(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_02(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_03(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_04(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_05(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_06(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_07(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_08(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_09(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_0a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_0b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_0c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_01(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_02(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_03(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_04(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_05(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_30(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_31(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_32(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_33(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_34(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_35(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_36(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_37(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_00(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_01(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_02(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_03(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_04(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_05(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_06(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_07(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_08(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_0a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_0b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_28(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_29(OPS_32);
+
+ ARCOMPACT_RETTYPE arcompact_handle06(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle07(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle08(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle09(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle0a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle0b(OPS_32);
+
+ ARCOMPACT_RETTYPE arcompact_handle0c_00(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0c_01(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0c_02(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0c_03(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0d_00(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0d_01(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0d_02(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0d_03(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0e_00(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0e_01(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0e_02(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0e_03(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_00_00(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_00_01(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_00_02(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_00_03(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_00_06(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_00_07_00(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_00_07_01(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_00_07_04(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_00_07_05(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_00_07_06(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_00_07_07(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_02(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_04(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_05(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_06(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_07(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_0b(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_0c(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_0d(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_0e(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_0f(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_10(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_11(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_12(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_13(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_14(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_15(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_16(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_18(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_19(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_1a(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_1b(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_1c(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_1d(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_1e(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_1f(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle10(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle11(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle12(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle13(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle14(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle15(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle16(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle17_00(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle17_01(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle17_02(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle17_03(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle17_04(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle17_05(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle17_06(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle17_07(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_00(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_01(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_02(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_03(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_04(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_05_00(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_05_01(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_01(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_11(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_01(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_11(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle19_00(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle19_01(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle19_02(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle19_03(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle1a(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle1b(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle1c_00(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle1c_01(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle1d_00(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle1d_01(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle1e_00(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle1e_01(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle1e_02(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle1e_03_00(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle1e_03_01(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle1e_03_02(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle1e_03_03(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle1e_03_04(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle1e_03_05(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle1e_03_06(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle1e_03_07(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle1f(OPS_16);
+
+ /************************************************************************************************************************************
+ * *
+ * illegal opcode handlers (disassembly) *
+ * *
+ ************************************************************************************************************************************/
+
+ ARCOMPACT_RETTYPE arcompact_handle01_01_00_06(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_00_07(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_00_08(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_00_09(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_00_0a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_00_0b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_00_0c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_00_0d(OPS_32);
+
+ ARCOMPACT_RETTYPE arcompact_handle01_01_01_06(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_01_07(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_01_08(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_01_09(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_01_0a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_01_0b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_01_0c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle01_01_01_0d(OPS_32);
+
+
+ ARCOMPACT_RETTYPE arcompact_handle04_1e(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_1f(OPS_32);
+
+ ARCOMPACT_RETTYPE arcompact_handle04_24(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_25(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_26(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_27(OPS_32);
+
+ ARCOMPACT_RETTYPE arcompact_handle04_2c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2d(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2e(OPS_32);
+
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_0d(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_0e(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_0f(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_10(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_11(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_12(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_13(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_14(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_15(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_16(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_17(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_18(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_19(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_1a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_1b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_1c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_1d(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_1e(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_1f(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_20(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_21(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_22(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_23(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_24(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_25(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_26(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_27(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_28(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_29(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_2a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_2b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_2c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_2d(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_2e(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_2f(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_30(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_31(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_32(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_33(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_34(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_35(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_36(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_37(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_38(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_39(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3d(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3e(OPS_32);
+
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_00(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_06(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_07(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_08(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_09(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_0a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_0b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_0c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_0d(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_0e(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_0f(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_10(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_11(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_12(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_13(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_14(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_15(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_16(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_17(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_18(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_19(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_1a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_1b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_1c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_1d(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_1e(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_1f(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_20(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_21(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_22(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_23(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_24(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_25(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_26(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_27(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_28(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_29(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_2a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_2b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_2c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_2d(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_2e(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_2f(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_30(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_31(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_32(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_33(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_34(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_35(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_36(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_37(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_38(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_39(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_3a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_3b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_3c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_3d(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_3e(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_3f_3f(OPS_32);
+
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_00(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_01(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_02(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_03(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_04(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_05(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_06(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_07(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_08(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_09(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_0a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_0b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_0c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_0d(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_0e(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_0f(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_10(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_11(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_12(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_13(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_14(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_15(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_16(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_17(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_18(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_19(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_1a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_1b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_1c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_1d(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_1e(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_1f(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_20(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_21(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_22(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_23(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_24(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_25(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_26(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_27(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_28(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_29(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_2a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_2b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_2c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_2d(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_2e(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_2f(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_30(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_31(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_32(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_33(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_34(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_35(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_36(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_37(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_38(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_39(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3d(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3e(OPS_32);
+
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_00(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_01(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_02(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_03(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_04(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_05(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_06(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_07(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_08(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_09(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_0a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_0b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_0c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_0d(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_0e(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_0f(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_10(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_11(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_12(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_13(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_14(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_15(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_16(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_17(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_18(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_19(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_1a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_1b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_1c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_1d(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_1e(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_1f(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_20(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_21(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_22(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_23(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_24(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_25(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_26(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_27(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_28(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_29(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_2a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_2b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_2c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_2d(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_2e(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_2f(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_30(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_31(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_32(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_33(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_34(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_35(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_36(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_37(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_38(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_39(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_3a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_3b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_3c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_3d(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_3e(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_3f_3f(OPS_32);
+
+
+ ARCOMPACT_RETTYPE arcompact_handle04_38(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_39(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_3a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_3b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_3c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_3d(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_3e(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle04_3f(OPS_32);
+
+ ARCOMPACT_RETTYPE arcompact_handle05_09(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_0c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_0d(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_0e(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_0f(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_10(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_11(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_12(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_13(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_14(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_15(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_16(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_17(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_18(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_19(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_1a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_1b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_1c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_1d(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_1e(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_1f(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_20(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_21(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_22(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_23(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_24(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_25(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_26(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_27(OPS_32);
+
+ ARCOMPACT_RETTYPE arcompact_handle05_2a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2d(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_2e(OPS_32);
+
+ ARCOMPACT_RETTYPE arcompact_handle05_30(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_31(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_32(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_33(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_34(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_35(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_36(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_37(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_38(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_39(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_3a(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_3b(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_3c(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_3d(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_3e(OPS_32);
+ ARCOMPACT_RETTYPE arcompact_handle05_3f(OPS_32);
+
+ ARCOMPACT_RETTYPE arcompact_handle0f_00_04(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_00_05(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_00_07_02(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_00_07_03(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_01(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_03(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_08(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_09(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_0a(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle0f_17(OPS_16);
+
+ ARCOMPACT_RETTYPE arcompact_handle18_05_02(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_05_03(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_05_04(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_05_05(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_05_06(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_05_07(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_00(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_02(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_03(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_04(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_05(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_06(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_07(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_08(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_09(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_0a(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_0b(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_0c(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_0d(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_0e(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_0f(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_10(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_12(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_13(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_14(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_15(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_16(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_17(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_18(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_19(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_1a(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_1b(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_1c(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_1d(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_1e(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_06_1f(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_00(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_02(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_03(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_04(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_05(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_06(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_07(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_08(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_09(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_0a(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_0b(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_0c(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_0d(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_0e(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_0f(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_10(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_12(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_13(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_14(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_15(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_16(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_17(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_18(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_19(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_1a(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_1b(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_1c(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_1d(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_1e(OPS_16);
+ ARCOMPACT_RETTYPE arcompact_handle18_07_1f(OPS_16);
+
+ ARCOMPACT_RETTYPE arcompact_01_01_00_helper(OPS_32, const char* optext);
+ ARCOMPACT_RETTYPE arcompact_01_01_01_helper(OPS_32, const char* optext);
+ ARCOMPACT_RETTYPE arcompact_handle04_helper(OPS_32, const char* optext, int ignore_dst, int b_reserved);
+ ARCOMPACT_RETTYPE arcompact_handle04_2f_helper(OPS_32, const char* optext);
+ ARCOMPACT_RETTYPE arcompact_handle04_3x_helper(OPS_32, int dsize, int extend);
+ ARCOMPACT_RETTYPE arcompact_handle05_2f_0x_helper(OPS_32, const char* optext);
+ ARCOMPACT_RETTYPE arcompact_handle0c_helper(OPS_16, const char* optext);
+ ARCOMPACT_RETTYPE arcompact_handle0d_helper(OPS_16, const char* optext);
+ ARCOMPACT_RETTYPE arcompact_handle0e_0x_helper(OPS_16, const char* optext, int revop);
+ ARCOMPACT_RETTYPE arcompact_handle0f_00_0x_helper(OPS_16, const char* optext);
+ ARCOMPACT_RETTYPE arcompact_handle0f_0x_helper(OPS_16, const char* optext, int nodst);
+ ARCOMPACT_RETTYPE arcompact_handle_ld_helper(OPS_16, const char* optext, int shift, int swap);
+ ARCOMPACT_RETTYPE arcompact_handle_l7_0x_helper(OPS_16, const char* optext);
+ ARCOMPACT_RETTYPE arcompact_handle18_0x_helper(OPS_16, const char* optext, int st);
+ ARCOMPACT_RETTYPE arcompact_handle19_0x_helper(OPS_16, const char* optext, int shift, int format);
+ ARCOMPACT_RETTYPE arcompact_handle1e_0x_helper(OPS_16, const char* optext);
+ ARCOMPACT_RETTYPE arcompact_handle1e_03_0x_helper(OPS_16, const char* optext);
+ ARCOMPACT_RETTYPE arcompact_handle1d_helper(OPS_16, const char* optext);
+
+ ARCOMPACT_RETTYPE get_insruction(OPS_32);
+
private:
address_space_config m_program_config;
@@ -50,10 +738,17 @@ private:
UINT32 m_debugger_temp;
void unimplemented_opcode(UINT16 op);
- inline UINT32 READ32(UINT32 address);
- inline void WRITE32(UINT32 address, UINT32 data);
- inline UINT16 READ16(UINT32 address);
- inline void WRITE16(UINT32 address, UINT16 data);
+
+ inline UINT32 READ32(UINT32 address) { return m_program->read_dword(address << 2); }
+ inline void WRITE32(UINT32 address, UINT32 data) { m_program->write_dword(address << 2, data); }
+ inline UINT16 READ16(UINT32 address) { return m_program->read_word(address << 1); }
+ inline void WRITE16(UINT32 address, UINT16 data){ m_program->write_word(address << 1, data); }
+
+ UINT32 m_regs[0x40];
+
+ int m_delayactive;
+ int m_delaylinks;
+ UINT32 m_delayjump;
};
diff --git a/src/emu/cpu/arcompact/arcompact_common.c b/src/emu/cpu/arcompact/arcompact_common.c
new file mode 100644
index 00000000000..bd2e9e55a62
--- /dev/null
+++ b/src/emu/cpu/arcompact/arcompact_common.c
@@ -0,0 +1,526 @@
+/*********************************\
+
+ ARCompact Core
+
+\*********************************/
+
+// condition codes (basic ones are the same as arc
+const char *conditions[0x20] =
+{
+ /* 00 */ "AL", // (aka RA - Always)
+ /* 01 */ "EQ", // (aka Z - Zero
+ /* 02 */ "NE", // (aka NZ - Non-Zero)
+ /* 03 */ "PL", // (aka P - Positive)
+ /* 04 */ "MI", // (aka N - Negative)
+ /* 05 */ "CS", // (aka C, LO - Carry set / Lower than) (unsigned)
+ /* 06 */ "CC", // (aka CC, NC, HS - Carry Clear / Higher or Same) (unsigned)
+ /* 07 */ "VS", // (aka V - Overflow set)
+ /* 08 */ "VC", // (aka NV - Overflow clear)
+ /* 09 */ "GT", // ( - Greater than) (signed)
+ /* 0a */ "GE", // ( - Greater than or Equal) (signed)
+ /* 0b */ "LT", // ( - Less than) (signed)
+ /* 0c */ "LE", // ( - Less than or Equal) (signed)
+ /* 0d */ "HI", // ( - Higher than) (unsigned)
+ /* 0e */ "LS", // ( - Lower or Same) (unsigned)
+ /* 0f */ "PNZ",// ( - Positive non-0 value)
+ /* 10 */ "0x10 Reserved", // possible CPU implementation specifics
+ /* 11 */ "0x11 Reserved",
+ /* 12 */ "0x12 Reserved",
+ /* 13 */ "0x13 Reserved",
+ /* 14 */ "0x14 Reserved",
+ /* 15 */ "0x15 Reserved",
+ /* 16 */ "0x16 Reserved",
+ /* 17 */ "0x17 Reserved",
+ /* 18 */ "0x18 Reserved",
+ /* 19 */ "0x19 Reserved",
+ /* 1a */ "0x1a Reserved",
+ /* 1b */ "0x1b Reserved",
+ /* 1c */ "0x1c Reserved",
+ /* 1d */ "0x1d Reserved",
+ /* 1e */ "0x1e Reserved",
+ /* 1f */ "0x1f Reserved"
+};
+
+#define UNUSED_REG "unusedreg"
+
+#define AUX_UNUSED_16 \
+ /* 0xxx0 */ UNUSED_REG, /* 0xxx1 */ UNUSED_REG, /* 0xxx2 */ UNUSED_REG, /* 0xxx3 */ UNUSED_REG, /* 0xxx4 */ UNUSED_REG, /* 0xxx5 */ UNUSED_REG, /* 0xxx6 */ UNUSED_REG, /* 0xxx7 */ UNUSED_REG, /* 0xxx8 */ UNUSED_REG, /* 0xxx9 */ UNUSED_REG, /* 0xxxa */ UNUSED_REG, /* 0xxxb */ UNUSED_REG, /* 0xxxc */ UNUSED_REG, /* 0xxxd */ UNUSED_REG, /* 0xxxe */ UNUSED_REG, /* 0xxxf */ UNUSED_REG,
+
+// the Auxiliary Register set is actually a 2^32 dword address space (so 16 GB / 34-bit)
+// this table just allows us to improve the debugger display for some of the common core / internal ones
+const char *auxregnames[0x420] =
+{
+ /* 0x000 */ "STATUS",
+ /* 0x001 */ "SEMAPHOR",
+ /* 0x002 */ "LP_START",
+ /* 0x003 */ "LP_END",
+ /* 0x004 */ "IDENTITY",
+ /* 0x005 */ "DEBUG",
+ /* 0x006 */ "PC",
+ /* 0x007 */ UNUSED_REG,
+ /* 0x008 */ UNUSED_REG,
+ /* 0x009 */ UNUSED_REG,
+ /* 0x00a */ "STATUS32",
+ /* 0x00b */ "STATUS32_L1",
+ /* 0x00c */ "STATUS32_L2",
+ /* 0x00d */ UNUSED_REG,
+ /* 0x00e */ UNUSED_REG,
+ /* 0x00f */ UNUSED_REG,
+
+ /* 0x010 */ UNUSED_REG,
+ /* 0x011 */ UNUSED_REG,
+ /* 0x012 */ "MULHI", // extension register
+ /* 0x013 */ UNUSED_REG,
+ /* 0x014 */ UNUSED_REG,
+ /* 0x015 */ UNUSED_REG,
+ /* 0x016 */ UNUSED_REG,
+ /* 0x017 */ UNUSED_REG,
+ /* 0x018 */ UNUSED_REG,
+ /* 0x019 */ UNUSED_REG,
+ /* 0x01a */ UNUSED_REG,
+ /* 0x01b */ UNUSED_REG,
+ /* 0x01c */ UNUSED_REG,
+ /* 0x01d */ UNUSED_REG,
+ /* 0x01e */ UNUSED_REG,
+ /* 0x01f */ UNUSED_REG,
+
+ /* 0x020 */ UNUSED_REG,
+ /* 0x021 */ "COUNT0",
+ /* 0x022 */ "CONTROL0",
+ /* 0x023 */ "LIMIT0",
+ /* 0x024 */ UNUSED_REG,
+ /* 0x025 */ "INT_VECTOR_BASE",
+ /* 0x026 */ UNUSED_REG,
+ /* 0x027 */ UNUSED_REG,
+ /* 0x028 */ UNUSED_REG,
+ /* 0x029 */ UNUSED_REG,
+ /* 0x02a */ UNUSED_REG,
+ /* 0x02b */ UNUSED_REG,
+ /* 0x02c */ UNUSED_REG,
+ /* 0x02d */ UNUSED_REG,
+ /* 0x02e */ UNUSED_REG,
+ /* 0x02f */ UNUSED_REG,
+ AUX_UNUSED_16 /* 0x030 - 0x03f */
+ /* 0x040 */ UNUSED_REG,
+ /* 0x041 */ "AUX_MACMODE",
+ /* 0x042 */ UNUSED_REG,
+ /* 0x043 */ "AUX_IRQLV12",
+ /* 0x044 */ UNUSED_REG,
+ /* 0x045 */ UNUSED_REG,
+ /* 0x046 */ UNUSED_REG,
+ /* 0x047 */ UNUSED_REG,
+ /* 0x048 */ UNUSED_REG,
+ /* 0x049 */ UNUSED_REG,
+ /* 0x04a */ UNUSED_REG,
+ /* 0x04b */ UNUSED_REG,
+ /* 0x04c */ UNUSED_REG,
+ /* 0x04d */ UNUSED_REG,
+ /* 0x04e */ UNUSED_REG,
+ /* 0x04f */ UNUSED_REG,
+ AUX_UNUSED_16 /* 0x050 - 0x05f */
+ // build configuration registers 0x060 - 0x07f
+ /* 0x060 */ "RESERVED AUX 0x60",/* 0x061 */ "RESERVED AUX 0x61",/* 0x062 */ "RESERVED AUX 0x62",/* 0x063 */ "RESERVED AUX 0x63",/* 0x064 */ "RESERVED AUX 0x64",/* 0x065 */ "RESERVED AUX 0x65",/* 0x066 */ "RESERVED AUX 0x66",/* 0x067 */ "RESERVED AUX 0x67",/* 0x068 */ "RESERVED AUX 0x68",/* 0x069 */ "RESERVED AUX 0x69",/* 0x06a */ "RESERVED AUX 0x6a",/* 0x06b */ "RESERVED AUX 0x6b",/* 0x06c */ "RESERVED AUX 0x6c",/* 0x06d */ "RESERVED AUX 0x6d",/* 0x06e */ "RESERVED AUX 0x6e",/* 0x06f */ "RESERVED AUX 0x6f",
+ /* 0x070 */ "RESERVED AUX 0x70",/* 0x071 */ "RESERVED AUX 0x71",/* 0x072 */ "RESERVED AUX 0x72",/* 0x073 */ "RESERVED AUX 0x73",/* 0x074 */ "RESERVED AUX 0x74",/* 0x075 */ "RESERVED AUX 0x75",/* 0x076 */ "RESERVED AUX 0x76",/* 0x077 */ "RESERVED AUX 0x77",/* 0x078 */ "RESERVED AUX 0x78",/* 0x079 */ "RESERVED AUX 0x79",/* 0x07a */ "RESERVED AUX 0x7a",/* 0x07b */ "RESERVED AUX 0x7b",/* 0x07c */ "RESERVED AUX 0x7c",/* 0x07d */ "RESERVED AUX 0x7d",/* 0x07e */ "RESERVED AUX 0x7e",/* 0x07f */ "RESERVED AUX 0x7f",
+ AUX_UNUSED_16 /* 0x080 - 0x08f */
+ AUX_UNUSED_16 /* 0x090 - 0x09f */
+ AUX_UNUSED_16 /* 0x0a0 - 0x0af */
+ AUX_UNUSED_16 /* 0x0b0 - 0x0bf */
+ // build configuration registers 0x0c0 - 0x0ff
+ /* 0x0c0 */ "RESERVED AUX 0xc0",/* 0x0c1 */ "RESERVED AUX 0xc1",/* 0x0c2 */ "RESERVED AUX 0xc2",/* 0x0c3 */ "RESERVED AUX 0xc3",/* 0x0c4 */ "RESERVED AUX 0xc4",/* 0x0c5 */ "RESERVED AUX 0xc5",/* 0x0c6 */ "RESERVED AUX 0xc6",/* 0x0c7 */ "RESERVED AUX 0xc7",/* 0x0c8 */ "RESERVED AUX 0xc8",/* 0x0c9 */ "RESERVED AUX 0xc9",/* 0x0ca */ "RESERVED AUX 0xca",/* 0x0cb */ "RESERVED AUX 0xcb",/* 0x0cc */ "RESERVED AUX 0xcc",/* 0x0cd */ "RESERVED AUX 0xcd",/* 0x0ce */ "RESERVED AUX 0xce",/* 0x0cf */ "RESERVED AUX 0xcf",
+ /* 0x0d0 */ "RESERVED AUX 0xd0",/* 0x0d1 */ "RESERVED AUX 0xd1",/* 0x0d2 */ "RESERVED AUX 0xd2",/* 0x0d3 */ "RESERVED AUX 0xd3",/* 0x0d4 */ "RESERVED AUX 0xd4",/* 0x0d5 */ "RESERVED AUX 0xd5",/* 0x0d6 */ "RESERVED AUX 0xd6",/* 0x0d7 */ "RESERVED AUX 0xd7",/* 0x0d8 */ "RESERVED AUX 0xd8",/* 0x0d9 */ "RESERVED AUX 0xd9",/* 0x0da */ "RESERVED AUX 0xda",/* 0x0db */ "RESERVED AUX 0xdb",/* 0x0dc */ "RESERVED AUX 0xdc",/* 0x0dd */ "RESERVED AUX 0xdd",/* 0x0de */ "RESERVED AUX 0xde",/* 0x0df */ "RESERVED AUX 0xdf",
+ /* 0x0e0 */ "RESERVED AUX 0xe0",/* 0x0e1 */ "RESERVED AUX 0xe1",/* 0x0e2 */ "RESERVED AUX 0xe2",/* 0x0e3 */ "RESERVED AUX 0xe3",/* 0x0e4 */ "RESERVED AUX 0xe4",/* 0x0e5 */ "RESERVED AUX 0xe5",/* 0x0e6 */ "RESERVED AUX 0xe6",/* 0x0e7 */ "RESERVED AUX 0xe7",/* 0x0e8 */ "RESERVED AUX 0xe8",/* 0x0e9 */ "RESERVED AUX 0xe9",/* 0x0ea */ "RESERVED AUX 0xea",/* 0x0eb */ "RESERVED AUX 0xeb",/* 0x0ec */ "RESERVED AUX 0xec",/* 0x0ed */ "RESERVED AUX 0xed",/* 0x0ee */ "RESERVED AUX 0xee",/* 0x0ef */ "RESERVED AUX 0xef",
+ /* 0x0f0 */ "RESERVED AUX 0xf0",/* 0x0f1 */ "RESERVED AUX 0xf1",/* 0x0f2 */ "RESERVED AUX 0xf2",/* 0x0f3 */ "RESERVED AUX 0xf3",/* 0x0f4 */ "RESERVED AUX 0xf4",/* 0x0f5 */ "RESERVED AUX 0xf5",/* 0x0f6 */ "RESERVED AUX 0xf6",/* 0x0f7 */ "RESERVED AUX 0xf7",/* 0x0f8 */ "RESERVED AUX 0xf8",/* 0x0f9 */ "RESERVED AUX 0xf9",/* 0x0fa */ "RESERVED AUX 0xfa",/* 0x0fb */ "RESERVED AUX 0xfb",/* 0x0fc */ "RESERVED AUX 0xfc",/* 0x0fd */ "RESERVED AUX 0xfd",/* 0x0fe */ "RESERVED AUX 0xfe",/* 0x0ff */ "RESERVED AUX 0xff",
+ /* 0x100 */ "COUNT1",
+ /* 0x101 */ "CONTROL1",
+ /* 0x102 */ "LIMIT1",
+ /* 0x103 */ UNUSED_REG,
+ /* 0x104 */ UNUSED_REG,
+ /* 0x105 */ UNUSED_REG,
+ /* 0x106 */ UNUSED_REG,
+ /* 0x107 */ UNUSED_REG,
+ /* 0x108 */ UNUSED_REG,
+ /* 0x109 */ UNUSED_REG,
+ /* 0x10a */ UNUSED_REG,
+ /* 0x10b */ UNUSED_REG,
+ /* 0x10c */ UNUSED_REG,
+ /* 0x10d */ UNUSED_REG,
+ /* 0x10e */ UNUSED_REG,
+ /* 0x10f */ UNUSED_REG,
+ AUX_UNUSED_16 /* 0x110 - 0x11f */
+ AUX_UNUSED_16 /* 0x120 - 0x12f */
+ AUX_UNUSED_16 /* 0x130 - 0x13f */
+ AUX_UNUSED_16 /* 0x140 - 0x14f */
+ AUX_UNUSED_16 /* 0x150 - 0x15f */
+ AUX_UNUSED_16 /* 0x160 - 0x16f */
+ AUX_UNUSED_16 /* 0x170 - 0x17f */
+ AUX_UNUSED_16 /* 0x180 - 0x18f */
+ AUX_UNUSED_16 /* 0x190 - 0x19f */
+ AUX_UNUSED_16 /* 0x1a0 - 0x1af */
+ AUX_UNUSED_16 /* 0x1b0 - 0x1bf */
+ AUX_UNUSED_16 /* 0x1c0 - 0x1cf */
+ AUX_UNUSED_16 /* 0x1d0 - 0x1df */
+ AUX_UNUSED_16 /* 0x1e0 - 0x1ef */
+ AUX_UNUSED_16 /* 0x1f0 - 0x1ff */
+ /* 0x200 */ "AUX_IRQ_LEV",
+ /* 0x201 */ "AUX_IRQ_HINT",
+ /* 0x203 */ UNUSED_REG,
+ /* 0x203 */ UNUSED_REG,
+ /* 0x204 */ UNUSED_REG,
+ /* 0x205 */ UNUSED_REG,
+ /* 0x206 */ UNUSED_REG,
+ /* 0x207 */ UNUSED_REG,
+ /* 0x208 */ UNUSED_REG,
+ /* 0x209 */ UNUSED_REG,
+ /* 0x20a */ UNUSED_REG,
+ /* 0x20b */ UNUSED_REG,
+ /* 0x20c */ UNUSED_REG,
+ /* 0x20d */ UNUSED_REG,
+ /* 0x20e */ UNUSED_REG,
+ /* 0x20f */ UNUSED_REG,
+ AUX_UNUSED_16 /* 0x210 - 0x21f */
+ AUX_UNUSED_16 /* 0x220 - 0x22f */
+ AUX_UNUSED_16 /* 0x230 - 0x23f */
+ AUX_UNUSED_16 /* 0x240 - 0x24f */
+ AUX_UNUSED_16 /* 0x250 - 0x25f */
+ AUX_UNUSED_16 /* 0x260 - 0x26f */
+ AUX_UNUSED_16 /* 0x270 - 0x27f */
+ AUX_UNUSED_16 /* 0x280 - 0x28f */
+ AUX_UNUSED_16 /* 0x290 - 0x29f */
+ AUX_UNUSED_16 /* 0x2a0 - 0x2af */
+ AUX_UNUSED_16 /* 0x2b0 - 0x2bf */
+ AUX_UNUSED_16 /* 0x2c0 - 0x2cf */
+ AUX_UNUSED_16 /* 0x2d0 - 0x2df */
+ AUX_UNUSED_16 /* 0x2e0 - 0x2ef */
+ AUX_UNUSED_16 /* 0x2f0 - 0x2ff */
+
+ AUX_UNUSED_16 /* 0x300 - 0x30f */
+ AUX_UNUSED_16 /* 0x310 - 0x31f */
+ AUX_UNUSED_16 /* 0x320 - 0x32f */
+ AUX_UNUSED_16 /* 0x330 - 0x33f */
+ AUX_UNUSED_16 /* 0x340 - 0x34f */
+ AUX_UNUSED_16 /* 0x350 - 0x35f */
+ AUX_UNUSED_16 /* 0x360 - 0x36f */
+ AUX_UNUSED_16 /* 0x370 - 0x37f */
+ AUX_UNUSED_16 /* 0x380 - 0x38f */
+ AUX_UNUSED_16 /* 0x390 - 0x39f */
+ AUX_UNUSED_16 /* 0x3a0 - 0x3af */
+ AUX_UNUSED_16 /* 0x3b0 - 0x3bf */
+ AUX_UNUSED_16 /* 0x3c0 - 0x3cf */
+ AUX_UNUSED_16 /* 0x3d0 - 0x3df */
+ AUX_UNUSED_16 /* 0x3e0 - 0x3ef */
+ AUX_UNUSED_16 /* 0x3f0 - 0x3ff */
+
+ /* 0x400 */ "ERET",
+ /* 0x401 */ "ERBTA",
+ /* 0x403 */ "ERSTATUS",
+ /* 0x403 */ "ECR",
+ /* 0x404 */ "EFA",
+ /* 0x405 */ UNUSED_REG,
+ /* 0x406 */ UNUSED_REG,
+ /* 0x407 */ UNUSED_REG,
+ /* 0x408 */ UNUSED_REG,
+ /* 0x409 */ UNUSED_REG,
+ /* 0x40a */ "ICAUSE1",
+ /* 0x40b */ "ICAUSE2",
+ /* 0x40c */ "AUX_IENABLE",
+ /* 0x40d */ "AUX_ITRIGGER",
+ /* 0x40e */ UNUSED_REG,
+ /* 0x40f */ UNUSED_REG,
+
+ /* 0x410 */ "XPU",
+ /* 0x411 */ UNUSED_REG,
+ /* 0x412 */ "BTA",
+ /* 0x413 */ "BTA_L1",
+ /* 0x414 */ "BTA_L2",
+ /* 0x415 */ "AUX_IRQ_PULSE_CANCEL",
+ /* 0x416 */ "AUX_IRQ_PENDING",
+ /* 0x417 */ UNUSED_REG,
+ /* 0x418 */ UNUSED_REG,
+ /* 0x419 */ UNUSED_REG,
+ /* 0x41a */ UNUSED_REG,
+ /* 0x41b */ UNUSED_REG,
+ /* 0x41c */ UNUSED_REG,
+ /* 0x41d */ UNUSED_REG,
+ /* 0x41e */ UNUSED_REG,
+ /* 0x41f */ UNUSED_REG
+};
+
+//#define EXPLICIT_EXTENSIONS
+
+const char *datasize[0x4] =
+{
+#ifdef EXPLICIT_EXTENSIONS
+ /* 00 */ ".L", // Dword (default) (can use no extension, using .L to be explicit)
+#else
+ /* 00 */ "",// Dword (default)
+#endif
+ /* 01 */ ".B", // Byte
+ /* 02 */ ".W", // Word
+ /* 03 */ ".<illegal data size>"
+};
+
+const char *dataextend[0x2] =
+{
+#ifdef EXPLICIT_EXTENSIONS
+ /* 00 */ ".ZX", // Zero Extend (can use no extension, using .ZX to be explicit)
+#else
+ /* 00 */ "", // Zero Extend
+#endif
+ /* 01 */ ".X" // Sign Extend
+};
+
+const char *addressmode[0x4] =
+{
+#ifdef EXPLICIT_EXTENSIONS
+ /* 00 */ ".AN", // No Writeback (can use no extension, using .AN to be explicit)
+#else
+ /* 00 */ "", // No Writeback
+#endif
+ /* 01 */ ".AW", // Writeback pre memory access
+ /* 02 */ ".AB", // Writeback post memory access
+ /* 03 */ ".AS" // scaled
+};
+
+const char *cachebit[0x2] =
+{
+#ifdef EXPLICIT_EXTENSIONS
+ /* 00 */ ".EN", // Data Cache Enabled (can use no extension, using .EN to be explicit)
+#else
+ /* 00 */ "", // Data Cache Enabled
+#endif
+ /* 01 */ ".DI" // Direct to Memory (Cache Bypass)
+};
+
+const char *flagbit[0x2] =
+{
+#ifdef EXPLICIT_EXTENSIONS
+ /* 00 */ ".NF", // Don't Set Flags (can use no extension, using .NF to be explicit)
+#else
+ /* 00 */ "", // Don't Set Flags
+#endif
+ /* 01 */ ".F" // Set Flags
+};
+
+const char *delaybit[0x2] =
+{
+ /* 00 */ ".ND", // Don't execute opcode in delay slot
+ /* 01 */ ".D" // Execute Opcode in delay slot
+};
+
+
+const char *regnames[0x40] =
+{
+ /* 00 */ "r0",
+ /* 01 */ "r1",
+ /* 02 */ "r2",
+ /* 03 */ "r3",
+ /* 04 */ "r4",
+ /* 05 */ "r5",
+ /* 06 */ "r6",
+ /* 07 */ "r7",
+ /* 08 */ "r8",
+ /* 09 */ "r9",
+ /* 0a */ "r10",
+ /* 0b */ "r11",
+ /* 0c */ "r12",
+ /* 0d */ "r13",
+ /* 0e */ "r14",
+ /* 0f */ "r15",
+
+ /* 10 */ "r16",
+ /* 11 */ "r17",
+ /* 12 */ "r18",
+ /* 13 */ "r19",
+ /* 14 */ "r20",
+ /* 15 */ "r21",
+ /* 16 */ "r22",
+ /* 17 */ "r23",
+ /* 18 */ "r24",
+ /* 19 */ "r25",
+ /* 1a */ "r26(GP)",
+ /* 1b */ "r27(FP)",
+ /* 1c */ "r28(SP)",
+ /* 1d */ "r29(ILINK1)",
+ /* 1e */ "r30(ILINK2)",
+ /* 1f */ "r31(BLINK)",
+
+ /* 20 */ "r32(ext)",
+ /* 21 */ "r33(ext)",
+ /* 22 */ "r34(ext)",
+ /* 23 */ "r35(ext)",
+ /* 24 */ "r36(ext)",
+ /* 25 */ "r37(ext)",
+ /* 26 */ "r38(ext)",
+ /* 27 */ "r39(ext)",
+ /* 28 */ "r40(ext)",
+ /* 29 */ "r41(ext)",
+ /* 2a */ "r42(ext)",
+ /* 2b */ "r43(ext)",
+ /* 2c */ "r44(ext)",
+ /* 2d */ "r45(ext)",
+ /* 2e */ "r46(ext)",
+ /* 2f */ "r47(ext)",
+
+ /* 30 */ "r48(ext)",
+ /* 31 */ "r49(ext)",
+ /* 32 */ "r50(ext)",
+ /* 33 */ "r51(ext)",
+ /* 34 */ "r52(ext)",
+ /* 35 */ "r53(ext)",
+ /* 36 */ "r54(ext)",
+ /* 37 */ "r55(ext)",
+ /* 38 */ "r56(ext)",
+ /* 39 */ "r57(M-LO)", // MLO (result registers for optional multply functions)
+ /* 3a */ "r58(M-MID)", // MMID
+ /* 3b */ "r59(M-HI)", // MHI
+ /* 3c */ "r60(LP_COUNT)",
+ /* 3d */ "r61(reserved)",
+ /* 3e */ "r62(LIMM)", // use Long Immediate Data instead of register
+ /* 3f */ "r63(PCL)"
+};
+
+#if 0
+const char *opcodes_temp[0x40] =
+{
+ /* 00 */ "0x00",
+ /* 01 */ "0x01",
+ /* 02 */ "0x02",
+ /* 03 */ "0x03",
+ /* 04 */ "0x04",
+ /* 05 */ "0x05",
+ /* 06 */ "0x06",
+ /* 07 */ "0x07",
+ /* 08 */ "0x08",
+ /* 09 */ "0x09",
+ /* 0a */ "0x0a",
+ /* 0b */ "0x0b",
+ /* 0c */ "0x0c",
+ /* 0d */ "0x0d",
+ /* 0e */ "0x0e",
+ /* 0f */ "0x0f",
+
+ /* 10 */ "0x10",
+ /* 11 */ "0x11",
+ /* 12 */ "0x12",
+ /* 13 */ "0x13",
+ /* 14 */ "0x14",
+ /* 15 */ "0x15",
+ /* 16 */ "0x16",
+ /* 17 */ "0x17",
+ /* 18 */ "0x18",
+ /* 19 */ "0x19",
+ /* 1a */ "0x1a",
+ /* 1b */ "0x1b",
+ /* 1c */ "0x1c",
+ /* 1d */ "0x1d",
+ /* 1e */ "0x1e",
+ /* 1f */ "0x1f",
+
+ /* 20 */ "0x20",
+ /* 21 */ "0x21",
+ /* 22 */ "0x22",
+ /* 23 */ "0x23",
+ /* 24 */ "0x24",
+ /* 25 */ "0x25",
+ /* 26 */ "0x26",
+ /* 27 */ "0x27",
+ /* 28 */ "0x28",
+ /* 29 */ "0x29",
+ /* 2a */ "0x2a",
+ /* 2b */ "0x2b",
+ /* 2c */ "0x2c",
+ /* 2d */ "0x2d",
+ /* 2e */ "0x2e",
+ /* 2f */ "0x2f",
+
+ /* 30 */ "0x30",
+ /* 31 */ "0x31",
+ /* 32 */ "0x32",
+ /* 33 */ "0x33",
+ /* 34 */ "0x34",
+ /* 35 */ "0x35",
+ /* 36 */ "0x36",
+ /* 37 */ "0x37",
+ /* 38 */ "0x38",
+ /* 39 */ "0x39",
+ /* 3a */ "0x3a",
+ /* 3b */ "0x3b",
+ /* 3c */ "0x3c",
+ /* 3d */ "0x3d",
+ /* 3e */ "0x3e",
+ /* 3f */ "0x3f",
+};
+#endif
+
+
+const char *opcodes_04[0x40] =
+{
+ /* 00 */ "ADD",
+ /* 01 */ "ADC",
+ /* 02 */ "SUB",
+ /* 03 */ "SBC",
+ /* 04 */ "AND",
+ /* 05 */ "OR",
+ /* 06 */ "BIC",
+ /* 07 */ "XOR",
+ /* 08 */ "MAX",
+ /* 09 */ "MIN",
+ /* 0a */ "MOV",
+ /* 0b */ "TST",
+ /* 0c */ "CMP",
+ /* 0d */ "RCMP",
+ /* 0e */ "RSUB",
+ /* 0f */ "BSET",
+
+ /* 10 */ "BCLR",
+ /* 11 */ "BTST",
+ /* 12 */ "BXOR",
+ /* 13 */ "BSMK",
+ /* 14 */ "ADD1",
+ /* 15 */ "ADD2",
+ /* 16 */ "ADD3",
+ /* 17 */ "SUB1",
+ /* 18 */ "SUB2",
+ /* 19 */ "SUB3",
+ /* 1a */ "MPY",
+ /* 1b */ "MPYH",
+ /* 1c */ "MPYHU",
+ /* 1d */ "MPYU",
+ /* 1e */ "0x1e",
+ /* 1f */ "0x1f",
+
+ /* 20 */ "Jcc",
+ /* 21 */ "Jcc.D",
+ /* 22 */ "JLcc",
+ /* 23 */ "JLcc.D",
+ /* 24 */ "0x24",
+ /* 25 */ "0x25",
+ /* 26 */ "0x26",
+ /* 27 */ "0x27",
+ /* 28 */ "LPcc",
+ /* 29 */ "FLAG",
+ /* 2a */ "LR",
+ /* 2b */ "SR",
+ /* 2c */ "0x2c",
+ /* 2d */ "0x2d",
+ /* 2e */ "0x2e",
+ /* 2f */ "SOP table",
+
+ /* 30 */ "LD",
+ /* 31 */ "LD",
+ /* 32 */ "LD",
+ /* 33 */ "LD",
+ /* 34 */ "LD",
+ /* 35 */ "LD",
+ /* 36 */ "LD",
+ /* 37 */ "LD",
+ /* 38 */ "0x38",
+ /* 39 */ "0x39",
+ /* 3a */ "0x3a",
+ /* 3b */ "0x3b",
+ /* 3c */ "0x3c",
+ /* 3d */ "0x3d",
+ /* 3e */ "0x3e",
+ /* 3f */ "0x3f",
+};
+
diff --git a/src/emu/cpu/arcompact/arcompact_common.h b/src/emu/cpu/arcompact/arcompact_common.h
new file mode 100644
index 00000000000..1fd68144b58
--- /dev/null
+++ b/src/emu/cpu/arcompact/arcompact_common.h
@@ -0,0 +1,18 @@
+/*********************************\
+
+ ARCompact Core
+
+\*********************************/
+
+extern const char *conditions[0x20];
+extern const char *auxregnames[0x420];
+extern const char *datasize[0x4];
+extern const char *dataextend[0x2];
+extern const char *addressmode[0x4];
+extern const char *cachebit[0x2];
+extern const char *flagbit[0x2];
+extern const char *delaybit[0x2];
+extern const char *regnames[0x40];
+extern const char *opcodes_04[0x40];
+
+#define REG_BLINK (0x1f) // 31
diff --git a/src/emu/cpu/arcompact/arcompact_execute.c b/src/emu/cpu/arcompact/arcompact_execute.c
new file mode 100644
index 00000000000..38a0df0771b
--- /dev/null
+++ b/src/emu/cpu/arcompact/arcompact_execute.c
@@ -0,0 +1,2741 @@
+
+#include "emu.h"
+#include "debugger.h"
+#include "arcompact.h"
+#include "arcompact_common.h"
+
+#define ARCOMPACT_LOGGING 0
+
+#define arcompact_fatal if (ARCOMPACT_LOGGING) fatalerror
+#define arcompact_log if (ARCOMPACT_LOGGING) fatalerror
+
+
+void arcompact_device::execute_run()
+{
+ //UINT32 lres;
+ //lres = 0;
+
+ while (m_icount > 0)
+ {
+ debugger_instruction_hook(this, m_pc<<1);
+
+// printf("new pc %04x\n", m_pc);
+
+ if (m_delayactive)
+ {
+ UINT16 op = READ16((m_pc + 0) >> 1);
+ m_pc = get_insruction(op);
+ if (m_delaylinks) m_regs[REG_BLINK] = m_pc;
+
+ m_pc = m_delayjump;
+ m_delayactive = 0; m_delaylinks = 0;
+ }
+ else
+ {
+ UINT16 op = READ16((m_pc + 0) >> 1);
+ m_pc = get_insruction(op);
+ }
+
+ m_icount--;
+ }
+
+}
+
+
+#define GET_01_01_01_BRANCH_ADDR \
+ INT32 address = (op & 0x00fe0000) >> 17; \
+ address |= ((op & 0x00008000) >> 15) << 7; \
+ if (address & 0x80) address = -0x80 + (address & 0x7f); \
+
+
+#define GROUP_0e_GET_h \
+ h = ((op & 0x0007) << 3); \
+ h |= ((op & 0x00e0) >> 5); \
+
+#define COMMON32_GET_breg \
+ int b_temp = (op & 0x07000000) >> 24; \
+ int B_temp = (op & 0x00007000) >> 12; \
+ int breg = b_temp | (B_temp << 3); \
+
+#define COMMON32_GET_s12 \
+ int S_temp = (op & 0x0000003f) >> 0; \
+ int s_temp = (op & 0x00000fc0) >> 6; \
+ int S = s_temp | (S_temp<<6); \
+
+#define COMMON32_GET_CONDITION \
+ UINT8 condition = op & 0x0000001f;
+
+
+#define COMMON16_GET_breg \
+ breg = ((op & 0x0700) >>8); \
+
+#define COMMON16_GET_creg \
+ creg = ((op & 0x00e0) >>5); \
+
+#define COMMON16_GET_areg \
+ areg = ((op & 0x0007) >>0); \
+
+#define COMMON16_GET_u3 \
+ u = ((op & 0x0007) >>0); \
+
+#define COMMON16_GET_u5 \
+ u = ((op & 0x001f) >>0); \
+
+#define COMMON16_GET_u8 \
+ u = ((op & 0x00ff) >>0); \
+
+#define COMMON16_GET_u7 \
+ u = ((op & 0x007f) >>0); \
+
+#define COMMON16_GET_s9 \
+ s = ((op & 0x01ff) >>0); \
+
+// registers used in 16-bit opcodes hae a limited range
+// and can only address registers r0-r3 and r12-r15
+
+#define REG_16BIT_RANGE(_reg_) \
+ if (_reg_>3) _reg_+= 8; \
+
+
+#define GET_LIMM_32 \
+ limm = (READ16((m_pc + 4) >> 1) << 16); \
+ limm |= READ16((m_pc + 6) >> 1); \
+
+
+
+#define PC_ALIGNED32 \
+ (m_pc&0xfffffffc)
+
+
+ARCOMPACT_RETTYPE arcompact_device::get_insruction(OPS_32)
+{
+ UINT8 instruction = ARCOMPACT_OPERATION;
+
+ if (instruction < 0x0c)
+ {
+ op <<= 16;
+ op |= READ16((m_pc + 2) >> 1);
+
+ switch (instruction) // 32-bit instructions (with optional extra dword for immediate data)
+ {
+ case 0x00: return arcompact_handle00(PARAMS); break; // Bcc
+ case 0x01: return arcompact_handle01(PARAMS); break; // BLcc/BRcc
+ case 0x02: return arcompact_handle02(PARAMS); break; // LD r+o
+ case 0x03: return arcompact_handle03(PARAMS); break; // ST r+o
+ case 0x04: return arcompact_handle04(PARAMS); break; // op a,b,c (basecase)
+ case 0x05: return arcompact_handle05(PARAMS); break; // op a,b,c (05 ARC ext)
+ case 0x06: return arcompact_handle06(PARAMS); break; // op a,b,c (06 ARC ext)
+ case 0x07: return arcompact_handle07(PARAMS); break; // op a,b,c (07 User ext)
+ case 0x08: return arcompact_handle08(PARAMS); break; // op a,b,c (08 User ext)
+ case 0x09: return arcompact_handle09(PARAMS); break; // op a,b,c (09 Market ext)
+ case 0x0a: return arcompact_handle0a(PARAMS); break; // op a,b,c (0a Market ext)
+ case 0x0b: return arcompact_handle0b(PARAMS); break; // op a,b,c (0b Market ext)
+ }
+ }
+ else
+ {
+ switch (instruction) // 16-bit instructions
+ {
+ case 0x0c: return arcompact_handle0c(PARAMS); break; // Load/Add reg-reg
+ case 0x0d: return arcompact_handle0d(PARAMS); break; // Add/Sub/Shft imm
+ case 0x0e: return arcompact_handle0e(PARAMS); break; // Mov/Cmp/Add
+ case 0x0f: return arcompact_handle0f(PARAMS); break; // op_S b,b,c (single 16-bit ops)
+ case 0x10: return arcompact_handle10(PARAMS); break; // LD_S
+ case 0x11: return arcompact_handle11(PARAMS); break; // LDB_S
+ case 0x12: return arcompact_handle12(PARAMS); break; // LDW_S
+ case 0x13: return arcompact_handle13(PARAMS); break; // LSW_S.X
+ case 0x14: return arcompact_handle14(PARAMS); break; // ST_S
+ case 0x15: return arcompact_handle15(PARAMS); break; // STB_S
+ case 0x16: return arcompact_handle16(PARAMS); break; // STW_S
+ case 0x17: return arcompact_handle17(PARAMS); break; // Shift/Sub/Bit
+ case 0x18: return arcompact_handle18(PARAMS); break; // Stack Instr
+ case 0x19: return arcompact_handle19(PARAMS); break; // GP Instr
+ case 0x1a: return arcompact_handle1a(PARAMS); break; // PCL Instr
+ case 0x1b: return arcompact_handle1b(PARAMS); break; // MOV_S
+ case 0x1c: return arcompact_handle1c(PARAMS); break; // ADD_S/CMP_S
+ case 0x1d: return arcompact_handle1d(PARAMS); break; // BRcc_S
+ case 0x1e: return arcompact_handle1e(PARAMS); break; // Bcc_S
+ case 0x1f: return arcompact_handle1f(PARAMS); break; // BL_S
+ }
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle00(OPS_32)
+{
+ UINT8 subinstr = (op & 0x00010000) >> 16;
+
+ switch (subinstr)
+ {
+ case 0x00: return arcompact_handle00_00(PARAMS); break; // Branch Conditionally
+ case 0x01: return arcompact_handle00_01(PARAMS); break; // Branch Unconditionally Far
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01(OPS_32)
+{
+ UINT8 subinstr = (op & 0x00010000) >> 16;
+
+ switch (subinstr)
+ {
+ case 0x00: return arcompact_handle01_00(PARAMS); break; // Branh & Link
+ case 0x01: return arcompact_handle01_01(PARAMS); break; // Branch on Compare
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_00(OPS_32)
+{
+ UINT8 subinstr2 = (op & 0x00020000) >> 17;
+
+ switch (subinstr2)
+ {
+ case 0x00: return arcompact_handle01_00_00dasm(PARAMS); break; // Branch and Link Conditionally
+ case 0x01: return arcompact_handle01_00_01dasm(PARAMS); break; // Branch and Link Unconditional Far
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01(OPS_32)
+{
+ UINT8 subinstr2 = (op & 0x00000010) >> 4;
+
+ switch (subinstr2)
+ {
+ case 0x00: return arcompact_handle01_01_00(PARAMS); break; // Branch on Compare Register-Register
+ case 0x01: return arcompact_handle01_01_01(PARAMS); break; // Branch on Compare/Bit Test Register-Immediate
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_00(OPS_32)
+{
+ UINT8 subinstr3 = (op & 0x0000000f) >> 0;
+
+ switch (subinstr3)
+ {
+ case 0x00: return arcompact_handle01_01_00_00(PARAMS); break; // BREQ (reg-reg)
+ case 0x01: return arcompact_handle01_01_00_01(PARAMS); break; // BRNE (reg-reg)
+ case 0x02: return arcompact_handle01_01_00_02(PARAMS); break; // BRLT (reg-reg)
+ case 0x03: return arcompact_handle01_01_00_03(PARAMS); break; // BRGE (reg-reg)
+ case 0x04: return arcompact_handle01_01_00_04(PARAMS); break; // BRLO (reg-reg)
+ case 0x05: return arcompact_handle01_01_00_05(PARAMS); break; // BRHS (reg-reg)
+ case 0x06: return arcompact_handle01_01_00_06(PARAMS); break; // reserved
+ case 0x07: return arcompact_handle01_01_00_07(PARAMS); break; // reserved
+ case 0x08: return arcompact_handle01_01_00_08(PARAMS); break; // reserved
+ case 0x09: return arcompact_handle01_01_00_09(PARAMS); break; // reserved
+ case 0x0a: return arcompact_handle01_01_00_0a(PARAMS); break; // reserved
+ case 0x0b: return arcompact_handle01_01_00_0b(PARAMS); break; // reserved
+ case 0x0c: return arcompact_handle01_01_00_0c(PARAMS); break; // reserved
+ case 0x0d: return arcompact_handle01_01_00_0d(PARAMS); break; // reserved
+ case 0x0e: return arcompact_handle01_01_00_0e(PARAMS); break; // BBIT0 (reg-reg)
+ case 0x0f: return arcompact_handle01_01_00_0f(PARAMS); break; // BBIT1 (reg-reg)
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_01(OPS_32) // Branch on Compare/Bit Test Register-Immediate
+{
+ UINT8 subinstr3 = (op & 0x0000000f) >> 0;
+
+ switch (subinstr3)
+ {
+ case 0x00: return arcompact_handle01_01_01_00(PARAMS); break; // BREQ (reg-imm)
+ case 0x01: return arcompact_handle01_01_01_01(PARAMS); break; // BRNE (reg-imm)
+ case 0x02: return arcompact_handle01_01_01_02(PARAMS); break; // BRLT (reg-imm)
+ case 0x03: return arcompact_handle01_01_01_03(PARAMS); break; // BRGE (reg-imm)
+ case 0x04: return arcompact_handle01_01_01_04(PARAMS); break; // BRLO (reg-imm)
+ case 0x05: return arcompact_handle01_01_01_05(PARAMS); break; // BRHS (reg-imm)
+ case 0x06: return arcompact_handle01_01_01_06(PARAMS); break; // reserved
+ case 0x07: return arcompact_handle01_01_01_07(PARAMS); break; // reserved
+ case 0x08: return arcompact_handle01_01_01_08(PARAMS); break; // reserved
+ case 0x09: return arcompact_handle01_01_01_09(PARAMS); break; // reserved
+ case 0x0a: return arcompact_handle01_01_01_0a(PARAMS); break; // reserved
+ case 0x0b: return arcompact_handle01_01_01_0b(PARAMS); break; // reserved
+ case 0x0c: return arcompact_handle01_01_01_0c(PARAMS); break; // reserved
+ case 0x0d: return arcompact_handle01_01_01_0d(PARAMS); break; // reserved
+ case 0x0e: return arcompact_handle01_01_01_0e(PARAMS); break; // BBIT0 (reg-imm)
+ case 0x0f: return arcompact_handle01_01_01_0f(PARAMS); break; // BBIT1 (reg-imm)
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04(OPS_32)
+{
+ UINT8 subinstr = (op & 0x003f0000) >> 16;
+
+ switch (subinstr)
+ {
+ case 0x00: return arcompact_handle04_00(PARAMS); break; // ADD
+ case 0x01: return arcompact_handle04_01(PARAMS); break; // ADC
+ case 0x02: return arcompact_handle04_02(PARAMS); break; // SUB
+ case 0x03: return arcompact_handle04_03(PARAMS); break; // SBC
+ case 0x04: return arcompact_handle04_04(PARAMS); break; // AND
+ case 0x05: return arcompact_handle04_05(PARAMS); break; // OR
+ case 0x06: return arcompact_handle04_06(PARAMS); break; // BIC
+ case 0x07: return arcompact_handle04_07(PARAMS); break; // XOR
+ case 0x08: return arcompact_handle04_08(PARAMS); break; // MAX
+ case 0x09: return arcompact_handle04_09(PARAMS); break; // MIN
+ case 0x0a: return arcompact_handle04_0a(PARAMS); break; // MOV
+ case 0x0b: return arcompact_handle04_0b(PARAMS); break; // TST
+ case 0x0c: return arcompact_handle04_0c(PARAMS); break; // CMP
+ case 0x0d: return arcompact_handle04_0d(PARAMS); break; // RCMP
+ case 0x0e: return arcompact_handle04_0e(PARAMS); break; // RSUB
+ case 0x0f: return arcompact_handle04_0f(PARAMS); break; // BSET
+ case 0x10: return arcompact_handle04_10(PARAMS); break; // BCLR
+ case 0x11: return arcompact_handle04_11(PARAMS); break; // BTST
+ case 0x12: return arcompact_handle04_12(PARAMS); break; // BXOR
+ case 0x13: return arcompact_handle04_13(PARAMS); break; // BMSK
+ case 0x14: return arcompact_handle04_14(PARAMS); break; // ADD1
+ case 0x15: return arcompact_handle04_15(PARAMS); break; // ADD2
+ case 0x16: return arcompact_handle04_16(PARAMS); break; // ADD3
+ case 0x17: return arcompact_handle04_17(PARAMS); break; // SUB1
+ case 0x18: return arcompact_handle04_18(PARAMS); break; // SUB2
+ case 0x19: return arcompact_handle04_19(PARAMS); break; // SUB3
+ case 0x1a: return arcompact_handle04_1a(PARAMS); break; // MPY *
+ case 0x1b: return arcompact_handle04_1b(PARAMS); break; // MPYH *
+ case 0x1c: return arcompact_handle04_1c(PARAMS); break; // MPYHU *
+ case 0x1d: return arcompact_handle04_1d(PARAMS); break; // MPYU *
+ case 0x1e: return arcompact_handle04_1e(PARAMS); break; // illegal
+ case 0x1f: return arcompact_handle04_1f(PARAMS); break; // illegal
+ case 0x20: return arcompact_handle04_20(PARAMS); break; // Jcc
+ case 0x21: return arcompact_handle04_21(PARAMS); break; // Jcc.D
+ case 0x22: return arcompact_handle04_22(PARAMS); break; // JLcc
+ case 0x23: return arcompact_handle04_23(PARAMS); break; // JLcc.D
+ case 0x24: return arcompact_handle04_24(PARAMS); break; // illegal
+ case 0x25: return arcompact_handle04_25(PARAMS); break; // illegal
+ case 0x26: return arcompact_handle04_26(PARAMS); break; // illegal
+ case 0x27: return arcompact_handle04_27(PARAMS); break; // illegal
+ case 0x28: return arcompact_handle04_28(PARAMS); break; // LPcc
+ case 0x29: return arcompact_handle04_29(PARAMS); break; // FLAG
+ case 0x2a: return arcompact_handle04_2a(PARAMS); break; // LR
+ case 0x2b: return arcompact_handle04_2b(PARAMS); break; // SR
+ case 0x2c: return arcompact_handle04_2c(PARAMS); break; // illegal
+ case 0x2d: return arcompact_handle04_2d(PARAMS); break; // illegal
+ case 0x2e: return arcompact_handle04_2e(PARAMS); break; // illegal
+ case 0x2f: return arcompact_handle04_2f(PARAMS); break; // Sub Opcode
+ case 0x30: return arcompact_handle04_30(PARAMS); break; // LD r-r
+ case 0x31: return arcompact_handle04_31(PARAMS); break; // LD r-r
+ case 0x32: return arcompact_handle04_32(PARAMS); break; // LD r-r
+ case 0x33: return arcompact_handle04_33(PARAMS); break; // LD r-r
+ case 0x34: return arcompact_handle04_34(PARAMS); break; // LD r-r
+ case 0x35: return arcompact_handle04_35(PARAMS); break; // LD r-r
+ case 0x36: return arcompact_handle04_36(PARAMS); break; // LD r-r
+ case 0x37: return arcompact_handle04_37(PARAMS); break; // LD r-r
+ case 0x38: return arcompact_handle04_38(PARAMS); break; // illegal
+ case 0x39: return arcompact_handle04_39(PARAMS); break; // illegal
+ case 0x3a: return arcompact_handle04_3a(PARAMS); break; // illegal
+ case 0x3b: return arcompact_handle04_3b(PARAMS); break; // illegal
+ case 0x3c: return arcompact_handle04_3c(PARAMS); break; // illegal
+ case 0x3d: return arcompact_handle04_3d(PARAMS); break; // illegal
+ case 0x3e: return arcompact_handle04_3e(PARAMS); break; // illegal
+ case 0x3f: return arcompact_handle04_3f(PARAMS); break; // illegal
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f(OPS_32)
+{
+ UINT8 subinstr2 = (op & 0x0000003f) >> 0;
+
+ switch (subinstr2)
+ {
+ case 0x00: return arcompact_handle04_2f_00(PARAMS); break; // ASL
+ case 0x01: return arcompact_handle04_2f_01(PARAMS); break; // ASR
+ case 0x02: return arcompact_handle04_2f_02(PARAMS); break; // LSR
+ case 0x03: return arcompact_handle04_2f_03(PARAMS); break; // ROR
+ case 0x04: return arcompact_handle04_2f_04(PARAMS); break; // RCC
+ case 0x05: return arcompact_handle04_2f_05(PARAMS); break; // SEXB
+ case 0x06: return arcompact_handle04_2f_06(PARAMS); break; // SEXW
+ case 0x07: return arcompact_handle04_2f_07(PARAMS); break; // EXTB
+ case 0x08: return arcompact_handle04_2f_08(PARAMS); break; // EXTW
+ case 0x09: return arcompact_handle04_2f_09(PARAMS); break; // ABS
+ case 0x0a: return arcompact_handle04_2f_0a(PARAMS); break; // NOT
+ case 0x0b: return arcompact_handle04_2f_0b(PARAMS); break; // RLC
+ case 0x0c: return arcompact_handle04_2f_0c(PARAMS); break; // EX
+ case 0x0d: return arcompact_handle04_2f_0d(PARAMS); break; // illegal
+ case 0x0e: return arcompact_handle04_2f_0e(PARAMS); break; // illegal
+ case 0x0f: return arcompact_handle04_2f_0f(PARAMS); break; // illegal
+ case 0x10: return arcompact_handle04_2f_10(PARAMS); break; // illegal
+ case 0x11: return arcompact_handle04_2f_11(PARAMS); break; // illegal
+ case 0x12: return arcompact_handle04_2f_12(PARAMS); break; // illegal
+ case 0x13: return arcompact_handle04_2f_13(PARAMS); break; // illegal
+ case 0x14: return arcompact_handle04_2f_14(PARAMS); break; // illegal
+ case 0x15: return arcompact_handle04_2f_15(PARAMS); break; // illegal
+ case 0x16: return arcompact_handle04_2f_16(PARAMS); break; // illegal
+ case 0x17: return arcompact_handle04_2f_17(PARAMS); break; // illegal
+ case 0x18: return arcompact_handle04_2f_18(PARAMS); break; // illegal
+ case 0x19: return arcompact_handle04_2f_19(PARAMS); break; // illegal
+ case 0x1a: return arcompact_handle04_2f_1a(PARAMS); break; // illegal
+ case 0x1b: return arcompact_handle04_2f_1b(PARAMS); break; // illegal
+ case 0x1c: return arcompact_handle04_2f_1c(PARAMS); break; // illegal
+ case 0x1d: return arcompact_handle04_2f_1d(PARAMS); break; // illegal
+ case 0x1e: return arcompact_handle04_2f_1e(PARAMS); break; // illegal
+ case 0x1f: return arcompact_handle04_2f_1f(PARAMS); break; // illegal
+ case 0x20: return arcompact_handle04_2f_20(PARAMS); break; // illegal
+ case 0x21: return arcompact_handle04_2f_21(PARAMS); break; // illegal
+ case 0x22: return arcompact_handle04_2f_22(PARAMS); break; // illegal
+ case 0x23: return arcompact_handle04_2f_23(PARAMS); break; // illegal
+ case 0x24: return arcompact_handle04_2f_24(PARAMS); break; // illegal
+ case 0x25: return arcompact_handle04_2f_25(PARAMS); break; // illegal
+ case 0x26: return arcompact_handle04_2f_26(PARAMS); break; // illegal
+ case 0x27: return arcompact_handle04_2f_27(PARAMS); break; // illegal
+ case 0x28: return arcompact_handle04_2f_28(PARAMS); break; // illegal
+ case 0x29: return arcompact_handle04_2f_29(PARAMS); break; // illegal
+ case 0x2a: return arcompact_handle04_2f_2a(PARAMS); break; // illegal
+ case 0x2b: return arcompact_handle04_2f_2b(PARAMS); break; // illegal
+ case 0x2c: return arcompact_handle04_2f_2c(PARAMS); break; // illegal
+ case 0x2d: return arcompact_handle04_2f_2d(PARAMS); break; // illegal
+ case 0x2e: return arcompact_handle04_2f_2e(PARAMS); break; // illegal
+ case 0x2f: return arcompact_handle04_2f_2f(PARAMS); break; // illegal
+ case 0x30: return arcompact_handle04_2f_30(PARAMS); break; // illegal
+ case 0x31: return arcompact_handle04_2f_31(PARAMS); break; // illegal
+ case 0x32: return arcompact_handle04_2f_32(PARAMS); break; // illegal
+ case 0x33: return arcompact_handle04_2f_33(PARAMS); break; // illegal
+ case 0x34: return arcompact_handle04_2f_34(PARAMS); break; // illegal
+ case 0x35: return arcompact_handle04_2f_35(PARAMS); break; // illegal
+ case 0x36: return arcompact_handle04_2f_36(PARAMS); break; // illegal
+ case 0x37: return arcompact_handle04_2f_37(PARAMS); break; // illegal
+ case 0x38: return arcompact_handle04_2f_38(PARAMS); break; // illegal
+ case 0x39: return arcompact_handle04_2f_39(PARAMS); break; // illegal
+ case 0x3a: return arcompact_handle04_2f_3a(PARAMS); break; // illegal
+ case 0x3b: return arcompact_handle04_2f_3b(PARAMS); break; // illegal
+ case 0x3c: return arcompact_handle04_2f_3c(PARAMS); break; // illegal
+ case 0x3d: return arcompact_handle04_2f_3d(PARAMS); break; // illegal
+ case 0x3e: return arcompact_handle04_2f_3e(PARAMS); break; // illegal
+ case 0x3f: return arcompact_handle04_2f_3f(PARAMS); break; // ZOPs (Zero Operand Opcodes)
+ }
+
+ return 0;
+}
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f(OPS_32)
+{
+ UINT8 subinstr2 = (op & 0x0000003f) >> 0;
+
+ switch (subinstr2)
+ {
+ case 0x00: return arcompact_handle05_2f_00(PARAMS); break; // SWAP
+ case 0x01: return arcompact_handle05_2f_01(PARAMS); break; // NORM
+ case 0x02: return arcompact_handle05_2f_02(PARAMS); break; // SAT16
+ case 0x03: return arcompact_handle05_2f_03(PARAMS); break; // RND16
+ case 0x04: return arcompact_handle05_2f_04(PARAMS); break; // ABSSW
+ case 0x05: return arcompact_handle05_2f_05(PARAMS); break; // ABSS
+ case 0x06: return arcompact_handle05_2f_06(PARAMS); break; // NEGSW
+ case 0x07: return arcompact_handle05_2f_07(PARAMS); break; // NEGS
+ case 0x08: return arcompact_handle05_2f_08(PARAMS); break; // NORMW
+ case 0x09: return arcompact_handle05_2f_09(PARAMS); break; // illegal
+ case 0x0a: return arcompact_handle05_2f_0a(PARAMS); break; // illegal
+ case 0x0b: return arcompact_handle05_2f_0b(PARAMS); break; // illegal
+ case 0x0c: return arcompact_handle05_2f_0c(PARAMS); break; // illegal
+ case 0x0d: return arcompact_handle05_2f_0d(PARAMS); break; // illegal
+ case 0x0e: return arcompact_handle05_2f_0e(PARAMS); break; // illegal
+ case 0x0f: return arcompact_handle05_2f_0f(PARAMS); break; // illegal
+ case 0x10: return arcompact_handle05_2f_10(PARAMS); break; // illegal
+ case 0x11: return arcompact_handle05_2f_11(PARAMS); break; // illegal
+ case 0x12: return arcompact_handle05_2f_12(PARAMS); break; // illegal
+ case 0x13: return arcompact_handle05_2f_13(PARAMS); break; // illegal
+ case 0x14: return arcompact_handle05_2f_14(PARAMS); break; // illegal
+ case 0x15: return arcompact_handle05_2f_15(PARAMS); break; // illegal
+ case 0x16: return arcompact_handle05_2f_16(PARAMS); break; // illegal
+ case 0x17: return arcompact_handle05_2f_17(PARAMS); break; // illegal
+ case 0x18: return arcompact_handle05_2f_18(PARAMS); break; // illegal
+ case 0x19: return arcompact_handle05_2f_19(PARAMS); break; // illegal
+ case 0x1a: return arcompact_handle05_2f_1a(PARAMS); break; // illegal
+ case 0x1b: return arcompact_handle05_2f_1b(PARAMS); break; // illegal
+ case 0x1c: return arcompact_handle05_2f_1c(PARAMS); break; // illegal
+ case 0x1d: return arcompact_handle05_2f_1d(PARAMS); break; // illegal
+ case 0x1e: return arcompact_handle05_2f_1e(PARAMS); break; // illegal
+ case 0x1f: return arcompact_handle05_2f_1f(PARAMS); break; // illegal
+ case 0x20: return arcompact_handle05_2f_20(PARAMS); break; // illegal
+ case 0x21: return arcompact_handle05_2f_21(PARAMS); break; // illegal
+ case 0x22: return arcompact_handle05_2f_22(PARAMS); break; // illegal
+ case 0x23: return arcompact_handle05_2f_23(PARAMS); break; // illegal
+ case 0x24: return arcompact_handle05_2f_24(PARAMS); break; // illegal
+ case 0x25: return arcompact_handle05_2f_25(PARAMS); break; // illegal
+ case 0x26: return arcompact_handle05_2f_26(PARAMS); break; // illegal
+ case 0x27: return arcompact_handle05_2f_27(PARAMS); break; // illegal
+ case 0x28: return arcompact_handle05_2f_28(PARAMS); break; // illegal
+ case 0x29: return arcompact_handle05_2f_29(PARAMS); break; // illegal
+ case 0x2a: return arcompact_handle05_2f_2a(PARAMS); break; // illegal
+ case 0x2b: return arcompact_handle05_2f_2b(PARAMS); break; // illegal
+ case 0x2c: return arcompact_handle05_2f_2c(PARAMS); break; // illegal
+ case 0x2d: return arcompact_handle05_2f_2d(PARAMS); break; // illegal
+ case 0x2e: return arcompact_handle05_2f_2e(PARAMS); break; // illegal
+ case 0x2f: return arcompact_handle05_2f_2f(PARAMS); break; // illegal
+ case 0x30: return arcompact_handle05_2f_30(PARAMS); break; // illegal
+ case 0x31: return arcompact_handle05_2f_31(PARAMS); break; // illegal
+ case 0x32: return arcompact_handle05_2f_32(PARAMS); break; // illegal
+ case 0x33: return arcompact_handle05_2f_33(PARAMS); break; // illegal
+ case 0x34: return arcompact_handle05_2f_34(PARAMS); break; // illegal
+ case 0x35: return arcompact_handle05_2f_35(PARAMS); break; // illegal
+ case 0x36: return arcompact_handle05_2f_36(PARAMS); break; // illegal
+ case 0x37: return arcompact_handle05_2f_37(PARAMS); break; // illegal
+ case 0x38: return arcompact_handle05_2f_38(PARAMS); break; // illegal
+ case 0x39: return arcompact_handle05_2f_39(PARAMS); break; // illegal
+ case 0x3a: return arcompact_handle05_2f_3a(PARAMS); break; // illegal
+ case 0x3b: return arcompact_handle05_2f_3b(PARAMS); break; // illegal
+ case 0x3c: return arcompact_handle05_2f_3c(PARAMS); break; // illegal
+ case 0x3d: return arcompact_handle05_2f_3d(PARAMS); break; // illegal
+ case 0x3e: return arcompact_handle05_2f_3e(PARAMS); break; // illegal
+ case 0x3f: return arcompact_handle05_2f_3f(PARAMS); break; // ZOPs (Zero Operand Opcodes)
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f(OPS_32)
+{
+ UINT8 subinstr3 = (op & 0x07000000) >> 24;
+ subinstr3 |= ((op & 0x00007000) >> 12) << 3;
+
+ switch (subinstr3)
+ {
+ case 0x00: return arcompact_handle04_2f_3f_00(PARAMS); break; // illegal
+ case 0x01: return arcompact_handle04_2f_3f_01(PARAMS); break; // SLEEP
+ case 0x02: return arcompact_handle04_2f_3f_02(PARAMS); break; // SWI / TRAP9
+ case 0x03: return arcompact_handle04_2f_3f_03(PARAMS); break; // SYNC
+ case 0x04: return arcompact_handle04_2f_3f_04(PARAMS); break; // RTIE
+ case 0x05: return arcompact_handle04_2f_3f_05(PARAMS); break; // BRK
+ case 0x06: return arcompact_handle04_2f_3f_06(PARAMS); break; // illegal
+ case 0x07: return arcompact_handle04_2f_3f_07(PARAMS); break; // illegal
+ case 0x08: return arcompact_handle04_2f_3f_08(PARAMS); break; // illegal
+ case 0x09: return arcompact_handle04_2f_3f_09(PARAMS); break; // illegal
+ case 0x0a: return arcompact_handle04_2f_3f_0a(PARAMS); break; // illegal
+ case 0x0b: return arcompact_handle04_2f_3f_0b(PARAMS); break; // illegal
+ case 0x0c: return arcompact_handle04_2f_3f_0c(PARAMS); break; // illegal
+ case 0x0d: return arcompact_handle04_2f_3f_0d(PARAMS); break; // illegal
+ case 0x0e: return arcompact_handle04_2f_3f_0e(PARAMS); break; // illegal
+ case 0x0f: return arcompact_handle04_2f_3f_0f(PARAMS); break; // illegal
+ case 0x10: return arcompact_handle04_2f_3f_10(PARAMS); break; // illegal
+ case 0x11: return arcompact_handle04_2f_3f_11(PARAMS); break; // illegal
+ case 0x12: return arcompact_handle04_2f_3f_12(PARAMS); break; // illegal
+ case 0x13: return arcompact_handle04_2f_3f_13(PARAMS); break; // illegal
+ case 0x14: return arcompact_handle04_2f_3f_14(PARAMS); break; // illegal
+ case 0x15: return arcompact_handle04_2f_3f_15(PARAMS); break; // illegal
+ case 0x16: return arcompact_handle04_2f_3f_16(PARAMS); break; // illegal
+ case 0x17: return arcompact_handle04_2f_3f_17(PARAMS); break; // illegal
+ case 0x18: return arcompact_handle04_2f_3f_18(PARAMS); break; // illegal
+ case 0x19: return arcompact_handle04_2f_3f_19(PARAMS); break; // illegal
+ case 0x1a: return arcompact_handle04_2f_3f_1a(PARAMS); break; // illegal
+ case 0x1b: return arcompact_handle04_2f_3f_1b(PARAMS); break; // illegal
+ case 0x1c: return arcompact_handle04_2f_3f_1c(PARAMS); break; // illegal
+ case 0x1d: return arcompact_handle04_2f_3f_1d(PARAMS); break; // illegal
+ case 0x1e: return arcompact_handle04_2f_3f_1e(PARAMS); break; // illegal
+ case 0x1f: return arcompact_handle04_2f_3f_1f(PARAMS); break; // illegal
+ case 0x20: return arcompact_handle04_2f_3f_20(PARAMS); break; // illegal
+ case 0x21: return arcompact_handle04_2f_3f_21(PARAMS); break; // illegal
+ case 0x22: return arcompact_handle04_2f_3f_22(PARAMS); break; // illegal
+ case 0x23: return arcompact_handle04_2f_3f_23(PARAMS); break; // illegal
+ case 0x24: return arcompact_handle04_2f_3f_24(PARAMS); break; // illegal
+ case 0x25: return arcompact_handle04_2f_3f_25(PARAMS); break; // illegal
+ case 0x26: return arcompact_handle04_2f_3f_26(PARAMS); break; // illegal
+ case 0x27: return arcompact_handle04_2f_3f_27(PARAMS); break; // illegal
+ case 0x28: return arcompact_handle04_2f_3f_28(PARAMS); break; // illegal
+ case 0x29: return arcompact_handle04_2f_3f_29(PARAMS); break; // illegal
+ case 0x2a: return arcompact_handle04_2f_3f_2a(PARAMS); break; // illegal
+ case 0x2b: return arcompact_handle04_2f_3f_2b(PARAMS); break; // illegal
+ case 0x2c: return arcompact_handle04_2f_3f_2c(PARAMS); break; // illegal
+ case 0x2d: return arcompact_handle04_2f_3f_2d(PARAMS); break; // illegal
+ case 0x2e: return arcompact_handle04_2f_3f_2e(PARAMS); break; // illegal
+ case 0x2f: return arcompact_handle04_2f_3f_2f(PARAMS); break; // illegal
+ case 0x30: return arcompact_handle04_2f_3f_30(PARAMS); break; // illegal
+ case 0x31: return arcompact_handle04_2f_3f_31(PARAMS); break; // illegal
+ case 0x32: return arcompact_handle04_2f_3f_32(PARAMS); break; // illegal
+ case 0x33: return arcompact_handle04_2f_3f_33(PARAMS); break; // illegal
+ case 0x34: return arcompact_handle04_2f_3f_34(PARAMS); break; // illegal
+ case 0x35: return arcompact_handle04_2f_3f_35(PARAMS); break; // illegal
+ case 0x36: return arcompact_handle04_2f_3f_36(PARAMS); break; // illegal
+ case 0x37: return arcompact_handle04_2f_3f_37(PARAMS); break; // illegal
+ case 0x38: return arcompact_handle04_2f_3f_38(PARAMS); break; // illegal
+ case 0x39: return arcompact_handle04_2f_3f_39(PARAMS); break; // illegal
+ case 0x3a: return arcompact_handle04_2f_3f_3a(PARAMS); break; // illegal
+ case 0x3b: return arcompact_handle04_2f_3f_3b(PARAMS); break; // illegal
+ case 0x3c: return arcompact_handle04_2f_3f_3c(PARAMS); break; // illegal
+ case 0x3d: return arcompact_handle04_2f_3f_3d(PARAMS); break; // illegal
+ case 0x3e: return arcompact_handle04_2f_3f_3e(PARAMS); break; // illegal
+ case 0x3f: return arcompact_handle04_2f_3f_3f(PARAMS); break; // illegal
+ }
+
+ return 0;
+}
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f(OPS_32) // useless ZOP group, no actual opcodes
+{
+ UINT8 subinstr3 = (op & 0x07000000) >> 24;
+ subinstr3 |= ((op & 0x00007000) >> 12) << 3;
+
+ switch (subinstr3)
+ {
+ case 0x00: return arcompact_handle05_2f_3f_00(PARAMS); break; // illegal
+ case 0x01: return arcompact_handle05_2f_3f_01(PARAMS); break; // illegal
+ case 0x02: return arcompact_handle05_2f_3f_02(PARAMS); break; // illegal
+ case 0x03: return arcompact_handle05_2f_3f_03(PARAMS); break; // illegal
+ case 0x04: return arcompact_handle05_2f_3f_04(PARAMS); break; // illegal
+ case 0x05: return arcompact_handle05_2f_3f_05(PARAMS); break; // illegal
+ case 0x06: return arcompact_handle05_2f_3f_06(PARAMS); break; // illegal
+ case 0x07: return arcompact_handle05_2f_3f_07(PARAMS); break; // illegal
+ case 0x08: return arcompact_handle05_2f_3f_08(PARAMS); break; // illegal
+ case 0x09: return arcompact_handle05_2f_3f_09(PARAMS); break; // illegal
+ case 0x0a: return arcompact_handle05_2f_3f_0a(PARAMS); break; // illegal
+ case 0x0b: return arcompact_handle05_2f_3f_0b(PARAMS); break; // illegal
+ case 0x0c: return arcompact_handle05_2f_3f_0c(PARAMS); break; // illegal
+ case 0x0d: return arcompact_handle05_2f_3f_0d(PARAMS); break; // illegal
+ case 0x0e: return arcompact_handle05_2f_3f_0e(PARAMS); break; // illegal
+ case 0x0f: return arcompact_handle05_2f_3f_0f(PARAMS); break; // illegal
+ case 0x10: return arcompact_handle05_2f_3f_10(PARAMS); break; // illegal
+ case 0x11: return arcompact_handle05_2f_3f_11(PARAMS); break; // illegal
+ case 0x12: return arcompact_handle05_2f_3f_12(PARAMS); break; // illegal
+ case 0x13: return arcompact_handle05_2f_3f_13(PARAMS); break; // illegal
+ case 0x14: return arcompact_handle05_2f_3f_14(PARAMS); break; // illegal
+ case 0x15: return arcompact_handle05_2f_3f_15(PARAMS); break; // illegal
+ case 0x16: return arcompact_handle05_2f_3f_16(PARAMS); break; // illegal
+ case 0x17: return arcompact_handle05_2f_3f_17(PARAMS); break; // illegal
+ case 0x18: return arcompact_handle05_2f_3f_18(PARAMS); break; // illegal
+ case 0x19: return arcompact_handle05_2f_3f_19(PARAMS); break; // illegal
+ case 0x1a: return arcompact_handle05_2f_3f_1a(PARAMS); break; // illegal
+ case 0x1b: return arcompact_handle05_2f_3f_1b(PARAMS); break; // illegal
+ case 0x1c: return arcompact_handle05_2f_3f_1c(PARAMS); break; // illegal
+ case 0x1d: return arcompact_handle05_2f_3f_1d(PARAMS); break; // illegal
+ case 0x1e: return arcompact_handle05_2f_3f_1e(PARAMS); break; // illegal
+ case 0x1f: return arcompact_handle05_2f_3f_1f(PARAMS); break; // illegal
+ case 0x20: return arcompact_handle05_2f_3f_20(PARAMS); break; // illegal
+ case 0x21: return arcompact_handle05_2f_3f_21(PARAMS); break; // illegal
+ case 0x22: return arcompact_handle05_2f_3f_22(PARAMS); break; // illegal
+ case 0x23: return arcompact_handle05_2f_3f_23(PARAMS); break; // illegal
+ case 0x24: return arcompact_handle05_2f_3f_24(PARAMS); break; // illegal
+ case 0x25: return arcompact_handle05_2f_3f_25(PARAMS); break; // illegal
+ case 0x26: return arcompact_handle05_2f_3f_26(PARAMS); break; // illegal
+ case 0x27: return arcompact_handle05_2f_3f_27(PARAMS); break; // illegal
+ case 0x28: return arcompact_handle05_2f_3f_28(PARAMS); break; // illegal
+ case 0x29: return arcompact_handle05_2f_3f_29(PARAMS); break; // illegal
+ case 0x2a: return arcompact_handle05_2f_3f_2a(PARAMS); break; // illegal
+ case 0x2b: return arcompact_handle05_2f_3f_2b(PARAMS); break; // illegal
+ case 0x2c: return arcompact_handle05_2f_3f_2c(PARAMS); break; // illegal
+ case 0x2d: return arcompact_handle05_2f_3f_2d(PARAMS); break; // illegal
+ case 0x2e: return arcompact_handle05_2f_3f_2e(PARAMS); break; // illegal
+ case 0x2f: return arcompact_handle05_2f_3f_2f(PARAMS); break; // illegal
+ case 0x30: return arcompact_handle05_2f_3f_30(PARAMS); break; // illegal
+ case 0x31: return arcompact_handle05_2f_3f_31(PARAMS); break; // illegal
+ case 0x32: return arcompact_handle05_2f_3f_32(PARAMS); break; // illegal
+ case 0x33: return arcompact_handle05_2f_3f_33(PARAMS); break; // illegal
+ case 0x34: return arcompact_handle05_2f_3f_34(PARAMS); break; // illegal
+ case 0x35: return arcompact_handle05_2f_3f_35(PARAMS); break; // illegal
+ case 0x36: return arcompact_handle05_2f_3f_36(PARAMS); break; // illegal
+ case 0x37: return arcompact_handle05_2f_3f_37(PARAMS); break; // illegal
+ case 0x38: return arcompact_handle05_2f_3f_38(PARAMS); break; // illegal
+ case 0x39: return arcompact_handle05_2f_3f_39(PARAMS); break; // illegal
+ case 0x3a: return arcompact_handle05_2f_3f_3a(PARAMS); break; // illegal
+ case 0x3b: return arcompact_handle05_2f_3f_3b(PARAMS); break; // illegal
+ case 0x3c: return arcompact_handle05_2f_3f_3c(PARAMS); break; // illegal
+ case 0x3d: return arcompact_handle05_2f_3f_3d(PARAMS); break; // illegal
+ case 0x3e: return arcompact_handle05_2f_3f_3e(PARAMS); break; // illegal
+ case 0x3f: return arcompact_handle05_2f_3f_3f(PARAMS); break; // illegal
+ }
+
+ return 0;
+}
+
+
+// this is an Extension ALU group, maybe optional on some CPUs?
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05(OPS_32)
+{
+ UINT8 subinstr = (op & 0x003f0000) >> 16;
+
+ switch (subinstr)
+ {
+ case 0x00: return arcompact_handle05_00(PARAMS); break; // ASL
+ case 0x01: return arcompact_handle05_01(PARAMS); break; // LSR
+ case 0x02: return arcompact_handle05_02(PARAMS); break; // ASR
+ case 0x03: return arcompact_handle05_03(PARAMS); break; // ROR
+ case 0x04: return arcompact_handle05_04(PARAMS); break; // MUL64
+ case 0x05: return arcompact_handle05_05(PARAMS); break; // MULU64
+ case 0x06: return arcompact_handle05_06(PARAMS); break; // ADDS
+ case 0x07: return arcompact_handle05_07(PARAMS); break; // SUBS
+ case 0x08: return arcompact_handle05_08(PARAMS); break; // DIVAW
+ case 0x09: return arcompact_handle05_09(PARAMS); break; // illegal
+ case 0x0a: return arcompact_handle05_0a(PARAMS); break; // ASLS
+ case 0x0b: return arcompact_handle05_0b(PARAMS); break; // ASRS
+ case 0x0c: return arcompact_handle05_0c(PARAMS); break; // illegal
+ case 0x0d: return arcompact_handle05_0d(PARAMS); break; // illegal
+ case 0x0e: return arcompact_handle05_0e(PARAMS); break; // illegal
+ case 0x0f: return arcompact_handle05_0f(PARAMS); break; // illegal
+ case 0x10: return arcompact_handle05_10(PARAMS); break; // illegal
+ case 0x11: return arcompact_handle05_11(PARAMS); break; // illegal
+ case 0x12: return arcompact_handle05_12(PARAMS); break; // illegal
+ case 0x13: return arcompact_handle05_13(PARAMS); break; // illegal
+ case 0x14: return arcompact_handle05_14(PARAMS); break; // illegal
+ case 0x15: return arcompact_handle05_15(PARAMS); break; // illegal
+ case 0x16: return arcompact_handle05_16(PARAMS); break; // illegal
+ case 0x17: return arcompact_handle05_17(PARAMS); break; // illegal
+ case 0x18: return arcompact_handle05_18(PARAMS); break; // illegal
+ case 0x19: return arcompact_handle05_19(PARAMS); break; // illegal
+ case 0x1a: return arcompact_handle05_1a(PARAMS); break; // illegal
+ case 0x1b: return arcompact_handle05_1b(PARAMS); break; // illegal
+ case 0x1c: return arcompact_handle05_1c(PARAMS); break; // illegal
+ case 0x1d: return arcompact_handle05_1d(PARAMS); break; // illegal
+ case 0x1e: return arcompact_handle05_1e(PARAMS); break; // illegal
+ case 0x1f: return arcompact_handle05_1f(PARAMS); break; // illegal
+ case 0x20: return arcompact_handle05_20(PARAMS); break; // illegal
+ case 0x21: return arcompact_handle05_21(PARAMS); break; // illegal
+ case 0x22: return arcompact_handle05_22(PARAMS); break; // illegal
+ case 0x23: return arcompact_handle05_23(PARAMS); break; // illegal
+ case 0x24: return arcompact_handle05_24(PARAMS); break; // illegal
+ case 0x25: return arcompact_handle05_25(PARAMS); break; // illegal
+ case 0x26: return arcompact_handle05_26(PARAMS); break; // illegal
+ case 0x27: return arcompact_handle05_27(PARAMS); break; // illegal
+ case 0x28: return arcompact_handle05_28(PARAMS); break; // ADDSDW
+ case 0x29: return arcompact_handle05_29(PARAMS); break; // SUBSDW
+ case 0x2a: return arcompact_handle05_2a(PARAMS); break; // illegal
+ case 0x2b: return arcompact_handle05_2b(PARAMS); break; // illegal
+ case 0x2c: return arcompact_handle05_2c(PARAMS); break; // illegal
+ case 0x2d: return arcompact_handle05_2d(PARAMS); break; // illegal
+ case 0x2e: return arcompact_handle05_2e(PARAMS); break; // illegal
+ case 0x2f: return arcompact_handle05_2f(PARAMS); break; // SOPs
+ case 0x30: return arcompact_handle05_30(PARAMS); break; // illegal
+ case 0x31: return arcompact_handle05_31(PARAMS); break; // illegal
+ case 0x32: return arcompact_handle05_32(PARAMS); break; // illegal
+ case 0x33: return arcompact_handle05_33(PARAMS); break; // illegal
+ case 0x34: return arcompact_handle05_34(PARAMS); break; // illegal
+ case 0x35: return arcompact_handle05_35(PARAMS); break; // illegal
+ case 0x36: return arcompact_handle05_36(PARAMS); break; // illegal
+ case 0x37: return arcompact_handle05_37(PARAMS); break; // illegal
+ case 0x38: return arcompact_handle05_38(PARAMS); break; // illegal
+ case 0x39: return arcompact_handle05_39(PARAMS); break; // illegal
+ case 0x3a: return arcompact_handle05_3a(PARAMS); break; // illegal
+ case 0x3b: return arcompact_handle05_3b(PARAMS); break; // illegal
+ case 0x3c: return arcompact_handle05_3c(PARAMS); break; // illegal
+ case 0x3d: return arcompact_handle05_3d(PARAMS); break; // illegal
+ case 0x3e: return arcompact_handle05_3e(PARAMS); break; // illegal
+ case 0x3f: return arcompact_handle05_3f(PARAMS); break; // illegal
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0c(OPS_16)
+{
+ UINT8 subinstr = (op & 0x0018) >> 3;
+
+ switch (subinstr)
+ {
+ case 0x00: return arcompact_handle0c_00(PARAMS); break; // LD_S
+ case 0x01: return arcompact_handle0c_01(PARAMS); break; // LDB_S
+ case 0x02: return arcompact_handle0c_02(PARAMS); break; // LDW_S
+ case 0x03: return arcompact_handle0c_03(PARAMS); break; // ADD_S
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0d(OPS_16)
+{
+ UINT8 subinstr = (op & 0x0018) >> 3;
+
+ switch (subinstr)
+ {
+ case 0x00: return arcompact_handle0d_00(PARAMS); break; // ADD_S
+ case 0x01: return arcompact_handle0d_01(PARAMS); break; // SUB_S
+ case 0x02: return arcompact_handle0d_02(PARAMS); break; // ASL_S
+ case 0x03: return arcompact_handle0d_03(PARAMS); break; // ASR_S
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0e(OPS_16)
+{
+ UINT8 subinstr = (op & 0x0018) >> 3;
+
+ switch (subinstr)
+ {
+ case 0x00: return arcompact_handle0e_00(PARAMS); break; // ADD_S
+ case 0x01: return arcompact_handle0e_01(PARAMS); break; // MOV_S
+ case 0x02: return arcompact_handle0e_02(PARAMS); break; // CMP_S
+ case 0x03: return arcompact_handle0e_03(PARAMS); break; // MOV_S
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f(OPS_16)
+{
+ UINT8 subinstr = (op & 0x01f) >> 0;
+
+ switch (subinstr)
+ {
+ case 0x00: return arcompact_handle0f_00(PARAMS); break; // SOPs
+ case 0x01: return arcompact_handle0f_01(PARAMS); break; // 0x01 <illegal>
+ case 0x02: return arcompact_handle0f_02(PARAMS); break; // SUB_S
+ case 0x03: return arcompact_handle0f_03(PARAMS); break; // 0x03 <illegal>
+ case 0x04: return arcompact_handle0f_04(PARAMS); break; // AND_S
+ case 0x05: return arcompact_handle0f_05(PARAMS); break; // OR_S
+ case 0x06: return arcompact_handle0f_06(PARAMS); break; // BIC_S
+ case 0x07: return arcompact_handle0f_07(PARAMS); break; // XOR_S
+ case 0x08: return arcompact_handle0f_08(PARAMS); break; // 0x08 <illegal>
+ case 0x09: return arcompact_handle0f_09(PARAMS); break; // 0x09 <illegal>
+ case 0x0a: return arcompact_handle0f_0a(PARAMS); break; // 0x0a <illegal>
+ case 0x0b: return arcompact_handle0f_0b(PARAMS); break; // TST_S
+ case 0x0c: return arcompact_handle0f_0c(PARAMS); break; // MUL64_S
+ case 0x0d: return arcompact_handle0f_0d(PARAMS); break; // SEXB_S
+ case 0x0e: return arcompact_handle0f_0e(PARAMS); break; // SEXW_S
+ case 0x0f: return arcompact_handle0f_0f(PARAMS); break; // EXTB_S
+ case 0x10: return arcompact_handle0f_10(PARAMS); break; // EXTW_S
+ case 0x11: return arcompact_handle0f_11(PARAMS); break; // ABS_S
+ case 0x12: return arcompact_handle0f_12(PARAMS); break; // NOT_S
+ case 0x13: return arcompact_handle0f_13(PARAMS); break; // NEG_S
+ case 0x14: return arcompact_handle0f_14(PARAMS); break; // ADD1_S
+ case 0x15: return arcompact_handle0f_15(PARAMS); break; // ADD2_S
+ case 0x16: return arcompact_handle0f_16(PARAMS); break; // ADD3_S
+ case 0x17: return arcompact_handle0f_17(PARAMS); break; // 0x17 <illegal>
+ case 0x18: return arcompact_handle0f_18(PARAMS); break; // ASL_S (multiple)
+ case 0x19: return arcompact_handle0f_19(PARAMS); break; // LSR_S (multiple)
+ case 0x1a: return arcompact_handle0f_1a(PARAMS); break; // ASR_S (multiple)
+ case 0x1b: return arcompact_handle0f_1b(PARAMS); break; // ASL_S (single)
+ case 0x1c: return arcompact_handle0f_1c(PARAMS); break; // LSR_S (single)
+ case 0x1d: return arcompact_handle0f_1d(PARAMS); break; // ASR_S (single)
+ case 0x1e: return arcompact_handle0f_1e(PARAMS); break; // TRAP (not a5?)
+ case 0x1f: return arcompact_handle0f_1f(PARAMS); break; // BRK_S ( 0x7fff only? )
+
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_00(OPS_16)
+{
+ UINT8 subinstr = (op & 0x00e0) >> 5;
+
+ switch (subinstr)
+ {
+ case 0x00: return arcompact_handle0f_00_00(PARAMS); break; // J_S
+ case 0x01: return arcompact_handle0f_00_01(PARAMS); break; // J_S.D
+ case 0x02: return arcompact_handle0f_00_02(PARAMS); break; // JL_S
+ case 0x03: return arcompact_handle0f_00_03(PARAMS); break; // JL_S.D
+ case 0x04: return arcompact_handle0f_00_04(PARAMS); break; // 0x04 <illegal>
+ case 0x05: return arcompact_handle0f_00_05(PARAMS); break; // 0x05 <illegal>
+ case 0x06: return arcompact_handle0f_00_06(PARAMS); break; // SUB_S.NE
+ case 0x07: return arcompact_handle0f_00_07(PARAMS); break; // ZOPs
+
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_00_07(OPS_16)
+{
+ UINT8 subinstr3 = (op & 0x0700) >> 8;
+
+ switch (subinstr3)
+ {
+ case 0x00: return arcompact_handle0f_00_07_00(PARAMS); break; // NOP_S
+ case 0x01: return arcompact_handle0f_00_07_01(PARAMS); break; // UNIMP_S
+ case 0x02: return arcompact_handle0f_00_07_02(PARAMS); break; // 0x02 <illegal>
+ case 0x03: return arcompact_handle0f_00_07_03(PARAMS); break; // 0x03 <illegal>
+ case 0x04: return arcompact_handle0f_00_07_04(PARAMS); break; // JEQ_S [BLINK]
+ case 0x05: return arcompact_handle0f_00_07_05(PARAMS); break; // JNE_S [BLINK]
+ case 0x06: return arcompact_handle0f_00_07_06(PARAMS); break; // J_S [BLINK]
+ case 0x07: return arcompact_handle0f_00_07_07(PARAMS); break; // J_S.D [BLINK]
+
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle17(OPS_16)
+{
+ UINT8 subinstr = (op & 0x00e0) >> 5;
+
+ switch (subinstr)
+ {
+ case 0x00: return arcompact_handle17_00(PARAMS); break; // ASL_S
+ case 0x01: return arcompact_handle17_01(PARAMS); break; // LSR_S
+ case 0x02: return arcompact_handle17_02(PARAMS); break; // ASR_S
+ case 0x03: return arcompact_handle17_03(PARAMS); break; // SUB_S
+ case 0x04: return arcompact_handle17_04(PARAMS); break; // BSET_S
+ case 0x05: return arcompact_handle17_05(PARAMS); break; // BCLR_S
+ case 0x06: return arcompact_handle17_06(PARAMS); break; // BMSK_S
+ case 0x07: return arcompact_handle17_07(PARAMS); break; // BTST_S
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18(OPS_16)
+{
+ UINT8 subinstr = (op & 0x00e0) >> 5;
+
+ switch (subinstr)
+ {
+ case 0x00: return arcompact_handle18_00(PARAMS); break; // LD_S (SP)
+ case 0x01: return arcompact_handle18_01(PARAMS); break; // LDB_S (SP)
+ case 0x02: return arcompact_handle18_02(PARAMS); break; // ST_S (SP)
+ case 0x03: return arcompact_handle18_03(PARAMS); break; // STB_S (SP)
+ case 0x04: return arcompact_handle18_04(PARAMS); break; // ADD_S (SP)
+ case 0x05: return arcompact_handle18_05(PARAMS); break; // subtable 18_05
+ case 0x06: return arcompact_handle18_06(PARAMS); break; // subtable 18_06
+ case 0x07: return arcompact_handle18_07(PARAMS); break; // subtable 18_07
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_05(OPS_16)
+{
+ UINT8 subinstr2 = (op & 0x0700) >> 8;
+
+ switch (subinstr2)
+ {
+ case 0x00: return arcompact_handle18_05_00(PARAMS); break; // ADD_S (SP)
+ case 0x01: return arcompact_handle18_05_01(PARAMS); break; // SUB_S (SP)
+ case 0x02: return arcompact_handle18_05_02(PARAMS); break; // <illegal 0x18_05_02>
+ case 0x03: return arcompact_handle18_05_03(PARAMS); break; // <illegal 0x18_05_03>
+ case 0x04: return arcompact_handle18_05_04(PARAMS); break; // <illegal 0x18_05_04>
+ case 0x05: return arcompact_handle18_05_05(PARAMS); break; // <illegal 0x18_05_05>
+ case 0x06: return arcompact_handle18_05_06(PARAMS); break; // <illegal 0x18_05_06>
+ case 0x07: return arcompact_handle18_05_07(PARAMS); break; // <illegal 0x18_05_07>
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06(OPS_16)
+{
+ UINT8 subinstr2 = (op & 0x001f) >> 0;
+
+ switch (subinstr2)
+ {
+ case 0x00: return arcompact_handle18_06_00(PARAMS); break; // <illegal 0x18_06_00>
+ case 0x01: return arcompact_handle18_06_01(PARAMS); break; // POP_S b
+ case 0x02: return arcompact_handle18_06_02(PARAMS); break; // <illegal 0x18_06_02>
+ case 0x03: return arcompact_handle18_06_03(PARAMS); break; // <illegal 0x18_06_03>
+ case 0x04: return arcompact_handle18_06_04(PARAMS); break; // <illegal 0x18_06_04>
+ case 0x05: return arcompact_handle18_06_05(PARAMS); break; // <illegal 0x18_06_05>
+ case 0x06: return arcompact_handle18_06_06(PARAMS); break; // <illegal 0x18_06_06>
+ case 0x07: return arcompact_handle18_06_07(PARAMS); break; // <illegal 0x18_06_07>
+ case 0x08: return arcompact_handle18_06_08(PARAMS); break; // <illegal 0x18_06_08>
+ case 0x09: return arcompact_handle18_06_09(PARAMS); break; // <illegal 0x18_06_09>
+ case 0x0a: return arcompact_handle18_06_0a(PARAMS); break; // <illegal 0x18_06_0a>
+ case 0x0b: return arcompact_handle18_06_0b(PARAMS); break; // <illegal 0x18_06_0b>
+ case 0x0c: return arcompact_handle18_06_0c(PARAMS); break; // <illegal 0x18_06_0c>
+ case 0x0d: return arcompact_handle18_06_0d(PARAMS); break; // <illegal 0x18_06_0d>
+ case 0x0e: return arcompact_handle18_06_0e(PARAMS); break; // <illegal 0x18_06_0e>
+ case 0x0f: return arcompact_handle18_06_0f(PARAMS); break; // <illegal 0x18_06_0f>
+ case 0x10: return arcompact_handle18_06_10(PARAMS); break; // <illegal 0x18_06_10>
+ case 0x11: return arcompact_handle18_06_11(PARAMS); break; // POP_S blink
+ case 0x12: return arcompact_handle18_06_12(PARAMS); break; // <illegal 0x18_06_12>
+ case 0x13: return arcompact_handle18_06_13(PARAMS); break; // <illegal 0x18_06_13>
+ case 0x14: return arcompact_handle18_06_14(PARAMS); break; // <illegal 0x18_06_14>
+ case 0x15: return arcompact_handle18_06_15(PARAMS); break; // <illegal 0x18_06_15>
+ case 0x16: return arcompact_handle18_06_16(PARAMS); break; // <illegal 0x18_06_16>
+ case 0x17: return arcompact_handle18_06_17(PARAMS); break; // <illegal 0x18_06_17>
+ case 0x18: return arcompact_handle18_06_18(PARAMS); break; // <illegal 0x18_06_18>
+ case 0x19: return arcompact_handle18_06_19(PARAMS); break; // <illegal 0x18_06_19>
+ case 0x1a: return arcompact_handle18_06_1a(PARAMS); break; // <illegal 0x18_06_1a>
+ case 0x1b: return arcompact_handle18_06_1b(PARAMS); break; // <illegal 0x18_06_1b>
+ case 0x1c: return arcompact_handle18_06_1c(PARAMS); break; // <illegal 0x18_06_1c>
+ case 0x1d: return arcompact_handle18_06_1d(PARAMS); break; // <illegal 0x18_06_1d>
+ case 0x1e: return arcompact_handle18_06_1e(PARAMS); break; // <illegal 0x18_06_1e>
+ case 0x1f: return arcompact_handle18_06_1f(PARAMS); break; // <illegal 0x18_06_1f>
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07(OPS_16)
+{
+ UINT8 subinstr2 = (op & 0x001f) >> 0;
+
+ switch (subinstr2)
+ {
+ case 0x00: return arcompact_handle18_07_00(PARAMS); break; // <illegal 0x18_07_00>
+ case 0x01: return arcompact_handle18_07_01(PARAMS); break; // PUSH_S b
+ case 0x02: return arcompact_handle18_07_02(PARAMS); break; // <illegal 0x18_07_02>
+ case 0x03: return arcompact_handle18_07_03(PARAMS); break; // <illegal 0x18_07_03>
+ case 0x04: return arcompact_handle18_07_04(PARAMS); break; // <illegal 0x18_07_04>
+ case 0x05: return arcompact_handle18_07_05(PARAMS); break; // <illegal 0x18_07_05>
+ case 0x06: return arcompact_handle18_07_06(PARAMS); break; // <illegal 0x18_07_06>
+ case 0x07: return arcompact_handle18_07_07(PARAMS); break; // <illegal 0x18_07_07>
+ case 0x08: return arcompact_handle18_07_08(PARAMS); break; // <illegal 0x18_07_08>
+ case 0x09: return arcompact_handle18_07_09(PARAMS); break; // <illegal 0x18_07_09>
+ case 0x0a: return arcompact_handle18_07_0a(PARAMS); break; // <illegal 0x18_07_0a>
+ case 0x0b: return arcompact_handle18_07_0b(PARAMS); break; // <illegal 0x18_07_0b>
+ case 0x0c: return arcompact_handle18_07_0c(PARAMS); break; // <illegal 0x18_07_0c>
+ case 0x0d: return arcompact_handle18_07_0d(PARAMS); break; // <illegal 0x18_07_0d>
+ case 0x0e: return arcompact_handle18_07_0e(PARAMS); break; // <illegal 0x18_07_0e>
+ case 0x0f: return arcompact_handle18_07_0f(PARAMS); break; // <illegal 0x18_07_0f>
+ case 0x10: return arcompact_handle18_07_10(PARAMS); break; // <illegal 0x18_07_10>
+ case 0x11: return arcompact_handle18_07_11(PARAMS); break; // PUSH_S blink
+ case 0x12: return arcompact_handle18_07_12(PARAMS); break; // <illegal 0x18_07_12>
+ case 0x13: return arcompact_handle18_07_13(PARAMS); break; // <illegal 0x18_07_13>
+ case 0x14: return arcompact_handle18_07_14(PARAMS); break; // <illegal 0x18_07_14>
+ case 0x15: return arcompact_handle18_07_15(PARAMS); break; // <illegal 0x18_07_15>
+ case 0x16: return arcompact_handle18_07_16(PARAMS); break; // <illegal 0x18_07_16>
+ case 0x17: return arcompact_handle18_07_17(PARAMS); break; // <illegal 0x18_07_17>
+ case 0x18: return arcompact_handle18_07_18(PARAMS); break; // <illegal 0x18_07_18>
+ case 0x19: return arcompact_handle18_07_19(PARAMS); break; // <illegal 0x18_07_19>
+ case 0x1a: return arcompact_handle18_07_1a(PARAMS); break; // <illegal 0x18_07_1a>
+ case 0x1b: return arcompact_handle18_07_1b(PARAMS); break; // <illegal 0x18_07_1b>
+ case 0x1c: return arcompact_handle18_07_1c(PARAMS); break; // <illegal 0x18_07_1c>
+ case 0x1d: return arcompact_handle18_07_1d(PARAMS); break; // <illegal 0x18_07_1d>
+ case 0x1e: return arcompact_handle18_07_1e(PARAMS); break; // <illegal 0x18_07_1e>
+ case 0x1f: return arcompact_handle18_07_1f(PARAMS); break; // <illegal 0x18_07_1f>
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle19(OPS_16)
+{
+ UINT8 subinstr = (op & 0x0600) >> 9;
+
+ switch (subinstr)
+ {
+ case 0x00: return arcompact_handle19_00(PARAMS); break; // LD_S (GP)
+ case 0x01: return arcompact_handle19_01(PARAMS); break; // LDB_S (GP)
+ case 0x02: return arcompact_handle19_02(PARAMS); break; // LDW_S (GP)
+ case 0x03: return arcompact_handle19_03(PARAMS); break; // ADD_S (GP)
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1c(OPS_16)
+{
+ UINT8 subinstr = (op & 0x0080) >> 7;
+
+ switch (subinstr)
+ {
+ case 0x00: return arcompact_handle1c_00(PARAMS); break; // ADD_S
+ case 0x01: return arcompact_handle1c_01(PARAMS); break; // CMP_S
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1d(OPS_16)
+{
+ UINT8 subinstr = (op & 0x0080) >> 7;
+
+ switch (subinstr)
+ {
+ case 0x00: return arcompact_handle1d_00(PARAMS); break; // BREQ_S
+ case 0x01: return arcompact_handle1d_01(PARAMS); break; // BRNE_S
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1e(OPS_16)
+{
+ UINT8 subinstr = (op & 0x0600) >> 9;
+
+ switch (subinstr)
+ {
+ case 0x00: return arcompact_handle1e_00(PARAMS); break; // B_S
+ case 0x01: return arcompact_handle1e_01(PARAMS); break; // BEQ_S
+ case 0x02: return arcompact_handle1e_02(PARAMS); break; // BNE_S
+ case 0x03: return arcompact_handle1e_03(PARAMS); break; // Bcc_S
+ }
+
+ return 0;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1e_03(OPS_16)
+{
+ UINT8 subinstr2 = (op & 0x01c0) >> 6;
+
+ switch (subinstr2)
+ {
+ case 0x00: return arcompact_handle1e_03_00(PARAMS); break; // BGT_S
+ case 0x01: return arcompact_handle1e_03_01(PARAMS); break; // BGE_S
+ case 0x02: return arcompact_handle1e_03_02(PARAMS); break; // BLT_S
+ case 0x03: return arcompact_handle1e_03_03(PARAMS); break; // BLE_S
+ case 0x04: return arcompact_handle1e_03_04(PARAMS); break; // BHI_S
+ case 0x05: return arcompact_handle1e_03_05(PARAMS); break; // BHS_S
+ case 0x06: return arcompact_handle1e_03_06(PARAMS); break; // BLO_S
+ case 0x07: return arcompact_handle1e_03_07(PARAMS); break; // BLS_S
+ }
+
+ return 0;
+}
+
+// handlers
+
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle00_00(OPS_32)
+{
+ int size = 4;
+ // Branch Conditionally
+ arcompact_log("unimplemented Bcc %08x", op);
+ return m_pc + (size>>0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle00_01(OPS_32)
+{
+ int size = 4;
+ // Branch Unconditionally Far
+ arcompact_log("unimplemented B %08x", op);
+ return m_pc + (size>>0);
+
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_00_00dasm(OPS_32)
+{
+ int size = 4;
+
+ // Branch and Link Conditionally
+ arcompact_log("unimplemented BLcc %08x", op);
+ return m_pc + (size>>0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_00_01dasm(OPS_32)
+{
+ int size = 4;
+ // Branch and Link Unconditionally Far
+ // 00001 sssssssss 10 SSSSSSSSSS N R TTTT
+ INT32 address = (op & 0x07fc0000) >> 17;
+ address |= ((op & 0x0000ffc0) >> 6) << 10;
+ address |= ((op & 0x0000000f) >> 0) << 20;
+ if (address & 0x800000) address = -0x800000 + (address&0x7fffff);
+ int n = (op & 0x00000020) >> 5; op &= ~0x00000020;
+// int res = (op & 0x00000010) >> 4; op &= ~0x00000010;
+
+ UINT32 realaddress = PC_ALIGNED32 + (address * 2);
+
+ if (n)
+ {
+ m_delayactive = 1;
+ m_delayjump = realaddress;
+ m_delaylinks = 1;
+ }
+ else
+ {
+ return realaddress;
+ }
+
+
+ return m_pc + (size>>0);
+}
+
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_01_01_00_helper(OPS_32, const char* optext)
+{
+ int size = 4;
+
+ // Branch on Compare / Bit Test - Register-Register
+
+ int c = (op & 0x00000fc0) >> 6;
+ COMMON32_GET_breg;
+ //int n = (op & 0x00000020) >> 5;
+
+
+ if ((breg != LIMM_REG) && (c != LIMM_REG))
+ {
+
+ }
+ else
+ {
+ //UINT32 limm;
+ //GET_LIMM_32;
+ size = 8;
+ }
+
+ arcompact_log("unimplemented %s %08x", optext, op);
+ return m_pc + (size>>0);
+}
+
+
+// register - register cases
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_00_00(OPS_32) { return arcompact_01_01_00_helper( PARAMS, "BREQ"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_00_01(OPS_32) { return arcompact_01_01_00_helper( PARAMS, "BRNE"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_00_02(OPS_32) { return arcompact_01_01_00_helper( PARAMS, "BRLT"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_00_03(OPS_32) { return arcompact_01_01_00_helper( PARAMS, "BRGE"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_00_04(OPS_32) { return arcompact_01_01_00_helper( PARAMS, "BRLO"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_00_05(OPS_32) { return arcompact_01_01_00_helper( PARAMS, "BRHS"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_00_0e(OPS_32) { return arcompact_01_01_00_helper( PARAMS, "BBIT0");}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_00_0f(OPS_32) { return arcompact_01_01_00_helper( PARAMS, "BBIT1");}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_01_01_01_helper(OPS_32, const char* optext)
+{
+ int size = 4;
+ arcompact_log("unimplemented %s %08x", optext, op);
+ return m_pc + (size>>0);
+}
+
+// register -immediate cases
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_01_00(OPS_32) { return arcompact_01_01_01_helper(PARAMS, "BREQ"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_01_01(OPS_32) { return arcompact_01_01_01_helper(PARAMS, "BRNE"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_01_02(OPS_32) { return arcompact_01_01_01_helper(PARAMS, "BRLT"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_01_03(OPS_32) { return arcompact_01_01_01_helper(PARAMS, "BRGE"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_01_04(OPS_32) { return arcompact_01_01_01_helper(PARAMS, "BRLO"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_01_05(OPS_32) { return arcompact_01_01_01_helper(PARAMS, "BRHS"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_01_0e(OPS_32) { return arcompact_01_01_01_helper(PARAMS, "BBIT0"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_01_0f(OPS_32) { return arcompact_01_01_01_helper(PARAMS, "BBIT1"); }
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle02(OPS_32)
+{
+ int size = 4;
+ COMMON32_GET_breg;
+
+ //UINT32 limm = 0;
+ if (breg == LIMM_REG)
+ {
+ //GET_LIMM_32;
+ size = 8;
+ }
+
+ arcompact_log("unimplemented LD %08x", op);
+ return m_pc + (size>>0);
+
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle03(OPS_32)
+{
+ int size = 4;
+ //UINT32 limm = 0;
+ int got_limm = 0;
+
+ COMMON32_GET_breg;
+ int C = (op & 0x00000fc0) >> 6;
+
+ if (breg == LIMM_REG)
+ {
+ //GET_LIMM_32;
+ size = 8;
+ got_limm = 1;
+ }
+
+ if (C == LIMM_REG)
+ {
+ if (!got_limm)
+ {
+ //GET_LIMM_32;
+ size = 8;
+ }
+ }
+ else
+ {
+
+ }
+
+ arcompact_log("unimplemented ST %08x", op);
+ return m_pc + (size>>0);
+
+}
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_helper(OPS_32, const char* optext, int ignore_dst, int b_reserved)
+{
+ int size = 4;
+ //UINT32 limm = 0;
+ int got_limm = 0;
+
+ int p = (op & 0x00c00000) >> 22;
+ COMMON32_GET_breg;
+
+ if (!b_reserved)
+ {
+ if (breg == LIMM_REG)
+ {
+ //GET_LIMM_32;
+ size = 8;
+ got_limm = 1;
+ }
+ else
+ {
+ }
+ }
+ else
+ {
+ }
+
+
+ if (p == 0)
+ {
+ int C = (op & 0x00000fc0) >> 6;
+
+ if (C == LIMM_REG)
+ {
+ if (!got_limm)
+ {
+ //GET_LIMM_32;
+ size = 8;
+ }
+ }
+ else
+ {
+ }
+ }
+ else if (p == 1)
+ {
+ }
+ else if (p == 2)
+ {
+ }
+ else if (p == 3)
+ {
+ int M = (op & 0x00000020) >> 5;
+
+ if (M == 0)
+ {
+ int C = (op & 0x00000fc0) >> 6;
+
+ if (C == LIMM_REG)
+ {
+ if (!got_limm)
+ {
+ //GET_LIMM_32;
+ size = 8;
+ }
+ }
+ else
+ {
+ }
+
+ }
+ else if (M == 1)
+ {
+ }
+
+ }
+
+ arcompact_log("unimplemented %s %08x", optext, op);
+
+ return m_pc + (size>>0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_00(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x00], /*"ADD"*/ 0,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_01(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x01], /*"ADC"*/ 0,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_02(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x02], /*"SUB"*/ 0,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_03(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x03], /*"SBC"*/ 0,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_04(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x04], /*"AND"*/ 0,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_05(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x05], /*"OR"*/ 0,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_06(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x06], /*"BIC"*/ 0,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_07(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x07], /*"XOR"*/ 0,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_08(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x08], /*"MAX"*/ 0,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_09(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x09], /*"MIN"*/ 0,0);
+}
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_0a(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x0a], /*"MOV"*/ 1,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_0b(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x0b], /*"TST"*/ 1,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_0c(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x0c], /*"CMP"*/ 1,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_0d(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x0d], /*"RCMP"*/ 1,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_0e(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x0e], /*"RSUB"*/ 0,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_0f(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x0f], /*"BSET"*/ 0,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_10(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x10], /*"BCLR"*/ 0,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_11(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x11], /*"BTST"*/ 0,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_12(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x12], /*"BXOR"*/ 0,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_13(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x13], /*"BMSK"*/ 0,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_14(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x14], /*"ADD1"*/ 0,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_15(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x15], /*"ADD2"*/ 0,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_16(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x16], /*"ADD3"*/ 0,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_17(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x17], /*"SUB1"*/ 0,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_18(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x18], /*"SUB2"*/ 0,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_19(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x19], /*"SUB3"*/ 0,0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_1a(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x1a], /*"MPY"*/ 0,0);
+} // *
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_1b(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x1b], /*"MPYH"*/ 0,0);
+} // *
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_1c(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x1c], /*"MPYHU"*/ 0,0);
+} // *
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_1d(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x1d], /*"MPYU"*/ 0,0);
+} // *
+
+
+// arcompact_handle04_helper format
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_20(OPS_32)
+{
+ int size = 4;
+ UINT32 limm = 0;
+ int got_limm = 0;
+
+ int p = (op & 0x00c00000) >> 22;
+
+ if (p == 0)
+ {
+ int C = (op & 0x00000fc0) >> 6;
+
+ if (C == LIMM_REG)
+ {
+ if (!got_limm)
+ {
+ GET_LIMM_32;
+ size = 8;
+ }
+
+ return limm;
+ }
+ else
+ {
+ arcompact_log("unimplemented J %08x", op);
+ }
+ }
+ else if (p == 1)
+ {
+ arcompact_log("unimplemented J %08x", op);
+ }
+ else if (p == 2)
+ {
+ arcompact_log("unimplemented J %08x", op);
+ }
+ else if (p == 3)
+ {
+ int M = (op & 0x00000020) >> 5;
+
+ if (M == 0)
+ {
+ int C = (op & 0x00000fc0) >> 6;
+
+ if (C == LIMM_REG)
+ {
+ if (!got_limm)
+ {
+ //GET_LIMM_32;
+ size = 8;
+ }
+
+ arcompact_log("unimplemented J %08x", op);
+ }
+ else
+ {
+ arcompact_log("unimplemented J %08x", op);
+ }
+
+ }
+ else if (M == 1)
+ {
+ arcompact_log("unimplemented J %08x", op);
+ }
+
+ }
+
+
+ return m_pc + (size>>0);}
+
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_21(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x21], /*"J.D"*/ 1,1);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_22(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x22], /*"JL"*/ 1,1);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_23(OPS_32)
+{
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x23], /*"JL.D"*/ 1,1);
+}
+
+
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_28(OPS_32) // LPcc (loop setup)
+{
+ int size = 4;
+
+ int p = (op & 0x00c00000) >> 22;
+
+ if (p == 0x00)
+ {
+ }
+ else if (p == 0x01)
+ {
+ }
+ else if (p == 0x02) // Loop unconditional
+ {
+ }
+ else if (p == 0x03) // Loop conditional
+ {
+ }
+
+ arcompact_log("unimplemented LPcc %08x", op);
+ return m_pc + (size>>0);
+
+}
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2a(OPS_32) // Load FROM Auxiliary register TO register
+{
+ int size = 4;
+// UINT32 limm = 0;
+ int got_limm = 0;
+
+ int p = (op & 0x00c00000) >> 22;
+ //COMMON32_GET_breg;
+
+ if (p == 0)
+ {
+
+ int C = (op & 0x00000fc0) >> 6;
+
+ if (C == LIMM_REG)
+ {
+ if (!got_limm)
+ {
+ //GET_LIMM_32;
+ size = 8;
+ }
+
+ }
+ else
+ {
+ }
+ }
+ else if (p == 1)
+ {
+ }
+ else if (p == 2)
+ {
+ }
+ else if (p == 3)
+ {
+ }
+
+ arcompact_log("unimplemented LR %08x", op);
+ return m_pc + (size>>0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2b(OPS_32) // Store TO Auxiliary register FROM register
+{
+ int size = 4;
+// UINT32 limm = 0;
+ int got_limm = 0;
+
+ int p = (op & 0x00c00000) >> 22;
+ COMMON32_GET_breg;
+
+ if (breg == LIMM_REG)
+ {
+ //GET_LIMM_32;
+ size = 8;
+ got_limm = 1;
+
+ }
+ else
+ {
+ }
+
+ if (p == 0)
+ {
+
+ int C = (op & 0x00000fc0) >> 6;
+
+ if (C == LIMM_REG)
+ {
+ if (!got_limm)
+ {
+ //GET_LIMM_32;
+ size = 8;
+ }
+ }
+ else
+ {
+ }
+ }
+ else if (p == 1)
+ {
+ }
+ else if (p == 2)
+ {
+ }
+ else if (p == 3)
+ {
+ }
+
+ arcompact_log("unimplemented ST %08x", op);
+ return m_pc + (size>>0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_29(OPS_32)
+{
+ // leapster bios uses formats for FLAG that are not defined, bug I guess work anyway (P modes 0 / 1)
+ return arcompact_handle04_helper(PARAMS, opcodes_04[0x29], /*"FLAG"*/ 1,1);
+}
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_helper(OPS_32, const char* optext)
+{
+ int size = 4;
+
+ int p = (op & 0x00c00000) >> 22;
+ //COMMON32_GET_breg;
+
+ if (p == 0)
+ {
+ int C = (op & 0x00000fc0) >> 6;
+
+ if (C == LIMM_REG)
+ {
+ //UINT32 limm;
+ //GET_LIMM_32;
+ size = 8;
+ }
+ else
+ {
+ }
+ }
+ else if (p == 1)
+ {
+ }
+ else if (p == 2)
+ {
+ }
+ else if (p == 3)
+ {
+ }
+
+ return m_pc + (size>>0);
+}
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_00(OPS_32) { return arcompact_handle04_2f_helper(PARAMS, "ASL"); } // ASL
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_01(OPS_32) { return arcompact_handle04_2f_helper(PARAMS, "ASR"); } // ASR
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_02(OPS_32) { return arcompact_handle04_2f_helper(PARAMS, "LSR"); } // LSR
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_03(OPS_32) { return arcompact_handle04_2f_helper(PARAMS, "ROR"); } // ROR
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_04(OPS_32) { return arcompact_handle04_2f_helper(PARAMS, "RCC"); } // RCC
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_05(OPS_32) { return arcompact_handle04_2f_helper(PARAMS, "SEXB"); } // SEXB
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_06(OPS_32) { return arcompact_handle04_2f_helper(PARAMS, "SEXW"); } // SEXW
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_07(OPS_32) { return arcompact_handle04_2f_helper(PARAMS, "EXTB"); } // EXTB
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_08(OPS_32) { return arcompact_handle04_2f_helper(PARAMS, "EXTW"); } // EXTW
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_09(OPS_32) { return arcompact_handle04_2f_helper(PARAMS, "ABS"); } // ABS
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_0a(OPS_32) { return arcompact_handle04_2f_helper(PARAMS, "NOT"); } // NOT
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_0b(OPS_32) { return arcompact_handle04_2f_helper(PARAMS, "RCL"); } // RLC
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_0c(OPS_32) { return arcompact_handle04_2f_helper(PARAMS, "EX"); } // EX
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_01(OPS_32) { arcompact_log("SLEEP (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_02(OPS_32) { arcompact_log("SWI / TRAP0 (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_03(OPS_32) { arcompact_log("SYNC (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_04(OPS_32) { arcompact_log("RTIE (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_05(OPS_32) { arcompact_log("BRK (%08x)", op); return m_pc + (4 >> 0);}
+
+
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_3x_helper(OPS_32, int dsize, int extend)
+{
+ int size = 4;
+ //UINT32 limm=0;
+ int got_limm = 0;
+
+
+ COMMON32_GET_breg;
+ int C = (op & 0x00000fc0) >> 6;
+
+
+
+ if (breg == LIMM_REG)
+ {
+ //GET_LIMM_32;
+ size = 8;
+ got_limm = 1;
+
+ }
+ else
+ {
+ }
+
+ if (C == LIMM_REG)
+ {
+ if (!got_limm)
+ {
+ //GET_LIMM_32;
+ size = 8;
+ }
+
+ }
+ else
+ {
+ }
+
+ arcompact_log("unimplemented LD %08x", op);
+ return m_pc + (size>>0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_30(OPS_32) { return arcompact_handle04_3x_helper(PARAMS,0,0); }
+// ZZ value of 0x0 with X of 1 is illegal
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_31(OPS_32) { return arcompact_handle04_3x_helper(PARAMS,0,1); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_32(OPS_32) { return arcompact_handle04_3x_helper(PARAMS,1,0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_33(OPS_32) { return arcompact_handle04_3x_helper(PARAMS,1,1); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_34(OPS_32) { return arcompact_handle04_3x_helper(PARAMS,2,0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_35(OPS_32) { return arcompact_handle04_3x_helper(PARAMS,2,1); }
+// ZZ value of 0x3 is illegal
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_36(OPS_32) { return arcompact_handle04_3x_helper(PARAMS,3,0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_37(OPS_32) { return arcompact_handle04_3x_helper(PARAMS,3,1); }
+
+
+
+
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_00(OPS_32) { return arcompact_handle04_helper(PARAMS, "ASL", 0,0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_01(OPS_32) { return arcompact_handle04_helper(PARAMS, "LSR", 0,0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_02(OPS_32) { return arcompact_handle04_helper(PARAMS, "ASR", 0,0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_03(OPS_32) { return arcompact_handle04_helper(PARAMS, "ROR", 0,0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_04(OPS_32) { return arcompact_handle04_helper(PARAMS, "MUL64", 2,0); } // special
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_05(OPS_32) { return arcompact_handle04_helper(PARAMS, "MULU64", 2,0);} // special
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_06(OPS_32) { return arcompact_handle04_helper(PARAMS, "ADDS", 0,0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_07(OPS_32) { return arcompact_handle04_helper(PARAMS, "SUBS", 0,0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_08(OPS_32) { return arcompact_handle04_helper(PARAMS, "DIVAW", 0,0); }
+
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_0a(OPS_32) { return arcompact_handle04_helper(PARAMS, "ASLS", 0,0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_0b(OPS_32) { return arcompact_handle04_helper(PARAMS, "ASRS", 0,0); }
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_28(OPS_32) { return arcompact_handle04_helper(PARAMS, "ADDSDW", 0,0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_29(OPS_32) { return arcompact_handle04_helper(PARAMS, "SUBSDW", 0,0); }
+
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_0x_helper(OPS_32, const char* optext)
+{
+ int size = 4;
+
+ int p = (op & 0x00c00000) >> 22;
+ //COMMON32_GET_breg;
+
+ if (p == 0)
+ {
+ int C = (op & 0x00000fc0) >> 6;
+
+ if (C == LIMM_REG)
+ {
+ //UINT32 limm;
+ //GET_LIMM_32;
+ size = 8;
+
+ }
+ else
+ {
+ }
+ }
+ else if (p == 1)
+ {
+ }
+ else if (p == 2)
+ {
+ }
+ else if (p == 3)
+ {
+ }
+
+ arcompact_log("unimplemented %s %08x", optext, op);
+ return m_pc + (size>>0);
+}
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_00(OPS_32) { return arcompact_handle05_2f_0x_helper(PARAMS, "SWAP"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_01(OPS_32) { return arcompact_handle05_2f_0x_helper(PARAMS, "NORM"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_02(OPS_32) { return arcompact_handle05_2f_0x_helper(PARAMS, "SAT16"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_03(OPS_32) { return arcompact_handle05_2f_0x_helper(PARAMS, "RND16"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_04(OPS_32) { return arcompact_handle05_2f_0x_helper(PARAMS, "ABSSW"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_05(OPS_32) { return arcompact_handle05_2f_0x_helper(PARAMS, "ABSS"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_06(OPS_32) { return arcompact_handle05_2f_0x_helper(PARAMS, "NEGSW"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_07(OPS_32) { return arcompact_handle05_2f_0x_helper(PARAMS, "NEGS"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_08(OPS_32) { return arcompact_handle05_2f_0x_helper(PARAMS, "NORMW"); }
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle06(OPS_32)
+{
+ arcompact_log("op a,b,c (06 ARC ext) (%08x)", op );
+ return m_pc + (4 >> 0);;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle07(OPS_32)
+{
+ arcompact_log("op a,b,c (07 User ext) (%08x)", op );
+ return m_pc + (4 >> 0);;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle08(OPS_32)
+{
+ arcompact_log("op a,b,c (08 User ext) (%08x)", op );
+ return m_pc + (4 >> 0);;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle09(OPS_32)
+{
+ arcompact_log("op a,b,c (09 Market ext) (%08x)", op );
+ return m_pc + (4 >> 0);;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0a(OPS_32)
+{
+ arcompact_log("op a,b,c (0a Market ext) (%08x)", op );
+ return m_pc + (4 >> 0);;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0b(OPS_32)
+{
+ arcompact_log("op a,b,c (0b Market ext) (%08x)", op );
+ return m_pc + (4 >> 0);;
+}
+
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0c_helper(OPS_16, const char* optext)
+{
+ arcompact_log("unimplemented %s %04x", optext, op);
+ return m_pc + (2 >> 0);;
+}
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0c_00(OPS_16)
+{
+ return arcompact_handle0c_helper(PARAMS, "LD_S");
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0c_01(OPS_16)
+{
+ return arcompact_handle0c_helper(PARAMS, "LDB_S");
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0c_02(OPS_16)
+{
+ return arcompact_handle0c_helper(PARAMS, "LDW_S");
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0c_03(OPS_16)
+{
+ return arcompact_handle0c_helper(PARAMS, "ADD_S");
+}
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0d_helper(OPS_16, const char* optext)
+{
+ arcompact_log("unimplemented %s %04x", optext, op);
+ return m_pc + (2 >> 0);;
+}
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0d_00(OPS_16)
+{
+ return arcompact_handle0d_helper(PARAMS, "ADD_S");
+}
+
+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)
+{
+ return arcompact_handle0d_helper(PARAMS, "ASL_S");
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0d_03(OPS_16)
+{
+ return arcompact_handle0d_helper(PARAMS, "ASR_S");
+}
+
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0e_0x_helper(OPS_16, const char* optext, int revop)
+{
+ int h;// , breg;
+ int size = 2;
+
+ GROUP_0e_GET_h;
+
+ if (h == LIMM_REG)
+ {
+ //UINT32 limm;
+ //GET_LIMM;
+ size = 6;
+ }
+ else
+ {
+
+ }
+
+ arcompact_log("unimplemented %s %04x", optext, op);
+
+ return m_pc+ (size>>0);
+
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0e_00(OPS_16)
+{
+ return arcompact_handle0e_0x_helper(PARAMS, "ADD_S", 0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0e_01(OPS_16)
+{
+ return arcompact_handle0e_0x_helper(PARAMS, "MOV_S", 0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0e_02(OPS_16)
+{
+ return arcompact_handle0e_0x_helper(PARAMS, "CMP_S", 0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0e_03(OPS_16)
+{
+ return arcompact_handle0e_0x_helper(PARAMS, "MOV_S", 1);
+}
+
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_00_0x_helper(OPS_16, const char* optext)
+{
+ arcompact_log("unimplemented %s %04x", optext, op);
+ return m_pc + (2 >> 0);;
+}
+
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_00_00(OPS_16) { return arcompact_handle0f_00_0x_helper(PARAMS, "J_S"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_00_01(OPS_16) { return arcompact_handle0f_00_0x_helper(PARAMS, "J_S.D"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_00_02(OPS_16) { return arcompact_handle0f_00_0x_helper(PARAMS, "JL_S"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_00_03(OPS_16) { return arcompact_handle0f_00_0x_helper(PARAMS, "JL_S.D"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_00_06(OPS_16) { return arcompact_handle0f_00_0x_helper(PARAMS, "SUB_S.NE"); }
+
+
+
+
+// Zero parameters (ZOP)
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_00_07_00(OPS_16) { arcompact_log("NOP_S"); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_00_07_01(OPS_16) { arcompact_log("UNIMP_S"); return m_pc + (2 >> 0);;} // Unimplemented Instruction, same as illegal, but recommended to fill blank space
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_00_07_04(OPS_16) { arcompact_log("JEQ_S [blink]"); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_00_07_05(OPS_16) { arcompact_log("JNE_S [blink]"); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_00_07_06(OPS_16) { arcompact_log("J_S [blink]"); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_00_07_07(OPS_16) { arcompact_log("J_S.D [blink]"); return m_pc + (2 >> 0);;}
+
+
+
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_0x_helper(OPS_16, const char* optext, int nodst)
+{
+ arcompact_log("unimplemented %s %04x", optext, op);
+ return m_pc + (2 >> 0);;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_02(OPS_16) { return arcompact_handle0f_0x_helper(PARAMS, "SUB_S",0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_04(OPS_16) { return arcompact_handle0f_0x_helper(PARAMS, "AND_S",0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_05(OPS_16) { return arcompact_handle0f_0x_helper(PARAMS, "OR_S",0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_06(OPS_16) { return arcompact_handle0f_0x_helper(PARAMS, "BIC_S",0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_07(OPS_16) { return arcompact_handle0f_0x_helper(PARAMS, "XOR_S",0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_0b(OPS_16) { return arcompact_handle0f_0x_helper(PARAMS, "TST_S",1); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_0c(OPS_16) { return arcompact_handle0f_0x_helper(PARAMS, "MUL64_S",2); } // actual destination is special multiply registers
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_0d(OPS_16) { return arcompact_handle0f_0x_helper(PARAMS, "SEXB_S",0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_0e(OPS_16) { return arcompact_handle0f_0x_helper(PARAMS, "SEXW_S",0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_0f(OPS_16) { return arcompact_handle0f_0x_helper(PARAMS, "EXTB_S",0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_10(OPS_16) { return arcompact_handle0f_0x_helper(PARAMS, "EXTW_S",0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_11(OPS_16) { return arcompact_handle0f_0x_helper(PARAMS, "ABS_S",0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_12(OPS_16) { return arcompact_handle0f_0x_helper(PARAMS, "NOT_S",0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_13(OPS_16) { return arcompact_handle0f_0x_helper(PARAMS, "NEG_S",0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_14(OPS_16) { return arcompact_handle0f_0x_helper(PARAMS, "ADD1_S",0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_15(OPS_16) { return arcompact_handle0f_0x_helper(PARAMS, "ADD2_S",0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_16(OPS_16) { return arcompact_handle0f_0x_helper(PARAMS, "ADD3_S",0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_18(OPS_16) { return arcompact_handle0f_0x_helper(PARAMS, "ASL_S",0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_19(OPS_16) { return arcompact_handle0f_0x_helper(PARAMS, "LSR_S",0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_1a(OPS_16) { return arcompact_handle0f_0x_helper(PARAMS, "ASR_S",0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_1b(OPS_16) { return arcompact_handle0f_0x_helper(PARAMS, "ASL1_S",0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_1c(OPS_16) { return arcompact_handle0f_0x_helper(PARAMS, "ASR1_S",0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_1d(OPS_16) { return arcompact_handle0f_0x_helper(PARAMS, "LSR1_S",0); }
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_1e(OPS_16) // special
+{
+ arcompact_log("unimplemented TRAP_S %04x", op);
+ return m_pc + (2 >> 0);;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_1f(OPS_16) // special
+{
+ arcompact_log("unimplemented BRK_S %04x", op);
+ return m_pc + (2 >> 0);;
+}
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle_ld_helper(OPS_16, const char* optext, int shift, int swap)
+{
+ arcompact_log("unimplemented %s %04x", optext, op);
+ return m_pc + (2 >> 0);;
+}
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle10(OPS_16)
+{
+ return arcompact_handle_ld_helper(PARAMS, "LD_S", 2, 0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle11(OPS_16)
+{
+ return arcompact_handle_ld_helper(PARAMS, "LDB_S", 0, 0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle12(OPS_16)
+{
+ return arcompact_handle_ld_helper(PARAMS, "LDW_S", 1, 0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle13(OPS_16)
+{
+ return arcompact_handle_ld_helper(PARAMS, "LDW_S.X", 1, 0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle14(OPS_16)
+{
+ return arcompact_handle_ld_helper(PARAMS, "ST_S", 2, 1);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle15(OPS_16)
+{
+ return arcompact_handle_ld_helper(PARAMS, "STB_S", 0, 1);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle16(OPS_16)
+{
+ return arcompact_handle_ld_helper(PARAMS, "STW_S", 1, 1);
+}
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle_l7_0x_helper(OPS_16, const char* optext)
+{
+ arcompact_log("unimplemented %s %04x", optext, op);
+ return m_pc + (2 >> 0);;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle17_00(OPS_16)
+{
+ return arcompact_handle_l7_0x_helper(PARAMS, "ASL_S");
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle17_01(OPS_16)
+{
+ return arcompact_handle_l7_0x_helper(PARAMS, "LSR_S");
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle17_02(OPS_16)
+{
+ return arcompact_handle_l7_0x_helper(PARAMS, "ASR_S");
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle17_03(OPS_16)
+{
+ return arcompact_handle_l7_0x_helper(PARAMS, "SUB_S");
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle17_04(OPS_16)
+{
+ return arcompact_handle_l7_0x_helper(PARAMS, "BSET_S");
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle17_05(OPS_16)
+{
+ return arcompact_handle_l7_0x_helper(PARAMS, "BCLR_S");
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle17_06(OPS_16)
+{
+ return arcompact_handle_l7_0x_helper(PARAMS, "BSMK_S");
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle17_07(OPS_16)
+{
+ return arcompact_handle_l7_0x_helper(PARAMS, "BTST_S");
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_0x_helper(OPS_16, const char* optext, int st)
+{
+ arcompact_log("unimplemented %s %04x", optext, op);
+ return m_pc + (2 >> 0);;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_00(OPS_16)
+{
+ return arcompact_handle18_0x_helper(PARAMS, "LD_S", 0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_01(OPS_16)
+{
+ return arcompact_handle18_0x_helper(PARAMS, "LDB_S", 0);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_02(OPS_16)
+{
+ return arcompact_handle18_0x_helper(PARAMS, "ST_S", 1);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_03(OPS_16)
+{
+ return arcompact_handle18_0x_helper(PARAMS, "STB_S", 1);
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_04(OPS_16)
+{
+ return arcompact_handle18_0x_helper(PARAMS, "ADD_S", 1); // check format
+}
+
+// op bits remaining for 0x18_05_xx subgroups 0x001f
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_05_00(OPS_16)
+{
+ arcompact_log("unimplemented ADD_S SP, SP %04x", op);
+ return m_pc + (2 >> 0);;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_05_01(OPS_16)
+{
+ arcompact_log("unimplemented SUB_S SP, SP %04x", op);
+ return m_pc + (2 >> 0);;
+}
+
+// op bits remaining for 0x18_06_xx subgroups 0x0700
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_01(OPS_16)
+{
+ arcompact_log("unimplemented POP_S %04x", op);
+ return m_pc + (2 >> 0);;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_11(OPS_16)
+{
+ arcompact_log("unimplemented POP_S [BLINK] %04x", op);
+ return m_pc + (2 >> 0);;
+}
+
+// op bits remaining for 0x18_07_xx subgroups 0x0700
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_01(OPS_16)
+{
+ arcompact_log("unimplemented PUSH_S %04x", op);
+ return m_pc + (2 >> 0);;
+}
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_11(OPS_16)
+{
+ arcompact_log("unimplemented PUSH_S [BLINK] %04x", op);
+ return m_pc + (2 >> 0);;
+}
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle19_0x_helper(OPS_16, const char* optext, int shift, int format)
+{
+ arcompact_log("unimplemented %s %04x", optext, op);
+ return m_pc + (2 >> 0);;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle19_00(OPS_16) { return arcompact_handle19_0x_helper(PARAMS, "LD_S", 2, 0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle19_01(OPS_16) { return arcompact_handle19_0x_helper(PARAMS, "LDB_S", 0, 0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle19_02(OPS_16) { return arcompact_handle19_0x_helper(PARAMS, "LDW_S", 1, 0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle19_03(OPS_16) { return arcompact_handle19_0x_helper(PARAMS, "ADD_S", 2, 1); }
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1a(OPS_16)
+{
+ arcompact_log("unimplemented MOV_S x, [PCL, x] %04x", op);
+ return m_pc + (2 >> 0);;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1b(OPS_16)
+{
+ arcompact_log("unimplemented MOV_S %04x", op);
+ return m_pc + (2 >> 0);;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1c_00(OPS_16)
+{
+ arcompact_log("unimplemented ADD_S %04x", op);
+ return m_pc + (2 >> 0);;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1c_01(OPS_16)
+{
+ arcompact_log("unimplemented CMP_S %04x", op);
+ return m_pc + (2 >> 0);;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1d_helper(OPS_16, const char* optext)
+{
+ arcompact_log("unimplemented %s %04x", optext, op);
+ return m_pc + (2 >> 0);;
+}
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1d_00(OPS_16) { return arcompact_handle1d_helper(PARAMS,"BREQ_S"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1d_01(OPS_16) { return arcompact_handle1d_helper(PARAMS,"BRNE_S"); }
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1e_0x_helper(OPS_16, const char* optext)
+{
+ arcompact_log("unimplemented %s %04x", optext, op);
+ return m_pc + (2 >> 0);;
+}
+
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1e_00(OPS_16) { return arcompact_handle1e_0x_helper(PARAMS, "BL_S"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1e_01(OPS_16) { return arcompact_handle1e_0x_helper(PARAMS, "BEQ_S"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1e_02(OPS_16) { return arcompact_handle1e_0x_helper(PARAMS, "BNE_S"); }
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1e_03_0x_helper(OPS_16, const char* optext)
+{
+ arcompact_log("unimplemented %s %04x", optext, op);
+ return m_pc + (2 >> 0);;
+}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1e_03_00(OPS_16) { return arcompact_handle1e_03_0x_helper(PARAMS, "BGT_S"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1e_03_01(OPS_16) { return arcompact_handle1e_03_0x_helper(PARAMS, "BGE_S"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1e_03_02(OPS_16) { return arcompact_handle1e_03_0x_helper(PARAMS, "BLT_S"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1e_03_03(OPS_16) { return arcompact_handle1e_03_0x_helper(PARAMS, "BLE_S"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1e_03_04(OPS_16) { return arcompact_handle1e_03_0x_helper(PARAMS, "BHI_S"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1e_03_05(OPS_16) { return arcompact_handle1e_03_0x_helper(PARAMS, "BHS_S"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1e_03_06(OPS_16) { return arcompact_handle1e_03_0x_helper(PARAMS, "BLO_S"); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1e_03_07(OPS_16) { return arcompact_handle1e_03_0x_helper(PARAMS, "BLS_S"); }
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1f(OPS_16)
+{
+ arcompact_log("unimplemented BL_S %04x", op);
+ return m_pc + (2 >> 0);;
+}
+
+/************************************************************************************************************************************
+* *
+* illegal opcode handlers (disassembly) *
+* *
+************************************************************************************************************************************/
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_00_06(OPS_32) { arcompact_fatal("<illegal 01_01_00_06> (%08x)", op); return m_pc + (4 >> 0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_00_07(OPS_32) { arcompact_fatal("<illegal 01_01_00_07> (%08x)", op); return m_pc + (4 >> 0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_00_08(OPS_32) { arcompact_fatal("<illegal 01_01_00_08> (%08x)", op); return m_pc + (4 >> 0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_00_09(OPS_32) { arcompact_fatal("<illegal 01_01_00_09> (%08x)", op); return m_pc + (4 >> 0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_00_0a(OPS_32) { arcompact_fatal("<illegal 01_01_00_0a> (%08x)", op); return m_pc + (4 >> 0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_00_0b(OPS_32) { arcompact_fatal("<illegal 01_01_00_0b> (%08x)", op); return m_pc + (4 >> 0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_00_0c(OPS_32) { arcompact_fatal("<illegal 01_01_00_0c> (%08x)", op); return m_pc + (4 >> 0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_00_0d(OPS_32) { arcompact_fatal("<illegal 01_01_00_0d> (%08x)", op); return m_pc + (4 >> 0); }
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_01_06(OPS_32) { arcompact_fatal("<illegal 01_01_01_06> (%08x)", op); return m_pc + (4 >> 0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_01_07(OPS_32) { arcompact_fatal("<illegal 01_01_01_07> (%08x)", op); return m_pc + (4 >> 0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_01_08(OPS_32) { arcompact_fatal("<illegal 01_01_01_08> (%08x)", op); return m_pc + (4 >> 0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_01_09(OPS_32) { arcompact_fatal("<illegal 01_01_01_09> (%08x)", op); return m_pc + (4 >> 0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_01_0a(OPS_32) { arcompact_fatal("<illegal 01_01_01_0a> (%08x)", op); return m_pc + (4 >> 0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_01_0b(OPS_32) { arcompact_fatal("<illegal 01_01_01_0b> (%08x)", op); return m_pc + (4 >> 0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_01_0c(OPS_32) { arcompact_fatal("<illegal 01_01_01_0c> (%08x)", op); return m_pc + (4 >> 0); }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_01_0d(OPS_32) { arcompact_fatal("<illegal 01_01_01_0d> (%08x)", op); return m_pc + (4 >> 0); }
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_1e(OPS_32) { arcompact_fatal("<illegal 0x04_1e> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_1f(OPS_32) { arcompact_fatal("<illegal 0x04_1f> (%08x)", op); return m_pc + (4 >> 0);}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_24(OPS_32) { arcompact_fatal("<illegal 0x04_24> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_25(OPS_32) { arcompact_fatal("<illegal 0x04_25> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_26(OPS_32) { arcompact_fatal("<illegal 0x04_26> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_27(OPS_32) { arcompact_fatal("<illegal 0x04_27> (%08x)", op); return m_pc + (4 >> 0);}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2c(OPS_32) { arcompact_fatal("<illegal 0x04_2c> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2d(OPS_32) { arcompact_fatal("<illegal 0x04_2d> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2e(OPS_32) { arcompact_fatal("<illegal 0x04_2e> (%08x)", op); return m_pc + (4 >> 0);}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_0d(OPS_32) { arcompact_fatal("<illegal 0x04_2f_0d> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_0e(OPS_32) { arcompact_fatal("<illegal 0x04_2f_0e> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_0f(OPS_32) { arcompact_fatal("<illegal 0x04_2f_0f> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_10(OPS_32) { arcompact_fatal("<illegal 0x04_2f_10> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_11(OPS_32) { arcompact_fatal("<illegal 0x04_2f_11> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_12(OPS_32) { arcompact_fatal("<illegal 0x04_2f_12> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_13(OPS_32) { arcompact_fatal("<illegal 0x04_2f_13> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_14(OPS_32) { arcompact_fatal("<illegal 0x04_2f_14> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_15(OPS_32) { arcompact_fatal("<illegal 0x04_2f_15> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_16(OPS_32) { arcompact_fatal("<illegal 0x04_2f_16> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_17(OPS_32) { arcompact_fatal("<illegal 0x04_2f_17> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_18(OPS_32) { arcompact_fatal("<illegal 0x04_2f_18> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_19(OPS_32) { arcompact_fatal("<illegal 0x04_2f_19> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_1a(OPS_32) { arcompact_fatal("<illegal 0x04_2f_1a> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_1b(OPS_32) { arcompact_fatal("<illegal 0x04_2f_1b> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_1c(OPS_32) { arcompact_fatal("<illegal 0x04_2f_1c> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_1d(OPS_32) { arcompact_fatal("<illegal 0x04_2f_1d> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_1e(OPS_32) { arcompact_fatal("<illegal 0x04_2f_1e> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_1f(OPS_32) { arcompact_fatal("<illegal 0x04_2f_1f> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_20(OPS_32) { arcompact_fatal("<illegal 0x04_2f_20> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_21(OPS_32) { arcompact_fatal("<illegal 0x04_2f_21> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_22(OPS_32) { arcompact_fatal("<illegal 0x04_2f_22> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_23(OPS_32) { arcompact_fatal("<illegal 0x04_2f_23> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_24(OPS_32) { arcompact_fatal("<illegal 0x04_2f_24> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_25(OPS_32) { arcompact_fatal("<illegal 0x04_2f_25> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_26(OPS_32) { arcompact_fatal("<illegal 0x04_2f_26> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_27(OPS_32) { arcompact_fatal("<illegal 0x04_2f_27> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_28(OPS_32) { arcompact_fatal("<illegal 0x04_2f_28> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_29(OPS_32) { arcompact_fatal("<illegal 0x04_2f_29> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_2a(OPS_32) { arcompact_fatal("<illegal 0x04_2f_2a> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_2b(OPS_32) { arcompact_fatal("<illegal 0x04_2f_2b> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_2c(OPS_32) { arcompact_fatal("<illegal 0x04_2f_2c> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_2d(OPS_32) { arcompact_fatal("<illegal 0x04_2f_2d> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_2e(OPS_32) { arcompact_fatal("<illegal 0x04_2f_2e> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_2f(OPS_32) { arcompact_fatal("<illegal 0x04_2f_2f> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_30(OPS_32) { arcompact_fatal("<illegal 0x04_2f_30> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_31(OPS_32) { arcompact_fatal("<illegal 0x04_2f_31> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_32(OPS_32) { arcompact_fatal("<illegal 0x04_2f_32> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_33(OPS_32) { arcompact_fatal("<illegal 0x04_2f_33> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_34(OPS_32) { arcompact_fatal("<illegal 0x04_2f_34> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_35(OPS_32) { arcompact_fatal("<illegal 0x04_2f_35> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_36(OPS_32) { arcompact_fatal("<illegal 0x04_2f_36> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_37(OPS_32) { arcompact_fatal("<illegal 0x04_2f_37> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_38(OPS_32) { arcompact_fatal("<illegal 0x04_2f_38> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_39(OPS_32) { arcompact_fatal("<illegal 0x04_2f_39> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3a(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3a> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3b(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3b> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3c(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3c> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3d(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3d> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3e(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3e> (%08x)", op); return m_pc + (4 >> 0);}
+
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_09(OPS_32) { arcompact_fatal("<illegal 0x05_2f_09> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_0a(OPS_32) { arcompact_fatal("<illegal 0x05_2f_0a> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_0b(OPS_32) { arcompact_fatal("<illegal 0x05_2f_0b> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_0c(OPS_32) { arcompact_fatal("<illegal 0x05_2f_0c> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_0d(OPS_32) { arcompact_fatal("<illegal 0x05_2f_0d> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_0e(OPS_32) { arcompact_fatal("<illegal 0x05_2f_0e> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_0f(OPS_32) { arcompact_fatal("<illegal 0x05_2f_0f> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_10(OPS_32) { arcompact_fatal("<illegal 0x05_2f_10> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_11(OPS_32) { arcompact_fatal("<illegal 0x05_2f_11> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_12(OPS_32) { arcompact_fatal("<illegal 0x05_2f_12> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_13(OPS_32) { arcompact_fatal("<illegal 0x05_2f_13> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_14(OPS_32) { arcompact_fatal("<illegal 0x05_2f_14> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_15(OPS_32) { arcompact_fatal("<illegal 0x05_2f_15> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_16(OPS_32) { arcompact_fatal("<illegal 0x05_2f_16> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_17(OPS_32) { arcompact_fatal("<illegal 0x05_2f_17> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_18(OPS_32) { arcompact_fatal("<illegal 0x05_2f_18> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_19(OPS_32) { arcompact_fatal("<illegal 0x05_2f_19> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_1a(OPS_32) { arcompact_fatal("<illegal 0x05_2f_1a> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_1b(OPS_32) { arcompact_fatal("<illegal 0x05_2f_1b> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_1c(OPS_32) { arcompact_fatal("<illegal 0x05_2f_1c> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_1d(OPS_32) { arcompact_fatal("<illegal 0x05_2f_1d> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_1e(OPS_32) { arcompact_fatal("<illegal 0x05_2f_1e> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_1f(OPS_32) { arcompact_fatal("<illegal 0x05_2f_1f> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_20(OPS_32) { arcompact_fatal("<illegal 0x05_2f_20> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_21(OPS_32) { arcompact_fatal("<illegal 0x05_2f_21> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_22(OPS_32) { arcompact_fatal("<illegal 0x05_2f_22> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_23(OPS_32) { arcompact_fatal("<illegal 0x05_2f_23> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_24(OPS_32) { arcompact_fatal("<illegal 0x05_2f_24> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_25(OPS_32) { arcompact_fatal("<illegal 0x05_2f_25> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_26(OPS_32) { arcompact_fatal("<illegal 0x05_2f_26> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_27(OPS_32) { arcompact_fatal("<illegal 0x05_2f_27> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_28(OPS_32) { arcompact_fatal("<illegal 0x05_2f_28> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_29(OPS_32) { arcompact_fatal("<illegal 0x05_2f_29> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_2a(OPS_32) { arcompact_fatal("<illegal 0x05_2f_2a> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_2b(OPS_32) { arcompact_fatal("<illegal 0x05_2f_2b> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_2c(OPS_32) { arcompact_fatal("<illegal 0x05_2f_2c> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_2d(OPS_32) { arcompact_fatal("<illegal 0x05_2f_2d> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_2e(OPS_32) { arcompact_fatal("<illegal 0x05_2f_2e> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_2f(OPS_32) { arcompact_fatal("<illegal 0x05_2f_2f> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_30(OPS_32) { arcompact_fatal("<illegal 0x05_2f_30> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_31(OPS_32) { arcompact_fatal("<illegal 0x05_2f_31> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_32(OPS_32) { arcompact_fatal("<illegal 0x05_2f_32> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_33(OPS_32) { arcompact_fatal("<illegal 0x05_2f_33> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_34(OPS_32) { arcompact_fatal("<illegal 0x05_2f_34> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_35(OPS_32) { arcompact_fatal("<illegal 0x05_2f_35> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_36(OPS_32) { arcompact_fatal("<illegal 0x05_2f_36> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_37(OPS_32) { arcompact_fatal("<illegal 0x05_2f_37> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_38(OPS_32) { arcompact_fatal("<illegal 0x05_2f_38> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_39(OPS_32) { arcompact_fatal("<illegal 0x05_2f_39> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3a(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3a> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3b(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3b> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3c(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3c> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3d(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3d> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3e(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3e> (%08x)", op); return m_pc + (4 >> 0);}
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_00(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_00> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_06(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_06> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_07(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_07> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_08(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_08> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_09(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_09> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_0a(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_0a> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_0b(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_0b> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_0c(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_0c> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_0d(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_0d> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_0e(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_0e> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_0f(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_0f> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_10(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_10> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_11(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_11> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_12(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_12> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_13(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_13> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_14(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_14> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_15(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_15> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_16(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_16> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_17(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_17> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_18(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_18> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_19(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_19> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_1a(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_1a> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_1b(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_1b> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_1c(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_1c> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_1d(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_1d> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_1e(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_1e> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_1f(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_1f> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_20(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_20> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_21(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_21> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_22(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_22> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_23(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_23> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_24(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_24> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_25(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_25> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_26(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_26> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_27(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_27> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_28(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_28> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_29(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_29> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_2a(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_2a> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_2b(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_2b> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_2c(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_2c> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_2d(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_2d> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_2e(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_2e> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_2f(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_2f> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_30(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_30> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_31(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_31> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_32(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_32> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_33(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_33> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_34(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_34> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_35(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_35> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_36(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_36> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_37(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_37> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_38(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_38> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_39(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_39> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_3a(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_3a> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_3b(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_3b> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_3c(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_3c> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_3d(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_3d> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_3e(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_3e> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f_3f(OPS_32) { arcompact_fatal("<illegal 0x04_2f_3f_3f> (%08x)", op); return m_pc + (4 >> 0);}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_00(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_00> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_01(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_01> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_02(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_02> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_03(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_03> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_04(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_04> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_05(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_05> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_06(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_06> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_07(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_07> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_08(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_08> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_09(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_09> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_0a(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_0a> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_0b(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_0b> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_0c(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_0c> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_0d(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_0d> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_0e(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_0e> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_0f(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_0f> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_10(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_10> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_11(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_11> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_12(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_12> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_13(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_13> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_14(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_14> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_15(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_15> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_16(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_16> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_17(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_17> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_18(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_18> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_19(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_19> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_1a(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_1a> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_1b(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_1b> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_1c(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_1c> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_1d(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_1d> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_1e(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_1e> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_1f(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_1f> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_20(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_20> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_21(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_21> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_22(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_22> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_23(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_23> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_24(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_24> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_25(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_25> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_26(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_26> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_27(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_27> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_28(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_28> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_29(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_29> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_2a(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_2a> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_2b(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_2b> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_2c(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_2c> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_2d(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_2d> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_2e(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_2e> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_2f(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_2f> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_30(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_30> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_31(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_31> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_32(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_32> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_33(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_33> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_34(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_34> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_35(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_35> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_36(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_36> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_37(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_37> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_38(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_38> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_39(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_39> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_3a(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_3a> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_3b(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_3b> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_3c(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_3c> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_3d(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_3d> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_3e(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_3e> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f_3f(OPS_32) { arcompact_fatal("<illegal 0x05_2f_3f_3f> (%08x)", op); return m_pc + (4 >> 0);}
+
+
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_38(OPS_32) { arcompact_fatal("<illegal 0x04_38> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_39(OPS_32) { arcompact_fatal("<illegal 0x04_39> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_3a(OPS_32) { arcompact_fatal("<illegal 0x04_3a> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_3b(OPS_32) { arcompact_fatal("<illegal 0x04_3b> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_3c(OPS_32) { arcompact_fatal("<illegal 0x04_3c> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_3d(OPS_32) { arcompact_fatal("<illegal 0x04_3d> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_3e(OPS_32) { arcompact_fatal("<illegal 0x04_3e> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_3f(OPS_32) { arcompact_fatal("<illegal 0x04_3f> (%08x)", op); return m_pc + (4 >> 0);}
+
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_09(OPS_32) { arcompact_fatal("<illegal 0x05_09> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_0c(OPS_32) { arcompact_fatal("<illegal 0x05_0c> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_0d(OPS_32) { arcompact_fatal("<illegal 0x05_0d> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_0e(OPS_32) { arcompact_fatal("<illegal 0x05_0e> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_0f(OPS_32) { arcompact_fatal("<illegal 0x05_0f> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_10(OPS_32) { arcompact_fatal("<illegal 0x05_10> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_11(OPS_32) { arcompact_fatal("<illegal 0x05_11> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_12(OPS_32) { arcompact_fatal("<illegal 0x05_12> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_13(OPS_32) { arcompact_fatal("<illegal 0x05_13> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_14(OPS_32) { arcompact_fatal("<illegal 0x05_14> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_15(OPS_32) { arcompact_fatal("<illegal 0x05_15> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_16(OPS_32) { arcompact_fatal("<illegal 0x05_16> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_17(OPS_32) { arcompact_fatal("<illegal 0x05_17> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_18(OPS_32) { arcompact_fatal("<illegal 0x05_18> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_19(OPS_32) { arcompact_fatal("<illegal 0x05_19> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_1a(OPS_32) { arcompact_fatal("<illegal 0x05_1a> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_1b(OPS_32) { arcompact_fatal("<illegal 0x05_1b> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_1c(OPS_32) { arcompact_fatal("<illegal 0x05_1c> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_1d(OPS_32) { arcompact_fatal("<illegal 0x05_1d> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_1e(OPS_32) { arcompact_fatal("<illegal 0x05_1e> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_1f(OPS_32) { arcompact_fatal("<illegal 0x05_1f> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_20(OPS_32) { arcompact_fatal("<illegal 0x05_20> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_21(OPS_32) { arcompact_fatal("<illegal 0x05_21> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_22(OPS_32) { arcompact_fatal("<illegal 0x05_22> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_23(OPS_32) { arcompact_fatal("<illegal 0x05_23> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_24(OPS_32) { arcompact_fatal("<illegal 0x05_24> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_25(OPS_32) { arcompact_fatal("<illegal 0x05_25> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_26(OPS_32) { arcompact_fatal("<illegal 0x05_26> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_27(OPS_32) { arcompact_fatal("<illegal 0x05_27> (%08x)", op); return m_pc + (4 >> 0);}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2a(OPS_32) { arcompact_fatal("<illegal 0x05_2a> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2b(OPS_32) { arcompact_fatal("<illegal 0x05_2b> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2c(OPS_32) { arcompact_fatal("<illegal 0x05_2c> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2d(OPS_32) { arcompact_fatal("<illegal 0x05_2d> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2e(OPS_32) { arcompact_fatal("<illegal 0x05_2e> (%08x)", op); return m_pc + (4 >> 0);}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_30(OPS_32) { arcompact_fatal("<illegal 0x05_30> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_31(OPS_32) { arcompact_fatal("<illegal 0x05_31> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_32(OPS_32) { arcompact_fatal("<illegal 0x05_32> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_33(OPS_32) { arcompact_fatal("<illegal 0x05_33> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_34(OPS_32) { arcompact_fatal("<illegal 0x05_34> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_35(OPS_32) { arcompact_fatal("<illegal 0x05_35> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_36(OPS_32) { arcompact_fatal("<illegal 0x05_36> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_37(OPS_32) { arcompact_fatal("<illegal 0x05_37> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_38(OPS_32) { arcompact_fatal("<illegal 0x05_38> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_39(OPS_32) { arcompact_fatal("<illegal 0x05_39> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_3a(OPS_32) { arcompact_fatal("<illegal 0x05_3a> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_3b(OPS_32) { arcompact_fatal("<illegal 0x05_3b> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_3c(OPS_32) { arcompact_fatal("<illegal 0x05_3c> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_3d(OPS_32) { arcompact_fatal("<illegal 0x05_3d> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_3e(OPS_32) { arcompact_fatal("<illegal 0x05_3e> (%08x)", op); return m_pc + (4 >> 0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_3f(OPS_32) { arcompact_fatal("<illegal 0x05_3f> (%08x)", op); return m_pc + (4 >> 0);}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_00_04(OPS_16) { arcompact_fatal("<illegal 0x0f_00_00> (%08x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_00_05(OPS_16) { arcompact_fatal("<illegal 0x0f_00_00> (%08x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_00_07_02(OPS_16) { arcompact_fatal("<illegal 0x0f_00_07_02> (%08x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_00_07_03(OPS_16) { arcompact_fatal("<illegal 0x0f_00_07_03> (%08x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_01(OPS_16) { arcompact_fatal("<illegal 0x0f_01> (%08x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_03(OPS_16) { arcompact_fatal("<illegal 0x0f_03> (%08x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_08(OPS_16) { arcompact_fatal("<illegal 0x0f_08> (%08x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_09(OPS_16) { arcompact_fatal("<illegal 0x0f_09> (%08x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_0a(OPS_16) { arcompact_fatal("<illegal 0x0f_0a> (%08x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_17(OPS_16) { arcompact_fatal("<illegal 0x0f_17> (%08x)", op); return m_pc + (2 >> 0);;}
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_05_02(OPS_16) { arcompact_fatal("<illegal 0x18_05_02> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_05_03(OPS_16) { arcompact_fatal("<illegal 0x18_05_03> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_05_04(OPS_16) { arcompact_fatal("<illegal 0x18_05_04> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_05_05(OPS_16) { arcompact_fatal("<illegal 0x18_05_05> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_05_06(OPS_16) { arcompact_fatal("<illegal 0x18_05_06> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_05_07(OPS_16) { arcompact_fatal("<illegal 0x18_05_07> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_00(OPS_16) { arcompact_fatal("<illegal 0x18_06_00> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_02(OPS_16) { arcompact_fatal("<illegal 0x18_06_02> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_03(OPS_16) { arcompact_fatal("<illegal 0x18_06_03> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_04(OPS_16) { arcompact_fatal("<illegal 0x18_06_04> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_05(OPS_16) { arcompact_fatal("<illegal 0x18_06_05> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_06(OPS_16) { arcompact_fatal("<illegal 0x18_06_06> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_07(OPS_16) { arcompact_fatal("<illegal 0x18_06_07> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_08(OPS_16) { arcompact_fatal("<illegal 0x18_06_08> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_09(OPS_16) { arcompact_fatal("<illegal 0x18_06_09> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_0a(OPS_16) { arcompact_fatal("<illegal 0x18_06_0a> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_0b(OPS_16) { arcompact_fatal("<illegal 0x18_06_0b> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_0c(OPS_16) { arcompact_fatal("<illegal 0x18_06_0c> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_0d(OPS_16) { arcompact_fatal("<illegal 0x18_06_0d> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_0e(OPS_16) { arcompact_fatal("<illegal 0x18_06_0e> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_0f(OPS_16) { arcompact_fatal("<illegal 0x18_06_0f> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_10(OPS_16) { arcompact_fatal("<illegal 0x18_06_10> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_12(OPS_16) { arcompact_fatal("<illegal 0x18_06_12> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_13(OPS_16) { arcompact_fatal("<illegal 0x18_06_13> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_14(OPS_16) { arcompact_fatal("<illegal 0x18_06_14> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_15(OPS_16) { arcompact_fatal("<illegal 0x18_06_15> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_16(OPS_16) { arcompact_fatal("<illegal 0x18_06_16> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_17(OPS_16) { arcompact_fatal("<illegal 0x18_06_17> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_18(OPS_16) { arcompact_fatal("<illegal 0x18_06_18> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_19(OPS_16) { arcompact_fatal("<illegal 0x18_06_19> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_1a(OPS_16) { arcompact_fatal("<illegal 0x18_06_1a> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_1b(OPS_16) { arcompact_fatal("<illegal 0x18_06_1b> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_1c(OPS_16) { arcompact_fatal("<illegal 0x18_06_1c> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_1d(OPS_16) { arcompact_fatal("<illegal 0x18_06_1d> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_1e(OPS_16) { arcompact_fatal("<illegal 0x18_06_1e> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06_1f(OPS_16) { arcompact_fatal("<illegal 0x18_06_1f> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_00(OPS_16) { arcompact_fatal("<illegal 0x18_07_00> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_02(OPS_16) { arcompact_fatal("<illegal 0x18_07_02> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_03(OPS_16) { arcompact_fatal("<illegal 0x18_07_03> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_04(OPS_16) { arcompact_fatal("<illegal 0x18_07_04> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_05(OPS_16) { arcompact_fatal("<illegal 0x18_07_05> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_06(OPS_16) { arcompact_fatal("<illegal 0x18_07_06> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_07(OPS_16) { arcompact_fatal("<illegal 0x18_07_07> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_08(OPS_16) { arcompact_fatal("<illegal 0x18_07_08> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_09(OPS_16) { arcompact_fatal("<illegal 0x18_07_09> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_0a(OPS_16) { arcompact_fatal("<illegal 0x18_07_0a> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_0b(OPS_16) { arcompact_fatal("<illegal 0x18_07_0b> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_0c(OPS_16) { arcompact_fatal("<illegal 0x18_07_0c> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_0d(OPS_16) { arcompact_fatal("<illegal 0x18_07_0d> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_0e(OPS_16) { arcompact_fatal("<illegal 0x18_07_0e> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_0f(OPS_16) { arcompact_fatal("<illegal 0x18_07_0f> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_10(OPS_16) { arcompact_fatal("<illegal 0x18_07_10> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_12(OPS_16) { arcompact_fatal("<illegal 0x18_07_12> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_13(OPS_16) { arcompact_fatal("<illegal 0x18_07_13> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_14(OPS_16) { arcompact_fatal("<illegal 0x18_07_14> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_15(OPS_16) { arcompact_fatal("<illegal 0x18_07_15> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_16(OPS_16) { arcompact_fatal("<illegal 0x18_07_16> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_17(OPS_16) { arcompact_fatal("<illegal 0x18_07_17> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_18(OPS_16) { arcompact_fatal("<illegal 0x18_07_18> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_19(OPS_16) { arcompact_fatal("<illegal 0x18_07_19> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_1a(OPS_16) { arcompact_fatal("<illegal 0x18_07_1a> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_1b(OPS_16) { arcompact_fatal("<illegal 0x18_07_1b> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_1c(OPS_16) { arcompact_fatal("<illegal 0x18_07_1c> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_1d(OPS_16) { arcompact_fatal("<illegal 0x18_07_1d> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_1e(OPS_16) { arcompact_fatal("<illegal 0x18_07_1e> (%04x)", op); return m_pc + (2 >> 0);;}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07_1f(OPS_16) { arcompact_fatal("<illegal 0x18_07_1f> (%04x)", op); return m_pc + (2 >> 0);;}
+
+
+
diff --git a/src/emu/cpu/arcompact/arcompactdasm_ops.c b/src/emu/cpu/arcompact/arcompactdasm_ops.c
index bb413351346..f7dc71f3b57 100644
--- a/src/emu/cpu/arcompact/arcompactdasm_ops.c
+++ b/src/emu/cpu/arcompact/arcompactdasm_ops.c
@@ -21,382 +21,6 @@ static void ATTR_PRINTF(1,2) print(const char *fmt, ...)
}
-// condition codes (basic ones are the same as arc
-static const char *conditions[0x20] =
-{
- /* 00 */ "AL", // (aka RA - Always)
- /* 01 */ "EQ", // (aka Z - Zero
- /* 02 */ "NE", // (aka NZ - Non-Zero)
- /* 03 */ "PL", // (aka P - Positive)
- /* 04 */ "MI", // (aka N - Negative)
- /* 05 */ "CS", // (aka C, LO - Carry set / Lower than) (unsigned)
- /* 06 */ "CC", // (aka CC, NC, HS - Carry Clear / Higher or Same) (unsigned)
- /* 07 */ "VS", // (aka V - Overflow set)
- /* 08 */ "VC", // (aka NV - Overflow clear)
- /* 09 */ "GT", // ( - Greater than) (signed)
- /* 0a */ "GE", // ( - Greater than or Equal) (signed)
- /* 0b */ "LT", // ( - Less than) (signed)
- /* 0c */ "LE", // ( - Less than or Equal) (signed)
- /* 0d */ "HI", // ( - Higher than) (unsigned)
- /* 0e */ "LS", // ( - Lower or Same) (unsigned)
- /* 0f */ "PNZ",// ( - Positive non-0 value)
- /* 10 */ "0x10 Reserved", // possible CPU implementation specifics
- /* 11 */ "0x11 Reserved",
- /* 12 */ "0x12 Reserved",
- /* 13 */ "0x13 Reserved",
- /* 14 */ "0x14 Reserved",
- /* 15 */ "0x15 Reserved",
- /* 16 */ "0x16 Reserved",
- /* 17 */ "0x17 Reserved",
- /* 18 */ "0x18 Reserved",
- /* 19 */ "0x19 Reserved",
- /* 1a */ "0x1a Reserved",
- /* 1b */ "0x1b Reserved",
- /* 1c */ "0x1c Reserved",
- /* 1d */ "0x1d Reserved",
- /* 1e */ "0x1e Reserved",
- /* 1f */ "0x1f Reserved"
-};
-
-#define UNUSED_REG "unusedreg"
-
-#define AUX_UNUSED_16 \
- /* 0xxx0 */ UNUSED_REG, /* 0xxx1 */ UNUSED_REG, /* 0xxx2 */ UNUSED_REG, /* 0xxx3 */ UNUSED_REG, /* 0xxx4 */ UNUSED_REG, /* 0xxx5 */ UNUSED_REG, /* 0xxx6 */ UNUSED_REG, /* 0xxx7 */ UNUSED_REG, /* 0xxx8 */ UNUSED_REG, /* 0xxx9 */ UNUSED_REG, /* 0xxxa */ UNUSED_REG, /* 0xxxb */ UNUSED_REG, /* 0xxxc */ UNUSED_REG, /* 0xxxd */ UNUSED_REG, /* 0xxxe */ UNUSED_REG, /* 0xxxf */ UNUSED_REG,
-
-// the Auxiliary Register set is actually a 2^32 dword address space (so 16 GB / 34-bit)
-// this table just allows us to improve the debugger display for some of the common core / internal ones
-static const char *auxregnames[0x420] =
-{
- /* 0x000 */ "STATUS",
- /* 0x001 */ "SEMAPHOR",
- /* 0x002 */ "LP_START",
- /* 0x003 */ "LP_END",
- /* 0x004 */ "IDENTITY",
- /* 0x005 */ "DEBUG",
- /* 0x006 */ "PC",
- /* 0x007 */ UNUSED_REG,
- /* 0x008 */ UNUSED_REG,
- /* 0x009 */ UNUSED_REG,
- /* 0x00a */ "STATUS32",
- /* 0x00b */ "STATUS32_L1",
- /* 0x00c */ "STATUS32_L2",
- /* 0x00d */ UNUSED_REG,
- /* 0x00e */ UNUSED_REG,
- /* 0x00f */ UNUSED_REG,
-
- /* 0x010 */ UNUSED_REG,
- /* 0x011 */ UNUSED_REG,
- /* 0x012 */ "MULHI", // extension register
- /* 0x013 */ UNUSED_REG,
- /* 0x014 */ UNUSED_REG,
- /* 0x015 */ UNUSED_REG,
- /* 0x016 */ UNUSED_REG,
- /* 0x017 */ UNUSED_REG,
- /* 0x018 */ UNUSED_REG,
- /* 0x019 */ UNUSED_REG,
- /* 0x01a */ UNUSED_REG,
- /* 0x01b */ UNUSED_REG,
- /* 0x01c */ UNUSED_REG,
- /* 0x01d */ UNUSED_REG,
- /* 0x01e */ UNUSED_REG,
- /* 0x01f */ UNUSED_REG,
-
- /* 0x020 */ UNUSED_REG,
- /* 0x021 */ "COUNT0",
- /* 0x022 */ "CONTROL0",
- /* 0x023 */ "LIMIT0",
- /* 0x024 */ UNUSED_REG,
- /* 0x025 */ "INT_VECTOR_BASE",
- /* 0x026 */ UNUSED_REG,
- /* 0x027 */ UNUSED_REG,
- /* 0x028 */ UNUSED_REG,
- /* 0x029 */ UNUSED_REG,
- /* 0x02a */ UNUSED_REG,
- /* 0x02b */ UNUSED_REG,
- /* 0x02c */ UNUSED_REG,
- /* 0x02d */ UNUSED_REG,
- /* 0x02e */ UNUSED_REG,
- /* 0x02f */ UNUSED_REG,
- AUX_UNUSED_16 /* 0x030 - 0x03f */
- /* 0x040 */ UNUSED_REG,
- /* 0x041 */ "AUX_MACMODE",
- /* 0x042 */ UNUSED_REG,
- /* 0x043 */ "AUX_IRQLV12",
- /* 0x044 */ UNUSED_REG,
- /* 0x045 */ UNUSED_REG,
- /* 0x046 */ UNUSED_REG,
- /* 0x047 */ UNUSED_REG,
- /* 0x048 */ UNUSED_REG,
- /* 0x049 */ UNUSED_REG,
- /* 0x04a */ UNUSED_REG,
- /* 0x04b */ UNUSED_REG,
- /* 0x04c */ UNUSED_REG,
- /* 0x04d */ UNUSED_REG,
- /* 0x04e */ UNUSED_REG,
- /* 0x04f */ UNUSED_REG,
- AUX_UNUSED_16 /* 0x050 - 0x05f */
- // build configuration registers 0x060 - 0x07f
- /* 0x060 */ "RESERVED AUX 0x60",/* 0x061 */ "RESERVED AUX 0x61",/* 0x062 */ "RESERVED AUX 0x62",/* 0x063 */ "RESERVED AUX 0x63",/* 0x064 */ "RESERVED AUX 0x64",/* 0x065 */ "RESERVED AUX 0x65",/* 0x066 */ "RESERVED AUX 0x66",/* 0x067 */ "RESERVED AUX 0x67",/* 0x068 */ "RESERVED AUX 0x68",/* 0x069 */ "RESERVED AUX 0x69",/* 0x06a */ "RESERVED AUX 0x6a",/* 0x06b */ "RESERVED AUX 0x6b",/* 0x06c */ "RESERVED AUX 0x6c",/* 0x06d */ "RESERVED AUX 0x6d",/* 0x06e */ "RESERVED AUX 0x6e",/* 0x06f */ "RESERVED AUX 0x6f",
- /* 0x070 */ "RESERVED AUX 0x70",/* 0x071 */ "RESERVED AUX 0x71",/* 0x072 */ "RESERVED AUX 0x72",/* 0x073 */ "RESERVED AUX 0x73",/* 0x074 */ "RESERVED AUX 0x74",/* 0x075 */ "RESERVED AUX 0x75",/* 0x076 */ "RESERVED AUX 0x76",/* 0x077 */ "RESERVED AUX 0x77",/* 0x078 */ "RESERVED AUX 0x78",/* 0x079 */ "RESERVED AUX 0x79",/* 0x07a */ "RESERVED AUX 0x7a",/* 0x07b */ "RESERVED AUX 0x7b",/* 0x07c */ "RESERVED AUX 0x7c",/* 0x07d */ "RESERVED AUX 0x7d",/* 0x07e */ "RESERVED AUX 0x7e",/* 0x07f */ "RESERVED AUX 0x7f",
- AUX_UNUSED_16 /* 0x080 - 0x08f */
- AUX_UNUSED_16 /* 0x090 - 0x09f */
- AUX_UNUSED_16 /* 0x0a0 - 0x0af */
- AUX_UNUSED_16 /* 0x0b0 - 0x0bf */
- // build configuration registers 0x0c0 - 0x0ff
- /* 0x0c0 */ "RESERVED AUX 0xc0",/* 0x0c1 */ "RESERVED AUX 0xc1",/* 0x0c2 */ "RESERVED AUX 0xc2",/* 0x0c3 */ "RESERVED AUX 0xc3",/* 0x0c4 */ "RESERVED AUX 0xc4",/* 0x0c5 */ "RESERVED AUX 0xc5",/* 0x0c6 */ "RESERVED AUX 0xc6",/* 0x0c7 */ "RESERVED AUX 0xc7",/* 0x0c8 */ "RESERVED AUX 0xc8",/* 0x0c9 */ "RESERVED AUX 0xc9",/* 0x0ca */ "RESERVED AUX 0xca",/* 0x0cb */ "RESERVED AUX 0xcb",/* 0x0cc */ "RESERVED AUX 0xcc",/* 0x0cd */ "RESERVED AUX 0xcd",/* 0x0ce */ "RESERVED AUX 0xce",/* 0x0cf */ "RESERVED AUX 0xcf",
- /* 0x0d0 */ "RESERVED AUX 0xd0",/* 0x0d1 */ "RESERVED AUX 0xd1",/* 0x0d2 */ "RESERVED AUX 0xd2",/* 0x0d3 */ "RESERVED AUX 0xd3",/* 0x0d4 */ "RESERVED AUX 0xd4",/* 0x0d5 */ "RESERVED AUX 0xd5",/* 0x0d6 */ "RESERVED AUX 0xd6",/* 0x0d7 */ "RESERVED AUX 0xd7",/* 0x0d8 */ "RESERVED AUX 0xd8",/* 0x0d9 */ "RESERVED AUX 0xd9",/* 0x0da */ "RESERVED AUX 0xda",/* 0x0db */ "RESERVED AUX 0xdb",/* 0x0dc */ "RESERVED AUX 0xdc",/* 0x0dd */ "RESERVED AUX 0xdd",/* 0x0de */ "RESERVED AUX 0xde",/* 0x0df */ "RESERVED AUX 0xdf",
- /* 0x0e0 */ "RESERVED AUX 0xe0",/* 0x0e1 */ "RESERVED AUX 0xe1",/* 0x0e2 */ "RESERVED AUX 0xe2",/* 0x0e3 */ "RESERVED AUX 0xe3",/* 0x0e4 */ "RESERVED AUX 0xe4",/* 0x0e5 */ "RESERVED AUX 0xe5",/* 0x0e6 */ "RESERVED AUX 0xe6",/* 0x0e7 */ "RESERVED AUX 0xe7",/* 0x0e8 */ "RESERVED AUX 0xe8",/* 0x0e9 */ "RESERVED AUX 0xe9",/* 0x0ea */ "RESERVED AUX 0xea",/* 0x0eb */ "RESERVED AUX 0xeb",/* 0x0ec */ "RESERVED AUX 0xec",/* 0x0ed */ "RESERVED AUX 0xed",/* 0x0ee */ "RESERVED AUX 0xee",/* 0x0ef */ "RESERVED AUX 0xef",
- /* 0x0f0 */ "RESERVED AUX 0xf0",/* 0x0f1 */ "RESERVED AUX 0xf1",/* 0x0f2 */ "RESERVED AUX 0xf2",/* 0x0f3 */ "RESERVED AUX 0xf3",/* 0x0f4 */ "RESERVED AUX 0xf4",/* 0x0f5 */ "RESERVED AUX 0xf5",/* 0x0f6 */ "RESERVED AUX 0xf6",/* 0x0f7 */ "RESERVED AUX 0xf7",/* 0x0f8 */ "RESERVED AUX 0xf8",/* 0x0f9 */ "RESERVED AUX 0xf9",/* 0x0fa */ "RESERVED AUX 0xfa",/* 0x0fb */ "RESERVED AUX 0xfb",/* 0x0fc */ "RESERVED AUX 0xfc",/* 0x0fd */ "RESERVED AUX 0xfd",/* 0x0fe */ "RESERVED AUX 0xfe",/* 0x0ff */ "RESERVED AUX 0xff",
- /* 0x100 */ "COUNT1",
- /* 0x101 */ "CONTROL1",
- /* 0x102 */ "LIMIT1",
- /* 0x103 */ UNUSED_REG,
- /* 0x104 */ UNUSED_REG,
- /* 0x105 */ UNUSED_REG,
- /* 0x106 */ UNUSED_REG,
- /* 0x107 */ UNUSED_REG,
- /* 0x108 */ UNUSED_REG,
- /* 0x109 */ UNUSED_REG,
- /* 0x10a */ UNUSED_REG,
- /* 0x10b */ UNUSED_REG,
- /* 0x10c */ UNUSED_REG,
- /* 0x10d */ UNUSED_REG,
- /* 0x10e */ UNUSED_REG,
- /* 0x10f */ UNUSED_REG,
- AUX_UNUSED_16 /* 0x110 - 0x11f */
- AUX_UNUSED_16 /* 0x120 - 0x12f */
- AUX_UNUSED_16 /* 0x130 - 0x13f */
- AUX_UNUSED_16 /* 0x140 - 0x14f */
- AUX_UNUSED_16 /* 0x150 - 0x15f */
- AUX_UNUSED_16 /* 0x160 - 0x16f */
- AUX_UNUSED_16 /* 0x170 - 0x17f */
- AUX_UNUSED_16 /* 0x180 - 0x18f */
- AUX_UNUSED_16 /* 0x190 - 0x19f */
- AUX_UNUSED_16 /* 0x1a0 - 0x1af */
- AUX_UNUSED_16 /* 0x1b0 - 0x1bf */
- AUX_UNUSED_16 /* 0x1c0 - 0x1cf */
- AUX_UNUSED_16 /* 0x1d0 - 0x1df */
- AUX_UNUSED_16 /* 0x1e0 - 0x1ef */
- AUX_UNUSED_16 /* 0x1f0 - 0x1ff */
- /* 0x200 */ "AUX_IRQ_LEV",
- /* 0x201 */ "AUX_IRQ_HINT",
- /* 0x203 */ UNUSED_REG,
- /* 0x203 */ UNUSED_REG,
- /* 0x204 */ UNUSED_REG,
- /* 0x205 */ UNUSED_REG,
- /* 0x206 */ UNUSED_REG,
- /* 0x207 */ UNUSED_REG,
- /* 0x208 */ UNUSED_REG,
- /* 0x209 */ UNUSED_REG,
- /* 0x20a */ UNUSED_REG,
- /* 0x20b */ UNUSED_REG,
- /* 0x20c */ UNUSED_REG,
- /* 0x20d */ UNUSED_REG,
- /* 0x20e */ UNUSED_REG,
- /* 0x20f */ UNUSED_REG,
- AUX_UNUSED_16 /* 0x210 - 0x21f */
- AUX_UNUSED_16 /* 0x220 - 0x22f */
- AUX_UNUSED_16 /* 0x230 - 0x23f */
- AUX_UNUSED_16 /* 0x240 - 0x24f */
- AUX_UNUSED_16 /* 0x250 - 0x25f */
- AUX_UNUSED_16 /* 0x260 - 0x26f */
- AUX_UNUSED_16 /* 0x270 - 0x27f */
- AUX_UNUSED_16 /* 0x280 - 0x28f */
- AUX_UNUSED_16 /* 0x290 - 0x29f */
- AUX_UNUSED_16 /* 0x2a0 - 0x2af */
- AUX_UNUSED_16 /* 0x2b0 - 0x2bf */
- AUX_UNUSED_16 /* 0x2c0 - 0x2cf */
- AUX_UNUSED_16 /* 0x2d0 - 0x2df */
- AUX_UNUSED_16 /* 0x2e0 - 0x2ef */
- AUX_UNUSED_16 /* 0x2f0 - 0x2ff */
-
- AUX_UNUSED_16 /* 0x300 - 0x30f */
- AUX_UNUSED_16 /* 0x310 - 0x31f */
- AUX_UNUSED_16 /* 0x320 - 0x32f */
- AUX_UNUSED_16 /* 0x330 - 0x33f */
- AUX_UNUSED_16 /* 0x340 - 0x34f */
- AUX_UNUSED_16 /* 0x350 - 0x35f */
- AUX_UNUSED_16 /* 0x360 - 0x36f */
- AUX_UNUSED_16 /* 0x370 - 0x37f */
- AUX_UNUSED_16 /* 0x380 - 0x38f */
- AUX_UNUSED_16 /* 0x390 - 0x39f */
- AUX_UNUSED_16 /* 0x3a0 - 0x3af */
- AUX_UNUSED_16 /* 0x3b0 - 0x3bf */
- AUX_UNUSED_16 /* 0x3c0 - 0x3cf */
- AUX_UNUSED_16 /* 0x3d0 - 0x3df */
- AUX_UNUSED_16 /* 0x3e0 - 0x3ef */
- AUX_UNUSED_16 /* 0x3f0 - 0x3ff */
-
- /* 0x400 */ "ERET",
- /* 0x401 */ "ERBTA",
- /* 0x403 */ "ERSTATUS",
- /* 0x403 */ "ECR",
- /* 0x404 */ "EFA",
- /* 0x405 */ UNUSED_REG,
- /* 0x406 */ UNUSED_REG,
- /* 0x407 */ UNUSED_REG,
- /* 0x408 */ UNUSED_REG,
- /* 0x409 */ UNUSED_REG,
- /* 0x40a */ "ICAUSE1",
- /* 0x40b */ "ICAUSE2",
- /* 0x40c */ "AUX_IENABLE",
- /* 0x40d */ "AUX_ITRIGGER",
- /* 0x40e */ UNUSED_REG,
- /* 0x40f */ UNUSED_REG,
-
- /* 0x410 */ "XPU",
- /* 0x411 */ UNUSED_REG,
- /* 0x412 */ "BTA",
- /* 0x413 */ "BTA_L1",
- /* 0x414 */ "BTA_L2",
- /* 0x415 */ "AUX_IRQ_PULSE_CANCEL",
- /* 0x416 */ "AUX_IRQ_PENDING",
- /* 0x417 */ UNUSED_REG,
- /* 0x418 */ UNUSED_REG,
- /* 0x419 */ UNUSED_REG,
- /* 0x41a */ UNUSED_REG,
- /* 0x41b */ UNUSED_REG,
- /* 0x41c */ UNUSED_REG,
- /* 0x41d */ UNUSED_REG,
- /* 0x41e */ UNUSED_REG,
- /* 0x41f */ UNUSED_REG
-};
-
-//#define EXPLICIT_EXTENSIONS
-
-static const char *datasize[0x4] =
-{
-#ifdef EXPLICIT_EXTENSIONS
- /* 00 */ ".L", // Dword (default) (can use no extension, using .L to be explicit)
-#else
- /* 00 */ "",// Dword (default)
-#endif
- /* 01 */ ".B", // Byte
- /* 02 */ ".W", // Word
- /* 03 */ ".<illegal data size>"
-};
-
-static const char *dataextend[0x2] =
-{
-#ifdef EXPLICIT_EXTENSIONS
- /* 00 */ ".ZX", // Zero Extend (can use no extension, using .ZX to be explicit)
-#else
- /* 00 */ "", // Zero Extend
-#endif
- /* 01 */ ".X" // Sign Extend
-};
-
-static const char *addressmode[0x4] =
-{
-#ifdef EXPLICIT_EXTENSIONS
- /* 00 */ ".AN", // No Writeback (can use no extension, using .AN to be explicit)
-#else
- /* 00 */ "", // No Writeback
-#endif
- /* 01 */ ".AW", // Writeback pre memory access
- /* 02 */ ".AB", // Writeback post memory access
- /* 03 */ ".AS" // scaled
-};
-
-static const char *cachebit[0x2] =
-{
-#ifdef EXPLICIT_EXTENSIONS
- /* 00 */ ".EN", // Data Cache Enabled (can use no extension, using .EN to be explicit)
-#else
- /* 00 */ "", // Data Cache Enabled
-#endif
- /* 01 */ ".DI" // Direct to Memory (Cache Bypass)
-};
-
-static const char *flagbit[0x2] =
-{
-#ifdef EXPLICIT_EXTENSIONS
- /* 00 */ ".NF", // Don't Set Flags (can use no extension, using .NF to be explicit)
-#else
- /* 00 */ "", // Don't Set Flags
-#endif
- /* 01 */ ".F" // Set Flags
-};
-
-static const char *delaybit[0x2] =
-{
- /* 00 */ ".ND", // Don't execute opcode in delay slot
- /* 01 */ ".D" // Execute Opcode in delay slot
-};
-
-
-static const char *regnames[0x40] =
-{
- /* 00 */ "r0",
- /* 01 */ "r1",
- /* 02 */ "r2",
- /* 03 */ "r3",
- /* 04 */ "r4",
- /* 05 */ "r5",
- /* 06 */ "r6",
- /* 07 */ "r7",
- /* 08 */ "r8",
- /* 09 */ "r9",
- /* 0a */ "r10",
- /* 0b */ "r11",
- /* 0c */ "r12",
- /* 0d */ "r13",
- /* 0e */ "r14",
- /* 0f */ "r15",
-
- /* 10 */ "r16",
- /* 11 */ "r17",
- /* 12 */ "r18",
- /* 13 */ "r19",
- /* 14 */ "r20",
- /* 15 */ "r21",
- /* 16 */ "r22",
- /* 17 */ "r23",
- /* 18 */ "r24",
- /* 19 */ "r25",
- /* 1a */ "r26(GP)",
- /* 1b */ "r27(FP)",
- /* 1c */ "r28(SP)",
- /* 1d */ "r29(ILINK1)",
- /* 1e */ "r30(ILINK2)",
- /* 1f */ "r31(BLINK)",
-
- /* 20 */ "r32(ext)",
- /* 21 */ "r33(ext)",
- /* 22 */ "r34(ext)",
- /* 23 */ "r35(ext)",
- /* 24 */ "r36(ext)",
- /* 25 */ "r37(ext)",
- /* 26 */ "r38(ext)",
- /* 27 */ "r39(ext)",
- /* 28 */ "r40(ext)",
- /* 29 */ "r41(ext)",
- /* 2a */ "r42(ext)",
- /* 2b */ "r43(ext)",
- /* 2c */ "r44(ext)",
- /* 2d */ "r45(ext)",
- /* 2e */ "r46(ext)",
- /* 2f */ "r47(ext)",
-
- /* 30 */ "r48(ext)",
- /* 31 */ "r49(ext)",
- /* 32 */ "r50(ext)",
- /* 33 */ "r51(ext)",
- /* 34 */ "r52(ext)",
- /* 35 */ "r53(ext)",
- /* 36 */ "r54(ext)",
- /* 37 */ "r55(ext)",
- /* 38 */ "r56(ext)",
- /* 39 */ "r57(M-LO)", // MLO (result registers for optional multply functions)
- /* 3a */ "r58(M-MID)", // MMID
- /* 3b */ "r59(M-HI)", // MHI
- /* 3c */ "r60(LP_COUNT)",
- /* 3d */ "r61(reserved)",
- /* 3e */ "r62(LIMM)", // use Long Immediate Data instead of register
- /* 3f */ "r63(PCL)"
-};
-
-
#define GET_01_01_01_BRANCH_ADDR \
INT32 address = (op & 0x00fe0000) >> 17; \
@@ -1302,7 +926,11 @@ int arcompact_handle04_2b_dasm(DASM_OPS_32) // Store TO Auxiliary register FROM
return size;}
-int arcompact_handle04_29_dasm(DASM_OPS_32) { print("FLAG (%08x)", op); return 4;}
+int arcompact_handle04_29_dasm(DASM_OPS_32)
+{
+ // leapster bios uses formats for FLAG that are not defined, bug I guess work anyway (P modes 0 / 1)
+ return arcompact_handle04_helper_dasm(DASM_PARAMS, "FLAG", 1,1);
+}
int arcompact_handle04_2f_helper_dasm(DASM_OPS_32, const char* optext)
diff --git a/src/emu/cpu/arcompact/arcompactdasm_ops.h b/src/emu/cpu/arcompact/arcompactdasm_ops.h
index 5ba8c846cac..5bdd6c67a3b 100644
--- a/src/emu/cpu/arcompact/arcompactdasm_ops.h
+++ b/src/emu/cpu/arcompact/arcompactdasm_ops.h
@@ -5,6 +5,8 @@
* *
************************************************************************************************************************************/
+#include "arcompact_common.h"
+
#define DASM_OPS_16 char *output, offs_t pc, UINT16 op, const UINT8* oprom
#define DASM_OPS_32 char *output, offs_t pc, UINT32 op, const UINT8* oprom
#define DASM_PARAMS output, pc, op, oprom
@@ -115,7 +117,7 @@ int arcompact_handle05_0a_dasm(DASM_OPS_32);
int arcompact_handle05_0b_dasm(DASM_OPS_32);
int arcompact_handle05_28_dasm(DASM_OPS_32);
int arcompact_handle05_29_dasm(DASM_OPS_32);
-//int arcompact_handle05_2f_dasm(DASM_OPS_32);
+
int arcompact_handle06_dasm(DASM_OPS_32);
int arcompact_handle07_dasm(DASM_OPS_32);
int arcompact_handle08_dasm(DASM_OPS_32);
@@ -226,147 +228,147 @@ int arcompact_handle1f_dasm(DASM_OPS_16);
* *
************************************************************************************************************************************/
-int arcompact_handle01_01_00_06_dasm(DASM_OPS_32); //("<illegal 01_01_00_06> (%08x)", op); return 4; }
-int arcompact_handle01_01_00_07_dasm(DASM_OPS_32); //("<illegal 01_01_00_07> (%08x)", op); return 4; }
-int arcompact_handle01_01_00_08_dasm(DASM_OPS_32); //("<illegal 01_01_00_08> (%08x)", op); return 4; }
-int arcompact_handle01_01_00_09_dasm(DASM_OPS_32); //("<illegal 01_01_00_09> (%08x)", op); return 4; }
-int arcompact_handle01_01_00_0a_dasm(DASM_OPS_32); //("<illegal 01_01_00_0a> (%08x)", op); return 4; }
-int arcompact_handle01_01_00_0b_dasm(DASM_OPS_32); //("<illegal 01_01_00_0b> (%08x)", op); return 4; }
-int arcompact_handle01_01_00_0c_dasm(DASM_OPS_32); //("<illegal 01_01_00_0c> (%08x)", op); return 4; }
-int arcompact_handle01_01_00_0d_dasm(DASM_OPS_32); //("<illegal 01_01_00_0d> (%08x)", op); return 4; }
+int arcompact_handle01_01_00_06_dasm(DASM_OPS_32);
+int arcompact_handle01_01_00_07_dasm(DASM_OPS_32);
+int arcompact_handle01_01_00_08_dasm(DASM_OPS_32);
+int arcompact_handle01_01_00_09_dasm(DASM_OPS_32);
+int arcompact_handle01_01_00_0a_dasm(DASM_OPS_32);
+int arcompact_handle01_01_00_0b_dasm(DASM_OPS_32);
+int arcompact_handle01_01_00_0c_dasm(DASM_OPS_32);
+int arcompact_handle01_01_00_0d_dasm(DASM_OPS_32);
-int arcompact_handle01_01_01_06_dasm(DASM_OPS_32); //("<illegal 01_01_01_06> (%08x)", op); return 4; }
-int arcompact_handle01_01_01_07_dasm(DASM_OPS_32); //("<illegal 01_01_01_07> (%08x)", op); return 4; }
-int arcompact_handle01_01_01_08_dasm(DASM_OPS_32); //("<illegal 01_01_01_08> (%08x)", op); return 4; }
-int arcompact_handle01_01_01_09_dasm(DASM_OPS_32); //("<illegal 01_01_01_09> (%08x)", op); return 4; }
-int arcompact_handle01_01_01_0a_dasm(DASM_OPS_32); //("<illegal 01_01_01_0a> (%08x)", op); return 4; }
-int arcompact_handle01_01_01_0b_dasm(DASM_OPS_32); //("<illegal 01_01_01_0b> (%08x)", op); return 4; }
-int arcompact_handle01_01_01_0c_dasm(DASM_OPS_32); //("<illegal 01_01_01_0c> (%08x)", op); return 4; }
-int arcompact_handle01_01_01_0d_dasm(DASM_OPS_32); //("<illegal 01_01_01_0d> (%08x)", op); return 4; }
+int arcompact_handle01_01_01_06_dasm(DASM_OPS_32);
+int arcompact_handle01_01_01_07_dasm(DASM_OPS_32);
+int arcompact_handle01_01_01_08_dasm(DASM_OPS_32);
+int arcompact_handle01_01_01_09_dasm(DASM_OPS_32);
+int arcompact_handle01_01_01_0a_dasm(DASM_OPS_32);
+int arcompact_handle01_01_01_0b_dasm(DASM_OPS_32);
+int arcompact_handle01_01_01_0c_dasm(DASM_OPS_32);
+int arcompact_handle01_01_01_0d_dasm(DASM_OPS_32);
-int arcompact_handle04_1e_dasm(DASM_OPS_32); //("<illegal 0x04_1e> (%08x)", op); return 4;}
-int arcompact_handle04_1f_dasm(DASM_OPS_32); //("<illegal 0x04_1f> (%08x)", op); return 4;}
+int arcompact_handle04_1e_dasm(DASM_OPS_32);
+int arcompact_handle04_1f_dasm(DASM_OPS_32);
-int arcompact_handle04_24_dasm(DASM_OPS_32); //("<illegal 0x04_24> (%08x)", op); return 4;}
-int arcompact_handle04_25_dasm(DASM_OPS_32); //("<illegal 0x04_25> (%08x)", op); return 4;}
-int arcompact_handle04_26_dasm(DASM_OPS_32); //("<illegal 0x04_26> (%08x)", op); return 4;}
-int arcompact_handle04_27_dasm(DASM_OPS_32); //("<illegal 0x04_27> (%08x)", op); return 4;}
+int arcompact_handle04_24_dasm(DASM_OPS_32);
+int arcompact_handle04_25_dasm(DASM_OPS_32);
+int arcompact_handle04_26_dasm(DASM_OPS_32);
+int arcompact_handle04_27_dasm(DASM_OPS_32);
-int arcompact_handle04_2c_dasm(DASM_OPS_32); //("<illegal 0x04_2c> (%08x)", op); return 4;}
-int arcompact_handle04_2d_dasm(DASM_OPS_32); //("<illegal 0x04_2d> (%08x)", op); return 4;}
-int arcompact_handle04_2e_dasm(DASM_OPS_32); //("<illegal 0x04_2e> (%08x)", op); return 4;}
+int arcompact_handle04_2c_dasm(DASM_OPS_32);
+int arcompact_handle04_2d_dasm(DASM_OPS_32);
+int arcompact_handle04_2e_dasm(DASM_OPS_32);
-int arcompact_handle04_2f_0d_dasm(DASM_OPS_32); //("<illegal 0x04_2f_0d> (%08x)", op); return 4;}
-int arcompact_handle04_2f_0e_dasm(DASM_OPS_32); //("<illegal 0x04_2f_0e> (%08x)", op); return 4;}
-int arcompact_handle04_2f_0f_dasm(DASM_OPS_32); //("<illegal 0x04_2f_0f> (%08x)", op); return 4;}
-int arcompact_handle04_2f_10_dasm(DASM_OPS_32); //("<illegal 0x04_2f_10> (%08x)", op); return 4;}
-int arcompact_handle04_2f_11_dasm(DASM_OPS_32); //("<illegal 0x04_2f_11> (%08x)", op); return 4;}
-int arcompact_handle04_2f_12_dasm(DASM_OPS_32); //("<illegal 0x04_2f_12> (%08x)", op); return 4;}
-int arcompact_handle04_2f_13_dasm(DASM_OPS_32); //("<illegal 0x04_2f_13> (%08x)", op); return 4;}
-int arcompact_handle04_2f_14_dasm(DASM_OPS_32); //("<illegal 0x04_2f_14> (%08x)", op); return 4;}
-int arcompact_handle04_2f_15_dasm(DASM_OPS_32); //("<illegal 0x04_2f_15> (%08x)", op); return 4;}
-int arcompact_handle04_2f_16_dasm(DASM_OPS_32); //("<illegal 0x04_2f_16> (%08x)", op); return 4;}
-int arcompact_handle04_2f_17_dasm(DASM_OPS_32); //("<illegal 0x04_2f_17> (%08x)", op); return 4;}
-int arcompact_handle04_2f_18_dasm(DASM_OPS_32); //("<illegal 0x04_2f_18> (%08x)", op); return 4;}
-int arcompact_handle04_2f_19_dasm(DASM_OPS_32); //("<illegal 0x04_2f_19> (%08x)", op); return 4;}
-int arcompact_handle04_2f_1a_dasm(DASM_OPS_32); //("<illegal 0x04_2f_1a> (%08x)", op); return 4;}
-int arcompact_handle04_2f_1b_dasm(DASM_OPS_32); //("<illegal 0x04_2f_1b> (%08x)", op); return 4;}
-int arcompact_handle04_2f_1c_dasm(DASM_OPS_32); //("<illegal 0x04_2f_1c> (%08x)", op); return 4;}
-int arcompact_handle04_2f_1d_dasm(DASM_OPS_32); //("<illegal 0x04_2f_1d> (%08x)", op); return 4;}
-int arcompact_handle04_2f_1e_dasm(DASM_OPS_32); //("<illegal 0x04_2f_1e> (%08x)", op); return 4;}
-int arcompact_handle04_2f_1f_dasm(DASM_OPS_32); //("<illegal 0x04_2f_1f> (%08x)", op); return 4;}
-int arcompact_handle04_2f_20_dasm(DASM_OPS_32); //("<illegal 0x04_2f_20> (%08x)", op); return 4;}
-int arcompact_handle04_2f_21_dasm(DASM_OPS_32); //("<illegal 0x04_2f_21> (%08x)", op); return 4;}
-int arcompact_handle04_2f_22_dasm(DASM_OPS_32); //("<illegal 0x04_2f_22> (%08x)", op); return 4;}
-int arcompact_handle04_2f_23_dasm(DASM_OPS_32); //("<illegal 0x04_2f_23> (%08x)", op); return 4;}
-int arcompact_handle04_2f_24_dasm(DASM_OPS_32); //("<illegal 0x04_2f_24> (%08x)", op); return 4;}
-int arcompact_handle04_2f_25_dasm(DASM_OPS_32); //("<illegal 0x04_2f_25> (%08x)", op); return 4;}
-int arcompact_handle04_2f_26_dasm(DASM_OPS_32); //("<illegal 0x04_2f_26> (%08x)", op); return 4;}
-int arcompact_handle04_2f_27_dasm(DASM_OPS_32); //("<illegal 0x04_2f_27> (%08x)", op); return 4;}
-int arcompact_handle04_2f_28_dasm(DASM_OPS_32); //("<illegal 0x04_2f_28> (%08x)", op); return 4;}
-int arcompact_handle04_2f_29_dasm(DASM_OPS_32); //("<illegal 0x04_2f_29> (%08x)", op); return 4;}
-int arcompact_handle04_2f_2a_dasm(DASM_OPS_32); //("<illegal 0x04_2f_2a> (%08x)", op); return 4;}
-int arcompact_handle04_2f_2b_dasm(DASM_OPS_32); //("<illegal 0x04_2f_2b> (%08x)", op); return 4;}
-int arcompact_handle04_2f_2c_dasm(DASM_OPS_32); //("<illegal 0x04_2f_2c> (%08x)", op); return 4;}
-int arcompact_handle04_2f_2d_dasm(DASM_OPS_32); //("<illegal 0x04_2f_2d> (%08x)", op); return 4;}
-int arcompact_handle04_2f_2e_dasm(DASM_OPS_32); //("<illegal 0x04_2f_2e> (%08x)", op); return 4;}
-int arcompact_handle04_2f_2f_dasm(DASM_OPS_32); //("<illegal 0x04_2f_2f> (%08x)", op); return 4;}
-int arcompact_handle04_2f_30_dasm(DASM_OPS_32); //("<illegal 0x04_2f_30> (%08x)", op); return 4;}
-int arcompact_handle04_2f_31_dasm(DASM_OPS_32); //("<illegal 0x04_2f_31> (%08x)", op); return 4;}
-int arcompact_handle04_2f_32_dasm(DASM_OPS_32); //("<illegal 0x04_2f_32> (%08x)", op); return 4;}
-int arcompact_handle04_2f_33_dasm(DASM_OPS_32); //("<illegal 0x04_2f_33> (%08x)", op); return 4;}
-int arcompact_handle04_2f_34_dasm(DASM_OPS_32); //("<illegal 0x04_2f_34> (%08x)", op); return 4;}
-int arcompact_handle04_2f_35_dasm(DASM_OPS_32); //("<illegal 0x04_2f_35> (%08x)", op); return 4;}
-int arcompact_handle04_2f_36_dasm(DASM_OPS_32); //("<illegal 0x04_2f_36> (%08x)", op); return 4;}
-int arcompact_handle04_2f_37_dasm(DASM_OPS_32); //("<illegal 0x04_2f_37> (%08x)", op); return 4;}
-int arcompact_handle04_2f_38_dasm(DASM_OPS_32); //("<illegal 0x04_2f_38> (%08x)", op); return 4;}
-int arcompact_handle04_2f_39_dasm(DASM_OPS_32); //("<illegal 0x04_2f_39> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3a_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3a> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3b_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3b> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3c_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3c> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3d_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3d> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3e_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3e> (%08x)", op); return 4;}
+int arcompact_handle04_2f_0d_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_0e_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_0f_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_10_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_11_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_12_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_13_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_14_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_15_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_16_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_17_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_18_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_19_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_1a_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_1b_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_1c_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_1d_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_1e_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_1f_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_20_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_21_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_22_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_23_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_24_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_25_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_26_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_27_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_28_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_29_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_2a_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_2b_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_2c_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_2d_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_2e_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_2f_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_30_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_31_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_32_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_33_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_34_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_35_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_36_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_37_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_38_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_39_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3a_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3b_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3c_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3d_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3e_dasm(DASM_OPS_32);
-int arcompact_handle04_2f_3f_00_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_00> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_06_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_06> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_07_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_07> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_08_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_08> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_09_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_09> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_0a_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_0a> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_0b_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_0b> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_0c_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_0c> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_0d_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_0d> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_0e_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_0e> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_0f_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_0f> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_10_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_10> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_11_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_11> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_12_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_12> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_13_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_13> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_14_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_14> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_15_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_15> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_16_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_16> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_17_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_17> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_18_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_18> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_19_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_19> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_1a_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_1a> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_1b_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_1b> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_1c_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_1c> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_1d_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_1d> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_1e_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_1e> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_1f_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_1f> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_20_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_20> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_21_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_21> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_22_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_22> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_23_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_23> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_24_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_24> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_25_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_25> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_26_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_26> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_27_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_27> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_28_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_28> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_29_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_29> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_2a_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_2a> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_2b_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_2b> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_2c_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_2c> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_2d_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_2d> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_2e_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_2e> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_2f_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_2f> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_30_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_30> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_31_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_31> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_32_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_32> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_33_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_33> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_34_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_34> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_35_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_35> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_36_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_36> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_37_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_37> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_38_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_38> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_39_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_39> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_3a_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_3a> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_3b_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_3b> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_3c_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_3c> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_3d_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_3d> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_3e_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_3e> (%08x)", op); return 4;}
-int arcompact_handle04_2f_3f_3f_dasm(DASM_OPS_32); //("<illegal 0x04_2f_3f_3f> (%08x)", op); return 4;}
+int arcompact_handle04_2f_3f_00_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_06_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_07_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_08_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_09_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_0a_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_0b_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_0c_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_0d_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_0e_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_0f_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_10_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_11_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_12_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_13_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_14_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_15_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_16_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_17_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_18_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_19_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_1a_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_1b_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_1c_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_1d_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_1e_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_1f_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_20_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_21_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_22_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_23_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_24_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_25_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_26_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_27_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_28_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_29_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_2a_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_2b_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_2c_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_2d_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_2e_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_2f_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_30_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_31_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_32_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_33_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_34_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_35_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_36_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_37_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_38_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_39_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_3a_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_3b_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_3c_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_3d_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_3e_dasm(DASM_OPS_32);
+int arcompact_handle04_2f_3f_3f_dasm(DASM_OPS_32);
int arcompact_handle05_2f_00_dasm(DASM_OPS_32);
int arcompact_handle05_2f_01_dasm(DASM_OPS_32);
@@ -431,7 +433,6 @@ int arcompact_handle05_2f_3b_dasm(DASM_OPS_32);
int arcompact_handle05_2f_3c_dasm(DASM_OPS_32);
int arcompact_handle05_2f_3d_dasm(DASM_OPS_32);
int arcompact_handle05_2f_3e_dasm(DASM_OPS_32);
-//int arcompact_handle05_2f_3f_dasm(DASM_OPS_32);
int arcompact_handle05_2f_3f_00_dasm(DASM_OPS_32);
int arcompact_handle05_2f_3f_01_dasm(DASM_OPS_32);
@@ -499,143 +500,142 @@ int arcompact_handle05_2f_3f_3e_dasm(DASM_OPS_32);
int arcompact_handle05_2f_3f_3f_dasm(DASM_OPS_32);
-int arcompact_handle04_38_dasm(DASM_OPS_32); //("<illegal 0x04_38> (%08x)", op); return 4;}
-int arcompact_handle04_39_dasm(DASM_OPS_32); //("<illegal 0x04_39> (%08x)", op); return 4;}
-int arcompact_handle04_3a_dasm(DASM_OPS_32); //("<illegal 0x04_3a> (%08x)", op); return 4;}
-int arcompact_handle04_3b_dasm(DASM_OPS_32); //("<illegal 0x04_3b> (%08x)", op); return 4;}
-int arcompact_handle04_3c_dasm(DASM_OPS_32); //("<illegal 0x04_3c> (%08x)", op); return 4;}
-int arcompact_handle04_3d_dasm(DASM_OPS_32); //("<illegal 0x04_3d> (%08x)", op); return 4;}
-int arcompact_handle04_3e_dasm(DASM_OPS_32); //("<illegal 0x04_3e> (%08x)", op); return 4;}
-int arcompact_handle04_3f_dasm(DASM_OPS_32); //("<illegal 0x04_3f> (%08x)", op); return 4;}
-
-int arcompact_handle05_09_dasm(DASM_OPS_32); //("<illegal 0x05_09> (%08x)", op); return 4;}
-int arcompact_handle05_0c_dasm(DASM_OPS_32); //("<illegal 0x05_0c> (%08x)", op); return 4;}
-int arcompact_handle05_0d_dasm(DASM_OPS_32); //("<illegal 0x05_0d> (%08x)", op); return 4;}
-int arcompact_handle05_0e_dasm(DASM_OPS_32); //("<illegal 0x05_0e> (%08x)", op); return 4;}
-int arcompact_handle05_0f_dasm(DASM_OPS_32); //("<illegal 0x05_0f> (%08x)", op); return 4;}
-int arcompact_handle05_10_dasm(DASM_OPS_32); //("<illegal 0x05_10> (%08x)", op); return 4;}
-int arcompact_handle05_11_dasm(DASM_OPS_32); //("<illegal 0x05_11> (%08x)", op); return 4;}
-int arcompact_handle05_12_dasm(DASM_OPS_32); //("<illegal 0x05_12> (%08x)", op); return 4;}
-int arcompact_handle05_13_dasm(DASM_OPS_32); //("<illegal 0x05_13> (%08x)", op); return 4;}
-int arcompact_handle05_14_dasm(DASM_OPS_32); //("<illegal 0x05_14> (%08x)", op); return 4;}
-int arcompact_handle05_15_dasm(DASM_OPS_32); //("<illegal 0x05_15> (%08x)", op); return 4;}
-int arcompact_handle05_16_dasm(DASM_OPS_32); //("<illegal 0x05_16> (%08x)", op); return 4;}
-int arcompact_handle05_17_dasm(DASM_OPS_32); //("<illegal 0x05_17> (%08x)", op); return 4;}
-int arcompact_handle05_18_dasm(DASM_OPS_32); //("<illegal 0x05_18> (%08x)", op); return 4;}
-int arcompact_handle05_19_dasm(DASM_OPS_32); //("<illegal 0x05_19> (%08x)", op); return 4;}
-int arcompact_handle05_1a_dasm(DASM_OPS_32); //("<illegal 0x05_1a> (%08x)", op); return 4;}
-int arcompact_handle05_1b_dasm(DASM_OPS_32); //("<illegal 0x05_1b> (%08x)", op); return 4;}
-int arcompact_handle05_1c_dasm(DASM_OPS_32); //("<illegal 0x05_1c> (%08x)", op); return 4;}
-int arcompact_handle05_1d_dasm(DASM_OPS_32); //("<illegal 0x05_1d> (%08x)", op); return 4;}
-int arcompact_handle05_1e_dasm(DASM_OPS_32); //("<illegal 0x05_1e> (%08x)", op); return 4;}
-int arcompact_handle05_1f_dasm(DASM_OPS_32); //("<illegal 0x05_1f> (%08x)", op); return 4;}
-int arcompact_handle05_20_dasm(DASM_OPS_32); //("<illegal 0x05_20> (%08x)", op); return 4;}
-int arcompact_handle05_21_dasm(DASM_OPS_32); //("<illegal 0x05_21> (%08x)", op); return 4;}
-int arcompact_handle05_22_dasm(DASM_OPS_32); //("<illegal 0x05_22> (%08x)", op); return 4;}
-int arcompact_handle05_23_dasm(DASM_OPS_32); //("<illegal 0x05_23> (%08x)", op); return 4;}
-int arcompact_handle05_24_dasm(DASM_OPS_32); //("<illegal 0x05_24> (%08x)", op); return 4;}
-int arcompact_handle05_25_dasm(DASM_OPS_32); //("<illegal 0x05_25> (%08x)", op); return 4;}
-int arcompact_handle05_26_dasm(DASM_OPS_32); //("<illegal 0x05_26> (%08x)", op); return 4;}
-int arcompact_handle05_27_dasm(DASM_OPS_32); //("<illegal 0x05_27> (%08x)", op); return 4;}
+int arcompact_handle04_38_dasm(DASM_OPS_32);
+int arcompact_handle04_39_dasm(DASM_OPS_32);
+int arcompact_handle04_3a_dasm(DASM_OPS_32);
+int arcompact_handle04_3b_dasm(DASM_OPS_32);
+int arcompact_handle04_3c_dasm(DASM_OPS_32);
+int arcompact_handle04_3d_dasm(DASM_OPS_32);
+int arcompact_handle04_3e_dasm(DASM_OPS_32);
+int arcompact_handle04_3f_dasm(DASM_OPS_32);
-int arcompact_handle05_2a_dasm(DASM_OPS_32); //("<illegal 0x05_2a> (%08x)", op); return 4;}
-int arcompact_handle05_2b_dasm(DASM_OPS_32); //("<illegal 0x05_2b> (%08x)", op); return 4;}
-int arcompact_handle05_2c_dasm(DASM_OPS_32); //("<illegal 0x05_2c> (%08x)", op); return 4;}
-int arcompact_handle05_2d_dasm(DASM_OPS_32); //("<illegal 0x05_2d> (%08x)", op); return 4;}
-int arcompact_handle05_2e_dasm(DASM_OPS_32); //("<illegal 0x05_2e> (%08x)", op); return 4;}
+int arcompact_handle05_09_dasm(DASM_OPS_32);
+int arcompact_handle05_0c_dasm(DASM_OPS_32);
+int arcompact_handle05_0d_dasm(DASM_OPS_32);
+int arcompact_handle05_0e_dasm(DASM_OPS_32);
+int arcompact_handle05_0f_dasm(DASM_OPS_32);
+int arcompact_handle05_10_dasm(DASM_OPS_32);
+int arcompact_handle05_11_dasm(DASM_OPS_32);
+int arcompact_handle05_12_dasm(DASM_OPS_32);
+int arcompact_handle05_13_dasm(DASM_OPS_32);
+int arcompact_handle05_14_dasm(DASM_OPS_32);
+int arcompact_handle05_15_dasm(DASM_OPS_32);
+int arcompact_handle05_16_dasm(DASM_OPS_32);
+int arcompact_handle05_17_dasm(DASM_OPS_32);
+int arcompact_handle05_18_dasm(DASM_OPS_32);
+int arcompact_handle05_19_dasm(DASM_OPS_32);
+int arcompact_handle05_1a_dasm(DASM_OPS_32);
+int arcompact_handle05_1b_dasm(DASM_OPS_32);
+int arcompact_handle05_1c_dasm(DASM_OPS_32);
+int arcompact_handle05_1d_dasm(DASM_OPS_32);
+int arcompact_handle05_1e_dasm(DASM_OPS_32);
+int arcompact_handle05_1f_dasm(DASM_OPS_32);
+int arcompact_handle05_20_dasm(DASM_OPS_32);
+int arcompact_handle05_21_dasm(DASM_OPS_32);
+int arcompact_handle05_22_dasm(DASM_OPS_32);
+int arcompact_handle05_23_dasm(DASM_OPS_32);
+int arcompact_handle05_24_dasm(DASM_OPS_32);
+int arcompact_handle05_25_dasm(DASM_OPS_32);
+int arcompact_handle05_26_dasm(DASM_OPS_32);
+int arcompact_handle05_27_dasm(DASM_OPS_32);
-int arcompact_handle05_30_dasm(DASM_OPS_32); //("<illegal 0x05_30> (%08x)", op); return 4;}
-int arcompact_handle05_31_dasm(DASM_OPS_32); //("<illegal 0x05_31> (%08x)", op); return 4;}
-int arcompact_handle05_32_dasm(DASM_OPS_32); //("<illegal 0x05_32> (%08x)", op); return 4;}
-int arcompact_handle05_33_dasm(DASM_OPS_32); //("<illegal 0x05_33> (%08x)", op); return 4;}
-int arcompact_handle05_34_dasm(DASM_OPS_32); //("<illegal 0x05_34> (%08x)", op); return 4;}
-int arcompact_handle05_35_dasm(DASM_OPS_32); //("<illegal 0x05_35> (%08x)", op); return 4;}
-int arcompact_handle05_36_dasm(DASM_OPS_32); //("<illegal 0x05_36> (%08x)", op); return 4;}
-int arcompact_handle05_37_dasm(DASM_OPS_32); //("<illegal 0x05_37> (%08x)", op); return 4;}
-int arcompact_handle05_38_dasm(DASM_OPS_32); //("<illegal 0x05_38> (%08x)", op); return 4;}
-int arcompact_handle05_39_dasm(DASM_OPS_32); //("<illegal 0x05_39> (%08x)", op); return 4;}
-int arcompact_handle05_3a_dasm(DASM_OPS_32); //("<illegal 0x05_3a> (%08x)", op); return 4;}
-int arcompact_handle05_3b_dasm(DASM_OPS_32); //("<illegal 0x05_3b> (%08x)", op); return 4;}
-int arcompact_handle05_3c_dasm(DASM_OPS_32); //("<illegal 0x05_3c> (%08x)", op); return 4;}
-int arcompact_handle05_3d_dasm(DASM_OPS_32); //("<illegal 0x05_3d> (%08x)", op); return 4;}
-int arcompact_handle05_3e_dasm(DASM_OPS_32); //("<illegal 0x05_3e> (%08x)", op); return 4;}
-int arcompact_handle05_3f_dasm(DASM_OPS_32); //("<illegal 0x05_3f> (%08x)", op); return 4;}
+int arcompact_handle05_2a_dasm(DASM_OPS_32);
+int arcompact_handle05_2b_dasm(DASM_OPS_32);
+int arcompact_handle05_2c_dasm(DASM_OPS_32);
+int arcompact_handle05_2d_dasm(DASM_OPS_32);
+int arcompact_handle05_2e_dasm(DASM_OPS_32);
-int arcompact_handle0f_00_04_dasm(DASM_OPS_16); //("<illegal 0x0f_00_00> (%08x)", op); return 2;}
-int arcompact_handle0f_00_05_dasm(DASM_OPS_16); //("<illegal 0x0f_00_00> (%08x)", op); return 2;}
-int arcompact_handle0f_00_07_02_dasm(DASM_OPS_16); //("<illegal 0x0f_00_07_02> (%08x)", op); return 2;}
-int arcompact_handle0f_00_07_03_dasm(DASM_OPS_16); //("<illegal 0x0f_00_07_03> (%08x)", op); return 2;}
-int arcompact_handle0f_01_dasm(DASM_OPS_16); //("<illegal 0x0f_01> (%08x)", op); return 2;}
-int arcompact_handle0f_03_dasm(DASM_OPS_16); //("<illegal 0x0f_03> (%08x)", op); return 2;}
-int arcompact_handle0f_08_dasm(DASM_OPS_16); //("<illegal 0x0f_08> (%08x)", op); return 2;}
-int arcompact_handle0f_09_dasm(DASM_OPS_16); //("<illegal 0x0f_09> (%08x)", op); return 2;}
-int arcompact_handle0f_0a_dasm(DASM_OPS_16); //("<illegal 0x0f_0a> (%08x)", op); return 2;}
-int arcompact_handle0f_17_dasm(DASM_OPS_16); //("<illegal 0x0f_17> (%08x)", op); return 2;}
+int arcompact_handle05_30_dasm(DASM_OPS_32);
+int arcompact_handle05_31_dasm(DASM_OPS_32);
+int arcompact_handle05_32_dasm(DASM_OPS_32);
+int arcompact_handle05_33_dasm(DASM_OPS_32);
+int arcompact_handle05_34_dasm(DASM_OPS_32);
+int arcompact_handle05_35_dasm(DASM_OPS_32);
+int arcompact_handle05_36_dasm(DASM_OPS_32);
+int arcompact_handle05_37_dasm(DASM_OPS_32);
+int arcompact_handle05_38_dasm(DASM_OPS_32);
+int arcompact_handle05_39_dasm(DASM_OPS_32);
+int arcompact_handle05_3a_dasm(DASM_OPS_32);
+int arcompact_handle05_3b_dasm(DASM_OPS_32);
+int arcompact_handle05_3c_dasm(DASM_OPS_32);
+int arcompact_handle05_3d_dasm(DASM_OPS_32);
+int arcompact_handle05_3e_dasm(DASM_OPS_32);
+int arcompact_handle05_3f_dasm(DASM_OPS_32);
-int arcompact_handle18_05_02_dasm(DASM_OPS_16); //("<illegal 0x18_05_02> (%04x)", op); return 2;}
-int arcompact_handle18_05_03_dasm(DASM_OPS_16); //("<illegal 0x18_05_03> (%04x)", op); return 2;}
-int arcompact_handle18_05_04_dasm(DASM_OPS_16); //("<illegal 0x18_05_04> (%04x)", op); return 2;}
-int arcompact_handle18_05_05_dasm(DASM_OPS_16); //("<illegal 0x18_05_05> (%04x)", op); return 2;}
-int arcompact_handle18_05_06_dasm(DASM_OPS_16); //("<illegal 0x18_05_06> (%04x)", op); return 2;}
-int arcompact_handle18_05_07_dasm(DASM_OPS_16); //("<illegal 0x18_05_07> (%04x)", op); return 2;}
-int arcompact_handle18_06_00_dasm(DASM_OPS_16); //("<illegal 0x18_06_00> (%04x)", op); return 2;}
-int arcompact_handle18_06_02_dasm(DASM_OPS_16); //("<illegal 0x18_06_02> (%04x)", op); return 2;}
-int arcompact_handle18_06_03_dasm(DASM_OPS_16); //("<illegal 0x18_06_03> (%04x)", op); return 2;}
-int arcompact_handle18_06_04_dasm(DASM_OPS_16); //("<illegal 0x18_06_04> (%04x)", op); return 2;}
-int arcompact_handle18_06_05_dasm(DASM_OPS_16); //("<illegal 0x18_06_05> (%04x)", op); return 2;}
-int arcompact_handle18_06_06_dasm(DASM_OPS_16); //("<illegal 0x18_06_06> (%04x)", op); return 2;}
-int arcompact_handle18_06_07_dasm(DASM_OPS_16); //("<illegal 0x18_06_07> (%04x)", op); return 2;}
-int arcompact_handle18_06_08_dasm(DASM_OPS_16); //("<illegal 0x18_06_08> (%04x)", op); return 2;}
-int arcompact_handle18_06_09_dasm(DASM_OPS_16); //("<illegal 0x18_06_09> (%04x)", op); return 2;}
-int arcompact_handle18_06_0a_dasm(DASM_OPS_16); //("<illegal 0x18_06_0a> (%04x)", op); return 2;}
-int arcompact_handle18_06_0b_dasm(DASM_OPS_16); //("<illegal 0x18_06_0b> (%04x)", op); return 2;}
-int arcompact_handle18_06_0c_dasm(DASM_OPS_16); //("<illegal 0x18_06_0c> (%04x)", op); return 2;}
-int arcompact_handle18_06_0d_dasm(DASM_OPS_16); //("<illegal 0x18_06_0d> (%04x)", op); return 2;}
-int arcompact_handle18_06_0e_dasm(DASM_OPS_16); //("<illegal 0x18_06_0e> (%04x)", op); return 2;}
-int arcompact_handle18_06_0f_dasm(DASM_OPS_16); //("<illegal 0x18_06_0f> (%04x)", op); return 2;}
-int arcompact_handle18_06_10_dasm(DASM_OPS_16); //("<illegal 0x18_06_10> (%04x)", op); return 2;}
-int arcompact_handle18_06_12_dasm(DASM_OPS_16); //("<illegal 0x18_06_12> (%04x)", op); return 2;}
-int arcompact_handle18_06_13_dasm(DASM_OPS_16); //("<illegal 0x18_06_13> (%04x)", op); return 2;}
-int arcompact_handle18_06_14_dasm(DASM_OPS_16); //("<illegal 0x18_06_14> (%04x)", op); return 2;}
-int arcompact_handle18_06_15_dasm(DASM_OPS_16); //("<illegal 0x18_06_15> (%04x)", op); return 2;}
-int arcompact_handle18_06_16_dasm(DASM_OPS_16); //("<illegal 0x18_06_16> (%04x)", op); return 2;}
-int arcompact_handle18_06_17_dasm(DASM_OPS_16); //("<illegal 0x18_06_17> (%04x)", op); return 2;}
-int arcompact_handle18_06_18_dasm(DASM_OPS_16); //("<illegal 0x18_06_18> (%04x)", op); return 2;}
-int arcompact_handle18_06_19_dasm(DASM_OPS_16); //("<illegal 0x18_06_19> (%04x)", op); return 2;}
-int arcompact_handle18_06_1a_dasm(DASM_OPS_16); //("<illegal 0x18_06_1a> (%04x)", op); return 2;}
-int arcompact_handle18_06_1b_dasm(DASM_OPS_16); //("<illegal 0x18_06_1b> (%04x)", op); return 2;}
-int arcompact_handle18_06_1c_dasm(DASM_OPS_16); //("<illegal 0x18_06_1c> (%04x)", op); return 2;}
-int arcompact_handle18_06_1d_dasm(DASM_OPS_16); //("<illegal 0x18_06_1d> (%04x)", op); return 2;}
-int arcompact_handle18_06_1e_dasm(DASM_OPS_16); //("<illegal 0x18_06_1e> (%04x)", op); return 2;}
-int arcompact_handle18_06_1f_dasm(DASM_OPS_16); //("<illegal 0x18_06_1f> (%04x)", op); return 2;}
-int arcompact_handle18_07_00_dasm(DASM_OPS_16); //("<illegal 0x18_07_00> (%04x)", op); return 2;}
-int arcompact_handle18_07_02_dasm(DASM_OPS_16); //("<illegal 0x18_07_02> (%04x)", op); return 2;}
-int arcompact_handle18_07_03_dasm(DASM_OPS_16); //("<illegal 0x18_07_03> (%04x)", op); return 2;}
-int arcompact_handle18_07_04_dasm(DASM_OPS_16); //("<illegal 0x18_07_04> (%04x)", op); return 2;}
-int arcompact_handle18_07_05_dasm(DASM_OPS_16); //("<illegal 0x18_07_05> (%04x)", op); return 2;}
-int arcompact_handle18_07_06_dasm(DASM_OPS_16); //("<illegal 0x18_07_06> (%04x)", op); return 2;}
-int arcompact_handle18_07_07_dasm(DASM_OPS_16); //("<illegal 0x18_07_07> (%04x)", op); return 2;}
-int arcompact_handle18_07_08_dasm(DASM_OPS_16); //("<illegal 0x18_07_08> (%04x)", op); return 2;}
-int arcompact_handle18_07_09_dasm(DASM_OPS_16); //("<illegal 0x18_07_09> (%04x)", op); return 2;}
-int arcompact_handle18_07_0a_dasm(DASM_OPS_16); //("<illegal 0x18_07_0a> (%04x)", op); return 2;}
-int arcompact_handle18_07_0b_dasm(DASM_OPS_16); //("<illegal 0x18_07_0b> (%04x)", op); return 2;}
-int arcompact_handle18_07_0c_dasm(DASM_OPS_16); //("<illegal 0x18_07_0c> (%04x)", op); return 2;}
-int arcompact_handle18_07_0d_dasm(DASM_OPS_16); //("<illegal 0x18_07_0d> (%04x)", op); return 2;}
-int arcompact_handle18_07_0e_dasm(DASM_OPS_16); //("<illegal 0x18_07_0e> (%04x)", op); return 2;}
-int arcompact_handle18_07_0f_dasm(DASM_OPS_16); //("<illegal 0x18_07_0f> (%04x)", op); return 2;}
-int arcompact_handle18_07_10_dasm(DASM_OPS_16); //("<illegal 0x18_07_10> (%04x)", op); return 2;}
-int arcompact_handle18_07_12_dasm(DASM_OPS_16); //("<illegal 0x18_07_12> (%04x)", op); return 2;}
-int arcompact_handle18_07_13_dasm(DASM_OPS_16); //("<illegal 0x18_07_13> (%04x)", op); return 2;}
-int arcompact_handle18_07_14_dasm(DASM_OPS_16); //("<illegal 0x18_07_14> (%04x)", op); return 2;}
-int arcompact_handle18_07_15_dasm(DASM_OPS_16); //("<illegal 0x18_07_15> (%04x)", op); return 2;}
-int arcompact_handle18_07_16_dasm(DASM_OPS_16); //("<illegal 0x18_07_16> (%04x)", op); return 2;}
-int arcompact_handle18_07_17_dasm(DASM_OPS_16); //("<illegal 0x18_07_17> (%04x)", op); return 2;}
-int arcompact_handle18_07_18_dasm(DASM_OPS_16); //("<illegal 0x18_07_18> (%04x)", op); return 2;}
-int arcompact_handle18_07_19_dasm(DASM_OPS_16); //("<illegal 0x18_07_19> (%04x)", op); return 2;}
-int arcompact_handle18_07_1a_dasm(DASM_OPS_16); //("<illegal 0x18_07_1a> (%04x)", op); return 2;}
-int arcompact_handle18_07_1b_dasm(DASM_OPS_16); //("<illegal 0x18_07_1b> (%04x)", op); return 2;}
-int arcompact_handle18_07_1c_dasm(DASM_OPS_16); //("<illegal 0x18_07_1c> (%04x)", op); return 2;}
-int arcompact_handle18_07_1d_dasm(DASM_OPS_16); //("<illegal 0x18_07_1d> (%04x)", op); return 2;}
-int arcompact_handle18_07_1e_dasm(DASM_OPS_16); //("<illegal 0x18_07_1e> (%04x)", op); return 2;}
-int arcompact_handle18_07_1f_dasm(DASM_OPS_16); //("<illegal 0x18_07_1f> (%04x)", op); return 2;}
+int arcompact_handle0f_00_04_dasm(DASM_OPS_16);
+int arcompact_handle0f_00_05_dasm(DASM_OPS_16);
+int arcompact_handle0f_00_07_02_dasm(DASM_OPS_16);
+int arcompact_handle0f_00_07_03_dasm(DASM_OPS_16);
+int arcompact_handle0f_01_dasm(DASM_OPS_16);
+int arcompact_handle0f_03_dasm(DASM_OPS_16);
+int arcompact_handle0f_08_dasm(DASM_OPS_16);
+int arcompact_handle0f_09_dasm(DASM_OPS_16);
+int arcompact_handle0f_0a_dasm(DASM_OPS_16);
+int arcompact_handle0f_17_dasm(DASM_OPS_16);
+int arcompact_handle18_05_02_dasm(DASM_OPS_16);
+int arcompact_handle18_05_03_dasm(DASM_OPS_16);
+int arcompact_handle18_05_04_dasm(DASM_OPS_16);
+int arcompact_handle18_05_05_dasm(DASM_OPS_16);
+int arcompact_handle18_05_06_dasm(DASM_OPS_16);
+int arcompact_handle18_05_07_dasm(DASM_OPS_16);
+int arcompact_handle18_06_00_dasm(DASM_OPS_16);
+int arcompact_handle18_06_02_dasm(DASM_OPS_16);
+int arcompact_handle18_06_03_dasm(DASM_OPS_16);
+int arcompact_handle18_06_04_dasm(DASM_OPS_16);
+int arcompact_handle18_06_05_dasm(DASM_OPS_16);
+int arcompact_handle18_06_06_dasm(DASM_OPS_16);
+int arcompact_handle18_06_07_dasm(DASM_OPS_16);
+int arcompact_handle18_06_08_dasm(DASM_OPS_16);
+int arcompact_handle18_06_09_dasm(DASM_OPS_16);
+int arcompact_handle18_06_0a_dasm(DASM_OPS_16);
+int arcompact_handle18_06_0b_dasm(DASM_OPS_16);
+int arcompact_handle18_06_0c_dasm(DASM_OPS_16);
+int arcompact_handle18_06_0d_dasm(DASM_OPS_16);
+int arcompact_handle18_06_0e_dasm(DASM_OPS_16);
+int arcompact_handle18_06_0f_dasm(DASM_OPS_16);
+int arcompact_handle18_06_10_dasm(DASM_OPS_16);
+int arcompact_handle18_06_12_dasm(DASM_OPS_16);
+int arcompact_handle18_06_13_dasm(DASM_OPS_16);
+int arcompact_handle18_06_14_dasm(DASM_OPS_16);
+int arcompact_handle18_06_15_dasm(DASM_OPS_16);
+int arcompact_handle18_06_16_dasm(DASM_OPS_16);
+int arcompact_handle18_06_17_dasm(DASM_OPS_16);
+int arcompact_handle18_06_18_dasm(DASM_OPS_16);
+int arcompact_handle18_06_19_dasm(DASM_OPS_16);
+int arcompact_handle18_06_1a_dasm(DASM_OPS_16);
+int arcompact_handle18_06_1b_dasm(DASM_OPS_16);
+int arcompact_handle18_06_1c_dasm(DASM_OPS_16);
+int arcompact_handle18_06_1d_dasm(DASM_OPS_16);
+int arcompact_handle18_06_1e_dasm(DASM_OPS_16);
+int arcompact_handle18_06_1f_dasm(DASM_OPS_16);
+int arcompact_handle18_07_00_dasm(DASM_OPS_16);
+int arcompact_handle18_07_02_dasm(DASM_OPS_16);
+int arcompact_handle18_07_03_dasm(DASM_OPS_16);
+int arcompact_handle18_07_04_dasm(DASM_OPS_16);
+int arcompact_handle18_07_05_dasm(DASM_OPS_16);
+int arcompact_handle18_07_06_dasm(DASM_OPS_16);
+int arcompact_handle18_07_07_dasm(DASM_OPS_16);
+int arcompact_handle18_07_08_dasm(DASM_OPS_16);
+int arcompact_handle18_07_09_dasm(DASM_OPS_16);
+int arcompact_handle18_07_0a_dasm(DASM_OPS_16);
+int arcompact_handle18_07_0b_dasm(DASM_OPS_16);
+int arcompact_handle18_07_0c_dasm(DASM_OPS_16);
+int arcompact_handle18_07_0d_dasm(DASM_OPS_16);
+int arcompact_handle18_07_0e_dasm(DASM_OPS_16);
+int arcompact_handle18_07_0f_dasm(DASM_OPS_16);
+int arcompact_handle18_07_10_dasm(DASM_OPS_16);
+int arcompact_handle18_07_12_dasm(DASM_OPS_16);
+int arcompact_handle18_07_13_dasm(DASM_OPS_16);
+int arcompact_handle18_07_14_dasm(DASM_OPS_16);
+int arcompact_handle18_07_15_dasm(DASM_OPS_16);
+int arcompact_handle18_07_16_dasm(DASM_OPS_16);
+int arcompact_handle18_07_17_dasm(DASM_OPS_16);
+int arcompact_handle18_07_18_dasm(DASM_OPS_16);
+int arcompact_handle18_07_19_dasm(DASM_OPS_16);
+int arcompact_handle18_07_1a_dasm(DASM_OPS_16);
+int arcompact_handle18_07_1b_dasm(DASM_OPS_16);
+int arcompact_handle18_07_1c_dasm(DASM_OPS_16);
+int arcompact_handle18_07_1d_dasm(DASM_OPS_16);
+int arcompact_handle18_07_1e_dasm(DASM_OPS_16);
+int arcompact_handle18_07_1f_dasm(DASM_OPS_16);
diff --git a/src/emu/cpu/cpu.mak b/src/emu/cpu/cpu.mak
index e611d6ddd24..f2453c4c983 100644
--- a/src/emu/cpu/cpu.mak
+++ b/src/emu/cpu/cpu.mak
@@ -101,11 +101,28 @@ $(CPUOBJ)/arc/arc.o: $(CPUSRC)/arc/arc.c \
ifneq ($(filter ARCOMPACT,$(CPUS)),)
OBJDIRS += $(CPUOBJ)/arcompact
CPUOBJS += $(CPUOBJ)/arcompact/arcompact.o
-DASMOBJS += $(CPUOBJ)/arcompact/arcompactdasm.o $(CPUOBJ)/arcompact/arcompactdasm_dispatch.o $(CPUOBJ)/arcompact/arcompactdasm_ops.o
+DASMOBJS += $(CPUOBJ)/arcompact/arcompactdasm.o $(CPUOBJ)/arcompact/arcompactdasm_dispatch.o $(CPUOBJ)/arcompact/arcompactdasm_ops.o $(CPUOBJ)/arcompact/arcompact_execute.o $(CPUOBJ)/arcompact/arcompact_common.o
endif
$(CPUOBJ)/arcompact/arcompact.o: $(CPUSRC)/arcompact/arcompact.c \
- $(CPUSRC)/arcompact/arcompact.h
+ $(CPUSRC)/arcompact/arcompact.h \
+ $(CPUSRC)/arcompact/arcompact_common.h
+
+$(CPUOBJ)/arcompact/arcompact_execute.o: $(CPUSRC)/arcompact/arcompact_execute.c \
+ $(CPUSRC)/arcompact/arcompact.h \
+ $(CPUSRC)/arcompact/arcompact_common.h
+
+$(CPUOBJ)/arcompact/arcompactdasm_dispatch.o: $(CPUSRC)/arcompact/arcompactdasm_dispatch.c \
+ $(CPUSRC)/arcompact/arcompactdasm_dispatch.h \
+ $(CPUSRC)/arcompact/arcompact_common.h
+
+$(CPUOBJ)/arcompact/arcompactdasm_ops.o: $(CPUSRC)/arcompact/arcompactdasm_ops.c \
+ $(CPUSRC)/arcompact/arcompactdasm_ops.h \
+ $(CPUSRC)/arcompact/arcompact_common.h
+
+$(CPUOBJ)/arcompact/arcompact_common.o: $(CPUSRC)/arcompact/arcompact_common.c \
+ $(CPUSRC)/arcompact/arcompact_common.h
+
#-------------------------------------------------
# Acorn ARM series