summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/arcompact/arcompact_execute.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/cpu/arcompact/arcompact_execute.c')
-rw-r--r--src/emu/cpu/arcompact/arcompact_execute.c1420
1 files changed, 723 insertions, 697 deletions
diff --git a/src/emu/cpu/arcompact/arcompact_execute.c b/src/emu/cpu/arcompact/arcompact_execute.c
index 38a0df0771b..74835fd6ab3 100644
--- a/src/emu/cpu/arcompact/arcompact_execute.c
+++ b/src/emu/cpu/arcompact/arcompact_execute.c
@@ -57,6 +57,25 @@ void arcompact_device::execute_run()
int B_temp = (op & 0x00007000) >> 12; \
int breg = b_temp | (B_temp << 3); \
+#define COMMON32_GET_creg \
+ int creg = (op & 0x00000fc0) >> 6; \
+
+#define COMMON32_GET_u6 \
+ int u = (op & 0x00000fc0) >> 6; \
+
+#define COMMON32_GET_areg \
+ int areg = (op & 0x0000003f) >> 0; \
+
+#define COMMON32_GET_areg_reserved \
+ int ares = (op & 0x0000003f) >> 0; \
+
+#define COMMON32_GET_F \
+ int F = (op & 0x00008000) >> 15; \
+
+#define COMMON32_GET_p \
+ int p = (op & 0x00c00000) >> 22; \
+
+
#define COMMON32_GET_s12 \
int S_temp = (op & 0x0000003f) >> 0; \
int s_temp = (op & 0x00000fc0) >> 6; \
@@ -118,44 +137,44 @@ ARCOMPACT_RETTYPE arcompact_device::get_insruction(OPS_32)
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)
+ case 0x00: return arcompact_handle00(PARAMS); // Bcc
+ case 0x01: return arcompact_handle01(PARAMS); // BLcc/BRcc
+ case 0x02: return arcompact_handle02(PARAMS); // LD r+o
+ case 0x03: return arcompact_handle03(PARAMS); // ST r+o
+ case 0x04: return arcompact_handle04(PARAMS); // op a,b,c (basecase)
+ case 0x05: return arcompact_handle05(PARAMS); // op a,b,c (05 ARC ext)
+ case 0x06: return arcompact_handle06(PARAMS); // op a,b,c (06 ARC ext)
+ case 0x07: return arcompact_handle07(PARAMS); // op a,b,c (07 User ext)
+ case 0x08: return arcompact_handle08(PARAMS); // op a,b,c (08 User ext)
+ case 0x09: return arcompact_handle09(PARAMS); // op a,b,c (09 Market ext)
+ case 0x0a: return arcompact_handle0a(PARAMS); // op a,b,c (0a Market ext)
+ case 0x0b: return arcompact_handle0b(PARAMS); // 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
+ case 0x0c: return arcompact_handle0c(PARAMS); // Load/Add reg-reg
+ case 0x0d: return arcompact_handle0d(PARAMS); // Add/Sub/Shft imm
+ case 0x0e: return arcompact_handle0e(PARAMS); // Mov/Cmp/Add
+ case 0x0f: return arcompact_handle0f(PARAMS); // op_S b,b,c (single 16-bit ops)
+ case 0x10: return arcompact_handle10(PARAMS); // LD_S
+ case 0x11: return arcompact_handle11(PARAMS); // LDB_S
+ case 0x12: return arcompact_handle12(PARAMS); // LDW_S
+ case 0x13: return arcompact_handle13(PARAMS); // LSW_S.X
+ case 0x14: return arcompact_handle14(PARAMS); // ST_S
+ case 0x15: return arcompact_handle15(PARAMS); // STB_S
+ case 0x16: return arcompact_handle16(PARAMS); // STW_S
+ case 0x17: return arcompact_handle17(PARAMS); // Shift/Sub/Bit
+ case 0x18: return arcompact_handle18(PARAMS); // Stack Instr
+ case 0x19: return arcompact_handle19(PARAMS); // GP Instr
+ case 0x1a: return arcompact_handle1a(PARAMS); // PCL Instr
+ case 0x1b: return arcompact_handle1b(PARAMS); // MOV_S
+ case 0x1c: return arcompact_handle1c(PARAMS); // ADD_S/CMP_S
+ case 0x1d: return arcompact_handle1d(PARAMS); // BRcc_S
+ case 0x1e: return arcompact_handle1e(PARAMS); // Bcc_S
+ case 0x1f: return arcompact_handle1f(PARAMS); // BL_S
}
}
@@ -168,8 +187,8 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle00(OPS_32)
switch (subinstr)
{
- case 0x00: return arcompact_handle00_00(PARAMS); break; // Branch Conditionally
- case 0x01: return arcompact_handle00_01(PARAMS); break; // Branch Unconditionally Far
+ case 0x00: return arcompact_handle00_00(PARAMS); // Branch Conditionally
+ case 0x01: return arcompact_handle00_01(PARAMS); // Branch Unconditionally Far
}
return 0;
@@ -181,8 +200,8 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01(OPS_32)
switch (subinstr)
{
- case 0x00: return arcompact_handle01_00(PARAMS); break; // Branh & Link
- case 0x01: return arcompact_handle01_01(PARAMS); break; // Branch on Compare
+ case 0x00: return arcompact_handle01_00(PARAMS); // Branh & Link
+ case 0x01: return arcompact_handle01_01(PARAMS); // Branch on Compare
}
return 0;
@@ -194,8 +213,8 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_00(OPS_32)
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
+ case 0x00: return arcompact_handle01_00_00dasm(PARAMS); // Branch and Link Conditionally
+ case 0x01: return arcompact_handle01_00_01dasm(PARAMS); // Branch and Link Unconditional Far
}
return 0;
@@ -207,8 +226,8 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01(OPS_32)
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
+ case 0x00: return arcompact_handle01_01_00(PARAMS); // Branch on Compare Register-Register
+ case 0x01: return arcompact_handle01_01_01(PARAMS); // Branch on Compare/Bit Test Register-Immediate
}
return 0;
@@ -220,22 +239,22 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_00(OPS_32)
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)
+ case 0x00: return arcompact_handle01_01_00_00(PARAMS); // BREQ (reg-reg)
+ case 0x01: return arcompact_handle01_01_00_01(PARAMS); // BRNE (reg-reg)
+ case 0x02: return arcompact_handle01_01_00_02(PARAMS); // BRLT (reg-reg)
+ case 0x03: return arcompact_handle01_01_00_03(PARAMS); // BRGE (reg-reg)
+ case 0x04: return arcompact_handle01_01_00_04(PARAMS); // BRLO (reg-reg)
+ case 0x05: return arcompact_handle01_01_00_05(PARAMS); // BRHS (reg-reg)
+ case 0x06: return arcompact_handle01_01_00_06(PARAMS); // reserved
+ case 0x07: return arcompact_handle01_01_00_07(PARAMS); // reserved
+ case 0x08: return arcompact_handle01_01_00_08(PARAMS); // reserved
+ case 0x09: return arcompact_handle01_01_00_09(PARAMS); // reserved
+ case 0x0a: return arcompact_handle01_01_00_0a(PARAMS); // reserved
+ case 0x0b: return arcompact_handle01_01_00_0b(PARAMS); // reserved
+ case 0x0c: return arcompact_handle01_01_00_0c(PARAMS); // reserved
+ case 0x0d: return arcompact_handle01_01_00_0d(PARAMS); // reserved
+ case 0x0e: return arcompact_handle01_01_00_0e(PARAMS); // BBIT0 (reg-reg)
+ case 0x0f: return arcompact_handle01_01_00_0f(PARAMS); // BBIT1 (reg-reg)
}
return 0;
@@ -247,22 +266,22 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle01_01_01(OPS_32) // Branch
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)
+ case 0x00: return arcompact_handle01_01_01_00(PARAMS); // BREQ (reg-imm)
+ case 0x01: return arcompact_handle01_01_01_01(PARAMS); // BRNE (reg-imm)
+ case 0x02: return arcompact_handle01_01_01_02(PARAMS); // BRLT (reg-imm)
+ case 0x03: return arcompact_handle01_01_01_03(PARAMS); // BRGE (reg-imm)
+ case 0x04: return arcompact_handle01_01_01_04(PARAMS); // BRLO (reg-imm)
+ case 0x05: return arcompact_handle01_01_01_05(PARAMS); // BRHS (reg-imm)
+ case 0x06: return arcompact_handle01_01_01_06(PARAMS); // reserved
+ case 0x07: return arcompact_handle01_01_01_07(PARAMS); // reserved
+ case 0x08: return arcompact_handle01_01_01_08(PARAMS); // reserved
+ case 0x09: return arcompact_handle01_01_01_09(PARAMS); // reserved
+ case 0x0a: return arcompact_handle01_01_01_0a(PARAMS); // reserved
+ case 0x0b: return arcompact_handle01_01_01_0b(PARAMS); // reserved
+ case 0x0c: return arcompact_handle01_01_01_0c(PARAMS); // reserved
+ case 0x0d: return arcompact_handle01_01_01_0d(PARAMS); // reserved
+ case 0x0e: return arcompact_handle01_01_01_0e(PARAMS); // BBIT0 (reg-imm)
+ case 0x0f: return arcompact_handle01_01_01_0f(PARAMS); // BBIT1 (reg-imm)
}
return 0;
@@ -274,70 +293,70 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04(OPS_32)
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
+ case 0x00: return arcompact_handle04_00(PARAMS); // ADD
+ case 0x01: return arcompact_handle04_01(PARAMS); // ADC
+ case 0x02: return arcompact_handle04_02(PARAMS); // SUB
+ case 0x03: return arcompact_handle04_03(PARAMS); // SBC
+ case 0x04: return arcompact_handle04_04(PARAMS); // AND
+ case 0x05: return arcompact_handle04_05(PARAMS); // OR
+ case 0x06: return arcompact_handle04_06(PARAMS); // BIC
+ case 0x07: return arcompact_handle04_07(PARAMS); // XOR
+ case 0x08: return arcompact_handle04_08(PARAMS); // MAX
+ case 0x09: return arcompact_handle04_09(PARAMS); // MIN
+ case 0x0a: return arcompact_handle04_0a(PARAMS); // MOV
+ case 0x0b: return arcompact_handle04_0b(PARAMS); // TST
+ case 0x0c: return arcompact_handle04_0c(PARAMS); // CMP
+ case 0x0d: return arcompact_handle04_0d(PARAMS); // RCMP
+ case 0x0e: return arcompact_handle04_0e(PARAMS); // RSUB
+ case 0x0f: return arcompact_handle04_0f(PARAMS); // BSET
+ case 0x10: return arcompact_handle04_10(PARAMS); // BCLR
+ case 0x11: return arcompact_handle04_11(PARAMS); // BTST
+ case 0x12: return arcompact_handle04_12(PARAMS); // BXOR
+ case 0x13: return arcompact_handle04_13(PARAMS); // BMSK
+ case 0x14: return arcompact_handle04_14(PARAMS); // ADD1
+ case 0x15: return arcompact_handle04_15(PARAMS); // ADD2
+ case 0x16: return arcompact_handle04_16(PARAMS); // ADD3
+ case 0x17: return arcompact_handle04_17(PARAMS); // SUB1
+ case 0x18: return arcompact_handle04_18(PARAMS); // SUB2
+ case 0x19: return arcompact_handle04_19(PARAMS); // SUB3
+ case 0x1a: return arcompact_handle04_1a(PARAMS); // MPY *
+ case 0x1b: return arcompact_handle04_1b(PARAMS); // MPYH *
+ case 0x1c: return arcompact_handle04_1c(PARAMS); // MPYHU *
+ case 0x1d: return arcompact_handle04_1d(PARAMS); // MPYU *
+ case 0x1e: return arcompact_handle04_1e(PARAMS); // illegal
+ case 0x1f: return arcompact_handle04_1f(PARAMS); // illegal
+ case 0x20: return arcompact_handle04_20(PARAMS); // Jcc
+ case 0x21: return arcompact_handle04_21(PARAMS); // Jcc.D
+ case 0x22: return arcompact_handle04_22(PARAMS); // JLcc
+ case 0x23: return arcompact_handle04_23(PARAMS); // JLcc.D
+ case 0x24: return arcompact_handle04_24(PARAMS); // illegal
+ case 0x25: return arcompact_handle04_25(PARAMS); // illegal
+ case 0x26: return arcompact_handle04_26(PARAMS); // illegal
+ case 0x27: return arcompact_handle04_27(PARAMS); // illegal
+ case 0x28: return arcompact_handle04_28(PARAMS); // LPcc
+ case 0x29: return arcompact_handle04_29(PARAMS); // FLAG
+ case 0x2a: return arcompact_handle04_2a(PARAMS); // LR
+ case 0x2b: return arcompact_handle04_2b(PARAMS); // SR
+ case 0x2c: return arcompact_handle04_2c(PARAMS); // illegal
+ case 0x2d: return arcompact_handle04_2d(PARAMS); // illegal
+ case 0x2e: return arcompact_handle04_2e(PARAMS); // illegal
+ case 0x2f: return arcompact_handle04_2f(PARAMS); // Sub Opcode
+ case 0x30: return arcompact_handle04_30(PARAMS); // LD r-r
+ case 0x31: return arcompact_handle04_31(PARAMS); // LD r-r
+ case 0x32: return arcompact_handle04_32(PARAMS); // LD r-r
+ case 0x33: return arcompact_handle04_33(PARAMS); // LD r-r
+ case 0x34: return arcompact_handle04_34(PARAMS); // LD r-r
+ case 0x35: return arcompact_handle04_35(PARAMS); // LD r-r
+ case 0x36: return arcompact_handle04_36(PARAMS); // LD r-r
+ case 0x37: return arcompact_handle04_37(PARAMS); // LD r-r
+ case 0x38: return arcompact_handle04_38(PARAMS); // illegal
+ case 0x39: return arcompact_handle04_39(PARAMS); // illegal
+ case 0x3a: return arcompact_handle04_3a(PARAMS); // illegal
+ case 0x3b: return arcompact_handle04_3b(PARAMS); // illegal
+ case 0x3c: return arcompact_handle04_3c(PARAMS); // illegal
+ case 0x3d: return arcompact_handle04_3d(PARAMS); // illegal
+ case 0x3e: return arcompact_handle04_3e(PARAMS); // illegal
+ case 0x3f: return arcompact_handle04_3f(PARAMS); // illegal
}
return 0;
@@ -349,70 +368,70 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f(OPS_32)
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)
+ case 0x00: return arcompact_handle04_2f_00(PARAMS); // ASL
+ case 0x01: return arcompact_handle04_2f_01(PARAMS); // ASR
+ case 0x02: return arcompact_handle04_2f_02(PARAMS); // LSR
+ case 0x03: return arcompact_handle04_2f_03(PARAMS); // ROR
+ case 0x04: return arcompact_handle04_2f_04(PARAMS); // RCC
+ case 0x05: return arcompact_handle04_2f_05(PARAMS); // SEXB
+ case 0x06: return arcompact_handle04_2f_06(PARAMS); // SEXW
+ case 0x07: return arcompact_handle04_2f_07(PARAMS); // EXTB
+ case 0x08: return arcompact_handle04_2f_08(PARAMS); // EXTW
+ case 0x09: return arcompact_handle04_2f_09(PARAMS); // ABS
+ case 0x0a: return arcompact_handle04_2f_0a(PARAMS); // NOT
+ case 0x0b: return arcompact_handle04_2f_0b(PARAMS); // RLC
+ case 0x0c: return arcompact_handle04_2f_0c(PARAMS); // EX
+ case 0x0d: return arcompact_handle04_2f_0d(PARAMS); // illegal
+ case 0x0e: return arcompact_handle04_2f_0e(PARAMS); // illegal
+ case 0x0f: return arcompact_handle04_2f_0f(PARAMS); // illegal
+ case 0x10: return arcompact_handle04_2f_10(PARAMS); // illegal
+ case 0x11: return arcompact_handle04_2f_11(PARAMS); // illegal
+ case 0x12: return arcompact_handle04_2f_12(PARAMS); // illegal
+ case 0x13: return arcompact_handle04_2f_13(PARAMS); // illegal
+ case 0x14: return arcompact_handle04_2f_14(PARAMS); // illegal
+ case 0x15: return arcompact_handle04_2f_15(PARAMS); // illegal
+ case 0x16: return arcompact_handle04_2f_16(PARAMS); // illegal
+ case 0x17: return arcompact_handle04_2f_17(PARAMS); // illegal
+ case 0x18: return arcompact_handle04_2f_18(PARAMS); // illegal
+ case 0x19: return arcompact_handle04_2f_19(PARAMS); // illegal
+ case 0x1a: return arcompact_handle04_2f_1a(PARAMS); // illegal
+ case 0x1b: return arcompact_handle04_2f_1b(PARAMS); // illegal
+ case 0x1c: return arcompact_handle04_2f_1c(PARAMS); // illegal
+ case 0x1d: return arcompact_handle04_2f_1d(PARAMS); // illegal
+ case 0x1e: return arcompact_handle04_2f_1e(PARAMS); // illegal
+ case 0x1f: return arcompact_handle04_2f_1f(PARAMS); // illegal
+ case 0x20: return arcompact_handle04_2f_20(PARAMS); // illegal
+ case 0x21: return arcompact_handle04_2f_21(PARAMS); // illegal
+ case 0x22: return arcompact_handle04_2f_22(PARAMS); // illegal
+ case 0x23: return arcompact_handle04_2f_23(PARAMS); // illegal
+ case 0x24: return arcompact_handle04_2f_24(PARAMS); // illegal
+ case 0x25: return arcompact_handle04_2f_25(PARAMS); // illegal
+ case 0x26: return arcompact_handle04_2f_26(PARAMS); // illegal
+ case 0x27: return arcompact_handle04_2f_27(PARAMS); // illegal
+ case 0x28: return arcompact_handle04_2f_28(PARAMS); // illegal
+ case 0x29: return arcompact_handle04_2f_29(PARAMS); // illegal
+ case 0x2a: return arcompact_handle04_2f_2a(PARAMS); // illegal
+ case 0x2b: return arcompact_handle04_2f_2b(PARAMS); // illegal
+ case 0x2c: return arcompact_handle04_2f_2c(PARAMS); // illegal
+ case 0x2d: return arcompact_handle04_2f_2d(PARAMS); // illegal
+ case 0x2e: return arcompact_handle04_2f_2e(PARAMS); // illegal
+ case 0x2f: return arcompact_handle04_2f_2f(PARAMS); // illegal
+ case 0x30: return arcompact_handle04_2f_30(PARAMS); // illegal
+ case 0x31: return arcompact_handle04_2f_31(PARAMS); // illegal
+ case 0x32: return arcompact_handle04_2f_32(PARAMS); // illegal
+ case 0x33: return arcompact_handle04_2f_33(PARAMS); // illegal
+ case 0x34: return arcompact_handle04_2f_34(PARAMS); // illegal
+ case 0x35: return arcompact_handle04_2f_35(PARAMS); // illegal
+ case 0x36: return arcompact_handle04_2f_36(PARAMS); // illegal
+ case 0x37: return arcompact_handle04_2f_37(PARAMS); // illegal
+ case 0x38: return arcompact_handle04_2f_38(PARAMS); // illegal
+ case 0x39: return arcompact_handle04_2f_39(PARAMS); // illegal
+ case 0x3a: return arcompact_handle04_2f_3a(PARAMS); // illegal
+ case 0x3b: return arcompact_handle04_2f_3b(PARAMS); // illegal
+ case 0x3c: return arcompact_handle04_2f_3c(PARAMS); // illegal
+ case 0x3d: return arcompact_handle04_2f_3d(PARAMS); // illegal
+ case 0x3e: return arcompact_handle04_2f_3e(PARAMS); // illegal
+ case 0x3f: return arcompact_handle04_2f_3f(PARAMS); // ZOPs (Zero Operand Opcodes)
}
return 0;
@@ -425,70 +444,70 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f(OPS_32)
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)
+ case 0x00: return arcompact_handle05_2f_00(PARAMS); // SWAP
+ case 0x01: return arcompact_handle05_2f_01(PARAMS); // NORM
+ case 0x02: return arcompact_handle05_2f_02(PARAMS); // SAT16
+ case 0x03: return arcompact_handle05_2f_03(PARAMS); // RND16
+ case 0x04: return arcompact_handle05_2f_04(PARAMS); // ABSSW
+ case 0x05: return arcompact_handle05_2f_05(PARAMS); // ABSS
+ case 0x06: return arcompact_handle05_2f_06(PARAMS); // NEGSW
+ case 0x07: return arcompact_handle05_2f_07(PARAMS); // NEGS
+ case 0x08: return arcompact_handle05_2f_08(PARAMS); // NORMW
+ case 0x09: return arcompact_handle05_2f_09(PARAMS); // illegal
+ case 0x0a: return arcompact_handle05_2f_0a(PARAMS); // illegal
+ case 0x0b: return arcompact_handle05_2f_0b(PARAMS); // illegal
+ case 0x0c: return arcompact_handle05_2f_0c(PARAMS); // illegal
+ case 0x0d: return arcompact_handle05_2f_0d(PARAMS); // illegal
+ case 0x0e: return arcompact_handle05_2f_0e(PARAMS); // illegal
+ case 0x0f: return arcompact_handle05_2f_0f(PARAMS); // illegal
+ case 0x10: return arcompact_handle05_2f_10(PARAMS); // illegal
+ case 0x11: return arcompact_handle05_2f_11(PARAMS); // illegal
+ case 0x12: return arcompact_handle05_2f_12(PARAMS); // illegal
+ case 0x13: return arcompact_handle05_2f_13(PARAMS); // illegal
+ case 0x14: return arcompact_handle05_2f_14(PARAMS); // illegal
+ case 0x15: return arcompact_handle05_2f_15(PARAMS); // illegal
+ case 0x16: return arcompact_handle05_2f_16(PARAMS); // illegal
+ case 0x17: return arcompact_handle05_2f_17(PARAMS); // illegal
+ case 0x18: return arcompact_handle05_2f_18(PARAMS); // illegal
+ case 0x19: return arcompact_handle05_2f_19(PARAMS); // illegal
+ case 0x1a: return arcompact_handle05_2f_1a(PARAMS); // illegal
+ case 0x1b: return arcompact_handle05_2f_1b(PARAMS); // illegal
+ case 0x1c: return arcompact_handle05_2f_1c(PARAMS); // illegal
+ case 0x1d: return arcompact_handle05_2f_1d(PARAMS); // illegal
+ case 0x1e: return arcompact_handle05_2f_1e(PARAMS); // illegal
+ case 0x1f: return arcompact_handle05_2f_1f(PARAMS); // illegal
+ case 0x20: return arcompact_handle05_2f_20(PARAMS); // illegal
+ case 0x21: return arcompact_handle05_2f_21(PARAMS); // illegal
+ case 0x22: return arcompact_handle05_2f_22(PARAMS); // illegal
+ case 0x23: return arcompact_handle05_2f_23(PARAMS); // illegal
+ case 0x24: return arcompact_handle05_2f_24(PARAMS); // illegal
+ case 0x25: return arcompact_handle05_2f_25(PARAMS); // illegal
+ case 0x26: return arcompact_handle05_2f_26(PARAMS); // illegal
+ case 0x27: return arcompact_handle05_2f_27(PARAMS); // illegal
+ case 0x28: return arcompact_handle05_2f_28(PARAMS); // illegal
+ case 0x29: return arcompact_handle05_2f_29(PARAMS); // illegal
+ case 0x2a: return arcompact_handle05_2f_2a(PARAMS); // illegal
+ case 0x2b: return arcompact_handle05_2f_2b(PARAMS); // illegal
+ case 0x2c: return arcompact_handle05_2f_2c(PARAMS); // illegal
+ case 0x2d: return arcompact_handle05_2f_2d(PARAMS); // illegal
+ case 0x2e: return arcompact_handle05_2f_2e(PARAMS); // illegal
+ case 0x2f: return arcompact_handle05_2f_2f(PARAMS); // illegal
+ case 0x30: return arcompact_handle05_2f_30(PARAMS); // illegal
+ case 0x31: return arcompact_handle05_2f_31(PARAMS); // illegal
+ case 0x32: return arcompact_handle05_2f_32(PARAMS); // illegal
+ case 0x33: return arcompact_handle05_2f_33(PARAMS); // illegal
+ case 0x34: return arcompact_handle05_2f_34(PARAMS); // illegal
+ case 0x35: return arcompact_handle05_2f_35(PARAMS); // illegal
+ case 0x36: return arcompact_handle05_2f_36(PARAMS); // illegal
+ case 0x37: return arcompact_handle05_2f_37(PARAMS); // illegal
+ case 0x38: return arcompact_handle05_2f_38(PARAMS); // illegal
+ case 0x39: return arcompact_handle05_2f_39(PARAMS); // illegal
+ case 0x3a: return arcompact_handle05_2f_3a(PARAMS); // illegal
+ case 0x3b: return arcompact_handle05_2f_3b(PARAMS); // illegal
+ case 0x3c: return arcompact_handle05_2f_3c(PARAMS); // illegal
+ case 0x3d: return arcompact_handle05_2f_3d(PARAMS); // illegal
+ case 0x3e: return arcompact_handle05_2f_3e(PARAMS); // illegal
+ case 0x3f: return arcompact_handle05_2f_3f(PARAMS); // ZOPs (Zero Operand Opcodes)
}
return 0;
@@ -501,70 +520,70 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_3f(OPS_32)
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
+ case 0x00: return arcompact_handle04_2f_3f_00(PARAMS); // illegal
+ case 0x01: return arcompact_handle04_2f_3f_01(PARAMS); // SLEEP
+ case 0x02: return arcompact_handle04_2f_3f_02(PARAMS); // SWI / TRAP9
+ case 0x03: return arcompact_handle04_2f_3f_03(PARAMS); // SYNC
+ case 0x04: return arcompact_handle04_2f_3f_04(PARAMS); // RTIE
+ case 0x05: return arcompact_handle04_2f_3f_05(PARAMS); // BRK
+ case 0x06: return arcompact_handle04_2f_3f_06(PARAMS); // illegal
+ case 0x07: return arcompact_handle04_2f_3f_07(PARAMS); // illegal
+ case 0x08: return arcompact_handle04_2f_3f_08(PARAMS); // illegal
+ case 0x09: return arcompact_handle04_2f_3f_09(PARAMS); // illegal
+ case 0x0a: return arcompact_handle04_2f_3f_0a(PARAMS); // illegal
+ case 0x0b: return arcompact_handle04_2f_3f_0b(PARAMS); // illegal
+ case 0x0c: return arcompact_handle04_2f_3f_0c(PARAMS); // illegal
+ case 0x0d: return arcompact_handle04_2f_3f_0d(PARAMS); // illegal
+ case 0x0e: return arcompact_handle04_2f_3f_0e(PARAMS); // illegal
+ case 0x0f: return arcompact_handle04_2f_3f_0f(PARAMS); // illegal
+ case 0x10: return arcompact_handle04_2f_3f_10(PARAMS); // illegal
+ case 0x11: return arcompact_handle04_2f_3f_11(PARAMS); // illegal
+ case 0x12: return arcompact_handle04_2f_3f_12(PARAMS); // illegal
+ case 0x13: return arcompact_handle04_2f_3f_13(PARAMS); // illegal
+ case 0x14: return arcompact_handle04_2f_3f_14(PARAMS); // illegal
+ case 0x15: return arcompact_handle04_2f_3f_15(PARAMS); // illegal
+ case 0x16: return arcompact_handle04_2f_3f_16(PARAMS); // illegal
+ case 0x17: return arcompact_handle04_2f_3f_17(PARAMS); // illegal
+ case 0x18: return arcompact_handle04_2f_3f_18(PARAMS); // illegal
+ case 0x19: return arcompact_handle04_2f_3f_19(PARAMS); // illegal
+ case 0x1a: return arcompact_handle04_2f_3f_1a(PARAMS); // illegal
+ case 0x1b: return arcompact_handle04_2f_3f_1b(PARAMS); // illegal
+ case 0x1c: return arcompact_handle04_2f_3f_1c(PARAMS); // illegal
+ case 0x1d: return arcompact_handle04_2f_3f_1d(PARAMS); // illegal
+ case 0x1e: return arcompact_handle04_2f_3f_1e(PARAMS); // illegal
+ case 0x1f: return arcompact_handle04_2f_3f_1f(PARAMS); // illegal
+ case 0x20: return arcompact_handle04_2f_3f_20(PARAMS); // illegal
+ case 0x21: return arcompact_handle04_2f_3f_21(PARAMS); // illegal
+ case 0x22: return arcompact_handle04_2f_3f_22(PARAMS); // illegal
+ case 0x23: return arcompact_handle04_2f_3f_23(PARAMS); // illegal
+ case 0x24: return arcompact_handle04_2f_3f_24(PARAMS); // illegal
+ case 0x25: return arcompact_handle04_2f_3f_25(PARAMS); // illegal
+ case 0x26: return arcompact_handle04_2f_3f_26(PARAMS); // illegal
+ case 0x27: return arcompact_handle04_2f_3f_27(PARAMS); // illegal
+ case 0x28: return arcompact_handle04_2f_3f_28(PARAMS); // illegal
+ case 0x29: return arcompact_handle04_2f_3f_29(PARAMS); // illegal
+ case 0x2a: return arcompact_handle04_2f_3f_2a(PARAMS); // illegal
+ case 0x2b: return arcompact_handle04_2f_3f_2b(PARAMS); // illegal
+ case 0x2c: return arcompact_handle04_2f_3f_2c(PARAMS); // illegal
+ case 0x2d: return arcompact_handle04_2f_3f_2d(PARAMS); // illegal
+ case 0x2e: return arcompact_handle04_2f_3f_2e(PARAMS); // illegal
+ case 0x2f: return arcompact_handle04_2f_3f_2f(PARAMS); // illegal
+ case 0x30: return arcompact_handle04_2f_3f_30(PARAMS); // illegal
+ case 0x31: return arcompact_handle04_2f_3f_31(PARAMS); // illegal
+ case 0x32: return arcompact_handle04_2f_3f_32(PARAMS); // illegal
+ case 0x33: return arcompact_handle04_2f_3f_33(PARAMS); // illegal
+ case 0x34: return arcompact_handle04_2f_3f_34(PARAMS); // illegal
+ case 0x35: return arcompact_handle04_2f_3f_35(PARAMS); // illegal
+ case 0x36: return arcompact_handle04_2f_3f_36(PARAMS); // illegal
+ case 0x37: return arcompact_handle04_2f_3f_37(PARAMS); // illegal
+ case 0x38: return arcompact_handle04_2f_3f_38(PARAMS); // illegal
+ case 0x39: return arcompact_handle04_2f_3f_39(PARAMS); // illegal
+ case 0x3a: return arcompact_handle04_2f_3f_3a(PARAMS); // illegal
+ case 0x3b: return arcompact_handle04_2f_3f_3b(PARAMS); // illegal
+ case 0x3c: return arcompact_handle04_2f_3f_3c(PARAMS); // illegal
+ case 0x3d: return arcompact_handle04_2f_3f_3d(PARAMS); // illegal
+ case 0x3e: return arcompact_handle04_2f_3f_3e(PARAMS); // illegal
+ case 0x3f: return arcompact_handle04_2f_3f_3f(PARAMS); // illegal
}
return 0;
@@ -578,70 +597,70 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_3f(OPS_32) // useless
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
+ case 0x00: return arcompact_handle05_2f_3f_00(PARAMS); // illegal
+ case 0x01: return arcompact_handle05_2f_3f_01(PARAMS); // illegal
+ case 0x02: return arcompact_handle05_2f_3f_02(PARAMS); // illegal
+ case 0x03: return arcompact_handle05_2f_3f_03(PARAMS); // illegal
+ case 0x04: return arcompact_handle05_2f_3f_04(PARAMS); // illegal
+ case 0x05: return arcompact_handle05_2f_3f_05(PARAMS); // illegal
+ case 0x06: return arcompact_handle05_2f_3f_06(PARAMS); // illegal
+ case 0x07: return arcompact_handle05_2f_3f_07(PARAMS); // illegal
+ case 0x08: return arcompact_handle05_2f_3f_08(PARAMS); // illegal
+ case 0x09: return arcompact_handle05_2f_3f_09(PARAMS); // illegal
+ case 0x0a: return arcompact_handle05_2f_3f_0a(PARAMS); // illegal
+ case 0x0b: return arcompact_handle05_2f_3f_0b(PARAMS); // illegal
+ case 0x0c: return arcompact_handle05_2f_3f_0c(PARAMS); // illegal
+ case 0x0d: return arcompact_handle05_2f_3f_0d(PARAMS); // illegal
+ case 0x0e: return arcompact_handle05_2f_3f_0e(PARAMS); // illegal
+ case 0x0f: return arcompact_handle05_2f_3f_0f(PARAMS); // illegal
+ case 0x10: return arcompact_handle05_2f_3f_10(PARAMS); // illegal
+ case 0x11: return arcompact_handle05_2f_3f_11(PARAMS); // illegal
+ case 0x12: return arcompact_handle05_2f_3f_12(PARAMS); // illegal
+ case 0x13: return arcompact_handle05_2f_3f_13(PARAMS); // illegal
+ case 0x14: return arcompact_handle05_2f_3f_14(PARAMS); // illegal
+ case 0x15: return arcompact_handle05_2f_3f_15(PARAMS); // illegal
+ case 0x16: return arcompact_handle05_2f_3f_16(PARAMS); // illegal
+ case 0x17: return arcompact_handle05_2f_3f_17(PARAMS); // illegal
+ case 0x18: return arcompact_handle05_2f_3f_18(PARAMS); // illegal
+ case 0x19: return arcompact_handle05_2f_3f_19(PARAMS); // illegal
+ case 0x1a: return arcompact_handle05_2f_3f_1a(PARAMS); // illegal
+ case 0x1b: return arcompact_handle05_2f_3f_1b(PARAMS); // illegal
+ case 0x1c: return arcompact_handle05_2f_3f_1c(PARAMS); // illegal
+ case 0x1d: return arcompact_handle05_2f_3f_1d(PARAMS); // illegal
+ case 0x1e: return arcompact_handle05_2f_3f_1e(PARAMS); // illegal
+ case 0x1f: return arcompact_handle05_2f_3f_1f(PARAMS); // illegal
+ case 0x20: return arcompact_handle05_2f_3f_20(PARAMS); // illegal
+ case 0x21: return arcompact_handle05_2f_3f_21(PARAMS); // illegal
+ case 0x22: return arcompact_handle05_2f_3f_22(PARAMS); // illegal
+ case 0x23: return arcompact_handle05_2f_3f_23(PARAMS); // illegal
+ case 0x24: return arcompact_handle05_2f_3f_24(PARAMS); // illegal
+ case 0x25: return arcompact_handle05_2f_3f_25(PARAMS); // illegal
+ case 0x26: return arcompact_handle05_2f_3f_26(PARAMS); // illegal
+ case 0x27: return arcompact_handle05_2f_3f_27(PARAMS); // illegal
+ case 0x28: return arcompact_handle05_2f_3f_28(PARAMS); // illegal
+ case 0x29: return arcompact_handle05_2f_3f_29(PARAMS); // illegal
+ case 0x2a: return arcompact_handle05_2f_3f_2a(PARAMS); // illegal
+ case 0x2b: return arcompact_handle05_2f_3f_2b(PARAMS); // illegal
+ case 0x2c: return arcompact_handle05_2f_3f_2c(PARAMS); // illegal
+ case 0x2d: return arcompact_handle05_2f_3f_2d(PARAMS); // illegal
+ case 0x2e: return arcompact_handle05_2f_3f_2e(PARAMS); // illegal
+ case 0x2f: return arcompact_handle05_2f_3f_2f(PARAMS); // illegal
+ case 0x30: return arcompact_handle05_2f_3f_30(PARAMS); // illegal
+ case 0x31: return arcompact_handle05_2f_3f_31(PARAMS); // illegal
+ case 0x32: return arcompact_handle05_2f_3f_32(PARAMS); // illegal
+ case 0x33: return arcompact_handle05_2f_3f_33(PARAMS); // illegal
+ case 0x34: return arcompact_handle05_2f_3f_34(PARAMS); // illegal
+ case 0x35: return arcompact_handle05_2f_3f_35(PARAMS); // illegal
+ case 0x36: return arcompact_handle05_2f_3f_36(PARAMS); // illegal
+ case 0x37: return arcompact_handle05_2f_3f_37(PARAMS); // illegal
+ case 0x38: return arcompact_handle05_2f_3f_38(PARAMS); // illegal
+ case 0x39: return arcompact_handle05_2f_3f_39(PARAMS); // illegal
+ case 0x3a: return arcompact_handle05_2f_3f_3a(PARAMS); // illegal
+ case 0x3b: return arcompact_handle05_2f_3f_3b(PARAMS); // illegal
+ case 0x3c: return arcompact_handle05_2f_3f_3c(PARAMS); // illegal
+ case 0x3d: return arcompact_handle05_2f_3f_3d(PARAMS); // illegal
+ case 0x3e: return arcompact_handle05_2f_3f_3e(PARAMS); // illegal
+ case 0x3f: return arcompact_handle05_2f_3f_3f(PARAMS); // illegal
}
return 0;
@@ -655,70 +674,70 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05(OPS_32)
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
+ case 0x00: return arcompact_handle05_00(PARAMS); // ASL
+ case 0x01: return arcompact_handle05_01(PARAMS); // LSR
+ case 0x02: return arcompact_handle05_02(PARAMS); // ASR
+ case 0x03: return arcompact_handle05_03(PARAMS); // ROR
+ case 0x04: return arcompact_handle05_04(PARAMS); // MUL64
+ case 0x05: return arcompact_handle05_05(PARAMS); // MULU64
+ case 0x06: return arcompact_handle05_06(PARAMS); // ADDS
+ case 0x07: return arcompact_handle05_07(PARAMS); // SUBS
+ case 0x08: return arcompact_handle05_08(PARAMS); // DIVAW
+ case 0x09: return arcompact_handle05_09(PARAMS); // illegal
+ case 0x0a: return arcompact_handle05_0a(PARAMS); // ASLS
+ case 0x0b: return arcompact_handle05_0b(PARAMS); // ASRS
+ case 0x0c: return arcompact_handle05_0c(PARAMS); // illegal
+ case 0x0d: return arcompact_handle05_0d(PARAMS); // illegal
+ case 0x0e: return arcompact_handle05_0e(PARAMS); // illegal
+ case 0x0f: return arcompact_handle05_0f(PARAMS); // illegal
+ case 0x10: return arcompact_handle05_10(PARAMS); // illegal
+ case 0x11: return arcompact_handle05_11(PARAMS); // illegal
+ case 0x12: return arcompact_handle05_12(PARAMS); // illegal
+ case 0x13: return arcompact_handle05_13(PARAMS); // illegal
+ case 0x14: return arcompact_handle05_14(PARAMS); // illegal
+ case 0x15: return arcompact_handle05_15(PARAMS); // illegal
+ case 0x16: return arcompact_handle05_16(PARAMS); // illegal
+ case 0x17: return arcompact_handle05_17(PARAMS); // illegal
+ case 0x18: return arcompact_handle05_18(PARAMS); // illegal
+ case 0x19: return arcompact_handle05_19(PARAMS); // illegal
+ case 0x1a: return arcompact_handle05_1a(PARAMS); // illegal
+ case 0x1b: return arcompact_handle05_1b(PARAMS); // illegal
+ case 0x1c: return arcompact_handle05_1c(PARAMS); // illegal
+ case 0x1d: return arcompact_handle05_1d(PARAMS); // illegal
+ case 0x1e: return arcompact_handle05_1e(PARAMS); // illegal
+ case 0x1f: return arcompact_handle05_1f(PARAMS); // illegal
+ case 0x20: return arcompact_handle05_20(PARAMS); // illegal
+ case 0x21: return arcompact_handle05_21(PARAMS); // illegal
+ case 0x22: return arcompact_handle05_22(PARAMS); // illegal
+ case 0x23: return arcompact_handle05_23(PARAMS); // illegal
+ case 0x24: return arcompact_handle05_24(PARAMS); // illegal
+ case 0x25: return arcompact_handle05_25(PARAMS); // illegal
+ case 0x26: return arcompact_handle05_26(PARAMS); // illegal
+ case 0x27: return arcompact_handle05_27(PARAMS); // illegal
+ case 0x28: return arcompact_handle05_28(PARAMS); // ADDSDW
+ case 0x29: return arcompact_handle05_29(PARAMS); // SUBSDW
+ case 0x2a: return arcompact_handle05_2a(PARAMS); // illegal
+ case 0x2b: return arcompact_handle05_2b(PARAMS); // illegal
+ case 0x2c: return arcompact_handle05_2c(PARAMS); // illegal
+ case 0x2d: return arcompact_handle05_2d(PARAMS); // illegal
+ case 0x2e: return arcompact_handle05_2e(PARAMS); // illegal
+ case 0x2f: return arcompact_handle05_2f(PARAMS); // SOPs
+ case 0x30: return arcompact_handle05_30(PARAMS); // illegal
+ case 0x31: return arcompact_handle05_31(PARAMS); // illegal
+ case 0x32: return arcompact_handle05_32(PARAMS); // illegal
+ case 0x33: return arcompact_handle05_33(PARAMS); // illegal
+ case 0x34: return arcompact_handle05_34(PARAMS); // illegal
+ case 0x35: return arcompact_handle05_35(PARAMS); // illegal
+ case 0x36: return arcompact_handle05_36(PARAMS); // illegal
+ case 0x37: return arcompact_handle05_37(PARAMS); // illegal
+ case 0x38: return arcompact_handle05_38(PARAMS); // illegal
+ case 0x39: return arcompact_handle05_39(PARAMS); // illegal
+ case 0x3a: return arcompact_handle05_3a(PARAMS); // illegal
+ case 0x3b: return arcompact_handle05_3b(PARAMS); // illegal
+ case 0x3c: return arcompact_handle05_3c(PARAMS); // illegal
+ case 0x3d: return arcompact_handle05_3d(PARAMS); // illegal
+ case 0x3e: return arcompact_handle05_3e(PARAMS); // illegal
+ case 0x3f: return arcompact_handle05_3f(PARAMS); // illegal
}
return 0;
@@ -730,10 +749,10 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0c(OPS_16)
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
+ case 0x00: return arcompact_handle0c_00(PARAMS); // LD_S
+ case 0x01: return arcompact_handle0c_01(PARAMS); // LDB_S
+ case 0x02: return arcompact_handle0c_02(PARAMS); // LDW_S
+ case 0x03: return arcompact_handle0c_03(PARAMS); // ADD_S
}
return 0;
@@ -745,10 +764,10 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0d(OPS_16)
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
+ case 0x00: return arcompact_handle0d_00(PARAMS); // ADD_S
+ case 0x01: return arcompact_handle0d_01(PARAMS); // SUB_S
+ case 0x02: return arcompact_handle0d_02(PARAMS); // ASL_S
+ case 0x03: return arcompact_handle0d_03(PARAMS); // ASR_S
}
return 0;
@@ -760,10 +779,10 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0e(OPS_16)
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
+ case 0x00: return arcompact_handle0e_00(PARAMS); // ADD_S
+ case 0x01: return arcompact_handle0e_01(PARAMS); // MOV_S
+ case 0x02: return arcompact_handle0e_02(PARAMS); // CMP_S
+ case 0x03: return arcompact_handle0e_03(PARAMS); // MOV_S
}
return 0;
@@ -775,38 +794,38 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f(OPS_16)
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? )
+ case 0x00: return arcompact_handle0f_00(PARAMS); // SOPs
+ case 0x01: return arcompact_handle0f_01(PARAMS); // 0x01 <illegal>
+ case 0x02: return arcompact_handle0f_02(PARAMS); // SUB_S
+ case 0x03: return arcompact_handle0f_03(PARAMS); // 0x03 <illegal>
+ case 0x04: return arcompact_handle0f_04(PARAMS); // AND_S
+ case 0x05: return arcompact_handle0f_05(PARAMS); // OR_S
+ case 0x06: return arcompact_handle0f_06(PARAMS); // BIC_S
+ case 0x07: return arcompact_handle0f_07(PARAMS); // XOR_S
+ case 0x08: return arcompact_handle0f_08(PARAMS); // 0x08 <illegal>
+ case 0x09: return arcompact_handle0f_09(PARAMS); // 0x09 <illegal>
+ case 0x0a: return arcompact_handle0f_0a(PARAMS); // 0x0a <illegal>
+ case 0x0b: return arcompact_handle0f_0b(PARAMS); // TST_S
+ case 0x0c: return arcompact_handle0f_0c(PARAMS); // MUL64_S
+ case 0x0d: return arcompact_handle0f_0d(PARAMS); // SEXB_S
+ case 0x0e: return arcompact_handle0f_0e(PARAMS); // SEXW_S
+ case 0x0f: return arcompact_handle0f_0f(PARAMS); // EXTB_S
+ case 0x10: return arcompact_handle0f_10(PARAMS); // EXTW_S
+ case 0x11: return arcompact_handle0f_11(PARAMS); // ABS_S
+ case 0x12: return arcompact_handle0f_12(PARAMS); // NOT_S
+ case 0x13: return arcompact_handle0f_13(PARAMS); // NEG_S
+ case 0x14: return arcompact_handle0f_14(PARAMS); // ADD1_S
+ case 0x15: return arcompact_handle0f_15(PARAMS); // ADD2_S
+ case 0x16: return arcompact_handle0f_16(PARAMS); // ADD3_S
+ case 0x17: return arcompact_handle0f_17(PARAMS); // 0x17 <illegal>
+ case 0x18: return arcompact_handle0f_18(PARAMS); // ASL_S (multiple)
+ case 0x19: return arcompact_handle0f_19(PARAMS); // LSR_S (multiple)
+ case 0x1a: return arcompact_handle0f_1a(PARAMS); // ASR_S (multiple)
+ case 0x1b: return arcompact_handle0f_1b(PARAMS); // ASL_S (single)
+ case 0x1c: return arcompact_handle0f_1c(PARAMS); // LSR_S (single)
+ case 0x1d: return arcompact_handle0f_1d(PARAMS); // ASR_S (single)
+ case 0x1e: return arcompact_handle0f_1e(PARAMS); // TRAP (not a5?)
+ case 0x1f: return arcompact_handle0f_1f(PARAMS); // BRK_S ( 0x7fff only? )
}
@@ -819,14 +838,14 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_00(OPS_16)
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
+ case 0x00: return arcompact_handle0f_00_00(PARAMS); // J_S
+ case 0x01: return arcompact_handle0f_00_01(PARAMS); // J_S.D
+ case 0x02: return arcompact_handle0f_00_02(PARAMS); // JL_S
+ case 0x03: return arcompact_handle0f_00_03(PARAMS); // JL_S.D
+ case 0x04: return arcompact_handle0f_00_04(PARAMS); // 0x04 <illegal>
+ case 0x05: return arcompact_handle0f_00_05(PARAMS); // 0x05 <illegal>
+ case 0x06: return arcompact_handle0f_00_06(PARAMS); // SUB_S.NE
+ case 0x07: return arcompact_handle0f_00_07(PARAMS); // ZOPs
}
@@ -839,14 +858,14 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle0f_00_07(OPS_16)
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]
+ case 0x00: return arcompact_handle0f_00_07_00(PARAMS); // NOP_S
+ case 0x01: return arcompact_handle0f_00_07_01(PARAMS); // UNIMP_S
+ case 0x02: return arcompact_handle0f_00_07_02(PARAMS); // 0x02 <illegal>
+ case 0x03: return arcompact_handle0f_00_07_03(PARAMS); // 0x03 <illegal>
+ case 0x04: return arcompact_handle0f_00_07_04(PARAMS); // JEQ_S [BLINK]
+ case 0x05: return arcompact_handle0f_00_07_05(PARAMS); // JNE_S [BLINK]
+ case 0x06: return arcompact_handle0f_00_07_06(PARAMS); // J_S [BLINK]
+ case 0x07: return arcompact_handle0f_00_07_07(PARAMS); // J_S.D [BLINK]
}
@@ -859,14 +878,14 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle17(OPS_16)
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
+ case 0x00: return arcompact_handle17_00(PARAMS); // ASL_S
+ case 0x01: return arcompact_handle17_01(PARAMS); // LSR_S
+ case 0x02: return arcompact_handle17_02(PARAMS); // ASR_S
+ case 0x03: return arcompact_handle17_03(PARAMS); // SUB_S
+ case 0x04: return arcompact_handle17_04(PARAMS); // BSET_S
+ case 0x05: return arcompact_handle17_05(PARAMS); // BCLR_S
+ case 0x06: return arcompact_handle17_06(PARAMS); // BMSK_S
+ case 0x07: return arcompact_handle17_07(PARAMS); // BTST_S
}
return 0;
@@ -878,14 +897,14 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18(OPS_16)
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
+ case 0x00: return arcompact_handle18_00(PARAMS); // LD_S (SP)
+ case 0x01: return arcompact_handle18_01(PARAMS); // LDB_S (SP)
+ case 0x02: return arcompact_handle18_02(PARAMS); // ST_S (SP)
+ case 0x03: return arcompact_handle18_03(PARAMS); // STB_S (SP)
+ case 0x04: return arcompact_handle18_04(PARAMS); // ADD_S (SP)
+ case 0x05: return arcompact_handle18_05(PARAMS); // subtable 18_05
+ case 0x06: return arcompact_handle18_06(PARAMS); // subtable 18_06
+ case 0x07: return arcompact_handle18_07(PARAMS); // subtable 18_07
}
return 0;
@@ -897,14 +916,14 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_05(OPS_16)
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>
+ case 0x00: return arcompact_handle18_05_00(PARAMS); // ADD_S (SP)
+ case 0x01: return arcompact_handle18_05_01(PARAMS); // SUB_S (SP)
+ case 0x02: return arcompact_handle18_05_02(PARAMS); // <illegal 0x18_05_02>
+ case 0x03: return arcompact_handle18_05_03(PARAMS); // <illegal 0x18_05_03>
+ case 0x04: return arcompact_handle18_05_04(PARAMS); // <illegal 0x18_05_04>
+ case 0x05: return arcompact_handle18_05_05(PARAMS); // <illegal 0x18_05_05>
+ case 0x06: return arcompact_handle18_05_06(PARAMS); // <illegal 0x18_05_06>
+ case 0x07: return arcompact_handle18_05_07(PARAMS); // <illegal 0x18_05_07>
}
return 0;
@@ -916,38 +935,38 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_06(OPS_16)
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>
+ case 0x00: return arcompact_handle18_06_00(PARAMS); // <illegal 0x18_06_00>
+ case 0x01: return arcompact_handle18_06_01(PARAMS); // POP_S b
+ case 0x02: return arcompact_handle18_06_02(PARAMS); // <illegal 0x18_06_02>
+ case 0x03: return arcompact_handle18_06_03(PARAMS); // <illegal 0x18_06_03>
+ case 0x04: return arcompact_handle18_06_04(PARAMS); // <illegal 0x18_06_04>
+ case 0x05: return arcompact_handle18_06_05(PARAMS); // <illegal 0x18_06_05>
+ case 0x06: return arcompact_handle18_06_06(PARAMS); // <illegal 0x18_06_06>
+ case 0x07: return arcompact_handle18_06_07(PARAMS); // <illegal 0x18_06_07>
+ case 0x08: return arcompact_handle18_06_08(PARAMS); // <illegal 0x18_06_08>
+ case 0x09: return arcompact_handle18_06_09(PARAMS); // <illegal 0x18_06_09>
+ case 0x0a: return arcompact_handle18_06_0a(PARAMS); // <illegal 0x18_06_0a>
+ case 0x0b: return arcompact_handle18_06_0b(PARAMS); // <illegal 0x18_06_0b>
+ case 0x0c: return arcompact_handle18_06_0c(PARAMS); // <illegal 0x18_06_0c>
+ case 0x0d: return arcompact_handle18_06_0d(PARAMS); // <illegal 0x18_06_0d>
+ case 0x0e: return arcompact_handle18_06_0e(PARAMS); // <illegal 0x18_06_0e>
+ case 0x0f: return arcompact_handle18_06_0f(PARAMS); // <illegal 0x18_06_0f>
+ case 0x10: return arcompact_handle18_06_10(PARAMS); // <illegal 0x18_06_10>
+ case 0x11: return arcompact_handle18_06_11(PARAMS); // POP_S blink
+ case 0x12: return arcompact_handle18_06_12(PARAMS); // <illegal 0x18_06_12>
+ case 0x13: return arcompact_handle18_06_13(PARAMS); // <illegal 0x18_06_13>
+ case 0x14: return arcompact_handle18_06_14(PARAMS); // <illegal 0x18_06_14>
+ case 0x15: return arcompact_handle18_06_15(PARAMS); // <illegal 0x18_06_15>
+ case 0x16: return arcompact_handle18_06_16(PARAMS); // <illegal 0x18_06_16>
+ case 0x17: return arcompact_handle18_06_17(PARAMS); // <illegal 0x18_06_17>
+ case 0x18: return arcompact_handle18_06_18(PARAMS); // <illegal 0x18_06_18>
+ case 0x19: return arcompact_handle18_06_19(PARAMS); // <illegal 0x18_06_19>
+ case 0x1a: return arcompact_handle18_06_1a(PARAMS); // <illegal 0x18_06_1a>
+ case 0x1b: return arcompact_handle18_06_1b(PARAMS); // <illegal 0x18_06_1b>
+ case 0x1c: return arcompact_handle18_06_1c(PARAMS); // <illegal 0x18_06_1c>
+ case 0x1d: return arcompact_handle18_06_1d(PARAMS); // <illegal 0x18_06_1d>
+ case 0x1e: return arcompact_handle18_06_1e(PARAMS); // <illegal 0x18_06_1e>
+ case 0x1f: return arcompact_handle18_06_1f(PARAMS); // <illegal 0x18_06_1f>
}
return 0;
@@ -959,38 +978,38 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle18_07(OPS_16)
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>
+ case 0x00: return arcompact_handle18_07_00(PARAMS); // <illegal 0x18_07_00>
+ case 0x01: return arcompact_handle18_07_01(PARAMS); // PUSH_S b
+ case 0x02: return arcompact_handle18_07_02(PARAMS); // <illegal 0x18_07_02>
+ case 0x03: return arcompact_handle18_07_03(PARAMS); // <illegal 0x18_07_03>
+ case 0x04: return arcompact_handle18_07_04(PARAMS); // <illegal 0x18_07_04>
+ case 0x05: return arcompact_handle18_07_05(PARAMS); // <illegal 0x18_07_05>
+ case 0x06: return arcompact_handle18_07_06(PARAMS); // <illegal 0x18_07_06>
+ case 0x07: return arcompact_handle18_07_07(PARAMS); // <illegal 0x18_07_07>
+ case 0x08: return arcompact_handle18_07_08(PARAMS); // <illegal 0x18_07_08>
+ case 0x09: return arcompact_handle18_07_09(PARAMS); // <illegal 0x18_07_09>
+ case 0x0a: return arcompact_handle18_07_0a(PARAMS); // <illegal 0x18_07_0a>
+ case 0x0b: return arcompact_handle18_07_0b(PARAMS); // <illegal 0x18_07_0b>
+ case 0x0c: return arcompact_handle18_07_0c(PARAMS); // <illegal 0x18_07_0c>
+ case 0x0d: return arcompact_handle18_07_0d(PARAMS); // <illegal 0x18_07_0d>
+ case 0x0e: return arcompact_handle18_07_0e(PARAMS); // <illegal 0x18_07_0e>
+ case 0x0f: return arcompact_handle18_07_0f(PARAMS); // <illegal 0x18_07_0f>
+ case 0x10: return arcompact_handle18_07_10(PARAMS); // <illegal 0x18_07_10>
+ case 0x11: return arcompact_handle18_07_11(PARAMS); // PUSH_S blink
+ case 0x12: return arcompact_handle18_07_12(PARAMS); // <illegal 0x18_07_12>
+ case 0x13: return arcompact_handle18_07_13(PARAMS); // <illegal 0x18_07_13>
+ case 0x14: return arcompact_handle18_07_14(PARAMS); // <illegal 0x18_07_14>
+ case 0x15: return arcompact_handle18_07_15(PARAMS); // <illegal 0x18_07_15>
+ case 0x16: return arcompact_handle18_07_16(PARAMS); // <illegal 0x18_07_16>
+ case 0x17: return arcompact_handle18_07_17(PARAMS); // <illegal 0x18_07_17>
+ case 0x18: return arcompact_handle18_07_18(PARAMS); // <illegal 0x18_07_18>
+ case 0x19: return arcompact_handle18_07_19(PARAMS); // <illegal 0x18_07_19>
+ case 0x1a: return arcompact_handle18_07_1a(PARAMS); // <illegal 0x18_07_1a>
+ case 0x1b: return arcompact_handle18_07_1b(PARAMS); // <illegal 0x18_07_1b>
+ case 0x1c: return arcompact_handle18_07_1c(PARAMS); // <illegal 0x18_07_1c>
+ case 0x1d: return arcompact_handle18_07_1d(PARAMS); // <illegal 0x18_07_1d>
+ case 0x1e: return arcompact_handle18_07_1e(PARAMS); // <illegal 0x18_07_1e>
+ case 0x1f: return arcompact_handle18_07_1f(PARAMS); // <illegal 0x18_07_1f>
}
return 0;
@@ -1002,10 +1021,10 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle19(OPS_16)
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)
+ case 0x00: return arcompact_handle19_00(PARAMS); // LD_S (GP)
+ case 0x01: return arcompact_handle19_01(PARAMS); // LDB_S (GP)
+ case 0x02: return arcompact_handle19_02(PARAMS); // LDW_S (GP)
+ case 0x03: return arcompact_handle19_03(PARAMS); // ADD_S (GP)
}
return 0;
@@ -1017,8 +1036,8 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1c(OPS_16)
switch (subinstr)
{
- case 0x00: return arcompact_handle1c_00(PARAMS); break; // ADD_S
- case 0x01: return arcompact_handle1c_01(PARAMS); break; // CMP_S
+ case 0x00: return arcompact_handle1c_00(PARAMS); // ADD_S
+ case 0x01: return arcompact_handle1c_01(PARAMS); // CMP_S
}
return 0;
@@ -1030,8 +1049,8 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1d(OPS_16)
switch (subinstr)
{
- case 0x00: return arcompact_handle1d_00(PARAMS); break; // BREQ_S
- case 0x01: return arcompact_handle1d_01(PARAMS); break; // BRNE_S
+ case 0x00: return arcompact_handle1d_00(PARAMS); // BREQ_S
+ case 0x01: return arcompact_handle1d_01(PARAMS); // BRNE_S
}
return 0;
@@ -1043,10 +1062,10 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1e(OPS_16)
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
+ case 0x00: return arcompact_handle1e_00(PARAMS); // B_S
+ case 0x01: return arcompact_handle1e_01(PARAMS); // BEQ_S
+ case 0x02: return arcompact_handle1e_02(PARAMS); // BNE_S
+ case 0x03: return arcompact_handle1e_03(PARAMS); // Bcc_S
}
return 0;
@@ -1058,14 +1077,14 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle1e_03(OPS_16)
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
+ case 0x00: return arcompact_handle1e_03_00(PARAMS); // BGT_S
+ case 0x01: return arcompact_handle1e_03_01(PARAMS); // BGE_S
+ case 0x02: return arcompact_handle1e_03_02(PARAMS); // BLT_S
+ case 0x03: return arcompact_handle1e_03_03(PARAMS); // BLE_S
+ case 0x04: return arcompact_handle1e_03_04(PARAMS); // BHI_S
+ case 0x05: return arcompact_handle1e_03_05(PARAMS); // BHS_S
+ case 0x06: return arcompact_handle1e_03_06(PARAMS); // BLO_S
+ case 0x07: return arcompact_handle1e_03_07(PARAMS); // BLS_S
}
return 0;
@@ -1138,12 +1157,12 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_01_01_00_helper(OPS_32, const char
// Branch on Compare / Bit Test - Register-Register
- int c = (op & 0x00000fc0) >> 6;
+ COMMON32_GET_creg
COMMON32_GET_breg;
//int n = (op & 0x00000020) >> 5;
- if ((breg != LIMM_REG) && (c != LIMM_REG))
+ if ((breg != LIMM_REG) && (creg != LIMM_REG))
{
}
@@ -1211,8 +1230,8 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle03(OPS_32)
int got_limm = 0;
COMMON32_GET_breg;
- int C = (op & 0x00000fc0) >> 6;
-
+ COMMON32_GET_creg;
+
if (breg == LIMM_REG)
{
//GET_LIMM_32;
@@ -1220,7 +1239,7 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle03(OPS_32)
got_limm = 1;
}
- if (C == LIMM_REG)
+ if (creg == LIMM_REG)
{
if (!got_limm)
{
@@ -1239,13 +1258,16 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle03(OPS_32)
}
+
+
+
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_p;
COMMON32_GET_breg;
if (!b_reserved)
@@ -1267,9 +1289,9 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_helper(OPS_32, const char
if (p == 0)
{
- int C = (op & 0x00000fc0) >> 6;
+ COMMON32_GET_creg
- if (C == LIMM_REG)
+ if (creg == LIMM_REG)
{
if (!got_limm)
{
@@ -1293,9 +1315,9 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_helper(OPS_32, const char
if (M == 0)
{
- int C = (op & 0x00000fc0) >> 6;
+ COMMON32_GET_creg
- if (C == LIMM_REG)
+ if (creg == LIMM_REG)
{
if (!got_limm)
{
@@ -1471,75 +1493,79 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_1d(OPS_32)
} // *
-// arcompact_handle04_helper format
-ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_20(OPS_32)
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_20_p00(OPS_16)
{
int size = 4;
UINT32 limm = 0;
int got_limm = 0;
- int p = (op & 0x00c00000) >> 22;
+ COMMON32_GET_creg
- if (p == 0)
+ if (creg == LIMM_REG)
{
- int C = (op & 0x00000fc0) >> 6;
-
- if (C == LIMM_REG)
- {
- if (!got_limm)
- {
- GET_LIMM_32;
- size = 8;
- }
-
- return limm;
- }
- else
+ if (!got_limm)
{
- arcompact_log("unimplemented J %08x", op);
+ GET_LIMM_32;
+ size = 8;
}
+
+ return limm;
}
- else if (p == 1)
- {
- arcompact_log("unimplemented J %08x", op);
- }
- else if (p == 2)
+ else
{
arcompact_log("unimplemented J %08x", op);
}
- else if (p == 3)
- {
- int M = (op & 0x00000020) >> 5;
- if (M == 0)
- {
- int C = (op & 0x00000fc0) >> 6;
+ return m_pc + (size>>0);
+}
- if (C == LIMM_REG)
- {
- if (!got_limm)
- {
- //GET_LIMM_32;
- size = 8;
- }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_20_p01(OPS_16)
+{
+ int size = 4;
+ arcompact_log("unimplemented J %08x", op);
+ return m_pc + (size>>0);
+}
- arcompact_log("unimplemented J %08x", op);
- }
- else
- {
- arcompact_log("unimplemented J %08x", op);
- }
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_20_p10(OPS_16)
+{
+ int size = 4;
+ arcompact_log("unimplemented J %08x", op);
+ return m_pc + (size>>0);
+}
- }
- else if (M == 1)
+
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_20_p11_m0(OPS_16)
+{
+ int size = 4;
+// UINT32 limm = 0;
+ int got_limm = 0;
+
+ COMMON32_GET_creg
+
+ if (creg == LIMM_REG)
+ {
+ if (!got_limm)
{
- arcompact_log("unimplemented J %08x", op);
+ //GET_LIMM_32;
+ size = 8;
}
+ arcompact_log("unimplemented J %08x", op);
}
+ else
+ {
+ arcompact_log("unimplemented J %08x", op);
+ }
+ return m_pc + (size>>0);
+}
-
- return m_pc + (size>>0);}
+ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_20_p11_m1(OPS_16)
+{
+ int size = 4;
+ arcompact_log("unimplemented J %08x", op);
+ return m_pc + (size>>0);
+}
@@ -1565,8 +1591,8 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_28(OPS_32) // LPcc (loop
{
int size = 4;
- int p = (op & 0x00c00000) >> 22;
-
+ COMMON32_GET_p;
+
if (p == 0x00)
{
}
@@ -1592,15 +1618,15 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2a(OPS_32) // Load FROM
// UINT32 limm = 0;
int got_limm = 0;
- int p = (op & 0x00c00000) >> 22;
+ COMMON32_GET_p;
//COMMON32_GET_breg;
if (p == 0)
{
- int C = (op & 0x00000fc0) >> 6;
+ COMMON32_GET_creg
- if (C == LIMM_REG)
+ if (creg == LIMM_REG)
{
if (!got_limm)
{
@@ -1633,7 +1659,7 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2b(OPS_32) // Store TO A
// UINT32 limm = 0;
int got_limm = 0;
- int p = (op & 0x00c00000) >> 22;
+ COMMON32_GET_p;
COMMON32_GET_breg;
if (breg == LIMM_REG)
@@ -1650,9 +1676,9 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2b(OPS_32) // Store TO A
if (p == 0)
{
- int C = (op & 0x00000fc0) >> 6;
+ COMMON32_GET_creg
- if (C == LIMM_REG)
+ if (creg == LIMM_REG)
{
if (!got_limm)
{
@@ -1689,14 +1715,14 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_2f_helper(OPS_32, const c
{
int size = 4;
- int p = (op & 0x00c00000) >> 22;
+ COMMON32_GET_p;
//COMMON32_GET_breg;
if (p == 0)
{
- int C = (op & 0x00000fc0) >> 6;
+ COMMON32_GET_creg
- if (C == LIMM_REG)
+ if (creg == LIMM_REG)
{
//UINT32 limm;
//GET_LIMM_32;
@@ -1752,7 +1778,7 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_3x_helper(OPS_32, int dsi
COMMON32_GET_breg;
- int C = (op & 0x00000fc0) >> 6;
+ COMMON32_GET_creg
@@ -1767,7 +1793,7 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle04_3x_helper(OPS_32, int dsi
{
}
- if (C == LIMM_REG)
+ if (creg == LIMM_REG)
{
if (!got_limm)
{
@@ -1824,14 +1850,14 @@ ARCOMPACT_RETTYPE arcompact_device::arcompact_handle05_2f_0x_helper(OPS_32, cons
{
int size = 4;
- int p = (op & 0x00c00000) >> 22;
+ COMMON32_GET_p;
//COMMON32_GET_breg;
if (p == 0)
{
- int C = (op & 0x00000fc0) >> 6;
+ COMMON32_GET_creg
- if (C == LIMM_REG)
+ if (creg == LIMM_REG)
{
//UINT32 limm;
//GET_LIMM_32;