From nobody Mon Nov 25 09:35:24 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linux.alibaba.com ARC-Seal: i=1; a=rsa-sha256; t=1716359574; cv=none; d=zohomail.com; s=zohoarc; b=jGFgSUhRfJa5R8HrKFcJtCcC2KnnKB0jGwlbLtPpzY9otyFbt/jjaPs5ESLY5NfoTvdMgLz6va8DkreqeGKQmNotatSIj3tCagFKMD2rSr4htGdE4PRw1cYgHjfRYso62cd0BKsCU7+z41UynvKOqf90F3mbpdI4rxcLSsZz1cE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1716359574; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=YX3b7gyIHNVCAvd8S5bVJ3cOPO+qEQCR+2ziMZGsxOw=; b=HEbxuyTEE7vdCPGyssY2vsES+TFYZ+kUNVXiMrpOXbHLwOwEsHSq7/WDba6H1R3rrfbrDpeTOFq12TzDVSfEsmQ1OTEQUjZiICDMiTGRv9nWWuv7Pvr4cC67tr//fYvr99WAn8Lv3cOXqpWLOcB2Rtc3Y5xmF8i1thnffTz4uTU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1716359574601791.596425061472; Tue, 21 May 2024 23:32:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s9fWm-0000nm-8h; Wed, 22 May 2024 02:32:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s9fWM-0000dg-DY; Wed, 22 May 2024 02:32:30 -0400 Received: from out30-119.freemail.mail.aliyun.com ([115.124.30.119]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s9fWK-0007cO-0v; Wed, 22 May 2024 02:32:18 -0400 Received: from L-PF1D6DP4-1208.hz.ali.com(mailfrom:zhiwei_liu@linux.alibaba.com fp:SMTPD_---0W7-8m.W_1716359528) by smtp.aliyun-inc.com; Wed, 22 May 2024 14:32:09 +0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1716359530; h=From:To:Subject:Date:Message-Id:MIME-Version; bh=YX3b7gyIHNVCAvd8S5bVJ3cOPO+qEQCR+2ziMZGsxOw=; b=TyaGLahQnHgK81FgFMZQcjhEbYRgFn45+HIz/ijZzuFrCWXp9Jt6RrsLfJaY3Ji/W+qnSTneIRPlInwG7agQZTYVE354xVZzUFCV7CgFpKI2gqeXtmPexKNYldnbKVJ3yKEvt4LcGz5X6CeOSGeus+M9ES+eDCf7BqYEn4X6PGI= X-Alimail-AntiSpam: AC=PASS; BC=-1|-1; BR=01201311R951e4; CH=green; DM=||false|; DS=||; FP=0|-1|-1|-1|0|-1|-1|-1; HT=maildocker-contentspam033045075189; MF=zhiwei_liu@linux.alibaba.com; NM=1; PH=DS; RN=8; SR=0; TI=SMTPD_---0W7-8m.W_1716359528; From: LIU Zhiwei To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, palmer@dabbelt.com, Alistair.Francis@wdc.com, dbarboza@ventanamicro.com, bmeng.cn@gmail.com, iwei1518@gmail.com, zhiwei_liu@linux.alibaba.com Subject: [PATCH 4/4] disas/riscv: Support zcmop disassemble Date: Wed, 22 May 2024 14:29:05 +0800 Message-Id: <20240522062905.1799-5-zhiwei_liu@linux.alibaba.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20240522062905.1799-1-zhiwei_liu@linux.alibaba.com> References: <20240522062905.1799-1-zhiwei_liu@linux.alibaba.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=115.124.30.119; envelope-from=zhiwei_liu@linux.alibaba.com; helo=out30-119.freemail.mail.aliyun.com X-Spam_score_int: -174 X-Spam_score: -17.5 X-Spam_bar: ----------------- X-Spam_report: (-17.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linux.alibaba.com) X-ZM-MESSAGEID: 1716359575833100003 Content-Type: text/plain; charset="utf-8" Although in QEMU disassemble, we usually lift compressed instruction to an normal format when display the instruction name. For C.MOP.n, it is more reasonable to directly display its compressed name, because its behavior can be redefined by later extension. Signed-off-by: LIU Zhiwei Acked-by: Alistair Francis --- disas/riscv.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/disas/riscv.c b/disas/riscv.c index 4cd769f165..41050246f3 100644 --- a/disas/riscv.c +++ b/disas/riscv.c @@ -946,6 +946,14 @@ typedef enum { rv_mop_rr_5 =3D 915, rv_mop_rr_6 =3D 916, rv_mop_rr_7 =3D 917, + rv_c_mop_1 =3D 918, + rv_c_mop_3 =3D 919, + rv_c_mop_5 =3D 920, + rv_c_mop_7 =3D 921, + rv_c_mop_9 =3D 922, + rv_c_mop_11 =3D 923, + rv_c_mop_13 =3D 924, + rv_c_mop_15 =3D 925, } rv_op; =20 /* register names */ @@ -2176,6 +2184,14 @@ const rv_opcode_data rvi_opcode_data[] =3D { { "mop.rr.5", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, { "mop.rr.6", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, { "mop.rr.7", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "c.mop.1", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, + { "c.mop.3", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, + { "c.mop.5", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, + { "c.mop.7", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, + { "c.mop.9", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, + { "c.mop.11", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, + { "c.mop.13", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, + { "c.mop.15", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, }; =20 /* CSR names */ @@ -2469,6 +2485,13 @@ static void decode_inst_opcode(rv_decode *dec, rv_is= a isa) break; case 2: op =3D rv_op_c_li; break; case 3: + if (dec->cfg->ext_zcmop) { + if ((((inst >> 2) & 0b111111) =3D=3D 0b100000) && + (((inst >> 11) & 0b11) =3D=3D 0b0)) { + op =3D rv_c_mop_1 + ((inst >> 8) & 0b111); + break; + } + } switch ((inst >> 7) & 0b11111) { case 2: op =3D rv_op_c_addi16sp; break; default: op =3D rv_op_c_lui; break; --=20 2.25.1