target/mips: Remove 'C790 Multimedia Instructions' dead code

We have almost 400 lines of code full of /* TODO */ comments
which end calling gen_reserved_instruction().

As we are not going to implement them, and all the caller's
switch() default cases already call gen_reserved_instruction(),
we can remove this altogether.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20210214175912.732946-14-f4bug@amsat.org>
This commit is contained in:
Philippe Mathieu-Daudé 2021-02-13 12:08:28 +01:00
parent 94c882f7d1
commit e71d0f56ce

View File

@ -1357,207 +1357,12 @@ enum {
enum { enum {
MMI_OPC_MADD = 0x00 | MMI_OPC_CLASS_MMI, /* Same as OPC_MADD */ MMI_OPC_MADD = 0x00 | MMI_OPC_CLASS_MMI, /* Same as OPC_MADD */
MMI_OPC_MADDU = 0x01 | MMI_OPC_CLASS_MMI, /* Same as OPC_MADDU */ MMI_OPC_MADDU = 0x01 | MMI_OPC_CLASS_MMI, /* Same as OPC_MADDU */
MMI_OPC_PLZCW = 0x04 | MMI_OPC_CLASS_MMI,
MMI_OPC_CLASS_MMI0 = 0x08 | MMI_OPC_CLASS_MMI,
MMI_OPC_CLASS_MMI2 = 0x09 | MMI_OPC_CLASS_MMI,
MMI_OPC_MULT1 = 0x18 | MMI_OPC_CLASS_MMI, /* Same minor as OPC_MULT */ MMI_OPC_MULT1 = 0x18 | MMI_OPC_CLASS_MMI, /* Same minor as OPC_MULT */
MMI_OPC_MULTU1 = 0x19 | MMI_OPC_CLASS_MMI, /* Same min. as OPC_MULTU */ MMI_OPC_MULTU1 = 0x19 | MMI_OPC_CLASS_MMI, /* Same min. as OPC_MULTU */
MMI_OPC_DIV1 = 0x1A | MMI_OPC_CLASS_MMI, /* Same minor as OPC_DIV */ MMI_OPC_DIV1 = 0x1A | MMI_OPC_CLASS_MMI, /* Same minor as OPC_DIV */
MMI_OPC_DIVU1 = 0x1B | MMI_OPC_CLASS_MMI, /* Same minor as OPC_DIVU */ MMI_OPC_DIVU1 = 0x1B | MMI_OPC_CLASS_MMI, /* Same minor as OPC_DIVU */
MMI_OPC_MADD1 = 0x20 | MMI_OPC_CLASS_MMI, MMI_OPC_MADD1 = 0x20 | MMI_OPC_CLASS_MMI,
MMI_OPC_MADDU1 = 0x21 | MMI_OPC_CLASS_MMI, MMI_OPC_MADDU1 = 0x21 | MMI_OPC_CLASS_MMI,
MMI_OPC_CLASS_MMI1 = 0x28 | MMI_OPC_CLASS_MMI,
MMI_OPC_CLASS_MMI3 = 0x29 | MMI_OPC_CLASS_MMI,
MMI_OPC_PMFHL = 0x30 | MMI_OPC_CLASS_MMI,
MMI_OPC_PMTHL = 0x31 | MMI_OPC_CLASS_MMI,
MMI_OPC_PSLLH = 0x34 | MMI_OPC_CLASS_MMI,
MMI_OPC_PSRLH = 0x36 | MMI_OPC_CLASS_MMI,
MMI_OPC_PSRAH = 0x37 | MMI_OPC_CLASS_MMI,
MMI_OPC_PSLLW = 0x3C | MMI_OPC_CLASS_MMI,
MMI_OPC_PSRLW = 0x3E | MMI_OPC_CLASS_MMI,
MMI_OPC_PSRAW = 0x3F | MMI_OPC_CLASS_MMI,
};
/*
* MMI instructions with opcode field = MMI and bits 5..0 = MMI0:
*
* 31 26 10 6 5 0
* +--------+----------------------+--------+--------+
* | MMI | |function| MMI0 |
* +--------+----------------------+--------+--------+
*
* function bits 7..6
* bits | 0 | 1 | 2 | 3
* 10..8 | 00 | 01 | 10 | 11
* -------+-------+-------+-------+-------
* 0 000 | PADDW | PSUBW | PCGTW | PMAXW
* 1 001 | PADDH | PSUBH | PCGTH | PMAXH
* 2 010 | PADDB | PSUBB | PCGTB | *
* 3 011 | * | * | * | *
* 4 100 | PADDSW| PSUBSW| PEXTLW| PPACW
* 5 101 | PADDSH| PSUBSH| PEXTLH| PPACH
* 6 110 | PADDSB| PSUBSB| PEXTLB| PPACB
* 7 111 | * | * | PEXT5 | PPAC5
*/
#define MASK_MMI0(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
enum {
MMI_OPC_0_PADDW = (0x00 << 6) | MMI_OPC_CLASS_MMI0,
MMI_OPC_0_PSUBW = (0x01 << 6) | MMI_OPC_CLASS_MMI0,
MMI_OPC_0_PCGTW = (0x02 << 6) | MMI_OPC_CLASS_MMI0,
MMI_OPC_0_PMAXW = (0x03 << 6) | MMI_OPC_CLASS_MMI0,
MMI_OPC_0_PADDH = (0x04 << 6) | MMI_OPC_CLASS_MMI0,
MMI_OPC_0_PSUBH = (0x05 << 6) | MMI_OPC_CLASS_MMI0,
MMI_OPC_0_PCGTH = (0x06 << 6) | MMI_OPC_CLASS_MMI0,
MMI_OPC_0_PMAXH = (0x07 << 6) | MMI_OPC_CLASS_MMI0,
MMI_OPC_0_PADDB = (0x08 << 6) | MMI_OPC_CLASS_MMI0,
MMI_OPC_0_PSUBB = (0x09 << 6) | MMI_OPC_CLASS_MMI0,
MMI_OPC_0_PCGTB = (0x0A << 6) | MMI_OPC_CLASS_MMI0,
MMI_OPC_0_PADDSW = (0x10 << 6) | MMI_OPC_CLASS_MMI0,
MMI_OPC_0_PSUBSW = (0x11 << 6) | MMI_OPC_CLASS_MMI0,
MMI_OPC_0_PEXTLW = (0x12 << 6) | MMI_OPC_CLASS_MMI0,
MMI_OPC_0_PPACW = (0x13 << 6) | MMI_OPC_CLASS_MMI0,
MMI_OPC_0_PADDSH = (0x14 << 6) | MMI_OPC_CLASS_MMI0,
MMI_OPC_0_PSUBSH = (0x15 << 6) | MMI_OPC_CLASS_MMI0,
MMI_OPC_0_PEXTLH = (0x16 << 6) | MMI_OPC_CLASS_MMI0,
MMI_OPC_0_PPACH = (0x17 << 6) | MMI_OPC_CLASS_MMI0,
MMI_OPC_0_PADDSB = (0x18 << 6) | MMI_OPC_CLASS_MMI0,
MMI_OPC_0_PSUBSB = (0x19 << 6) | MMI_OPC_CLASS_MMI0,
MMI_OPC_0_PEXTLB = (0x1A << 6) | MMI_OPC_CLASS_MMI0,
MMI_OPC_0_PPACB = (0x1B << 6) | MMI_OPC_CLASS_MMI0,
MMI_OPC_0_PEXT5 = (0x1E << 6) | MMI_OPC_CLASS_MMI0,
MMI_OPC_0_PPAC5 = (0x1F << 6) | MMI_OPC_CLASS_MMI0,
};
/*
* MMI instructions with opcode field = MMI and bits 5..0 = MMI1:
*
* 31 26 10 6 5 0
* +--------+----------------------+--------+--------+
* | MMI | |function| MMI1 |
* +--------+----------------------+--------+--------+
*
* function bits 7..6
* bits | 0 | 1 | 2 | 3
* 10..8 | 00 | 01 | 10 | 11
* -------+-------+-------+-------+-------
* 0 000 | * | PABSW | PCEQW | PMINW
* 1 001 | PADSBH| PABSH | PCEQH | PMINH
* 2 010 | * | * | PCEQB | *
* 3 011 | * | * | * | *
* 4 100 | PADDUW| PSUBUW| PEXTUW| *
* 5 101 | PADDUH| PSUBUH| PEXTUH| *
* 6 110 | PADDUB| PSUBUB| PEXTUB| QFSRV
* 7 111 | * | * | * | *
*/
#define MASK_MMI1(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
enum {
MMI_OPC_1_PABSW = (0x01 << 6) | MMI_OPC_CLASS_MMI1,
MMI_OPC_1_PCEQW = (0x02 << 6) | MMI_OPC_CLASS_MMI1,
MMI_OPC_1_PMINW = (0x03 << 6) | MMI_OPC_CLASS_MMI1,
MMI_OPC_1_PADSBH = (0x04 << 6) | MMI_OPC_CLASS_MMI1,
MMI_OPC_1_PABSH = (0x05 << 6) | MMI_OPC_CLASS_MMI1,
MMI_OPC_1_PCEQH = (0x06 << 6) | MMI_OPC_CLASS_MMI1,
MMI_OPC_1_PMINH = (0x07 << 6) | MMI_OPC_CLASS_MMI1,
MMI_OPC_1_PCEQB = (0x0A << 6) | MMI_OPC_CLASS_MMI1,
MMI_OPC_1_PADDUW = (0x10 << 6) | MMI_OPC_CLASS_MMI1,
MMI_OPC_1_PSUBUW = (0x11 << 6) | MMI_OPC_CLASS_MMI1,
MMI_OPC_1_PEXTUW = (0x12 << 6) | MMI_OPC_CLASS_MMI1,
MMI_OPC_1_PADDUH = (0x14 << 6) | MMI_OPC_CLASS_MMI1,
MMI_OPC_1_PSUBUH = (0x15 << 6) | MMI_OPC_CLASS_MMI1,
MMI_OPC_1_PEXTUH = (0x16 << 6) | MMI_OPC_CLASS_MMI1,
MMI_OPC_1_PADDUB = (0x18 << 6) | MMI_OPC_CLASS_MMI1,
MMI_OPC_1_PSUBUB = (0x19 << 6) | MMI_OPC_CLASS_MMI1,
MMI_OPC_1_PEXTUB = (0x1A << 6) | MMI_OPC_CLASS_MMI1,
MMI_OPC_1_QFSRV = (0x1B << 6) | MMI_OPC_CLASS_MMI1,
};
/*
* MMI instructions with opcode field = MMI and bits 5..0 = MMI2:
*
* 31 26 10 6 5 0
* +--------+----------------------+--------+--------+
* | MMI | |function| MMI2 |
* +--------+----------------------+--------+--------+
*
* function bits 7..6
* bits | 0 | 1 | 2 | 3
* 10..8 | 00 | 01 | 10 | 11
* -------+-------+-------+-------+-------
* 0 000 | PMADDW| * | PSLLVW| PSRLVW
* 1 001 | PMSUBW| * | * | *
* 2 010 | PMFHI | PMFLO | PINTH | *
* 3 011 | PMULTW| PDIVW | PCPYLD| *
* 4 100 | PMADDH| PHMADH| PAND | PXOR
* 5 101 | PMSUBH| PHMSBH| * | *
* 6 110 | * | * | PEXEH | PREVH
* 7 111 | PMULTH| PDIVBW| PEXEW | PROT3W
*/
#define MASK_MMI2(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
enum {
MMI_OPC_2_PMADDW = (0x00 << 6) | MMI_OPC_CLASS_MMI2,
MMI_OPC_2_PSLLVW = (0x02 << 6) | MMI_OPC_CLASS_MMI2,
MMI_OPC_2_PSRLVW = (0x03 << 6) | MMI_OPC_CLASS_MMI2,
MMI_OPC_2_PMSUBW = (0x04 << 6) | MMI_OPC_CLASS_MMI2,
MMI_OPC_2_PMFHI = (0x08 << 6) | MMI_OPC_CLASS_MMI2,
MMI_OPC_2_PMFLO = (0x09 << 6) | MMI_OPC_CLASS_MMI2,
MMI_OPC_2_PINTH = (0x0A << 6) | MMI_OPC_CLASS_MMI2,
MMI_OPC_2_PMULTW = (0x0C << 6) | MMI_OPC_CLASS_MMI2,
MMI_OPC_2_PDIVW = (0x0D << 6) | MMI_OPC_CLASS_MMI2,
MMI_OPC_2_PCPYLD = (0x0E << 6) | MMI_OPC_CLASS_MMI2,
MMI_OPC_2_PMADDH = (0x10 << 6) | MMI_OPC_CLASS_MMI2,
MMI_OPC_2_PHMADH = (0x11 << 6) | MMI_OPC_CLASS_MMI2,
MMI_OPC_2_PAND = (0x12 << 6) | MMI_OPC_CLASS_MMI2,
MMI_OPC_2_PXOR = (0x13 << 6) | MMI_OPC_CLASS_MMI2,
MMI_OPC_2_PMSUBH = (0x14 << 6) | MMI_OPC_CLASS_MMI2,
MMI_OPC_2_PHMSBH = (0x15 << 6) | MMI_OPC_CLASS_MMI2,
MMI_OPC_2_PEXEH = (0x1A << 6) | MMI_OPC_CLASS_MMI2,
MMI_OPC_2_PREVH = (0x1B << 6) | MMI_OPC_CLASS_MMI2,
MMI_OPC_2_PMULTH = (0x1C << 6) | MMI_OPC_CLASS_MMI2,
MMI_OPC_2_PDIVBW = (0x1D << 6) | MMI_OPC_CLASS_MMI2,
MMI_OPC_2_PEXEW = (0x1E << 6) | MMI_OPC_CLASS_MMI2,
MMI_OPC_2_PROT3W = (0x1F << 6) | MMI_OPC_CLASS_MMI2,
};
/*
* MMI instructions with opcode field = MMI and bits 5..0 = MMI3:
*
* 31 26 10 6 5 0
* +--------+----------------------+--------+--------+
* | MMI | |function| MMI3 |
* +--------+----------------------+--------+--------+
*
* function bits 7..6
* bits | 0 | 1 | 2 | 3
* 10..8 | 00 | 01 | 10 | 11
* -------+-------+-------+-------+-------
* 0 000 |PMADDUW| * | * | PSRAVW
* 1 001 | * | * | * | *
* 2 010 | PMTHI | PMTLO | PINTEH| *
* 3 011 |PMULTUW| PDIVUW| PCPYUD| *
* 4 100 | * | * | POR | PNOR
* 5 101 | * | * | * | *
* 6 110 | * | * | PEXCH | PCPYH
* 7 111 | * | * | PEXCW | *
*/
#define MASK_MMI3(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
enum {
MMI_OPC_3_PMADDUW = (0x00 << 6) | MMI_OPC_CLASS_MMI3,
MMI_OPC_3_PSRAVW = (0x03 << 6) | MMI_OPC_CLASS_MMI3,
MMI_OPC_3_PMTHI = (0x08 << 6) | MMI_OPC_CLASS_MMI3,
MMI_OPC_3_PMTLO = (0x09 << 6) | MMI_OPC_CLASS_MMI3,
MMI_OPC_3_PINTEH = (0x0A << 6) | MMI_OPC_CLASS_MMI3,
MMI_OPC_3_PMULTUW = (0x0C << 6) | MMI_OPC_CLASS_MMI3,
MMI_OPC_3_PDIVUW = (0x0D << 6) | MMI_OPC_CLASS_MMI3,
MMI_OPC_3_PCPYUD = (0x0E << 6) | MMI_OPC_CLASS_MMI3,
MMI_OPC_3_POR = (0x12 << 6) | MMI_OPC_CLASS_MMI3,
MMI_OPC_3_PNOR = (0x13 << 6) | MMI_OPC_CLASS_MMI3,
MMI_OPC_3_PEXCH = (0x1A << 6) | MMI_OPC_CLASS_MMI3,
MMI_OPC_3_PCPYH = (0x1B << 6) | MMI_OPC_CLASS_MMI3,
MMI_OPC_3_PEXCW = (0x1E << 6) | MMI_OPC_CLASS_MMI3,
}; };
/* global register indices */ /* global register indices */
@ -24042,28 +23847,6 @@ static void decode_opc_special(CPUMIPSState *env, DisasContext *ctx)
} }
#if defined(TARGET_MIPS64)
/*
*
* MMI (MultiMedia Interface) ASE instructions
* ===========================================
*/
/*
* MMI instructions category: data communication
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*
* PCPYH PEXCH PEXTLB PINTH PPACB PEXT5 PREVH
* PCPYLD PEXCW PEXTLH PINTEH PPACH PPAC5 PROT3W
* PCPYUD PEXEH PEXTLW PPACW
* PEXEW PEXTUB
* PEXTUH
* PEXTUW
*/
#endif
static void decode_opc_special2_legacy(CPUMIPSState *env, DisasContext *ctx) static void decode_opc_special2_legacy(CPUMIPSState *env, DisasContext *ctx)
{ {
int rs, rt, rd; int rs, rt, rd;
@ -24779,137 +24562,6 @@ static void decode_opc_special3_legacy(CPUMIPSState *env, DisasContext *ctx)
#if defined(TARGET_MIPS64) #if defined(TARGET_MIPS64)
static void decode_mmi0(CPUMIPSState *env, DisasContext *ctx)
{
uint32_t opc = MASK_MMI0(ctx->opcode);
switch (opc) {
case MMI_OPC_0_PADDW: /* TODO: MMI_OPC_0_PADDW */
case MMI_OPC_0_PSUBW: /* TODO: MMI_OPC_0_PSUBW */
case MMI_OPC_0_PCGTW: /* TODO: MMI_OPC_0_PCGTW */
case MMI_OPC_0_PMAXW: /* TODO: MMI_OPC_0_PMAXW */
case MMI_OPC_0_PADDH: /* TODO: MMI_OPC_0_PADDH */
case MMI_OPC_0_PSUBH: /* TODO: MMI_OPC_0_PSUBH */
case MMI_OPC_0_PCGTH: /* TODO: MMI_OPC_0_PCGTH */
case MMI_OPC_0_PMAXH: /* TODO: MMI_OPC_0_PMAXH */
case MMI_OPC_0_PADDB: /* TODO: MMI_OPC_0_PADDB */
case MMI_OPC_0_PSUBB: /* TODO: MMI_OPC_0_PSUBB */
case MMI_OPC_0_PCGTB: /* TODO: MMI_OPC_0_PCGTB */
case MMI_OPC_0_PADDSW: /* TODO: MMI_OPC_0_PADDSW */
case MMI_OPC_0_PSUBSW: /* TODO: MMI_OPC_0_PSUBSW */
case MMI_OPC_0_PEXTLW: /* TODO: MMI_OPC_0_PEXTLW */
case MMI_OPC_0_PPACW: /* TODO: MMI_OPC_0_PPACW */
case MMI_OPC_0_PADDSH: /* TODO: MMI_OPC_0_PADDSH */
case MMI_OPC_0_PSUBSH: /* TODO: MMI_OPC_0_PSUBSH */
case MMI_OPC_0_PEXTLH: /* TODO: MMI_OPC_0_PEXTLH */
case MMI_OPC_0_PPACH: /* TODO: MMI_OPC_0_PPACH */
case MMI_OPC_0_PADDSB: /* TODO: MMI_OPC_0_PADDSB */
case MMI_OPC_0_PSUBSB: /* TODO: MMI_OPC_0_PSUBSB */
case MMI_OPC_0_PEXTLB: /* TODO: MMI_OPC_0_PEXTLB */
case MMI_OPC_0_PPACB: /* TODO: MMI_OPC_0_PPACB */
case MMI_OPC_0_PEXT5: /* TODO: MMI_OPC_0_PEXT5 */
case MMI_OPC_0_PPAC5: /* TODO: MMI_OPC_0_PPAC5 */
gen_reserved_instruction(ctx); /* TODO: MMI_OPC_CLASS_MMI0 */
break;
default:
MIPS_INVAL("TX79 MMI class MMI0");
gen_reserved_instruction(ctx);
break;
}
}
static void decode_mmi1(CPUMIPSState *env, DisasContext *ctx)
{
uint32_t opc = MASK_MMI1(ctx->opcode);
switch (opc) {
case MMI_OPC_1_PABSW: /* TODO: MMI_OPC_1_PABSW */
case MMI_OPC_1_PCEQW: /* TODO: MMI_OPC_1_PCEQW */
case MMI_OPC_1_PMINW: /* TODO: MMI_OPC_1_PMINW */
case MMI_OPC_1_PADSBH: /* TODO: MMI_OPC_1_PADSBH */
case MMI_OPC_1_PABSH: /* TODO: MMI_OPC_1_PABSH */
case MMI_OPC_1_PCEQH: /* TODO: MMI_OPC_1_PCEQH */
case MMI_OPC_1_PMINH: /* TODO: MMI_OPC_1_PMINH */
case MMI_OPC_1_PCEQB: /* TODO: MMI_OPC_1_PCEQB */
case MMI_OPC_1_PADDUW: /* TODO: MMI_OPC_1_PADDUW */
case MMI_OPC_1_PSUBUW: /* TODO: MMI_OPC_1_PSUBUW */
case MMI_OPC_1_PEXTUW: /* TODO: MMI_OPC_1_PEXTUW */
case MMI_OPC_1_PADDUH: /* TODO: MMI_OPC_1_PADDUH */
case MMI_OPC_1_PSUBUH: /* TODO: MMI_OPC_1_PSUBUH */
case MMI_OPC_1_PEXTUH: /* TODO: MMI_OPC_1_PEXTUH */
case MMI_OPC_1_PADDUB: /* TODO: MMI_OPC_1_PADDUB */
case MMI_OPC_1_PSUBUB: /* TODO: MMI_OPC_1_PSUBUB */
case MMI_OPC_1_PEXTUB: /* TODO: MMI_OPC_1_PEXTUB */
case MMI_OPC_1_QFSRV: /* TODO: MMI_OPC_1_QFSRV */
gen_reserved_instruction(ctx); /* TODO: MMI_OPC_CLASS_MMI1 */
break;
default:
MIPS_INVAL("TX79 MMI class MMI1");
gen_reserved_instruction(ctx);
break;
}
}
static void decode_mmi2(CPUMIPSState *env, DisasContext *ctx)
{
uint32_t opc = MASK_MMI2(ctx->opcode);
switch (opc) {
case MMI_OPC_2_PMADDW: /* TODO: MMI_OPC_2_PMADDW */
case MMI_OPC_2_PSLLVW: /* TODO: MMI_OPC_2_PSLLVW */
case MMI_OPC_2_PSRLVW: /* TODO: MMI_OPC_2_PSRLVW */
case MMI_OPC_2_PMSUBW: /* TODO: MMI_OPC_2_PMSUBW */
case MMI_OPC_2_PMFHI: /* TODO: MMI_OPC_2_PMFHI */
case MMI_OPC_2_PMFLO: /* TODO: MMI_OPC_2_PMFLO */
case MMI_OPC_2_PINTH: /* TODO: MMI_OPC_2_PINTH */
case MMI_OPC_2_PMULTW: /* TODO: MMI_OPC_2_PMULTW */
case MMI_OPC_2_PDIVW: /* TODO: MMI_OPC_2_PDIVW */
case MMI_OPC_2_PMADDH: /* TODO: MMI_OPC_2_PMADDH */
case MMI_OPC_2_PHMADH: /* TODO: MMI_OPC_2_PHMADH */
case MMI_OPC_2_PAND: /* TODO: MMI_OPC_2_PAND */
case MMI_OPC_2_PXOR: /* TODO: MMI_OPC_2_PXOR */
case MMI_OPC_2_PMSUBH: /* TODO: MMI_OPC_2_PMSUBH */
case MMI_OPC_2_PHMSBH: /* TODO: MMI_OPC_2_PHMSBH */
case MMI_OPC_2_PEXEH: /* TODO: MMI_OPC_2_PEXEH */
case MMI_OPC_2_PREVH: /* TODO: MMI_OPC_2_PREVH */
case MMI_OPC_2_PMULTH: /* TODO: MMI_OPC_2_PMULTH */
case MMI_OPC_2_PDIVBW: /* TODO: MMI_OPC_2_PDIVBW */
case MMI_OPC_2_PEXEW: /* TODO: MMI_OPC_2_PEXEW */
case MMI_OPC_2_PROT3W: /* TODO: MMI_OPC_2_PROT3W */
gen_reserved_instruction(ctx); /* TODO: MMI_OPC_CLASS_MMI2 */
break;
default:
MIPS_INVAL("TX79 MMI class MMI2");
gen_reserved_instruction(ctx);
break;
}
}
static void decode_mmi3(CPUMIPSState *env, DisasContext *ctx)
{
uint32_t opc = MASK_MMI3(ctx->opcode);
switch (opc) {
case MMI_OPC_3_PMADDUW: /* TODO: MMI_OPC_3_PMADDUW */
case MMI_OPC_3_PSRAVW: /* TODO: MMI_OPC_3_PSRAVW */
case MMI_OPC_3_PMTHI: /* TODO: MMI_OPC_3_PMTHI */
case MMI_OPC_3_PMTLO: /* TODO: MMI_OPC_3_PMTLO */
case MMI_OPC_3_PINTEH: /* TODO: MMI_OPC_3_PINTEH */
case MMI_OPC_3_PMULTUW: /* TODO: MMI_OPC_3_PMULTUW */
case MMI_OPC_3_PDIVUW: /* TODO: MMI_OPC_3_PDIVUW */
case MMI_OPC_3_POR: /* TODO: MMI_OPC_3_POR */
case MMI_OPC_3_PNOR: /* TODO: MMI_OPC_3_PNOR */
case MMI_OPC_3_PEXCH: /* TODO: MMI_OPC_3_PEXCH */
case MMI_OPC_3_PEXCW: /* TODO: MMI_OPC_3_PEXCW */
gen_reserved_instruction(ctx); /* TODO: MMI_OPC_CLASS_MMI3 */
break;
default:
MIPS_INVAL("TX79 MMI class MMI3");
gen_reserved_instruction(ctx);
break;
}
}
static void decode_mmi(CPUMIPSState *env, DisasContext *ctx) static void decode_mmi(CPUMIPSState *env, DisasContext *ctx)
{ {
uint32_t opc = MASK_MMI(ctx->opcode); uint32_t opc = MASK_MMI(ctx->opcode);
@ -24918,18 +24570,6 @@ static void decode_mmi(CPUMIPSState *env, DisasContext *ctx)
int rd = extract32(ctx->opcode, 11, 5); int rd = extract32(ctx->opcode, 11, 5);
switch (opc) { switch (opc) {
case MMI_OPC_CLASS_MMI0:
decode_mmi0(env, ctx);
break;
case MMI_OPC_CLASS_MMI1:
decode_mmi1(env, ctx);
break;
case MMI_OPC_CLASS_MMI2:
decode_mmi2(env, ctx);
break;
case MMI_OPC_CLASS_MMI3:
decode_mmi3(env, ctx);
break;
case MMI_OPC_MULT1: case MMI_OPC_MULT1:
case MMI_OPC_MULTU1: case MMI_OPC_MULTU1:
case MMI_OPC_MADD: case MMI_OPC_MADD:
@ -24942,17 +24582,6 @@ static void decode_mmi(CPUMIPSState *env, DisasContext *ctx)
case MMI_OPC_DIVU1: case MMI_OPC_DIVU1:
gen_div1_tx79(ctx, opc, rs, rt); gen_div1_tx79(ctx, opc, rs, rt);
break; break;
case MMI_OPC_PLZCW: /* TODO: MMI_OPC_PLZCW */
case MMI_OPC_PMFHL: /* TODO: MMI_OPC_PMFHL */
case MMI_OPC_PMTHL: /* TODO: MMI_OPC_PMTHL */
case MMI_OPC_PSLLH: /* TODO: MMI_OPC_PSLLH */
case MMI_OPC_PSRLH: /* TODO: MMI_OPC_PSRLH */
case MMI_OPC_PSRAH: /* TODO: MMI_OPC_PSRAH */
case MMI_OPC_PSLLW: /* TODO: MMI_OPC_PSLLW */
case MMI_OPC_PSRLW: /* TODO: MMI_OPC_PSRLW */
case MMI_OPC_PSRAW: /* TODO: MMI_OPC_PSRAW */
gen_reserved_instruction(ctx); /* TODO: MMI_OPC_CLASS_MMI */
break;
default: default:
MIPS_INVAL("TX79 MMI class"); MIPS_INVAL("TX79 MMI class");
gen_reserved_instruction(ctx); gen_reserved_instruction(ctx);