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 },