target/mips: Guard check_insn_opc_user_only with INSN_R5900 check
Avoid using check_opc_user_only() as a decision making code wrt various architectures. Use ctx->insn_flags checks instead. Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com> Signed-off-by: Fredrik Noring <noring@nocrew.org> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
This commit is contained in:
parent
9dc324ce66
commit
55fc7a69aa
@ -28313,7 +28313,9 @@ static void decode_opc(CPUMIPSState *env, DisasContext *ctx)
|
|||||||
break;
|
break;
|
||||||
case OPC_LL: /* Load and stores */
|
case OPC_LL: /* Load and stores */
|
||||||
check_insn(ctx, ISA_MIPS2);
|
check_insn(ctx, ISA_MIPS2);
|
||||||
check_insn_opc_user_only(ctx, INSN_R5900);
|
if (ctx->insn_flags & INSN_R5900) {
|
||||||
|
check_insn_opc_user_only(ctx, INSN_R5900);
|
||||||
|
}
|
||||||
/* Fallthrough */
|
/* Fallthrough */
|
||||||
case OPC_LWL:
|
case OPC_LWL:
|
||||||
case OPC_LWR:
|
case OPC_LWR:
|
||||||
@ -28339,7 +28341,9 @@ static void decode_opc(CPUMIPSState *env, DisasContext *ctx)
|
|||||||
case OPC_SC:
|
case OPC_SC:
|
||||||
check_insn(ctx, ISA_MIPS2);
|
check_insn(ctx, ISA_MIPS2);
|
||||||
check_insn_opc_removed(ctx, ISA_MIPS32R6);
|
check_insn_opc_removed(ctx, ISA_MIPS32R6);
|
||||||
check_insn_opc_user_only(ctx, INSN_R5900);
|
if (ctx->insn_flags & INSN_R5900) {
|
||||||
|
check_insn_opc_user_only(ctx, INSN_R5900);
|
||||||
|
}
|
||||||
gen_st_cond(ctx, op, rt, rs, imm);
|
gen_st_cond(ctx, op, rt, rs, imm);
|
||||||
break;
|
break;
|
||||||
case OPC_CACHE:
|
case OPC_CACHE:
|
||||||
@ -28607,7 +28611,9 @@ static void decode_opc(CPUMIPSState *env, DisasContext *ctx)
|
|||||||
#if defined(TARGET_MIPS64)
|
#if defined(TARGET_MIPS64)
|
||||||
/* MIPS64 opcodes */
|
/* MIPS64 opcodes */
|
||||||
case OPC_LLD:
|
case OPC_LLD:
|
||||||
check_insn_opc_user_only(ctx, INSN_R5900);
|
if (ctx->insn_flags & INSN_R5900) {
|
||||||
|
check_insn_opc_user_only(ctx, INSN_R5900);
|
||||||
|
}
|
||||||
/* fall through */
|
/* fall through */
|
||||||
case OPC_LDL:
|
case OPC_LDL:
|
||||||
case OPC_LDR:
|
case OPC_LDR:
|
||||||
@ -28631,7 +28637,9 @@ static void decode_opc(CPUMIPSState *env, DisasContext *ctx)
|
|||||||
case OPC_SCD:
|
case OPC_SCD:
|
||||||
check_insn_opc_removed(ctx, ISA_MIPS32R6);
|
check_insn_opc_removed(ctx, ISA_MIPS32R6);
|
||||||
check_insn(ctx, ISA_MIPS3);
|
check_insn(ctx, ISA_MIPS3);
|
||||||
check_insn_opc_user_only(ctx, INSN_R5900);
|
if (ctx->insn_flags & INSN_R5900) {
|
||||||
|
check_insn_opc_user_only(ctx, INSN_R5900);
|
||||||
|
}
|
||||||
check_mips_64(ctx);
|
check_mips_64(ctx);
|
||||||
gen_st_cond(ctx, op, rt, rs, imm);
|
gen_st_cond(ctx, op, rt, rs, imm);
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user