diff options
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 |
commit | 4878a6643ac9f27be77318878ad8144a98dc53e8 (patch) | |
tree | 9dec6a88f5db6656b548b5b89d96c5b26d085bf5 | |
parent | 4db0f3b64da3d9bb22921ce06d9c6e8f55f955e8 (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.c | 80 | ||||
-rw-r--r-- | src/emu/cpu/arcompact/arcompact.h | 703 | ||||
-rw-r--r-- | src/emu/cpu/arcompact/arcompact_common.c | 526 | ||||
-rw-r--r-- | src/emu/cpu/arcompact/arcompact_common.h | 18 | ||||
-rw-r--r-- | src/emu/cpu/arcompact/arcompact_execute.c | 2741 | ||||
-rw-r--r-- | src/emu/cpu/arcompact/arcompactdasm_ops.c | 382 | ||||
-rw-r--r-- | src/emu/cpu/arcompact/arcompactdasm_ops.h | 542 | ||||
-rw-r--r-- | src/emu/cpu/cpu.mak | 21 |
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 |