[PULL v2 64/96] disas/riscv: Chain "nop" pseudo off "mv" pseudo
[email protected] Mon, 24 Aug 2026 15:47:34 +1000
Newsgroups
org.nongnu.qemu-devel
Message-ID
<[email protected] >
From: Richard Henderson <[email protected] >
"mv" has already checked a condition that applies to "nop".
Reviewed-by: Alistair Francis <[email protected] >
Signed-off-by: Richard Henderson <[email protected] >
Message-ID: <[email protected] >
Signed-off-by: Alistair Francis <[email protected] >
---
disas/riscv.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/disas/riscv.c b/disas/riscv.c
index 91f6d9e4af..7fa76b2d15 100644
--- a/disas/riscv.c
+++ b/disas/riscv.c
@@ -1035,7 +1035,7 @@ static const rvc_constraint rvcc_jal_ra[] = { rvc_rd_eq_ra, rvc_end };
static const rvc_constraint rvcc_jalr_ra[] = { rvc_rd_eq_ra, rvc_imm_eq_zero,
rvc_end };
static const rvc_constraint rvcc_nop[] = { rvc_rd_eq_x0, rvc_rs1_eq_x0,
- rvc_imm_eq_zero, rvc_end };
+ rvc_end };
static const rvc_constraint rvcc_mv[] = { rvc_imm_eq_zero, rvc_end };
static const rvc_constraint rvcc_not[] = { rvc_imm_eq_n1, rvc_end };
static const rvc_constraint rvcc_neg[] = { rvc_rs1_eq_x0, rvc_end };
@@ -1108,11 +1108,15 @@ static const rv_comp_data rvcp_bge[] = {
};
static const rv_comp_data rvcp_addi[] = {
- { rv_op_nop, rvcc_nop },
{ rv_op_mv, rvcc_mv },
{ },
};
+static const rv_comp_data rvcp_mv[] = {
+ { rv_op_nop, rvcc_nop },
+ { },
+};
+
static const rv_comp_data rvcp_sltiu[] = {
{ rv_op_seqz, rvcc_seqz },
{ },
@@ -1869,7 +1873,7 @@ static const rv_opcode_data rvi_opcode_data[] = {
{ "c.lqsp", rv_codec_ci_lqsp, NULL, DECOMP(rv_op_lq) },
{ "c.sqsp", rv_codec_css_sqsp, NULL, DECOMP(rv_op_sq) },
{ "nop", rv_codec_i, rv_fmt_none },
- { "mv", rv_codec_i, rv_fmt_rd_rs1 },
+ { "mv", rv_codec_i, rv_fmt_rd_rs1, rvcp_mv },
{ "not", rv_codec_i, rv_fmt_rd_rs1 },
{ "neg", rv_codec_r, rv_fmt_rd_rs2 },
{ "negw", rv_codec_r, rv_fmt_rd_rs2 },
--
2.54.0