@samitouri / QOSamiQemu / commits / 78b2b441a6

disas/riscv: Chain "nop" pseudo off "mv" pseudo

"mv" has already checked a condition that applies to "nop". Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-ID: <20260812223142.349142-32-richard.henderson@linaro.org> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

Richard Henderson committed Aug 12, 2026 at 15:31 UTC 78b2b441a6cc364d63874e0d35391345b36038b8
1 file changed +7 -3
disas/riscv.c
+7 -3
@@ -1035,7 +1035,7 @@ static const rvc_constraint rvcc_jal_ra[] = { rvc_rd_eq_ra, rvc_end };
1035 static const rvc_constraint rvcc_jalr_ra[] = { rvc_rd_eq_ra, rvc_imm_eq_zero,
1036 rvc_end };
1037 static const rvc_constraint rvcc_nop[] = { rvc_rd_eq_x0, rvc_rs1_eq_x0,
1038 - rvc_imm_eq_zero, rvc_end };
1038 + rvc_end };
1039 static const rvc_constraint rvcc_mv[] = { rvc_imm_eq_zero, rvc_end };
1040 static const rvc_constraint rvcc_not[] = { rvc_imm_eq_n1, rvc_end };
1041 static const rvc_constraint rvcc_neg[] = { rvc_rs1_eq_x0, rvc_end };
@@ -1108,11 +1108,15 @@ static const rv_comp_data rvcp_bge[] = {
1108 };
1109
1110 static const rv_comp_data rvcp_addi[] = {
1111 - { rv_op_nop, rvcc_nop },
1111 { rv_op_mv, rvcc_mv },
1112 { },
1113 };
1114
1115 +static const rv_comp_data rvcp_mv[] = {
1116 + { rv_op_nop, rvcc_nop },
1117 + { },
1118 +};
1119 +
1120 static const rv_comp_data rvcp_sltiu[] = {
1121 { rv_op_seqz, rvcc_seqz },
1122 { },
@@ -1869,7 +1873,7 @@ static const rv_opcode_data rvi_opcode_data[] = {
1873 { "c.lqsp", rv_codec_ci_lqsp, NULL, DECOMP(rv_op_lq) },
1874 { "c.sqsp", rv_codec_css_sqsp, NULL, DECOMP(rv_op_sq) },
1875 { "nop", rv_codec_i, rv_fmt_none },
1872 - { "mv", rv_codec_i, rv_fmt_rd_rs1 },
1876 + { "mv", rv_codec_i, rv_fmt_rd_rs1, rvcp_mv },
1877 { "not", rv_codec_i, rv_fmt_rd_rs1 },
1878 { "neg", rv_codec_r, rv_fmt_rd_rs2 },
1879 { "negw", rv_codec_r, rv_fmt_rd_rs2 },