From nobody Thu Sep 19 01:23:58 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=1719971439; cv=none; d=zohomail.com; s=zohoarc; b=JqId59pJh5pJGBV+e0yO2qiT3Cecm/gB8X+X/ORkUt6WdrC6vA/baNjqixYWhPIaA23ouys7kgP+np8jv16bnMlhLXIVL+Ncz5Xdv9OIIkynktsnhFr3W19kGnlFd6g7znCWxwtJkUaBNcmUJ+T0juRtt+6lV1udzY3loErVwvk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1719971439; 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=7Vt7KZKUac+dTEAY02FrejLRDhLI3dy6y+KEC6BMShY=; b=lLppckIrmrFGukr+XI+RYNlVAU8lZvYaiXEa5ZdWWBoko1Dffta9w5vO32CLbt6NZZ3X1pD8V35iyEsZak9h4oFxeYvrplaEffG7VPrSdRERN9I13roucbXOlvOrAQZ8recZsY0KVvOxehsDLEDGvgRUQSIizFPBJB4cBV+PAnM= 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 1719971439641104.40762980484567; Tue, 2 Jul 2024 18:50:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOp8Y-0006iW-A1; Tue, 02 Jul 2024 21:50:22 -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 1sOp8S-0006Xr-Ku; Tue, 02 Jul 2024 21:50:16 -0400 Received: from out30-133.freemail.mail.aliyun.com ([115.124.30.133]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOp8Q-0004Y0-Ar; Tue, 02 Jul 2024 21:50:16 -0400 Received: from L-PF1D6DP4-1208.hz.ali.com(mailfrom:zhiwei_liu@linux.alibaba.com fp:SMTPD_---0W9kC994_1719971407) by smtp.aliyun-inc.com; Wed, 03 Jul 2024 09:50:08 +0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1719971409; h=From:To:Subject:Date:Message-Id:MIME-Version; bh=7Vt7KZKUac+dTEAY02FrejLRDhLI3dy6y+KEC6BMShY=; b=FZeGahKJm4E0muLTYLhrIkX54sBnTegNfkfZHvNpYekUaqA1WgQPPS49HLR61P8sEHagQ0yo6DkMNucN7Ew4RNA8w8iRJsznKecaazq1+xdDfSz/8CBifOgbavFlRfstRGEa4UGXDyijpHr243xucrnJqapfRuNgb29VPtyCKG0= X-Alimail-AntiSpam: AC=PASS; BC=-1|-1; BR=01201311R731e4; CH=green; DM=||false|; DS=||; FP=0|-1|-1|-1|0|-1|-1|-1; HT=maildocker-contentspam033068173054; MF=zhiwei_liu@linux.alibaba.com; NM=1; PH=DS; RN=9; SR=0; TI=SMTPD_---0W9kC994_1719971407; From: LIU Zhiwei To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, palmer@dabbelt.com, alistair.francis@wdc.com, dbarboza@ventanamicro.com, liwei1518@gmail.com, bmeng.cn@gmail.com, LIU Zhiwei , Deepak Gupta Subject: [PATCH v3 04/11] disas/riscv: Support zcmop disassemble Date: Wed, 3 Jul 2024 09:46:28 +0800 Message-Id: <20240703014635.1020-5-zhiwei_liu@linux.alibaba.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20240703014635.1020-1-zhiwei_liu@linux.alibaba.com> References: <20240703014635.1020-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.133; envelope-from=zhiwei_liu@linux.alibaba.com; helo=out30-133.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: 1719971441063100003 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 Reviewed-by: Deepak Gupta --- disas/riscv.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/disas/riscv.c b/disas/riscv.c index 3ecbdcbe8d..2e315b4936 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 */ @@ -2532,6 +2548,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