diff --git a/src/emu/cpu/arcompact/arcompactdasm_dispatch.c b/src/emu/cpu/arcompact/arcompactdasm_dispatch.c index 459cda740f2..e4296321e15 100644 --- a/src/emu/cpu/arcompact/arcompactdasm_dispatch.c +++ b/src/emu/cpu/arcompact/arcompactdasm_dispatch.c @@ -295,6 +295,84 @@ int arcompact_handle04_2f_dasm(DASM_OPS_32) return size; } + +int arcompact_handle05_2f_dasm(DASM_OPS_32) +{ + int size = 4; + UINT8 subinstr2 = (op & 0x0000003f) >> 0; + op &= ~0x0000003f; + + switch (subinstr2) + { + case 0x00: size = arcompact_handle05_2f_00_dasm(DASM_PARAMS); break; // SWAP + case 0x01: size = arcompact_handle05_2f_01_dasm(DASM_PARAMS); break; // NORM + case 0x02: size = arcompact_handle05_2f_02_dasm(DASM_PARAMS); break; // SAT16 + case 0x03: size = arcompact_handle05_2f_03_dasm(DASM_PARAMS); break; // RND16 + case 0x04: size = arcompact_handle05_2f_04_dasm(DASM_PARAMS); break; // ABSSW + case 0x05: size = arcompact_handle05_2f_05_dasm(DASM_PARAMS); break; // ABSS + case 0x06: size = arcompact_handle05_2f_06_dasm(DASM_PARAMS); break; // NEGSW + case 0x07: size = arcompact_handle05_2f_07_dasm(DASM_PARAMS); break; // NEGS + case 0x08: size = arcompact_handle05_2f_08_dasm(DASM_PARAMS); break; // NORMW + case 0x09: size = arcompact_handle05_2f_09_dasm(DASM_PARAMS); break; // illegal + case 0x0a: size = arcompact_handle05_2f_0a_dasm(DASM_PARAMS); break; // illegal + case 0x0b: size = arcompact_handle05_2f_0b_dasm(DASM_PARAMS); break; // illegal + case 0x0c: size = arcompact_handle05_2f_0c_dasm(DASM_PARAMS); break; // illegal + case 0x0d: size = arcompact_handle05_2f_0d_dasm(DASM_PARAMS); break; // illegal + case 0x0e: size = arcompact_handle05_2f_0e_dasm(DASM_PARAMS); break; // illegal + case 0x0f: size = arcompact_handle05_2f_0f_dasm(DASM_PARAMS); break; // illegal + case 0x10: size = arcompact_handle05_2f_10_dasm(DASM_PARAMS); break; // illegal + case 0x11: size = arcompact_handle05_2f_11_dasm(DASM_PARAMS); break; // illegal + case 0x12: size = arcompact_handle05_2f_12_dasm(DASM_PARAMS); break; // illegal + case 0x13: size = arcompact_handle05_2f_13_dasm(DASM_PARAMS); break; // illegal + case 0x14: size = arcompact_handle05_2f_14_dasm(DASM_PARAMS); break; // illegal + case 0x15: size = arcompact_handle05_2f_15_dasm(DASM_PARAMS); break; // illegal + case 0x16: size = arcompact_handle05_2f_16_dasm(DASM_PARAMS); break; // illegal + case 0x17: size = arcompact_handle05_2f_17_dasm(DASM_PARAMS); break; // illegal + case 0x18: size = arcompact_handle05_2f_18_dasm(DASM_PARAMS); break; // illegal + case 0x19: size = arcompact_handle05_2f_19_dasm(DASM_PARAMS); break; // illegal + case 0x1a: size = arcompact_handle05_2f_1a_dasm(DASM_PARAMS); break; // illegal + case 0x1b: size = arcompact_handle05_2f_1b_dasm(DASM_PARAMS); break; // illegal + case 0x1c: size = arcompact_handle05_2f_1c_dasm(DASM_PARAMS); break; // illegal + case 0x1d: size = arcompact_handle05_2f_1d_dasm(DASM_PARAMS); break; // illegal + case 0x1e: size = arcompact_handle05_2f_1e_dasm(DASM_PARAMS); break; // illegal + case 0x1f: size = arcompact_handle05_2f_1f_dasm(DASM_PARAMS); break; // illegal + case 0x20: size = arcompact_handle05_2f_20_dasm(DASM_PARAMS); break; // illegal + case 0x21: size = arcompact_handle05_2f_21_dasm(DASM_PARAMS); break; // illegal + case 0x22: size = arcompact_handle05_2f_22_dasm(DASM_PARAMS); break; // illegal + case 0x23: size = arcompact_handle05_2f_23_dasm(DASM_PARAMS); break; // illegal + case 0x24: size = arcompact_handle05_2f_24_dasm(DASM_PARAMS); break; // illegal + case 0x25: size = arcompact_handle05_2f_25_dasm(DASM_PARAMS); break; // illegal + case 0x26: size = arcompact_handle05_2f_26_dasm(DASM_PARAMS); break; // illegal + case 0x27: size = arcompact_handle05_2f_27_dasm(DASM_PARAMS); break; // illegal + case 0x28: size = arcompact_handle05_2f_28_dasm(DASM_PARAMS); break; // illegal + case 0x29: size = arcompact_handle05_2f_29_dasm(DASM_PARAMS); break; // illegal + case 0x2a: size = arcompact_handle05_2f_2a_dasm(DASM_PARAMS); break; // illegal + case 0x2b: size = arcompact_handle05_2f_2b_dasm(DASM_PARAMS); break; // illegal + case 0x2c: size = arcompact_handle05_2f_2c_dasm(DASM_PARAMS); break; // illegal + case 0x2d: size = arcompact_handle05_2f_2d_dasm(DASM_PARAMS); break; // illegal + case 0x2e: size = arcompact_handle05_2f_2e_dasm(DASM_PARAMS); break; // illegal + case 0x2f: size = arcompact_handle05_2f_2f_dasm(DASM_PARAMS); break; // illegal + case 0x30: size = arcompact_handle05_2f_30_dasm(DASM_PARAMS); break; // illegal + case 0x31: size = arcompact_handle05_2f_31_dasm(DASM_PARAMS); break; // illegal + case 0x32: size = arcompact_handle05_2f_32_dasm(DASM_PARAMS); break; // illegal + case 0x33: size = arcompact_handle05_2f_33_dasm(DASM_PARAMS); break; // illegal + case 0x34: size = arcompact_handle05_2f_34_dasm(DASM_PARAMS); break; // illegal + case 0x35: size = arcompact_handle05_2f_35_dasm(DASM_PARAMS); break; // illegal + case 0x36: size = arcompact_handle05_2f_36_dasm(DASM_PARAMS); break; // illegal + case 0x37: size = arcompact_handle05_2f_37_dasm(DASM_PARAMS); break; // illegal + case 0x38: size = arcompact_handle05_2f_38_dasm(DASM_PARAMS); break; // illegal + case 0x39: size = arcompact_handle05_2f_39_dasm(DASM_PARAMS); break; // illegal + case 0x3a: size = arcompact_handle05_2f_3a_dasm(DASM_PARAMS); break; // illegal + case 0x3b: size = arcompact_handle05_2f_3b_dasm(DASM_PARAMS); break; // illegal + case 0x3c: size = arcompact_handle05_2f_3c_dasm(DASM_PARAMS); break; // illegal + case 0x3d: size = arcompact_handle05_2f_3d_dasm(DASM_PARAMS); break; // illegal + case 0x3e: size = arcompact_handle05_2f_3e_dasm(DASM_PARAMS); break; // illegal + case 0x3f: size = arcompact_handle05_2f_3f_dasm(DASM_PARAMS); break; // ZOPs (Zero Operand Opcodes) + } + + return size; +} + int arcompact_handle04_2f_3f_dasm(DASM_OPS_32) { int size = 4; @@ -374,6 +452,87 @@ int arcompact_handle04_2f_3f_dasm(DASM_OPS_32) return size; } + +int arcompact_handle05_2f_3f_dasm(DASM_OPS_32) // useless ZOP group, no actual opcodes +{ + int size = 4; + UINT8 subinstr3 = (op & 0x07000000) >> 24; + subinstr3 |= ((op & 0x00007000) >> 12) << 3; + + op &= ~0x07007000; + + switch (subinstr3) + { + case 0x00: size = arcompact_handle05_2f_3f_00_dasm(DASM_PARAMS); break; // illegal + case 0x01: size = arcompact_handle05_2f_3f_01_dasm(DASM_PARAMS); break; // illegal + case 0x02: size = arcompact_handle05_2f_3f_02_dasm(DASM_PARAMS); break; // illegal + case 0x03: size = arcompact_handle05_2f_3f_03_dasm(DASM_PARAMS); break; // illegal + case 0x04: size = arcompact_handle05_2f_3f_04_dasm(DASM_PARAMS); break; // illegal + case 0x05: size = arcompact_handle05_2f_3f_05_dasm(DASM_PARAMS); break; // illegal + case 0x06: size = arcompact_handle05_2f_3f_06_dasm(DASM_PARAMS); break; // illegal + case 0x07: size = arcompact_handle05_2f_3f_07_dasm(DASM_PARAMS); break; // illegal + case 0x08: size = arcompact_handle05_2f_3f_08_dasm(DASM_PARAMS); break; // illegal + case 0x09: size = arcompact_handle05_2f_3f_09_dasm(DASM_PARAMS); break; // illegal + case 0x0a: size = arcompact_handle05_2f_3f_0a_dasm(DASM_PARAMS); break; // illegal + case 0x0b: size = arcompact_handle05_2f_3f_0b_dasm(DASM_PARAMS); break; // illegal + case 0x0c: size = arcompact_handle05_2f_3f_0c_dasm(DASM_PARAMS); break; // illegal + case 0x0d: size = arcompact_handle05_2f_3f_0d_dasm(DASM_PARAMS); break; // illegal + case 0x0e: size = arcompact_handle05_2f_3f_0e_dasm(DASM_PARAMS); break; // illegal + case 0x0f: size = arcompact_handle05_2f_3f_0f_dasm(DASM_PARAMS); break; // illegal + case 0x10: size = arcompact_handle05_2f_3f_10_dasm(DASM_PARAMS); break; // illegal + case 0x11: size = arcompact_handle05_2f_3f_11_dasm(DASM_PARAMS); break; // illegal + case 0x12: size = arcompact_handle05_2f_3f_12_dasm(DASM_PARAMS); break; // illegal + case 0x13: size = arcompact_handle05_2f_3f_13_dasm(DASM_PARAMS); break; // illegal + case 0x14: size = arcompact_handle05_2f_3f_14_dasm(DASM_PARAMS); break; // illegal + case 0x15: size = arcompact_handle05_2f_3f_15_dasm(DASM_PARAMS); break; // illegal + case 0x16: size = arcompact_handle05_2f_3f_16_dasm(DASM_PARAMS); break; // illegal + case 0x17: size = arcompact_handle05_2f_3f_17_dasm(DASM_PARAMS); break; // illegal + case 0x18: size = arcompact_handle05_2f_3f_18_dasm(DASM_PARAMS); break; // illegal + case 0x19: size = arcompact_handle05_2f_3f_19_dasm(DASM_PARAMS); break; // illegal + case 0x1a: size = arcompact_handle05_2f_3f_1a_dasm(DASM_PARAMS); break; // illegal + case 0x1b: size = arcompact_handle05_2f_3f_1b_dasm(DASM_PARAMS); break; // illegal + case 0x1c: size = arcompact_handle05_2f_3f_1c_dasm(DASM_PARAMS); break; // illegal + case 0x1d: size = arcompact_handle05_2f_3f_1d_dasm(DASM_PARAMS); break; // illegal + case 0x1e: size = arcompact_handle05_2f_3f_1e_dasm(DASM_PARAMS); break; // illegal + case 0x1f: size = arcompact_handle05_2f_3f_1f_dasm(DASM_PARAMS); break; // illegal + case 0x20: size = arcompact_handle05_2f_3f_20_dasm(DASM_PARAMS); break; // illegal + case 0x21: size = arcompact_handle05_2f_3f_21_dasm(DASM_PARAMS); break; // illegal + case 0x22: size = arcompact_handle05_2f_3f_22_dasm(DASM_PARAMS); break; // illegal + case 0x23: size = arcompact_handle05_2f_3f_23_dasm(DASM_PARAMS); break; // illegal + case 0x24: size = arcompact_handle05_2f_3f_24_dasm(DASM_PARAMS); break; // illegal + case 0x25: size = arcompact_handle05_2f_3f_25_dasm(DASM_PARAMS); break; // illegal + case 0x26: size = arcompact_handle05_2f_3f_26_dasm(DASM_PARAMS); break; // illegal + case 0x27: size = arcompact_handle05_2f_3f_27_dasm(DASM_PARAMS); break; // illegal + case 0x28: size = arcompact_handle05_2f_3f_28_dasm(DASM_PARAMS); break; // illegal + case 0x29: size = arcompact_handle05_2f_3f_29_dasm(DASM_PARAMS); break; // illegal + case 0x2a: size = arcompact_handle05_2f_3f_2a_dasm(DASM_PARAMS); break; // illegal + case 0x2b: size = arcompact_handle05_2f_3f_2b_dasm(DASM_PARAMS); break; // illegal + case 0x2c: size = arcompact_handle05_2f_3f_2c_dasm(DASM_PARAMS); break; // illegal + case 0x2d: size = arcompact_handle05_2f_3f_2d_dasm(DASM_PARAMS); break; // illegal + case 0x2e: size = arcompact_handle05_2f_3f_2e_dasm(DASM_PARAMS); break; // illegal + case 0x2f: size = arcompact_handle05_2f_3f_2f_dasm(DASM_PARAMS); break; // illegal + case 0x30: size = arcompact_handle05_2f_3f_30_dasm(DASM_PARAMS); break; // illegal + case 0x31: size = arcompact_handle05_2f_3f_31_dasm(DASM_PARAMS); break; // illegal + case 0x32: size = arcompact_handle05_2f_3f_32_dasm(DASM_PARAMS); break; // illegal + case 0x33: size = arcompact_handle05_2f_3f_33_dasm(DASM_PARAMS); break; // illegal + case 0x34: size = arcompact_handle05_2f_3f_34_dasm(DASM_PARAMS); break; // illegal + case 0x35: size = arcompact_handle05_2f_3f_35_dasm(DASM_PARAMS); break; // illegal + case 0x36: size = arcompact_handle05_2f_3f_36_dasm(DASM_PARAMS); break; // illegal + case 0x37: size = arcompact_handle05_2f_3f_37_dasm(DASM_PARAMS); break; // illegal + case 0x38: size = arcompact_handle05_2f_3f_38_dasm(DASM_PARAMS); break; // illegal + case 0x39: size = arcompact_handle05_2f_3f_39_dasm(DASM_PARAMS); break; // illegal + case 0x3a: size = arcompact_handle05_2f_3f_3a_dasm(DASM_PARAMS); break; // illegal + case 0x3b: size = arcompact_handle05_2f_3f_3b_dasm(DASM_PARAMS); break; // illegal + case 0x3c: size = arcompact_handle05_2f_3f_3c_dasm(DASM_PARAMS); break; // illegal + case 0x3d: size = arcompact_handle05_2f_3f_3d_dasm(DASM_PARAMS); break; // illegal + case 0x3e: size = arcompact_handle05_2f_3f_3e_dasm(DASM_PARAMS); break; // illegal + case 0x3f: size = arcompact_handle05_2f_3f_3f_dasm(DASM_PARAMS); break; // illegal + } + + return size; +} + + // this is an Extension ALU group, maybe optional on some CPUs? int arcompact_handle05_dasm(DASM_OPS_32) { diff --git a/src/emu/cpu/arcompact/arcompactdasm_dispatch.h b/src/emu/cpu/arcompact/arcompactdasm_dispatch.h index 2a6948c41e2..f317e0ffb8e 100644 --- a/src/emu/cpu/arcompact/arcompactdasm_dispatch.h +++ b/src/emu/cpu/arcompact/arcompactdasm_dispatch.h @@ -27,6 +27,10 @@ int arcompact_handle04_2f_dasm(DASM_OPS_32); int arcompact_handle04_2f_3f_dasm(DASM_OPS_32); int arcompact_handle05_dasm(DASM_OPS_32); +int arcompact_handle05_2f_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_dasm(DASM_OPS_32); + + int arcompact_handle0c_dasm(DASM_OPS_16); int arcompact_handle0d_dasm(DASM_OPS_16); int arcompact_handle0e_dasm(DASM_OPS_16); diff --git a/src/emu/cpu/arcompact/arcompactdasm_ops.c b/src/emu/cpu/arcompact/arcompactdasm_ops.c index 4108512dc31..ee847072f65 100644 --- a/src/emu/cpu/arcompact/arcompactdasm_ops.c +++ b/src/emu/cpu/arcompact/arcompactdasm_ops.c @@ -930,27 +930,37 @@ int arcompact_handle04_37_dasm(DASM_OPS_32) { return arcompact_handle04_3x_help -int arcompact_handle05_00_dasm(DASM_OPS_32) { print("ASL a <- b asl c (%08x)", op); return 4;} -int arcompact_handle05_01_dasm(DASM_OPS_32) { print("LSR a <- b lsr c (%08x)", op); return 4;} -int arcompact_handle05_02_dasm(DASM_OPS_32) { print("ASR a <- b asr c (%08x)", op); return 4;} -int arcompact_handle05_03_dasm(DASM_OPS_32) { print("ROR a <- b ror c (%08x)", op); return 4;} -int arcompact_handle05_04_dasm(DASM_OPS_32) { print("MUL64 mulres <- b * c (%08x)", op); return 4;} -int arcompact_handle05_05_dasm(DASM_OPS_32) { print("MULU64 mulres <- b * c (%08x)", op); return 4;} -int arcompact_handle05_06_dasm(DASM_OPS_32) { print("ADDS a <- sat32 (b + c) (%08x)", op); return 4;} -int arcompact_handle05_07_dasm(DASM_OPS_32) { print("SUBS a <- sat32 (b + c) (%08x)", op); return 4;} -int arcompact_handle05_08_dasm(DASM_OPS_32) { print("DIVAW (%08x)", op); return 4;} +int arcompact_handle05_00_dasm(DASM_OPS_32) { return arcompact_handle04_helper_dasm(DASM_PARAMS, "ASL", 0,0); } +int arcompact_handle05_01_dasm(DASM_OPS_32) { return arcompact_handle04_helper_dasm(DASM_PARAMS, "LSR", 0,0); } +int arcompact_handle05_02_dasm(DASM_OPS_32) { return arcompact_handle04_helper_dasm(DASM_PARAMS, "ASR", 0,0); } +int arcompact_handle05_03_dasm(DASM_OPS_32) { return arcompact_handle04_helper_dasm(DASM_PARAMS, "ROR", 0,0); } +int arcompact_handle05_04_dasm(DASM_OPS_32) { return arcompact_handle04_helper_dasm(DASM_PARAMS, "MUL64", 0,0); } // special +int arcompact_handle05_05_dasm(DASM_OPS_32) { return arcompact_handle04_helper_dasm(DASM_PARAMS, "MULU64", 0,0);} // special +int arcompact_handle05_06_dasm(DASM_OPS_32) { return arcompact_handle04_helper_dasm(DASM_PARAMS, "ADDS", 0,0); } +int arcompact_handle05_07_dasm(DASM_OPS_32) { return arcompact_handle04_helper_dasm(DASM_PARAMS, "SUBS", 0,0); } +int arcompact_handle05_08_dasm(DASM_OPS_32) { return arcompact_handle04_helper_dasm(DASM_PARAMS, "DIVAW", 0,0); } -int arcompact_handle05_0a_dasm(DASM_OPS_32) { print("ASLS a <- sat32 (b << c) (%08x)", op); return 4;} -int arcompact_handle05_0b_dasm(DASM_OPS_32) { print("ASRS a ,- sat32 (b >> c) (%08x)", op); return 4;} +int arcompact_handle05_0a_dasm(DASM_OPS_32) { return arcompact_handle04_helper_dasm(DASM_PARAMS, "ASLS", 0,0); } +int arcompact_handle05_0b_dasm(DASM_OPS_32) { return arcompact_handle04_helper_dasm(DASM_PARAMS, "ASRS", 0,0); } -int arcompact_handle05_28_dasm(DASM_OPS_32) { print("ADDSDW (%08x)", op); return 4;} -int arcompact_handle05_29_dasm(DASM_OPS_32) { print("SUBSDW (%08x)", op); return 4;} +int arcompact_handle05_28_dasm(DASM_OPS_32) { return arcompact_handle04_helper_dasm(DASM_PARAMS, "ADDSDW", 0,0); } +int arcompact_handle05_29_dasm(DASM_OPS_32) { return arcompact_handle04_helper_dasm(DASM_PARAMS, "SUBSDW", 0,0); } -int arcompact_handle05_2f_dasm(DASM_OPS_32) { print("SOP (another table) (%08x)", op); return 4;} +//int arcompact_handle05_2f_dasm(DASM_OPS_32) { print("SOP (another table) (%08x)", op); return 4;} +int arcompact_handle05_2f_00_dasm(DASM_OPS_32) { print("SWAP (%08x)", op); return 4;} +int arcompact_handle05_2f_01_dasm(DASM_OPS_32) { print("NORM (%08x)", op); return 4;} +int arcompact_handle05_2f_02_dasm(DASM_OPS_32) { print("SAT16 (%08x)", op); return 4;} +int arcompact_handle05_2f_03_dasm(DASM_OPS_32) { print("RND16 (%08x)", op); return 4;} +int arcompact_handle05_2f_04_dasm(DASM_OPS_32) { print("ABSSW (%08x)", op); return 4;} +int arcompact_handle05_2f_05_dasm(DASM_OPS_32) { print("ABSS (%08x)", op); return 4;} +int arcompact_handle05_2f_06_dasm(DASM_OPS_32) { print("NEGSW (%08x)", op); return 4;} +int arcompact_handle05_2f_07_dasm(DASM_OPS_32) { print("NEGS (%08x)", op); return 4;} +int arcompact_handle05_2f_08_dasm(DASM_OPS_32) { print("NORMW (%08x)", op); return 4;} +//int arcompact_handle05_2f_3f_dasm(DASM_OPS_32) { print("ZOPs (another table) (%08x)", op); return 4;} @@ -1145,34 +1155,48 @@ int arcompact_handle0f_00_07_07_dasm(DASM_OPS_16) { print("J_S.D [blink] (%08x) int arcompact_handle0f_02_dasm(DASM_OPS_16) { print("SUB_S b <- b - c (%08x)", op); return 2;} -int arcompact_handle0f_04_dasm(DASM_OPS_16) { print("AND_S b <- b and c (%08x)", op); return 2;} -int arcompact_handle0f_05_dasm(DASM_OPS_16) { print("OR_S b <- b or c (%08x)", op); return 2;} -int arcompact_handle0f_06_dasm(DASM_OPS_16) { print("BIC_S b <- b & !c (%08x)", op); return 2;} -int arcompact_handle0f_07_dasm(DASM_OPS_16) { print("XOR_S b <- b ^ c (%08x)", op); return 2;} + +int arcompact_handle0f_0x_helper_dasm(DASM_OPS_16, const char* optext) +{ + int breg, creg; + + COMMON16_GET_breg; + COMMON16_GET_creg; + + REG_16BIT_RANGE(breg); + REG_16BIT_RANGE(creg); -int arcompact_handle0f_0b_dasm(DASM_OPS_16) { print("TST_S b & c (%08x)", op); return 2;} -int arcompact_handle0f_0c_dasm(DASM_OPS_16) { print("MUL64_S mulres <- b * c (%08x)", op); return 2;} -int arcompact_handle0f_0d_dasm(DASM_OPS_16) { print("SEXB_S b <- sexb(c) (%08x)", op); return 2;} -int arcompact_handle0f_0e_dasm(DASM_OPS_16) { print("SEXW_S b <- sexw(c) (%08x)", op); return 2;} -int arcompact_handle0f_0f_dasm(DASM_OPS_16) { print("EXTB_S b <- extb(c) (%08x)", op); return 2;} -int arcompact_handle0f_10_dasm(DASM_OPS_16) { print("EXTW_S b <- extw(c) (%08x)", op); return 2;} -int arcompact_handle0f_11_dasm(DASM_OPS_16) { print("ABS_S b <- abs(c) (%08x)", op); return 2;} -int arcompact_handle0f_12_dasm(DASM_OPS_16) { print("NOT_S b <- !(c) (%08x)", op); return 2;} -int arcompact_handle0f_13_dasm(DASM_OPS_16) { print("NEG_S b <- neg(c) (%08x)", op); return 2;} -int arcompact_handle0f_14_dasm(DASM_OPS_16) { print("ADD1_S b <- b + (c << 1) (%08x)", op); return 2;} -int arcompact_handle0f_15_dasm(DASM_OPS_16) { print("ADD2_S b <- b + (c << 2) (%08x)", op); return 2;} -int arcompact_handle0f_16_dasm(DASM_OPS_16) { print("ADD3_S b <- b + (c << 3) (%08x)", op); return 2;} + print("%s %s <- %s", optext, regnames[breg], regnames[creg]); + return 2; +} -int arcompact_handle0f_18_dasm(DASM_OPS_16) { print("ASL_S b <- b asl c (%08x)", op); return 2;} -int arcompact_handle0f_19_dasm(DASM_OPS_16) { print("LSR_S b <- b lsr c (%08x)", op); return 2;} -int arcompact_handle0f_1a_dasm(DASM_OPS_16) { print("ASR_S b <- b asr c (%08x)", op); return 2;} -int arcompact_handle0f_1b_dasm(DASM_OPS_16) { print("ASL_S b <- c + c (%08x)", op); return 2;} -int arcompact_handle0f_1c_dasm(DASM_OPS_16) { print("ASR_S b <- c asr 1 (%08x)", op); return 2;} -int arcompact_handle0f_1d_dasm(DASM_OPS_16) { print("LSR_S b <- c lsr 1(%08x)", op); return 2;} -int arcompact_handle0f_1e_dasm(DASM_OPS_16) { print("TRAP_S (%08x)", op); return 2;} -int arcompact_handle0f_1f_dasm(DASM_OPS_16) { print("BRK_S (%08x)", op); return 2;} +int arcompact_handle0f_04_dasm(DASM_OPS_16) { return arcompact_handle0f_0x_helper_dasm(DASM_PARAMS, "AND_S"); } +int arcompact_handle0f_05_dasm(DASM_OPS_16) { return arcompact_handle0f_0x_helper_dasm(DASM_PARAMS, "OR_S"); } +int arcompact_handle0f_06_dasm(DASM_OPS_16) { return arcompact_handle0f_0x_helper_dasm(DASM_PARAMS, "BIC_S"); } +int arcompact_handle0f_07_dasm(DASM_OPS_16) { return arcompact_handle0f_0x_helper_dasm(DASM_PARAMS, "XOR_S"); } +int arcompact_handle0f_0b_dasm(DASM_OPS_16) { return arcompact_handle0f_0x_helper_dasm(DASM_PARAMS, "TST_S"); } +int arcompact_handle0f_0d_dasm(DASM_OPS_16) { return arcompact_handle0f_0x_helper_dasm(DASM_PARAMS, "SEXB_S"); } +int arcompact_handle0f_0e_dasm(DASM_OPS_16) { return arcompact_handle0f_0x_helper_dasm(DASM_PARAMS, "SEXW_S"); } +int arcompact_handle0f_0f_dasm(DASM_OPS_16) { return arcompact_handle0f_0x_helper_dasm(DASM_PARAMS, "EXTB_S"); } +int arcompact_handle0f_10_dasm(DASM_OPS_16) { return arcompact_handle0f_0x_helper_dasm(DASM_PARAMS, "EXTW_S"); } +int arcompact_handle0f_11_dasm(DASM_OPS_16) { return arcompact_handle0f_0x_helper_dasm(DASM_PARAMS, "ABS_S"); } +int arcompact_handle0f_12_dasm(DASM_OPS_16) { return arcompact_handle0f_0x_helper_dasm(DASM_PARAMS, "NOT_S"); } +int arcompact_handle0f_13_dasm(DASM_OPS_16) { return arcompact_handle0f_0x_helper_dasm(DASM_PARAMS, "NEG_S"); } +int arcompact_handle0f_14_dasm(DASM_OPS_16) { return arcompact_handle0f_0x_helper_dasm(DASM_PARAMS, "ADD1_S"); } +int arcompact_handle0f_15_dasm(DASM_OPS_16) { return arcompact_handle0f_0x_helper_dasm(DASM_PARAMS, "ADD2_S"); } +int arcompact_handle0f_16_dasm(DASM_OPS_16) { return arcompact_handle0f_0x_helper_dasm(DASM_PARAMS, "ADD3_S"); } +int arcompact_handle0f_18_dasm(DASM_OPS_16) { return arcompact_handle0f_0x_helper_dasm(DASM_PARAMS, "ASL_S"); } +int arcompact_handle0f_19_dasm(DASM_OPS_16) { return arcompact_handle0f_0x_helper_dasm(DASM_PARAMS, "LSR_S"); } +int arcompact_handle0f_1a_dasm(DASM_OPS_16) { return arcompact_handle0f_0x_helper_dasm(DASM_PARAMS, "ASR_S"); } +int arcompact_handle0f_1b_dasm(DASM_OPS_16) { return arcompact_handle0f_0x_helper_dasm(DASM_PARAMS, "ASL1_S"); } +int arcompact_handle0f_1c_dasm(DASM_OPS_16) { return arcompact_handle0f_0x_helper_dasm(DASM_PARAMS, "ASR1_S"); } +int arcompact_handle0f_1d_dasm(DASM_OPS_16) { return arcompact_handle0f_0x_helper_dasm(DASM_PARAMS, "LSR1_S"); } + +int arcompact_handle0f_0c_dasm(DASM_OPS_16) { print("MUL64_S mulres <- b * c (%08x)", op); return 2;} // special +int arcompact_handle0f_1e_dasm(DASM_OPS_16) { print("TRAP_S (%08x)", op); return 2;} // special +int arcompact_handle0f_1f_dasm(DASM_OPS_16) { print("BRK_S (%08x)", op); return 2;} // special int arcompact_handle_ld_helper_dasm(DASM_OPS_16, const char* optext, int shift, int swap) @@ -1231,60 +1255,59 @@ int arcompact_handle16_dasm(DASM_OPS_16) } +int arcompact_handle_l7_0x_helper_dasm(DASM_OPS_16, const char* optext) +{ + int breg, u; + + COMMON16_GET_breg; + COMMON16_GET_u5; + + REG_16BIT_RANGE(breg); + + print("%s %s, 0x%02x", optext, regnames[breg], u); + + return 2; + +} + int arcompact_handle17_00_dasm(DASM_OPS_16) { - int size = 2; - print("ASL_S b <- b asl u5 (%04x)", op); - return size; + return arcompact_handle_l7_0x_helper_dasm(DASM_PARAMS, "ASL_S"); } int arcompact_handle17_01_dasm(DASM_OPS_16) { - int size = 2; - print("LSR_S b <- b lsr u5 (%04x)", op); - return size; + return arcompact_handle_l7_0x_helper_dasm(DASM_PARAMS, "LSR_S"); } int arcompact_handle17_02_dasm(DASM_OPS_16) { - int size = 2; - print("ASR_S b <- b asr u5 (%04x)", op); - return size; + return arcompact_handle_l7_0x_helper_dasm(DASM_PARAMS, "ASR_S"); } int arcompact_handle17_03_dasm(DASM_OPS_16) { - int size = 2; - print("SUB_S b <- b - u5 (%04x)", op); - return size; + return arcompact_handle_l7_0x_helper_dasm(DASM_PARAMS, "SUB_S"); } int arcompact_handle17_04_dasm(DASM_OPS_16) { - int size = 2; - print("BSET_S b <- b | (1 << u5) (%04x)", op); - return size; + return arcompact_handle_l7_0x_helper_dasm(DASM_PARAMS, "BSET_S"); } int arcompact_handle17_05_dasm(DASM_OPS_16) { - int size = 2; - print("BCLR_S b <- b & !(1 << u5) (%04x)", op); - return size; + return arcompact_handle_l7_0x_helper_dasm(DASM_PARAMS, "BCLR_S"); } int arcompact_handle17_06_dasm(DASM_OPS_16) { - int size = 2; - print("BMSK_S (%04x)", op); - return size; + return arcompact_handle_l7_0x_helper_dasm(DASM_PARAMS, "BSMK_S"); } int arcompact_handle17_07_dasm(DASM_OPS_16) { - int size = 2; - print("BTST_S (%04x)", op); - return size; + return arcompact_handle_l7_0x_helper_dasm(DASM_PARAMS, "BTST_S"); } @@ -1583,6 +1606,64 @@ int arcompact_handle04_2f_3c_dasm(DASM_OPS_32) { print(" (% int arcompact_handle04_2f_3d_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} int arcompact_handle04_2f_3e_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} + + +int arcompact_handle05_2f_09_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_0a_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_0b_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_0c_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_0d_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_0e_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_0f_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_10_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_11_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_12_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_13_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_14_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_15_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_16_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_17_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_18_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_19_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_1a_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_1b_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_1c_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_1d_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_1e_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_1f_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_20_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_21_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_22_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_23_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_24_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_25_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_26_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_27_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_28_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_29_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_2a_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_2b_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_2c_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_2d_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_2e_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_2f_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_30_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_31_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_32_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_33_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_34_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_35_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_36_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_37_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_38_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_39_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3a_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3b_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3c_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3d_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3e_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} + + int arcompact_handle04_2f_3f_00_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} int arcompact_handle04_2f_3f_06_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} int arcompact_handle04_2f_3f_07_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} @@ -1643,6 +1724,71 @@ int arcompact_handle04_2f_3f_3d_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} int arcompact_handle04_2f_3f_3f_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_00_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_01_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_02_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_03_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_04_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_05_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_06_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_07_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_08_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_09_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_0a_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_0b_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_0c_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_0d_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_0e_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_0f_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_10_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_11_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_12_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_13_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_14_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_15_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_16_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_17_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_18_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_19_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_1a_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_1b_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_1c_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_1d_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_1e_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_1f_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_20_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_21_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_22_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_23_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_24_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_25_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_26_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_27_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_28_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_29_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_2a_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_2b_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_2c_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_2d_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_2e_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_2f_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_30_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_31_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_32_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_33_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_34_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_35_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_36_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_37_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_38_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_39_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_3a_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_3b_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_3c_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_3d_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_3e_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} +int arcompact_handle05_2f_3f_3f_dasm(DASM_OPS_32) { print(" (%08x)", op); return 4;} + diff --git a/src/emu/cpu/arcompact/arcompactdasm_ops.h b/src/emu/cpu/arcompact/arcompactdasm_ops.h index 2fd64d31c04..5ba8c846cac 100644 --- a/src/emu/cpu/arcompact/arcompactdasm_ops.h +++ b/src/emu/cpu/arcompact/arcompactdasm_ops.h @@ -115,7 +115,7 @@ int arcompact_handle05_0a_dasm(DASM_OPS_32); int arcompact_handle05_0b_dasm(DASM_OPS_32); int arcompact_handle05_28_dasm(DASM_OPS_32); int arcompact_handle05_29_dasm(DASM_OPS_32); -int arcompact_handle05_2f_dasm(DASM_OPS_32); +//int arcompact_handle05_2f_dasm(DASM_OPS_32); int arcompact_handle06_dasm(DASM_OPS_32); int arcompact_handle07_dasm(DASM_OPS_32); int arcompact_handle08_dasm(DASM_OPS_32); @@ -368,6 +368,137 @@ int arcompact_handle04_2f_3f_3d_dasm(DASM_OPS_32); //(" ( int arcompact_handle04_2f_3f_3e_dasm(DASM_OPS_32); //(" (%08x)", op); return 4;} int arcompact_handle04_2f_3f_3f_dasm(DASM_OPS_32); //(" (%08x)", op); return 4;} +int arcompact_handle05_2f_00_dasm(DASM_OPS_32); +int arcompact_handle05_2f_01_dasm(DASM_OPS_32); +int arcompact_handle05_2f_02_dasm(DASM_OPS_32); +int arcompact_handle05_2f_03_dasm(DASM_OPS_32); +int arcompact_handle05_2f_04_dasm(DASM_OPS_32); +int arcompact_handle05_2f_05_dasm(DASM_OPS_32); +int arcompact_handle05_2f_06_dasm(DASM_OPS_32); +int arcompact_handle05_2f_07_dasm(DASM_OPS_32); +int arcompact_handle05_2f_08_dasm(DASM_OPS_32); +int arcompact_handle05_2f_09_dasm(DASM_OPS_32); +int arcompact_handle05_2f_0a_dasm(DASM_OPS_32); +int arcompact_handle05_2f_0b_dasm(DASM_OPS_32); +int arcompact_handle05_2f_0c_dasm(DASM_OPS_32); +int arcompact_handle05_2f_0d_dasm(DASM_OPS_32); +int arcompact_handle05_2f_0e_dasm(DASM_OPS_32); +int arcompact_handle05_2f_0f_dasm(DASM_OPS_32); +int arcompact_handle05_2f_10_dasm(DASM_OPS_32); +int arcompact_handle05_2f_11_dasm(DASM_OPS_32); +int arcompact_handle05_2f_12_dasm(DASM_OPS_32); +int arcompact_handle05_2f_13_dasm(DASM_OPS_32); +int arcompact_handle05_2f_14_dasm(DASM_OPS_32); +int arcompact_handle05_2f_15_dasm(DASM_OPS_32); +int arcompact_handle05_2f_16_dasm(DASM_OPS_32); +int arcompact_handle05_2f_17_dasm(DASM_OPS_32); +int arcompact_handle05_2f_18_dasm(DASM_OPS_32); +int arcompact_handle05_2f_19_dasm(DASM_OPS_32); +int arcompact_handle05_2f_1a_dasm(DASM_OPS_32); +int arcompact_handle05_2f_1b_dasm(DASM_OPS_32); +int arcompact_handle05_2f_1c_dasm(DASM_OPS_32); +int arcompact_handle05_2f_1d_dasm(DASM_OPS_32); +int arcompact_handle05_2f_1e_dasm(DASM_OPS_32); +int arcompact_handle05_2f_1f_dasm(DASM_OPS_32); +int arcompact_handle05_2f_20_dasm(DASM_OPS_32); +int arcompact_handle05_2f_21_dasm(DASM_OPS_32); +int arcompact_handle05_2f_22_dasm(DASM_OPS_32); +int arcompact_handle05_2f_23_dasm(DASM_OPS_32); +int arcompact_handle05_2f_24_dasm(DASM_OPS_32); +int arcompact_handle05_2f_25_dasm(DASM_OPS_32); +int arcompact_handle05_2f_26_dasm(DASM_OPS_32); +int arcompact_handle05_2f_27_dasm(DASM_OPS_32); +int arcompact_handle05_2f_28_dasm(DASM_OPS_32); +int arcompact_handle05_2f_29_dasm(DASM_OPS_32); +int arcompact_handle05_2f_2a_dasm(DASM_OPS_32); +int arcompact_handle05_2f_2b_dasm(DASM_OPS_32); +int arcompact_handle05_2f_2c_dasm(DASM_OPS_32); +int arcompact_handle05_2f_2d_dasm(DASM_OPS_32); +int arcompact_handle05_2f_2e_dasm(DASM_OPS_32); +int arcompact_handle05_2f_2f_dasm(DASM_OPS_32); +int arcompact_handle05_2f_30_dasm(DASM_OPS_32); +int arcompact_handle05_2f_31_dasm(DASM_OPS_32); +int arcompact_handle05_2f_32_dasm(DASM_OPS_32); +int arcompact_handle05_2f_33_dasm(DASM_OPS_32); +int arcompact_handle05_2f_34_dasm(DASM_OPS_32); +int arcompact_handle05_2f_35_dasm(DASM_OPS_32); +int arcompact_handle05_2f_36_dasm(DASM_OPS_32); +int arcompact_handle05_2f_37_dasm(DASM_OPS_32); +int arcompact_handle05_2f_38_dasm(DASM_OPS_32); +int arcompact_handle05_2f_39_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3a_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3b_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3c_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3d_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3e_dasm(DASM_OPS_32); +//int arcompact_handle05_2f_3f_dasm(DASM_OPS_32); + +int arcompact_handle05_2f_3f_00_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_01_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_02_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_03_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_04_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_05_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_06_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_07_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_08_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_09_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_0a_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_0b_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_0c_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_0d_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_0e_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_0f_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_10_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_11_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_12_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_13_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_14_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_15_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_16_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_17_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_18_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_19_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_1a_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_1b_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_1c_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_1d_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_1e_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_1f_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_20_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_21_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_22_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_23_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_24_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_25_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_26_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_27_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_28_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_29_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_2a_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_2b_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_2c_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_2d_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_2e_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_2f_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_30_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_31_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_32_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_33_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_34_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_35_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_36_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_37_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_38_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_39_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_3a_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_3b_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_3c_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_3d_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_3e_dasm(DASM_OPS_32); +int arcompact_handle05_2f_3f_3f_dasm(DASM_OPS_32); + + int arcompact_handle04_38_dasm(DASM_OPS_32); //(" (%08x)", op); return 4;} int arcompact_handle04_39_dasm(DASM_OPS_32); //(" (%08x)", op); return 4;} int arcompact_handle04_3a_dasm(DASM_OPS_32); //(" (%08x)", op); return 4;}