target/mips: Guard check_insn with INSN_R5900 check

Explicitely mark handling of PREF instruction for R5900 as
treating the same as NOP.

Backports commit 992e8176d36882983bb04f0259f7151a36d003a1 from qemu
This commit is contained in:
Fredrik Noring 2018-11-23 18:39:35 -05:00 committed by Lioncash
parent a79d4b6fe7
commit ed586cfa46
No known key found for this signature in database
GPG Key ID: 4E3C3CC1031BA9C7

View File

@ -28550,9 +28550,12 @@ static void decode_opc(CPUMIPSState *env, DisasContext *ctx, bool *insn_need_pat
break;
case OPC_PREF:
check_insn_opc_removed(ctx, ISA_MIPS32R6);
check_insn(ctx, ISA_MIPS4 | ISA_MIPS32 |
INSN_R5900);
/* Treat as NOP. */
if (ctx->insn_flags & INSN_R5900) {
/* Treat as NOP. */
} else {
check_insn(ctx, ISA_MIPS4 | ISA_MIPS32);
/* Treat as NOP. */
}
break;
/* Floating point (COP1). */