COP1x opcode has been removed from the Release 6. Add a single decodetree entry for it, triggering Reserved Instruction if ever used. Remove unreachable check_insn_opc_removed() call. Signed-off-by: Philippe Mathieu-Daudé <f4bug@xxxxxxxxx> Reviewed-by: Richard Henderson <richard.henderson@xxxxxxxxxx> Message-Id: <20201208203704.243704-8-f4bug@xxxxxxxxx> --- target/mips/mips32r6.decode | 2 ++ target/mips/translate.c | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/target/mips/mips32r6.decode b/target/mips/mips32r6.decode index 259bac612ab..7b12a1bff25 100644 --- a/target/mips/mips32r6.decode +++ b/target/mips/mips32r6.decode @@ -16,4 +16,6 @@ LSA 000000 ..... ..... ..... 000 .. 000101 @lsa +REMOVED 010011 ----- ----- ----- ----- ------ # COP1X (COP3) + REMOVED 011100 ----- ----- ----- ----- ------ # SPECIAL2 diff --git a/target/mips/translate.c b/target/mips/translate.c index 01c1ee546e2..52397bce84b 100644 --- a/target/mips/translate.c +++ b/target/mips/translate.c @@ -28827,7 +28827,6 @@ static bool decode_opc_legacy(CPUMIPSState *env, DisasContext *ctx) break; case OPC_CP3: - check_insn_opc_removed(ctx, ISA_MIPS_R6); if (ctx->CP0_Config1 & (1 << CP0C1_FP)) { check_cp1_enabled(ctx); op1 = MASK_CP3(ctx->opcode); -- 2.26.2