From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1633589695418382.1416616880713; Wed, 6 Oct 2021 23:54:55 -0700 (PDT) Received: from localhost ([::1]:54242 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNIs-0002AG-EL for importer@patchew.org; Thu, 07 Oct 2021 02:54:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33626) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNCU-0002VW-4v for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:48:18 -0400 Received: from esa2.hgst.iphmx.com ([68.232.143.124]:36001) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNCQ-0002dn-38 for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:48:17 -0400 Received: from h199-255-45-15.hgst.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:48:12 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:22:34 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:48:13 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ22h3nT8z1RvmH for ; Wed, 6 Oct 2021 23:48:12 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 28IrYWf59Dvo for ; Wed, 6 Oct 2021 23:48:12 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ22b6mtNz1RvTg; Wed, 6 Oct 2021 23:48:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589293; x=1665125293; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=cOEeNiNBqR+mSzwtM58ML5T6oxTYndhLHLwvNkfjjTQ=; b=frll09M8SKGveh7MWRVaY4pSH7jKUmr3r+rl/W/6ueIfqLW7fNvZZWgT THD0RTC+8JbXODe4DWDorQv5WdNr8+qLEq5l7uzwT3s1SvOpNMlqBp7MG fY7HLa5bRR5yXFKKIpz5TvgK5OL0uIWbaTaIo8sUKOJ1NMTFmduExMltc d782rQJAVj6nv5R13Dj49dMUjd5c7BUc1tgDQS3NIIaF6Ro744+n3hEsE zpxMhSSMnZN53spX+4mefav1nKxKKf9X1D7UdgNT0COgG9prlx4w6fskx 81uKihAW30n9tDf5rjkc1d3xMC5GK1qhZCrYmyRNO8yaPRNmcHn5wvdjx w==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="285950648" IronPort-SDR: 5NaBe2mhQ9/EaFpddBeCIx6S9bSuEZo2+EbGSNZSsSd02795/oRT5cwNvoBps8SYDsIFNEPD9j MM+5lsGZh6JeyusjkGXFhkPAH0L3yr2m+jcQfD+ALT4VHFj5okvwcr0waVKhbzbuIlB//SjdsQ CvF42zuYVrZMisCMYbFJM0VBNqEPThnK6kdtAIznRwmeZLxvX+TD+o2AHKy89cFOfpV28oqic9 W5d3w19fCIVFDllgcWNWZtTwNn4t8s6ZjJeqkHY5zGO9iGOCN3xgP8I3aUHJFTqTin5/Pf9w/e /eotJTnFz3zY0fL+m0B4uYrH IronPort-SDR: bfNcUw8wnZ/hKgZLZv4ndgimdEQvNFilMmp5HvnlUttuP/iOC01DlgRl1U4sbUKlAwsi8CrmZQ PcMYfdmdXoKQw8k6HRlV7gGDpuE7yujTBlFMqRjahk6mn9jW0gV0P66JY89I6DGpOUlhgUD+Wk b387TRXiaNkF8KF3Ptnf/kPNmfFCsJyBBM3sArxaIGXbxxoLHu/bjf5sup+kfZcXndz8k+nhWL h9wDujuYDc6StjXb64GCe8uLhAQXPcCQedRrcwwRUaZHQlFfz6RHfsEnrq5C2mdy35xonqUyAX o1s= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1633589292; x=1636181293; bh=cOEeNiNBqR+mSzwtM5 8ML5T6oxTYndhLHLwvNkfjjTQ=; b=saJOahxixfWJNVxXcs8Kfkr3rSGyYoWbxn UhytdfqR7662pKiN+ufaC15QPQXtwMv/P+KbLdCFlz1FJbajINPizlMoif5zJZiZ rJv0ZnANqRD8PkAbVJAWd1FIIso7UFLE43W8MliCxC4BAVxd9qJQZUaywRXYAmXO 9fnhHeAjJaGCgH2NCf7fG3HWSqbiNF1oqt52+FdqqZIrbGOP0c/kUxFcphOBw2eR 6Lzf0jTxrtewe2UlucckSdEs/W/mr5Zun7t+AxXuqBnV0DPWit6oUYpk3ROSGBbU i40ncx2XweGEtTw3SbEilK7ZF1JA8cMBiXYdX37IIEyAHeXsl4kg== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, Philipp Tomsich , Alistair Francis , Bin Meng , Richard Henderson Subject: [PULL 01/26] target/riscv: Introduce temporary in gen_add_uw() Date: Thu, 7 Oct 2021 16:47:26 +1000 Message-Id: <20211007064751.608580-2-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=68.232.143.124; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633589696315100001 Content-Type: text/plain; charset="utf-8" From: Philipp Tomsich Following the recent changes in translate.c, gen_add_uw() causes failures on CF3 and SPEC2017 due to the reuse of arg1. Fix these regressions by introducing a temporary. Signed-off-by: Philipp Tomsich Reviewed-by: Alistair Francis Reviewed-by: Bin Meng Reviewed-by: Richard Henderson Message-id: 20210911140016.834071-2-philipp.tomsich@vrull.eu Fixes: 191d1dafae9c ("target/riscv: Add DisasExtend to gen_arith*") Signed-off-by: Alistair Francis --- target/riscv/insn_trans/trans_rvb.c.inc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/target/riscv/insn_trans/trans_rvb.c.inc b/target/riscv/insn_tr= ans/trans_rvb.c.inc index b72e76255c..c0a6e25826 100644 --- a/target/riscv/insn_trans/trans_rvb.c.inc +++ b/target/riscv/insn_trans/trans_rvb.c.inc @@ -624,8 +624,10 @@ GEN_TRANS_SHADD_UW(3) =20 static void gen_add_uw(TCGv ret, TCGv arg1, TCGv arg2) { - tcg_gen_ext32u_tl(arg1, arg1); - tcg_gen_add_tl(ret, arg1, arg2); + TCGv t =3D tcg_temp_new(); + tcg_gen_ext32u_tl(t, arg1); + tcg_gen_add_tl(ret, t, arg2); + tcg_temp_free(t); } =20 static bool trans_add_uw(DisasContext *ctx, arg_add_uw *a) --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1633589500618517.8002862742416; Wed, 6 Oct 2021 23:51:40 -0700 (PDT) Received: from localhost ([::1]:46260 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNFj-00052W-KX for importer@patchew.org; Thu, 07 Oct 2021 02:51:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33676) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNCc-0002cU-5p for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:48:26 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:23991) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNCX-0002kX-4e for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:48:25 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:48:17 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:24:12 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:48:19 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ22n5SNWz1Rvlt for ; Wed, 6 Oct 2021 23:48:17 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id r-c199PxLyFf for ; Wed, 6 Oct 2021 23:48:17 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ22j03rrz1RvTg; Wed, 6 Oct 2021 23:48:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589300; x=1665125300; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=4ntQwdCXbUEnWxVDcFkc5UHPaHz0pKJGEa4uMX8Vxdc=; b=oCbWr7EqHlhIK3bqC18Z6qbU7S+L6J5If+MFVETwSZ/lomBDQZbS8iiq yyierhuPieSFzcLQyBdPkXW7enEOk5xjK8ByXFJB51+4CMn2Md1yVUhEG pfIXTSQ4irknWPA6oRcUwEblCnGB+EceZnavfSor2/FhOoWiAc+qKwLHx hsFKqSp2QpWWoivurTSG1Ik9D5POfV+Xcx2z/xXdORnc+gJmQV/ZLot1B qJW4UYQOPS8Q1tjIwbQ9eaHqIJ+61POxfm8fPrq4948QkxiBSgmEWux54 ME11Lz0kjWpRcNifBgOVcdidtcVGqVATfqoTL/YSbfJGEqNpFurFBnHk6 g==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="186894838" IronPort-SDR: Oy+ML3gYHCNcD9kfncwI7rhpGml7U7r2+q00BYxEa1zr9x1jiwgNIojh1bbMN47ZtexR7PGzJD apbiXvytzyZvtbeltogn3cmOElM+nVKi+GE+zAv26t7MtFgkTgRxuvHHXj82+Yuj4zYcSTrcVz XkacTHd3xG/Ry7vqrS8YsxUD2cH7Rmb+3FMgntr5OjqfIV3DN5Ys7Gqw2DYzL/03+WK1N9pjwg xCDo+nxcbZrzsG353vwTdRcDLaLFM/rzhxyvCUB4YhalsIBE4jwxY/izvOEE/9tO53K3RE2H3+ E9ZF71+Zmnplf9oX4Ivo0zIc IronPort-SDR: 4k+rvfZLef8weeJX2mjuO/tBnIpKUR5mgWme9LLVtdqdr3/KB/Judd8CUuFtvhd0LFs4NvmYeq CzWPpQd3rnCNJkNlU3BYjw/GWCRAl6EyA+X0IIn+Lcj8WN+hJikrl8GRffcM84rbW0Dy2tXDm3 +efmV9ByL2uUvbUATU8f2VcVJRdJLfK1WVyHuF2iPfi39noAq2iTLoS6z0fqxW2iYxF8Ph8MjC eap6DP1lOBooEl9qzIi7+6OOWG7uzTGivAQ1mHmziLOEpsFmniOdbQJQgbeEKG1LK++yTK8J7N e0Q= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1633589297; x=1636181298; bh=4ntQwdCXbUEnWxVDcF kc5UHPaHz0pKJGEa4uMX8Vxdc=; b=liwd8gpUQZ+lcc9ZKAzbSWfLhPFh5z+GSK uHN/xUKr+wG6m7SP6BkwAyJjFK55QQrgAwlewbszrQFV2+elB1BFhytMAYa4hBv4 3Y4a2zemsr35Mah62d/Z1XjrXqsMh6JzOiaZ3zpeKjjHgan+bqcpe3g4H5QoL50b q3aEzMHlV0q23A4SZ9lEXEKhE97ty8uQx1GxrY5yezv0qS7c7A1CjKSa4IyrsNVo oFnEkBGRF7ipy7w+s+7mPlAUN0RU+aW1UcU0w+GM4iJfAMsz3VNzVS2dtURcLGYa OEPNjFTnRLKJoYauxNUssrB7n4LoHvCewculEiJqCgP7HEi4KlIw== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, Philipp Tomsich , Alistair Francis , Bin Meng , Richard Henderson Subject: [PULL 02/26] target/riscv: fix clzw implementation to operate on arg1 Date: Thu, 7 Oct 2021 16:47:27 +1000 Message-Id: <20211007064751.608580-3-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=216.71.153.141; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633589501949100001 Content-Type: text/plain; charset="utf-8" From: Philipp Tomsich The refactored gen_clzw() uses ret as its argument, instead of arg1. Fix it. Signed-off-by: Philipp Tomsich Reviewed-by: Alistair Francis Reviewed-by: Bin Meng Reviewed-by: Richard Henderson Message-id: 20210911140016.834071-3-philipp.tomsich@vrull.eu Fixes: 60903915050 ("target/riscv: Add DisasExtend to gen_unary") Signed-off-by: Alistair Francis --- target/riscv/insn_trans/trans_rvb.c.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/riscv/insn_trans/trans_rvb.c.inc b/target/riscv/insn_tr= ans/trans_rvb.c.inc index c0a6e25826..6c85c89f6d 100644 --- a/target/riscv/insn_trans/trans_rvb.c.inc +++ b/target/riscv/insn_trans/trans_rvb.c.inc @@ -349,7 +349,7 @@ GEN_TRANS_SHADD(3) =20 static void gen_clzw(TCGv ret, TCGv arg1) { - tcg_gen_clzi_tl(ret, ret, 64); + tcg_gen_clzi_tl(ret, arg1, 64); tcg_gen_subi_tl(ret, ret, 32); } =20 --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1633589906742422.51624139917317; Wed, 6 Oct 2021 23:58:26 -0700 (PDT) Received: from localhost ([::1]:34576 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNMG-00086N-4K for importer@patchew.org; Thu, 07 Oct 2021 02:58:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33706) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNCd-0002dz-Oa for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:48:27 -0400 Received: from esa2.hgst.iphmx.com ([68.232.143.124]:36012) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNCb-0002ww-W3 for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:48:27 -0400 Received: from h199-255-45-15.hgst.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:48:23 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:22:45 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:48:24 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ22v3MJpz1Rvll for ; Wed, 6 Oct 2021 23:48:23 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id BRG3oqcnmg4R for ; Wed, 6 Oct 2021 23:48:23 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ22p5Xv7z1RvTg; Wed, 6 Oct 2021 23:48:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589305; x=1665125305; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=oq5STqUMFTm/KaHyE5nsTqZMqG6dIzG9MDoOLPn4Nw4=; b=Bq7PJVGW5tNn09byMRgb2JwQWHvwm9JPAMjE2sVc646FTXtBx6EnPTGF Worvuh3HMnCJ/VfUOcEpYs8MYFxmMsA2f6M38jQsCN3iEmiUZTGRD/wvH mXwBqDWODRQV9P/r6B6av41MjGHQoAMiyBcw+9t6P9Ft/8WIy2nP+vVQ9 IvJs0xMtMfnl4Az0vv7v7F3VVNQH8sduelXzfpC1mnQc/kpJpxVx/tdH9 iVjFy3OEvOWv3zVUDBWUPzfHdrM2kvHrW6kEvBXGx+Pf9aQmWBWAHCAOn dDQPSPJc5zfhU0ztGozHteDeyb+xUH0fELp8tySpwZVgbGgJyGSj957wr g==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="285950657" IronPort-SDR: vRLf5U98ZW8L0HY7qwLgtBdhvPOBkx0uTSRoDH7zwBH888rMCUsv8bYEMXM+MX0x+rczc8TV+c 50PMsXM3OZ5xsjAMc+nviEZIt15gVWS+WTnv+L4hG+yfuNS3vY4RZxXPDYPMs1sHa0PnBG8i7w 7tYPT+PAyfCebU03WcgFmBHqYH1EbE1S7eH+p+l028RJPbMBqEITp6Dj0bRFmAtxjoQ7GXSkAp aX7OnhcI1upVV30cQNk8bxpdH9Ey/PE8WXS9LZ2IepSicUKZfYvd1J9ojRABjwDo1gY4vfdAXO sINvUlQ4EiA/MFYjyN4noTR+ IronPort-SDR: FdlZo7D36L7YgLdOoPcmOIxQ8VIGCRR08Cu6NBzieFkQ30z81V5NCXn9q1RxF3gait1VtSAEb7 8qFgoLTfiorex/5EHwY8n1zj8Uv0JOvRPCWAPfyIDBfZ3QXwJaOZRSMuC2xzpwAdBCXQZebcB5 o1jARvzL6uqxaelkYKgW3XcZOThOPhR05KTBReL+PxqlICaB1U9y/dh8ob5+YRcImThLUqzTK1 yPUb7StKOm1HZcamTKEl5mE8GgujTFY1CiIhzCho9X/y7GJeyg7kbY4dM5+IM+uwPcYFEC2c3u XUg= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1633589303; x=1636181304; bh=oq5STqUMFTm/KaHyE5 nsTqZMqG6dIzG9MDoOLPn4Nw4=; b=Y8/yR3w5lsihs/Zz4hguqiL9GCEpV7Kn86 5Kqktam3SJ0Dr4Vw4VWgXwbHU1uCkZ/VLQxCiXqVW3KT/eCklCpUYs+kCSLE6/bl oALWiSMw8jZNS6wSzbkmF0DL/8lWHOamJiwqh3Y66EQ+h3HHFbcaiIpcZIECxE/A G+YC8KZeoX7pAwwS58IJGO15hDQf4bzr2PKorkL6bJmGZpfFVat6kaSJr5ezlL9H l35Qu8TzwwLJSCUnKEgWGMbn61qGHXr8uVCBaKqjelb7jkC0sIdHzBWvYHWjd6A8 ojhhCw+9xVnNa+hFbG3UfTDzXmBujEqV9/sbnc3vgNUzXUzyks5w== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, Philipp Tomsich , LIU Zhiwei , Alistair Francis Subject: [PULL 03/26] target/riscv: clwz must ignore high bits (use shift-left & changed logic) Date: Thu, 7 Oct 2021 16:47:28 +1000 Message-Id: <20211007064751.608580-4-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=68.232.143.124; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633589908155100001 Content-Type: text/plain; charset="utf-8" From: Philipp Tomsich Assume clzw being executed on a register that is not sign-extended, such as for the following sequence that uses (1ULL << 63) | 392 as the operand to clzw: bseti a2, zero, 63 addi a2, a2, 392 clzw a3, a2 The correct result of clzw would be 23, but the current implementation returns -32 (as it performs a 64bit clz, which results in 0 leading zero bits, and then subtracts 32). Fix this by changing the implementation to: 1. shift the original register up by 32 2. performs a target-length (64bit) clz 3. return 32 if no bits are set Marking this instruction as 'w-form' (i.e., setting ctx->w) would not correctly model the behaviour, as the instruction should not perform a zero-extensions on the input (after all, it is not a .uw instruction) and the result is always in the range 0..32 (so neither a sign-extension nor a zero-extension on the result will ever be needed). Consequently, we do not set ctx->w and mark the instruction as EXT_NONE. Signed-off-by: Philipp Tomsich Reviewed-by: LIU Zhiwei Message-id: 20210911140016.834071-4-philipp.tomsich@vrull.eu Signed-off-by: Alistair Francis --- target/riscv/insn_trans/trans_rvb.c.inc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/target/riscv/insn_trans/trans_rvb.c.inc b/target/riscv/insn_tr= ans/trans_rvb.c.inc index 6c85c89f6d..73d1e45026 100644 --- a/target/riscv/insn_trans/trans_rvb.c.inc +++ b/target/riscv/insn_trans/trans_rvb.c.inc @@ -349,15 +349,17 @@ GEN_TRANS_SHADD(3) =20 static void gen_clzw(TCGv ret, TCGv arg1) { - tcg_gen_clzi_tl(ret, arg1, 64); - tcg_gen_subi_tl(ret, ret, 32); + TCGv t =3D tcg_temp_new(); + tcg_gen_shli_tl(t, arg1, 32); + tcg_gen_clzi_tl(ret, t, 32); + tcg_temp_free(t); } =20 static bool trans_clzw(DisasContext *ctx, arg_clzw *a) { REQUIRE_64BIT(ctx); REQUIRE_EXT(ctx, RVB); - return gen_unary(ctx, a, EXT_ZERO, gen_clzw); + return gen_unary(ctx, a, EXT_NONE, gen_clzw); } =20 static void gen_ctzw(TCGv ret, TCGv arg1) --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1633589704485642.7576859682962; Wed, 6 Oct 2021 23:55:04 -0700 (PDT) Received: from localhost ([::1]:54906 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNJ1-0002bH-Fg for importer@patchew.org; Thu, 07 Oct 2021 02:55:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33722) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNCj-0002ko-SH for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:48:34 -0400 Received: from esa4.hgst.iphmx.com ([216.71.154.42]:56888) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNCh-0003IW-JU for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:48:33 -0400 Received: from h199-255-45-15.hgst.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:48:29 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:22:50 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:48:30 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ23059D2z1Rvlt for ; Wed, 6 Oct 2021 23:48:28 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id a-G86zn0jA_h for ; Wed, 6 Oct 2021 23:48:28 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ22v6dkYz1RvTg; Wed, 6 Oct 2021 23:48:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589311; x=1665125311; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=uRfXfFHryquG2t6XbI+qMdt6gXOBJDeO9IMIfFkCExU=; b=c0N6Qh81j9/UaigrdSlnt1zi5gIKSt+IjIuvv9vlGP3wa+FxGg6C/UHX gTAm3kzaqCAqfFGjwfRU2iI9uaPdBe7na3ey00ZHJWIN6nyHaabhteJvB MaRAdUnjeER5Dn5XyiSVNoee3d/fkGTA/Y10tPDWA2uWymveEfvKLHCwl u/clPCbydKMHKjdoTgdvnYzZJYtNewqHnmDvFumAXKxnXMlrM7hl7xZVD 2b/0yJyAvjbE5skYWS7mpFbRNYELvFuyPrIKN8UiLV3omBjE4S8grzsCG tUxp6ISJxOJF8m/oG/ufcj/LiIoCErBhfVF3fu3ofMXI+f09iP+7uOKjl A==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="181145243" IronPort-SDR: ZOyevfu64Wu8doNukbc+T9qx3zShFU1dQKtDU+U61p5WKhtUIt8+TfmAYjAPKVh6WJXhIIB90k nvAZpQrNGkrYFMSIyxKETELRUtK8nMOzq2ahwog0cWqomp0gwtebBhKOaKu9zPobQFp1yH2TqK 7wO/2hFFEowYJuRxEbzQmyesskaIeWhmxtbMPr775dWAZSkkcvprfX7p3rP+h+fL9J5hHX0jrP 5NDUVbcWPzQjW6Kei1L3lSmk+MmF45X+wjZkH81p/RjTHFzCvcG9I0zc+LKmRkEAQkHZBENDQI yLFzisbg8yjtnPWzFE8gkCtn IronPort-SDR: ZIxV/HwzMQ8/kYFFEoEg7NSBdrvzD9WlGsveyJMaXb3g6CbQldSGl1XoGMNCrj30AXjDh3gWDO zrbL3xqvb+Qapvhogw4aLURZhFq2M1H3L+CSB05+C3ntwFB135eJXGsub4/6YHMYkZY26lPq2d NqyRgw4ZYsMUbw91bHy105VmM4izLPPEfY+Qum5VJ96elatpkQZKZrM3gKki2IO3Xg4haOKFVi h+HpzmFyRqek6lOVmlPeq9vqRmRdC9e/JdmAwaSP/SPc0AcLqVBWcgYZexzqCMf5xahwzqjTJg wxE= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1633589308; x=1636181309; bh=uRfXfFHryquG2t6XbI +qMdt6gXOBJDeO9IMIfFkCExU=; b=Bw6XlzvzduN2AnZHyvH4q2wiUlWtGSYnit L4yeGLxn5S5IlzQXi4UCqNwVIH6Netk4YkeLJx2wgU4buEuco2yDK20mrbYutlQG E3gn4olp5hVB9wlazSoC6qo/51C7vq74rws4LD9MR4KIzUzmBNnnVqkk8t7DydgU xh9HhLfuZAXACS9QNt1KL8QgltGNrl1v/NqvOifzJk1Jnz8dGpct+p4amGLWEB+P j/fh47uwqgrMdx2zO4Nw9NmXLK1L1RmSv7I5Ux9WE0pZpbHQdksWUb6i/SyaYvf3 xTrpSfzAHyIvdqbg5MCmpGYcHydE8CPf77veMJY2XD9G+0tM+usQ== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, Philipp Tomsich , Richard Henderson , Alistair Francis , Bin Meng Subject: [PULL 04/26] target/riscv: Add x-zba, x-zbb, x-zbc and x-zbs properties Date: Thu, 7 Oct 2021 16:47:29 +1000 Message-Id: <20211007064751.608580-5-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=216.71.154.42; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa4.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633589705240100001 Content-Type: text/plain; charset="utf-8" From: Philipp Tomsich The bitmanipulation ISA extensions will be ratified as individual small extension packages instead of a large B-extension. The first new instructions through the door (these have completed public review) are Zb[abcs]. This adds new 'x-zba', 'x-zbb', 'x-zbc' and 'x-zbs' properties for these in target/riscv/cpu.[ch]. Signed-off-by: Philipp Tomsich Reviewed-by: Richard Henderson Reviewed-by: Alistair Francis Reviewed-by: Bin Meng Message-id: 20210911140016.834071-5-philipp.tomsich@vrull.eu Signed-off-by: Alistair Francis --- target/riscv/cpu.h | 4 ++++ target/riscv/cpu.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 5896aca346..1a38723f2c 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -293,6 +293,10 @@ struct RISCVCPU { bool ext_u; bool ext_h; bool ext_v; + bool ext_zba; + bool ext_zbb; + bool ext_zbc; + bool ext_zbs; bool ext_counters; bool ext_ifencei; bool ext_icsr; diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 7c626d89cd..785a3a8d19 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -617,6 +617,10 @@ static Property riscv_cpu_properties[] =3D { DEFINE_PROP_BOOL("u", RISCVCPU, cfg.ext_u, true), /* This is experimental so mark with 'x-' */ DEFINE_PROP_BOOL("x-b", RISCVCPU, cfg.ext_b, false), + DEFINE_PROP_BOOL("x-zba", RISCVCPU, cfg.ext_zba, false), + DEFINE_PROP_BOOL("x-zbb", RISCVCPU, cfg.ext_zbb, false), + DEFINE_PROP_BOOL("x-zbc", RISCVCPU, cfg.ext_zbc, false), + DEFINE_PROP_BOOL("x-zbs", RISCVCPU, cfg.ext_zbs, false), DEFINE_PROP_BOOL("x-h", RISCVCPU, cfg.ext_h, false), DEFINE_PROP_BOOL("x-v", RISCVCPU, cfg.ext_v, false), DEFINE_PROP_BOOL("Counters", RISCVCPU, cfg.ext_counters, true), --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1633589533418540.3052985114832; Wed, 6 Oct 2021 23:52:13 -0700 (PDT) Received: from localhost ([::1]:47306 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNGG-00060c-DO for importer@patchew.org; Thu, 07 Oct 2021 02:52:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33802) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNCr-0002wl-Ly for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:48:42 -0400 Received: from esa5.hgst.iphmx.com ([216.71.153.144]:23669) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNCn-0003ri-WC for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:48:41 -0400 Received: from h199-255-45-15.hgst.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:48:33 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:22:56 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:48:36 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ2371Hyqz1RvmK for ; Wed, 6 Oct 2021 23:48:35 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id nQFyKdgn-Q7L for ; Wed, 6 Oct 2021 23:48:34 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ2310tN4z1RvTg; Wed, 6 Oct 2021 23:48:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589316; x=1665125316; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=C1TigUwwV8lk9liC+N2ASK3WXJmIzhJhZKd/SwA8+D0=; b=LUPwojBMBDCB7Wn30xh7ovb0iUMVto6/2cKl6faqDjRJelAudpEnCksl x/28j858wVFM3vEeUThQ9QyI0uR9uHuUi7traB+GDyWqD1+SM/7Xn1YGw 2aHKdLhApFfdqchIR/Oy6VEknfft4h4WlsRFWyoOyT0msDiedTiRiZFvC xF5tcDjw0D9bNV7FmMiK52efmnB2YI3R5QZQJt178jhQmfzSe1pv9rpQ+ dYIZw+e6NyREUo0OxI1+LMuY3HG45NAnaJb6gEG+wcY/WdviAJIM9J4Tf nPAc8N+tbLK10TozEOZOuKoyTX8jpbHPUhOxf0SwFylw9brEV9CqdU44d w==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="182122337" IronPort-SDR: WctOtkqU+IwBolS+34MixDkLM8nekQg03c+Mk9sNTyYNPpLCyOy0WighRuL0nUf8mJYB2wgkHz 8/6PujslooTi9/7/aNMIinyMd/GuONPOoHsAZBJLgMsp1+BZAviYzANwl4jkVI7furm7dLQpgM tfYuX5DUhNz8xNfYGSbJ4IymLkVGMwlLDD5CmlGT6NB+ULdeo10+bZplK5jvPW7OnBuNEKBlI/ fObQBK35l4dfFWToV7bGjyWgd7pQMUqlGQykvzOiX0lcd0XZ73Ljd2EacaptzWWhUrhhfGz7FP L5/jrcB61nE27ufyB/UeM4Tu IronPort-SDR: IzajyWmAKOUFYqRmFVsHHAdZp4ALfbvFaCa9etxhFndCZ3DurUTpLJP6fMfloH9oRF1IXc1CJM rDHRO7JvX5pJZfbaaPO+qNw4CSuykU/oXYapWNkOXY4BynEyxgJvsQkdniueb4HCsGIbOFB1TZ rOVmTrmIVlU0CQds/53lezjnZ+1udnv4mxZLc2KV2zTEJdHhMfeDK5FG9QwRsTWMNWqr9wUzke Z0q+4WSU0mU6vQ4qfgY0rD3uXTFLMuYh+3uWYoe2O6lXu5yA9SXIrThcTtViMlu4SbxiY+AO/w qMo= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1633589314; x=1636181315; bh=C1TigUwwV8lk9liC+N 2ASK3WXJmIzhJhZKd/SwA8+D0=; b=nixk0C/jwQoVfi7zH+XDJUS7d/QgXaMnot hpAmfY/HbayPMfP5izNx7scbaNb+lIa2CFn0o1PbTTQKTv2WD+mzO3/Za5BkxQlm 0WenJdqbitMj5lqV0Uvx20q4opo0+2sl2rtIZzu7l4yq7Je9sC21kpqgNY56tali 8M4tv1silGCuzwtv9TfuzGJichcTtJNhSdvSfvTXnsg5aiE3cqAVrKQzHZn/AZcX 3vS1i3d5NYpWOwAE15f3pHK5439s7nX+KfruGLOTetRMMf/rLLKoe3Z0AEhnTlP6 OLIBY+0CdNvtdSaKpycC8/tpE/O7NIiUMPnFKoUVWy4+BV/nRT4A== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, Philipp Tomsich , Richard Henderson , Alistair Francis , Bin Meng Subject: [PULL 05/26] target/riscv: Reassign instructions to the Zba-extension Date: Thu, 7 Oct 2021 16:47:30 +1000 Message-Id: <20211007064751.608580-6-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=216.71.153.144; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa5.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633589534497100001 Content-Type: text/plain; charset="utf-8" From: Philipp Tomsich The following instructions are part of Zba: - add.uw (RV64 only) - sh[123]add (RV32 and RV64) - sh[123]add.uw (RV64-only) - slli.uw (RV64-only) Signed-off-by: Philipp Tomsich Reviewed-by: Richard Henderson Reviewed-by: Alistair Francis Acked-by: Bin Meng Message-id: 20210911140016.834071-6-philipp.tomsich@vrull.eu Signed-off-by: Alistair Francis --- target/riscv/insn32.decode | 20 ++++++++++++-------- target/riscv/insn_trans/trans_rvb.c.inc | 16 +++++++++++----- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode index 2cd921d51c..86f1166dab 100644 --- a/target/riscv/insn32.decode +++ b/target/riscv/insn32.decode @@ -660,6 +660,18 @@ vamomaxd_v 10100 . . ..... ..... 111 ..... 010111= 1 @r_wdvm vamominud_v 11000 . . ..... ..... 111 ..... 0101111 @r_wdvm vamomaxud_v 11100 . . ..... ..... 111 ..... 0101111 @r_wdvm =20 +# *** RV32 Zba Standard Extension *** +sh1add 0010000 .......... 010 ..... 0110011 @r +sh2add 0010000 .......... 100 ..... 0110011 @r +sh3add 0010000 .......... 110 ..... 0110011 @r + +# *** RV64 Zba Standard Extension (in addition to RV32 Zba) *** +add_uw 0000100 .......... 000 ..... 0111011 @r +sh1add_uw 0010000 .......... 010 ..... 0111011 @r +sh2add_uw 0010000 .......... 100 ..... 0111011 @r +sh3add_uw 0010000 .......... 110 ..... 0111011 @r +slli_uw 00001 ............ 001 ..... 0011011 @sh + # *** RV32B Standard Extension *** clz 011000 000000 ..... 001 ..... 0010011 @r2 ctz 011000 000001 ..... 001 ..... 0010011 @r2 @@ -687,9 +699,6 @@ ror 0110000 .......... 101 ..... 0110011 @r rol 0110000 .......... 001 ..... 0110011 @r grev 0110100 .......... 101 ..... 0110011 @r gorc 0010100 .......... 101 ..... 0110011 @r -sh1add 0010000 .......... 010 ..... 0110011 @r -sh2add 0010000 .......... 100 ..... 0110011 @r -sh3add 0010000 .......... 110 ..... 0110011 @r =20 bseti 00101. ........... 001 ..... 0010011 @sh bclri 01001. ........... 001 ..... 0010011 @sh @@ -718,10 +727,6 @@ rorw 0110000 .......... 101 ..... 0111011 @r rolw 0110000 .......... 001 ..... 0111011 @r grevw 0110100 .......... 101 ..... 0111011 @r gorcw 0010100 .......... 101 ..... 0111011 @r -sh1add_uw 0010000 .......... 010 ..... 0111011 @r -sh2add_uw 0010000 .......... 100 ..... 0111011 @r -sh3add_uw 0010000 .......... 110 ..... 0111011 @r -add_uw 0000100 .......... 000 ..... 0111011 @r =20 bsetiw 0010100 .......... 001 ..... 0011011 @sh5 bclriw 0100100 .......... 001 ..... 0011011 @sh5 @@ -732,4 +737,3 @@ roriw 0110000 .......... 101 ..... 0011011 @sh5 greviw 0110100 .......... 101 ..... 0011011 @sh5 gorciw 0010100 .......... 101 ..... 0011011 @sh5 =20 -slli_uw 00001. ........... 001 ..... 0011011 @sh diff --git a/target/riscv/insn_trans/trans_rvb.c.inc b/target/riscv/insn_tr= ans/trans_rvb.c.inc index 73d1e45026..fd549c7b0f 100644 --- a/target/riscv/insn_trans/trans_rvb.c.inc +++ b/target/riscv/insn_trans/trans_rvb.c.inc @@ -1,8 +1,9 @@ /* - * RISC-V translation routines for the RVB Standard Extension. + * RISC-V translation routines for the RVB draft and Zba Standard Extensio= n. * * Copyright (c) 2020 Kito Cheng, kito.cheng@sifive.com * Copyright (c) 2020 Frank Chang, frank.chang@sifive.com + * Copyright (c) 2021 Philipp Tomsich, philipp.tomsich@vrull.eu * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -17,6 +18,11 @@ * this program. If not, see . */ =20 +#define REQUIRE_ZBA(ctx) do { \ + if (!RISCV_CPU(ctx->cs)->cfg.ext_zba) { \ + return false; \ + } \ +} while (0) =20 static void gen_clz(TCGv ret, TCGv arg1) { @@ -339,7 +345,7 @@ GEN_SHADD(3) #define GEN_TRANS_SHADD(SHAMT) = \ static bool trans_sh##SHAMT##add(DisasContext *ctx, arg_sh##SHAMT##add *a)= \ { = \ - REQUIRE_EXT(ctx, RVB); = \ + REQUIRE_ZBA(ctx); = \ return gen_arith(ctx, a, EXT_NONE, gen_sh##SHAMT##add); = \ } =20 @@ -616,7 +622,7 @@ static bool trans_sh##SHAMT##add_uw(DisasContext *ctx, = \ arg_sh##SHAMT##add_uw *a) \ { \ REQUIRE_64BIT(ctx); \ - REQUIRE_EXT(ctx, RVB); \ + REQUIRE_ZBA(ctx); \ return gen_arith(ctx, a, EXT_NONE, gen_sh##SHAMT##add_uw); \ } =20 @@ -635,7 +641,7 @@ static void gen_add_uw(TCGv ret, TCGv arg1, TCGv arg2) static bool trans_add_uw(DisasContext *ctx, arg_add_uw *a) { REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBA(ctx); return gen_arith(ctx, a, EXT_NONE, gen_add_uw); } =20 @@ -647,6 +653,6 @@ static void gen_slli_uw(TCGv dest, TCGv src, target_lon= g shamt) static bool trans_slli_uw(DisasContext *ctx, arg_slli_uw *a) { REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBA(ctx); return gen_shift_imm_fn(ctx, a, EXT_NONE, gen_slli_uw); } --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1633589917667345.90365699501535; Wed, 6 Oct 2021 23:58:37 -0700 (PDT) Received: from localhost ([::1]:35438 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNMS-0000Dk-FT for importer@patchew.org; Thu, 07 Oct 2021 02:58:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33830) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNCx-00037d-4k for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:48:47 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:53849) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNCu-00049I-GM for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:48:46 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:48:41 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:24:35 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:48:42 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ23F3Cc8z1Rvlt for ; Wed, 6 Oct 2021 23:48:41 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id VoAgMJhD-i_3 for ; Wed, 6 Oct 2021 23:48:40 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ2371q4hz1RvTg; Wed, 6 Oct 2021 23:48:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589324; x=1665125324; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Vz7kA3KYVV9RK7xqTbmK7Gik0nEJ6tcH4JjjFfja/G4=; b=c3pht1pj9gka8I9KHxmpWx7G5MoO6jsJAEMkjGoGcsagSGyEGqE4qEzC EboAOmBdxrRCjcZlXv6nNdL+cTv3XvAc5yPZ+h+NVfWXQXq//ZZbydOBF R3PgXds/C9PFsDitVPL+LhxxV9LgdLaU7bQHHgUHEmDV6PneWFJsI0abg S25fSH2ciN+owUTJIaQCKt71aYXN6ijysApFlhLXdK45fUMVbofpNpI8G SCsyd9vIjsesHnpvjYY1j1r4nKzBKmQTjTEBVxQ+fZ+nb9wfFBCj2h7Bk PpYvhCL6sqXabGep0ea9fX1yMLZk87ceM8pgDsNi7yeq06QVT59LPxkZ0 A==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="293815413" IronPort-SDR: 2JKZQdSlexLbBlPBzXlC4gjoL9ve3ghLWjM+QmyPkwdN/o402ns0i09GdHT8LOuStXzGOLJXkO oBR0XABr0wvnpJ82AGybVZaOcg6eCXSwrUwvx2vr8ovGskRZJtdzJaYb/Rn8nTrswG/pBqEK6d 34s8BD6fN8QEkWocSSulleajA9udaZTa2pTXyJjsywhKrg1Mmsvm8g3ADeoHY5kGr4pNI7FBXk AKPEDpf5MuJj4XCc0E7EhnRuAaHKGnKtKC1HErm+b/JnXV/az1+YtD8pAEGz5SIAmCNN+TBBJy pDt4KiPoN2G45r7ce+0uttS+ IronPort-SDR: cgj0Zs0cWbPirQG4zkSvHWUtfoMxO5oZ7QRz/BmaszetTqjcTSb2NDdCeWPpTla4eilw/CUaP4 YyhyOqkyhqQbTPlU9RCvNxMtyPHqDeYLVBC/ictjM/KCsGajnyf26ufcsbhb1lcbjHbUzJU3n8 /nXeE6HATD5bHO7LH0acfjkJ4mkHWC82oZiMjHTiixyqxHqs583A/vmRgJs60uEkHwjR2RLw+6 KUSsLTjeawRd3Lts0MOuevYWb4mCuysqtaLErCNDq3/OnVHdvKRO5eOF7sv/PEaRAdBnBXMfFi 1C0= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1633589320; x=1636181321; bh=Vz7kA3KYVV9RK7xqTb mK7Gik0nEJ6tcH4JjjFfja/G4=; b=tS1qeBMCrwDQAErpEEsRXVXRwpqAsaegDS QOPfp6cQovbdmFDuOjVr04yJKJ9G7lWVMcD9e3upFJpgeCiGMch9u2JdwXxejr+Z liDjW6k+f6sJA8LzVeg9xTVJsC2XVwr1P9j2RJFTPxwznZ2/V/dwmLkvnxOULhPH glqn9yxdQIBuaVP2C7YfYx/hOkaOyCObnRtSkXQflT95ReFpNQcNlDz6NpWUfBZj 5/5tcrWWDl6jKFOavvGrQSkbuEYQ1LUipbSC1JpFklNOwruO0ZFZpYQwsrODDdki IZ8S2ZNuIyfjm+KYsAyoQA/g4lUcYVtmYlBwXLabw8fuZpy8HGPg== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, Philipp Tomsich , Richard Henderson , Alistair Francis , Bin Meng Subject: [PULL 06/26] target/riscv: Remove the W-form instructions from Zbs Date: Thu, 7 Oct 2021 16:47:31 +1000 Message-Id: <20211007064751.608580-7-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=68.232.141.245; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa1.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633589918696100001 Content-Type: text/plain; charset="utf-8" From: Philipp Tomsich Zbs 1.0.0 (just as the 0.93 draft-B before) does not provide for W-form instructions for Zbs (single-bit instructions). Remove them. Note that these instructions had already been removed for the 0.93 version of the draft-B extention and have not been present in the binutils patches circulating in January 2021. Signed-off-by: Philipp Tomsich Reviewed-by: Richard Henderson Reviewed-by: Alistair Francis Acked-by: Bin Meng Message-id: 20210911140016.834071-7-philipp.tomsich@vrull.eu Signed-off-by: Alistair Francis --- target/riscv/insn32.decode | 7 ---- target/riscv/insn_trans/trans_rvb.c.inc | 56 ------------------------- 2 files changed, 63 deletions(-) diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode index 86f1166dab..b499691a9e 100644 --- a/target/riscv/insn32.decode +++ b/target/riscv/insn32.decode @@ -717,10 +717,6 @@ cpopw 0110000 00010 ..... 001 ..... 0011011 @r2 =20 packw 0000100 .......... 100 ..... 0111011 @r packuw 0100100 .......... 100 ..... 0111011 @r -bsetw 0010100 .......... 001 ..... 0111011 @r -bclrw 0100100 .......... 001 ..... 0111011 @r -binvw 0110100 .......... 001 ..... 0111011 @r -bextw 0100100 .......... 101 ..... 0111011 @r slow 0010000 .......... 001 ..... 0111011 @r srow 0010000 .......... 101 ..... 0111011 @r rorw 0110000 .......... 101 ..... 0111011 @r @@ -728,9 +724,6 @@ rolw 0110000 .......... 001 ..... 0111011 @r grevw 0110100 .......... 101 ..... 0111011 @r gorcw 0010100 .......... 101 ..... 0111011 @r =20 -bsetiw 0010100 .......... 001 ..... 0011011 @sh5 -bclriw 0100100 .......... 001 ..... 0011011 @sh5 -binviw 0110100 .......... 001 ..... 0011011 @sh5 sloiw 0010000 .......... 001 ..... 0011011 @sh5 sroiw 0010000 .......... 101 ..... 0011011 @sh5 roriw 0110000 .......... 101 ..... 0011011 @sh5 diff --git a/target/riscv/insn_trans/trans_rvb.c.inc b/target/riscv/insn_tr= ans/trans_rvb.c.inc index fd549c7b0f..fbe1c3b410 100644 --- a/target/riscv/insn_trans/trans_rvb.c.inc +++ b/target/riscv/insn_trans/trans_rvb.c.inc @@ -420,62 +420,6 @@ static bool trans_packuw(DisasContext *ctx, arg_packuw= *a) return gen_arith(ctx, a, EXT_NONE, gen_packuw); } =20 -static bool trans_bsetw(DisasContext *ctx, arg_bsetw *a) -{ - REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); - ctx->w =3D true; - return gen_shift(ctx, a, EXT_NONE, gen_bset); -} - -static bool trans_bsetiw(DisasContext *ctx, arg_bsetiw *a) -{ - REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); - ctx->w =3D true; - return gen_shift_imm_tl(ctx, a, EXT_NONE, gen_bset); -} - -static bool trans_bclrw(DisasContext *ctx, arg_bclrw *a) -{ - REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); - ctx->w =3D true; - return gen_shift(ctx, a, EXT_NONE, gen_bclr); -} - -static bool trans_bclriw(DisasContext *ctx, arg_bclriw *a) -{ - REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); - ctx->w =3D true; - return gen_shift_imm_tl(ctx, a, EXT_NONE, gen_bclr); -} - -static bool trans_binvw(DisasContext *ctx, arg_binvw *a) -{ - REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); - ctx->w =3D true; - return gen_shift(ctx, a, EXT_NONE, gen_binv); -} - -static bool trans_binviw(DisasContext *ctx, arg_binviw *a) -{ - REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); - ctx->w =3D true; - return gen_shift_imm_tl(ctx, a, EXT_NONE, gen_binv); -} - -static bool trans_bextw(DisasContext *ctx, arg_bextw *a) -{ - REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); - ctx->w =3D true; - return gen_shift(ctx, a, EXT_NONE, gen_bext); -} - static bool trans_slow(DisasContext *ctx, arg_slow *a) { REQUIRE_64BIT(ctx); --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 163358958297738.60679101890673; Wed, 6 Oct 2021 23:53:02 -0700 (PDT) Received: from localhost ([::1]:48050 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNH3-0006UT-Tx for importer@patchew.org; Thu, 07 Oct 2021 02:53:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33880) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYND2-0003Jw-3t for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:48:52 -0400 Received: from esa2.hgst.iphmx.com ([68.232.143.124]:36035) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNCz-0004gx-71 for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:48:51 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:48:47 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:24:41 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:48:48 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ23M4CmLz1RvmL for ; Wed, 6 Oct 2021 23:48:47 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id BO_Ve2m91C19 for ; Wed, 6 Oct 2021 23:48:46 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ23G0qygz1RvTg; Wed, 6 Oct 2021 23:48:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589329; x=1665125329; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=NaAjtM37i/DePknbGhxrgWMHmZ++CFtQwZ8ZLjKS/ik=; b=KMvBBIvu7pwbphQtWpRqY8hUcxsmEckAdyh5PALaugmNHUuKwV1G942D jRNIm1PVU1SzsYVk6ghy0L52Urm82kc5VVVsJNTA5qobWUKaeAcUUa9ro rH9IGRlq7MfFZRtMpqbM6Xv/xXCF4V0PrzLa6Hn+HLdMkveBExiEE9WT5 8/K6kMdH/6NKeybLi9t+cBTNs2fMbyG/wikiLexWQ+bArszC+W5zcH2S5 IA4i7jd6Wa7b3g2PA8EnyqaViOcHtXGg37WfUHhJR7JsyHaFG5zNit8ZT 9H2man+Ua4Q6P+s04gJjoZIj6bg44S4qget/LlvHME0hw4314iRS5ShsC w==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="285950680" IronPort-SDR: TKHioaixDtlHfrucXNoMgb5jTQjcWTa75bZBsq9CeqYySejKrymkzQg1Zrl1hAcxwNvhdIl98J TdVMpXuKQUl8vhtO6Lpgj681PDI9JxrF4q+6b57tlB+mf5sKDXgOvyFhmnie1W4qbbPKr7zSzz ZD0neiv1q+PwGN1QnJvmMe34DweCzf9c2ch/US94FlhFWqlE1cvNAMGobTGEFYRpsYjw9mRYmZ LZSlZX4/o9R9JqWTRvPZDbqMTPFt1ahWMbx3d1SNiMYergRpaDP+iX4If8pQj4gEJpspbWzTXM EE8El459HaiYDXEI8ysTt/AR IronPort-SDR: p0IcnDf6lDaz+Qj+DLMiU1w6ip/UbiLqR5OXaZvMy8V3jvV+bJows7O4bvd1qPesUXg7ZXp5Ed 1awZtcRtPL2Se/N01Ef23WJxEmIxvbPs5uvjpfMqv0pMSJeHE14P1V20NJaxDTHt9FmuySuxtZ GtxVa9aeUGvPxO1nS6W+UDcqO1o/xATNaKkfpPBoDg85XA2hlvtjVIR5GwnLEn0Zhpsc1x8iwi 0fE/ABlCevkk3jjXHKvDL3SSfiCdZDRsz48ylYKPrvbH4GBuG7wHDyopuQhJgAKwUgdfzcgH3o M7Y= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1633589326; x=1636181327; bh=NaAjtM37i/DePknbGh xrgWMHmZ++CFtQwZ8ZLjKS/ik=; b=Ke5mKg/Eb0Ca5ZZvhqt0FzzCIb/wNkZ6tk lFSs+iO4rHRhRK6m0+V0eujjnjViAzPsPuL3wLz46iJI3qga792nk+p7vora7Gq6 YhnYmGzhw/uU1rKntNtOD7m6vriOI0yIqDaIMIdOb7erE7AuTBeQai7w5teiIk5E 9NWVgaLasoSMZrvJFA4w5xY8GQccdUthKloEE88YeysmmmPlStitv5OFjlNujDfa vZrfLlZAl3pCI1vAVydo3aCOE8s4a1vSaUHD5g8M/FZI3G/2supxqMMwogdv5ebD gn2+dxJsx2VRliGKr5UH/WhqDo4m1FzE5HAV8KEAD7oMnMExfgXQ== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, Philipp Tomsich , Richard Henderson , Alistair Francis , Bin Meng Subject: [PULL 07/26] target/riscv: Remove shift-one instructions (proposed Zbo in pre-0.93 draft-B) Date: Thu, 7 Oct 2021 16:47:32 +1000 Message-Id: <20211007064751.608580-8-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=68.232.143.124; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633589584714100001 Content-Type: text/plain; charset="utf-8" From: Philipp Tomsich The Zb[abcs] ratification package does not include the proposed shift-one instructions. There currently is no clear plan to whether these (or variants of them) will be ratified as Zbo (or a different extension) or what the timeframe for such a decision could be. Signed-off-by: Philipp Tomsich Reviewed-by: Richard Henderson Reviewed-by: Alistair Francis Acked-by: Bin Meng Message-id: 20210911140016.834071-8-philipp.tomsich@vrull.eu Signed-off-by: Alistair Francis --- target/riscv/insn32.decode | 8 --- target/riscv/insn_trans/trans_rvb.c.inc | 70 ------------------------- 2 files changed, 78 deletions(-) diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode index b499691a9e..e0f6e315a2 100644 --- a/target/riscv/insn32.decode +++ b/target/riscv/insn32.decode @@ -693,8 +693,6 @@ bset 0010100 .......... 001 ..... 0110011 @r bclr 0100100 .......... 001 ..... 0110011 @r binv 0110100 .......... 001 ..... 0110011 @r bext 0100100 .......... 101 ..... 0110011 @r -slo 0010000 .......... 001 ..... 0110011 @r -sro 0010000 .......... 101 ..... 0110011 @r ror 0110000 .......... 101 ..... 0110011 @r rol 0110000 .......... 001 ..... 0110011 @r grev 0110100 .......... 101 ..... 0110011 @r @@ -704,8 +702,6 @@ bseti 00101. ........... 001 ..... 0010011 @sh bclri 01001. ........... 001 ..... 0010011 @sh binvi 01101. ........... 001 ..... 0010011 @sh bexti 01001. ........... 101 ..... 0010011 @sh -sloi 00100. ........... 001 ..... 0010011 @sh -sroi 00100. ........... 101 ..... 0010011 @sh rori 01100. ........... 101 ..... 0010011 @sh grevi 01101. ........... 101 ..... 0010011 @sh gorci 00101. ........... 101 ..... 0010011 @sh @@ -717,15 +713,11 @@ cpopw 0110000 00010 ..... 001 ..... 0011011 @r2 =20 packw 0000100 .......... 100 ..... 0111011 @r packuw 0100100 .......... 100 ..... 0111011 @r -slow 0010000 .......... 001 ..... 0111011 @r -srow 0010000 .......... 101 ..... 0111011 @r rorw 0110000 .......... 101 ..... 0111011 @r rolw 0110000 .......... 001 ..... 0111011 @r grevw 0110100 .......... 101 ..... 0111011 @r gorcw 0010100 .......... 101 ..... 0111011 @r =20 -sloiw 0010000 .......... 001 ..... 0011011 @sh5 -sroiw 0010000 .......... 101 ..... 0011011 @sh5 roriw 0110000 .......... 101 ..... 0011011 @sh5 greviw 0110100 .......... 101 ..... 0011011 @sh5 gorciw 0010100 .......... 101 ..... 0011011 @sh5 diff --git a/target/riscv/insn_trans/trans_rvb.c.inc b/target/riscv/insn_tr= ans/trans_rvb.c.inc index fbe1c3b410..a5bf40f95b 100644 --- a/target/riscv/insn_trans/trans_rvb.c.inc +++ b/target/riscv/insn_trans/trans_rvb.c.inc @@ -237,44 +237,6 @@ static bool trans_bexti(DisasContext *ctx, arg_bexti *= a) return gen_shift_imm_tl(ctx, a, EXT_NONE, gen_bext); } =20 -static void gen_slo(TCGv ret, TCGv arg1, TCGv arg2) -{ - tcg_gen_not_tl(ret, arg1); - tcg_gen_shl_tl(ret, ret, arg2); - tcg_gen_not_tl(ret, ret); -} - -static bool trans_slo(DisasContext *ctx, arg_slo *a) -{ - REQUIRE_EXT(ctx, RVB); - return gen_shift(ctx, a, EXT_NONE, gen_slo); -} - -static bool trans_sloi(DisasContext *ctx, arg_sloi *a) -{ - REQUIRE_EXT(ctx, RVB); - return gen_shift_imm_tl(ctx, a, EXT_NONE, gen_slo); -} - -static void gen_sro(TCGv ret, TCGv arg1, TCGv arg2) -{ - tcg_gen_not_tl(ret, arg1); - tcg_gen_shr_tl(ret, ret, arg2); - tcg_gen_not_tl(ret, ret); -} - -static bool trans_sro(DisasContext *ctx, arg_sro *a) -{ - REQUIRE_EXT(ctx, RVB); - return gen_shift(ctx, a, EXT_ZERO, gen_sro); -} - -static bool trans_sroi(DisasContext *ctx, arg_sroi *a) -{ - REQUIRE_EXT(ctx, RVB); - return gen_shift_imm_tl(ctx, a, EXT_ZERO, gen_sro); -} - static bool trans_ror(DisasContext *ctx, arg_ror *a) { REQUIRE_EXT(ctx, RVB); @@ -420,38 +382,6 @@ static bool trans_packuw(DisasContext *ctx, arg_packuw= *a) return gen_arith(ctx, a, EXT_NONE, gen_packuw); } =20 -static bool trans_slow(DisasContext *ctx, arg_slow *a) -{ - REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); - ctx->w =3D true; - return gen_shift(ctx, a, EXT_NONE, gen_slo); -} - -static bool trans_sloiw(DisasContext *ctx, arg_sloiw *a) -{ - REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); - ctx->w =3D true; - return gen_shift_imm_tl(ctx, a, EXT_NONE, gen_slo); -} - -static bool trans_srow(DisasContext *ctx, arg_srow *a) -{ - REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); - ctx->w =3D true; - return gen_shift(ctx, a, EXT_ZERO, gen_sro); -} - -static bool trans_sroiw(DisasContext *ctx, arg_sroiw *a) -{ - REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); - ctx->w =3D true; - return gen_shift_imm_tl(ctx, a, EXT_ZERO, gen_sro); -} - static void gen_rorw(TCGv ret, TCGv arg1, TCGv arg2) { TCGv_i32 t1 =3D tcg_temp_new_i32(); --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1633589717639302.5086369253718; Wed, 6 Oct 2021 23:55:17 -0700 (PDT) Received: from localhost ([::1]:55914 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNJE-0003Ft-LW for importer@patchew.org; Thu, 07 Oct 2021 02:55:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33908) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYND6-0003WD-Bb for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:48:57 -0400 Received: from esa2.hgst.iphmx.com ([68.232.143.124]:36035) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYND4-0004gx-GT for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:48:56 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:48:53 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:24:47 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:48:54 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ23T3ZrJz1Rvlt for ; Wed, 6 Oct 2021 23:48:53 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id C0HE8fYZ028S for ; Wed, 6 Oct 2021 23:48:52 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ23M6lXQz1RvTg; Wed, 6 Oct 2021 23:48:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589334; x=1665125334; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=1ZdEhU7r6L0bpJ3vQG0a6lUxe+r2D9ufx984WVmDeKM=; b=ZUu+I/w9i4xe1ddnJYdytsPMO0LBDm1W9g7nnze8DgKjeIfbnVKz3Vc/ GpZJrFOLBoFbh7nv1QZR3ow+OOUVNFz0H8Sili+plyFju7IgCMoSSNfVI DspHyq1XHj+rZMN1a3xGSsHfqPn9e4OLCA+UC48snSiB4uwsp1f9iAnw4 Xi0YTCQsPMg/YRdjJ5WpLxVYj3drDH5MJnD4gecNfl9gvJrzLS/Yuh9bZ NF/+xYVOw4KxMkX9XvZA/TMJmAtAKFMNWR/iNmdNI7oooOeMpvC+EsgUl eAEa69KAG92/ABjT/lYm4o3E2tu83fvyJV+pJBoHj/fpXeFNRCkqDCnod g==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="285950685" IronPort-SDR: cXpb1fMmjdTcpWYq+JxAXVrUMlwciAmDmDi/Hw/apDFbpZB3NCxybaJO7FBBk8kpaGsJKCgRHj aFCprmi/OwjbGkWbXkyJs/qHVpvLU9j+SV/mwydaTXpYaxpnWyeu4fr51FFuM5mcg/vkXUQPmy rr5IGEe1pdChwOHvfHg8Lxs+Ih6rAvYf/TqQ9vJOcbdz+wT1AUSKuvX/r7bSHdkeH50OYAqVdg +xXtJnkiPpUNBd7GZaNRnRelL8mAtxTB5KOiLi42X8//62TTBTEDkLahTpMuqn7vSbCXywd3TI Zjp5cLrHCnaFHVrQEZTfiXdv IronPort-SDR: mteJsCsDbkYF8Q7KdW279dYCQNffzEQrffsVNZg2CWi1kc03NVQxEwK7x5SC3Q24aF2rMyj9Us GnwnETuWvsSmYu7Qhsn0ohnLRVO3s9Zw4fWYwwRPU5XfmXJ/jS79A+VTiBgKTNkV59Zeh7sf9u oYHGh2Di1NwEb8VsK13A0NvqQ01o4g+S2pjqhlnHFISBQgZmVhXpqqOh8PO2qis32pwGP6YCNz RtYvucJKKh74P13HBQIKhdTAY3+J0A6ZKywBRBiGHJOG7F0UCGKRPlAqhWwZE0VwBYY4y2/7pF vas= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1633589332; x=1636181333; bh=1ZdEhU7r6L0bpJ3vQG 0a6lUxe+r2D9ufx984WVmDeKM=; b=ffrJdmyFYjq84UAo1tw3ePjbU8qosJpg3B FhvgkDuDE4t+bfw4kabZxHByMwh7TLMqokdwqvanQQFO4w2somO7mxLvPLioFnr1 +ELYhP+0tFPdx0mFmd6CLqdgDayANgi2S8X/YtDzkwKeXflXkvg+72SD0W5ubbBS O9bKUWDZa4YZgsjBOk8Kme5/LTHXAl4GfzlNFvD86QNYgybU+ttb7ehzPDrQxtMr gbqbpMYHhvs26PoUCmFaIwToD+vI0vEgVwrzA1xN/yRY1riXL2kx7Ql0do1zTU8B +n6sWEJXs9R9J8tihdxYdIXeGuK4liNb2m2XvlQL/f9zQA/S5ePQ== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, Philipp Tomsich , Richard Henderson , Alistair Francis , Bin Meng Subject: [PULL 08/26] target/riscv: Reassign instructions to the Zbs-extension Date: Thu, 7 Oct 2021 16:47:33 +1000 Message-Id: <20211007064751.608580-9-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=68.232.143.124; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633589718020100001 Content-Type: text/plain; charset="utf-8" From: Philipp Tomsich The following instructions are part of Zbs: - b{set,clr,ext,inv} - b{set,clr,ext,inv}i Signed-off-by: Philipp Tomsich Reviewed-by: Richard Henderson Reviewed-by: Alistair Francis Acked-by: Bin Meng Message-id: 20210911140016.834071-9-philipp.tomsich@vrull.eu Signed-off-by: Alistair Francis --- target/riscv/insn32.decode | 17 +++++++++-------- target/riscv/insn_trans/trans_rvb.c.inc | 25 +++++++++++++++---------- 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode index e0f6e315a2..35a3563ff4 100644 --- a/target/riscv/insn32.decode +++ b/target/riscv/insn32.decode @@ -689,19 +689,11 @@ min 0000101 .......... 100 ..... 0110011 @r minu 0000101 .......... 101 ..... 0110011 @r max 0000101 .......... 110 ..... 0110011 @r maxu 0000101 .......... 111 ..... 0110011 @r -bset 0010100 .......... 001 ..... 0110011 @r -bclr 0100100 .......... 001 ..... 0110011 @r -binv 0110100 .......... 001 ..... 0110011 @r -bext 0100100 .......... 101 ..... 0110011 @r ror 0110000 .......... 101 ..... 0110011 @r rol 0110000 .......... 001 ..... 0110011 @r grev 0110100 .......... 101 ..... 0110011 @r gorc 0010100 .......... 101 ..... 0110011 @r =20 -bseti 00101. ........... 001 ..... 0010011 @sh -bclri 01001. ........... 001 ..... 0010011 @sh -binvi 01101. ........... 001 ..... 0010011 @sh -bexti 01001. ........... 101 ..... 0010011 @sh rori 01100. ........... 101 ..... 0010011 @sh grevi 01101. ........... 101 ..... 0010011 @sh gorci 00101. ........... 101 ..... 0010011 @sh @@ -722,3 +714,12 @@ roriw 0110000 .......... 101 ..... 0011011 @sh5 greviw 0110100 .......... 101 ..... 0011011 @sh5 gorciw 0010100 .......... 101 ..... 0011011 @sh5 =20 +# *** RV32 Zbs Standard Extension *** +bclr 0100100 .......... 001 ..... 0110011 @r +bclri 01001. ........... 001 ..... 0010011 @sh +bext 0100100 .......... 101 ..... 0110011 @r +bexti 01001. ........... 101 ..... 0010011 @sh +binv 0110100 .......... 001 ..... 0110011 @r +binvi 01101. ........... 001 ..... 0010011 @sh +bset 0010100 .......... 001 ..... 0110011 @r +bseti 00101. ........... 001 ..... 0010011 @sh diff --git a/target/riscv/insn_trans/trans_rvb.c.inc b/target/riscv/insn_tr= ans/trans_rvb.c.inc index a5bf40f95b..861364e3e5 100644 --- a/target/riscv/insn_trans/trans_rvb.c.inc +++ b/target/riscv/insn_trans/trans_rvb.c.inc @@ -1,5 +1,5 @@ /* - * RISC-V translation routines for the RVB draft and Zba Standard Extensio= n. + * RISC-V translation routines for the RVB draft Zb[as] Standard Extension. * * Copyright (c) 2020 Kito Cheng, kito.cheng@sifive.com * Copyright (c) 2020 Frank Chang, frank.chang@sifive.com @@ -24,11 +24,16 @@ } \ } while (0) =20 +#define REQUIRE_ZBS(ctx) do { \ + if (!RISCV_CPU(ctx->cs)->cfg.ext_zbs) { \ + return false; \ + } \ +} while (0) + static void gen_clz(TCGv ret, TCGv arg1) { tcg_gen_clzi_tl(ret, arg1, TARGET_LONG_BITS); } - static bool trans_clz(DisasContext *ctx, arg_clz *a) { REQUIRE_EXT(ctx, RVB); @@ -165,13 +170,13 @@ static void gen_bset(TCGv ret, TCGv arg1, TCGv shamt) =20 static bool trans_bset(DisasContext *ctx, arg_bset *a) { - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBS(ctx); return gen_shift(ctx, a, EXT_NONE, gen_bset); } =20 static bool trans_bseti(DisasContext *ctx, arg_bseti *a) { - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBS(ctx); return gen_shift_imm_tl(ctx, a, EXT_NONE, gen_bset); } =20 @@ -187,13 +192,13 @@ static void gen_bclr(TCGv ret, TCGv arg1, TCGv shamt) =20 static bool trans_bclr(DisasContext *ctx, arg_bclr *a) { - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBS(ctx); return gen_shift(ctx, a, EXT_NONE, gen_bclr); } =20 static bool trans_bclri(DisasContext *ctx, arg_bclri *a) { - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBS(ctx); return gen_shift_imm_tl(ctx, a, EXT_NONE, gen_bclr); } =20 @@ -209,13 +214,13 @@ static void gen_binv(TCGv ret, TCGv arg1, TCGv shamt) =20 static bool trans_binv(DisasContext *ctx, arg_binv *a) { - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBS(ctx); return gen_shift(ctx, a, EXT_NONE, gen_binv); } =20 static bool trans_binvi(DisasContext *ctx, arg_binvi *a) { - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBS(ctx); return gen_shift_imm_tl(ctx, a, EXT_NONE, gen_binv); } =20 @@ -227,13 +232,13 @@ static void gen_bext(TCGv ret, TCGv arg1, TCGv shamt) =20 static bool trans_bext(DisasContext *ctx, arg_bext *a) { - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBS(ctx); return gen_shift(ctx, a, EXT_NONE, gen_bext); } =20 static bool trans_bexti(DisasContext *ctx, arg_bexti *a) { - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBS(ctx); return gen_shift_imm_tl(ctx, a, EXT_NONE, gen_bext); } =20 --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 163358977193190.17648175886688; Wed, 6 Oct 2021 23:56:11 -0700 (PDT) Received: from localhost ([::1]:56650 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNK6-0003jr-SI for importer@patchew.org; Thu, 07 Oct 2021 02:56:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33962) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNDB-0003a9-JC for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:49:01 -0400 Received: from esa2.hgst.iphmx.com ([68.232.143.124]:36035) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYND9-0004gx-Fk for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:49:01 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:48:58 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:24:52 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:48:59 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ23Z44MRz1RvmH for ; Wed, 6 Oct 2021 23:48:58 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id icc_tOsUNTWr for ; Wed, 6 Oct 2021 23:48:57 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ23V1K5cz1RvTg; Wed, 6 Oct 2021 23:48:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589339; x=1665125339; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=WsOJICK/03juKskqEIrXcCjG3ioOPbKay0Lb2704cvg=; b=StaPv7rlmI56Zt6Aj3IixtG9G94SS2fZYGL16Xcbm1Rhlgm9RPMKIb4p t9CfziRn8Ed7izWDfRaY72DziAzGPVPIu42bT3yFki+1Y61B5In//ZcZr Gp78Nf+pcHIDMchxbxGH8L8lUayXGxbC1Yx0WntOWhOsgRqoQIfGSSVKH CG3vZO5el924hC6p0pkE1Ta2GfC+Hct4Ga/s1QnW7Hhm8xnUfPmFpa4xF NhYG4BWQbfbkNXc5R4aJQWtvolcQ+51aNjxkqNtSXq3KZMgT4r3OgoN54 0fajDf6iR+NwT0EmO2tdxayWQ9pTob7CafNe5ceoKL+WqN1O3jxQThfl0 w==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="285950690" IronPort-SDR: sa3U2mPmaigxC2hsOY9/GnY1p1AWZdd5q1jVbLqNMevJdyDsKS86ZMsJb/aKa+n5TJ3XhEeZt4 f6jFh03DaYsCyB4Y96rHgf5kWYpPC75U10rk+NrdA2aQxDAZVdRxrmsohhJcCOAG8BDWFCxaQn ziYZ6HzuV+Iig0YoMEKC0jURO8wLEFWSeVNfPXvCkvs6TBbYwwRMY+m/z7JrhR/4NgEUyBnqLN TUNfbhRuogUwjHQBtSWOJXOH9jAG25BAYLgkB+Sb3H5v6hhpZcj+pZxQUq9bXdkCb6H5JV/pt1 Z/X0n/LYfS18ToGiVHDtLS7l IronPort-SDR: YfKf0yFpScOLae3qtoDiAkJdgb2B2hdxmENG1EwdfTjwPlY7pVFw/okI4RKY/CLVfxw9Pzu1u+ Jux65y78rdNJyDnIuz64/I3Ei1GFUg+bA/9McvrdGzl/ezw8r6wU8/nxUZI0fSxXq4OWkJ5EOo C7/HxibAIssB8ViCX1KdJeoUybZWsD5b8IgcPt4er2nJ2j3LU14NyA7rklwcHMp0rt5sGMDVGa zm79wzfONtXzagQvKuE+A4eryNkGNB91oYp01uETUyeRtgaf6E7aCaaUy+TEUOSdeiKVtzAdMw rb0= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1633589337; x=1636181338; bh=WsOJICK/03juKskqEI rXcCjG3ioOPbKay0Lb2704cvg=; b=rjjwsEP6AsKalgD8vNtbjsJT7JDuJzNbnN 9QMnBeq2tDFfkayntNjovTCn5g2LU7x/WLX+Ok5K/bM9oholKYgOkOEJpDi0kFZu J2PhkWYj+my9Ja0+XZa3FI6StGauvOAs8FkgpGpaLq8lJw6DDFpLTaYVVF5j/jeS I7/T1rJvg8KDQObJXahGaXWNTvuSi5/VzgNk+bCrvRyDYFwDz06hQfDngJxGmkr8 J5NF2wkrWaPhAgd2z8lwz9BU6nUWktkAdtkUflK2qUl0MaHRcYOnvyqitSGHKfRn XRu6gKLuydlKN1NHITO6n/YD95RSNMqlCIp45Dfcj2aqZ22u591A== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, Philipp Tomsich , Richard Henderson , Alistair Francis Subject: [PULL 09/26] target/riscv: Add instructions of the Zbc-extension Date: Thu, 7 Oct 2021 16:47:34 +1000 Message-Id: <20211007064751.608580-10-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=68.232.143.124; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633589774174100001 Content-Type: text/plain; charset="utf-8" From: Philipp Tomsich The following instructions are part of Zbc: - clmul - clmulh - clmulr Note that these instructions were already defined in the pre-0.93 and the 0.93 draft-B proposals, but had not been omitted in the earlier addition of draft-B to QEmu. Signed-off-by: Philipp Tomsich Reviewed-by: Richard Henderson Reviewed-by: Alistair Francis Message-id: 20210911140016.834071-10-philipp.tomsich@vrull.eu Signed-off-by: Alistair Francis --- target/riscv/helper.h | 2 ++ target/riscv/insn32.decode | 5 ++++ target/riscv/bitmanip_helper.c | 27 +++++++++++++++++++++ target/riscv/insn_trans/trans_rvb.c.inc | 32 ++++++++++++++++++++++++- 4 files changed, 65 insertions(+), 1 deletion(-) diff --git a/target/riscv/helper.h b/target/riscv/helper.h index 460eee9988..8a318a2dbc 100644 --- a/target/riscv/helper.h +++ b/target/riscv/helper.h @@ -63,6 +63,8 @@ DEF_HELPER_FLAGS_2(grev, TCG_CALL_NO_RWG_SE, tl, tl, tl) DEF_HELPER_FLAGS_2(grevw, TCG_CALL_NO_RWG_SE, tl, tl, tl) DEF_HELPER_FLAGS_2(gorc, TCG_CALL_NO_RWG_SE, tl, tl, tl) DEF_HELPER_FLAGS_2(gorcw, TCG_CALL_NO_RWG_SE, tl, tl, tl) +DEF_HELPER_FLAGS_2(clmul, TCG_CALL_NO_RWG_SE, tl, tl, tl) +DEF_HELPER_FLAGS_2(clmulr, TCG_CALL_NO_RWG_SE, tl, tl, tl) =20 /* Special functions */ DEF_HELPER_2(csrr, tl, env, int) diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode index 35a3563ff4..1658bb4217 100644 --- a/target/riscv/insn32.decode +++ b/target/riscv/insn32.decode @@ -714,6 +714,11 @@ roriw 0110000 .......... 101 ..... 0011011 @sh5 greviw 0110100 .......... 101 ..... 0011011 @sh5 gorciw 0010100 .......... 101 ..... 0011011 @sh5 =20 +# *** RV32 Zbc Standard Extension *** +clmul 0000101 .......... 001 ..... 0110011 @r +clmulh 0000101 .......... 011 ..... 0110011 @r +clmulr 0000101 .......... 010 ..... 0110011 @r + # *** RV32 Zbs Standard Extension *** bclr 0100100 .......... 001 ..... 0110011 @r bclri 01001. ........... 001 ..... 0010011 @sh diff --git a/target/riscv/bitmanip_helper.c b/target/riscv/bitmanip_helper.c index 5b2f795d03..73be5a81c7 100644 --- a/target/riscv/bitmanip_helper.c +++ b/target/riscv/bitmanip_helper.c @@ -3,6 +3,7 @@ * * Copyright (c) 2020 Kito Cheng, kito.cheng@sifive.com * Copyright (c) 2020 Frank Chang, frank.chang@sifive.com + * Copyright (c) 2021 Philipp Tomsich, philipp.tomsich@vrull.eu * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -88,3 +89,29 @@ target_ulong HELPER(gorcw)(target_ulong rs1, target_ulon= g rs2) { return do_gorc(rs1, rs2, 32); } + +target_ulong HELPER(clmul)(target_ulong rs1, target_ulong rs2) +{ + target_ulong result =3D 0; + + for (int i =3D 0; i < TARGET_LONG_BITS; i++) { + if ((rs2 >> i) & 1) { + result ^=3D (rs1 << i); + } + } + + return result; +} + +target_ulong HELPER(clmulr)(target_ulong rs1, target_ulong rs2) +{ + target_ulong result =3D 0; + + for (int i =3D 0; i < TARGET_LONG_BITS; i++) { + if ((rs2 >> i) & 1) { + result ^=3D (rs1 >> (TARGET_LONG_BITS - i - 1)); + } + } + + return result; +} diff --git a/target/riscv/insn_trans/trans_rvb.c.inc b/target/riscv/insn_tr= ans/trans_rvb.c.inc index 861364e3e5..2eb5fa3640 100644 --- a/target/riscv/insn_trans/trans_rvb.c.inc +++ b/target/riscv/insn_trans/trans_rvb.c.inc @@ -1,5 +1,5 @@ /* - * RISC-V translation routines for the RVB draft Zb[as] Standard Extension. + * RISC-V translation routines for the Zb[acs] Standard Extension. * * Copyright (c) 2020 Kito Cheng, kito.cheng@sifive.com * Copyright (c) 2020 Frank Chang, frank.chang@sifive.com @@ -24,6 +24,12 @@ } \ } while (0) =20 +#define REQUIRE_ZBC(ctx) do { \ + if (!RISCV_CPU(ctx->cs)->cfg.ext_zbc) { \ + return false; \ + } \ +} while (0) + #define REQUIRE_ZBS(ctx) do { \ if (!RISCV_CPU(ctx->cs)->cfg.ext_zbs) { \ return false; \ @@ -535,3 +541,27 @@ static bool trans_slli_uw(DisasContext *ctx, arg_slli_= uw *a) REQUIRE_ZBA(ctx); return gen_shift_imm_fn(ctx, a, EXT_NONE, gen_slli_uw); } + +static bool trans_clmul(DisasContext *ctx, arg_clmul *a) +{ + REQUIRE_ZBC(ctx); + return gen_arith(ctx, a, EXT_NONE, gen_helper_clmul); +} + +static void gen_clmulh(TCGv dst, TCGv src1, TCGv src2) +{ + gen_helper_clmulr(dst, src1, src2); + tcg_gen_shri_tl(dst, dst, 1); +} + +static bool trans_clmulh(DisasContext *ctx, arg_clmulr *a) +{ + REQUIRE_ZBC(ctx); + return gen_arith(ctx, a, EXT_NONE, gen_clmulh); +} + +static bool trans_clmulr(DisasContext *ctx, arg_clmulh *a) +{ + REQUIRE_ZBC(ctx); + return gen_arith(ctx, a, EXT_NONE, gen_helper_clmulr); +} --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1633590155023634.2638781795256; Thu, 7 Oct 2021 00:02:35 -0700 (PDT) Received: from localhost ([::1]:43354 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNQH-0005wy-OV for importer@patchew.org; Thu, 07 Oct 2021 03:02:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34050) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNDR-00046e-4c for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:49:17 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:24054) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNDO-0006EZ-SE for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:49:16 -0400 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:49:08 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:23:27 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:49:07 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ23j2yHlz1SHvt for ; Wed, 6 Oct 2021 23:49:05 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 5EpOtt22vpCz for ; Wed, 6 Oct 2021 23:49:04 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ23b10KVz1RvTg; Wed, 6 Oct 2021 23:48:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589354; x=1665125354; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=MxalhseLi36UKYAPd5ZRGgexP5PLsfw7Q5xkRkgPNTw=; b=iuChB8H0Of62Qs42KK4Ilew17BGqBw/Vt9qiFxClb/aefcEEThkaFDUh QuKgV8GraTuga74hoayRCPqImfD5KOU3XuQ5E3YRgvAUr2FZmt15+T9H0 tSLXB/yAzlRVLgvYz7agQ1PmmRJqO+tWPKFF0RrnhXda1UPC3cV9xDD5T mOadpK0rJTF1n6TCWr76W2OS3EdpAQ5asaXTLErfiUMiyBzxPjUtSjAdd R9bF+NB5OjrmM8DYhSxQl+B+wggzOQDItIdmiavls0GXOvjRJdpXEkhpX Cp9JxbBSA+MPptZ35NWfnjspKf/NlXKkvdzCOe/tM46+Vzr6HisfLedvn A==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="186894897" IronPort-SDR: ZUPsROyFGoBknAyWI/PA/3H5Lc65VAdjPrEfQYMzXMPY6vb+xpbGPnvzEOUvS3QfarNJJ+VbHE EA4ZPvb1WErwzBgLko9Z+rEVHB3ebl1itiMUO4IB2W3dPeK2rBO3Qurb4LU6KxO1gsE0O9IAnv MDzScQyA0/kdL/b82YB26yqlSac8IE3FJx5My4ukJokgrhVGVAoMg1a41gTkRb1HojGbCLeRGC JjSaxA3LIpYtVfrs23o/HRXI7Dw7L8bNVcvuckZen+DmTd6d7gooatPubir4KYM/9G/vmMjEns V002U4/atPsX2Me9y1blrYpn IronPort-SDR: 53Ircg2CpuwBboZ1oyvmTdQcWhz9lfpYsSfbrKlswOXOFBWiOxjrp8H6W77Zm3WwgtS5kvAgGq VOLWUl4Wpjn20yoUzBfVTxpcGWb9PcnmEy99a2uWu1TTC6gmc9TO8gNrpjRBewlHN09OAtcjoG /X2Zg3crBvX3I42m0a5cPHrd0scu2OEG6v4xO1hYpLcSxMkGepAnM97bcAVejUOB12yeBD7gO1 I1YBPQeN3JHv6pmvWP9QHUf0Dw5fZOV5HJejAL93QkmuP+QVShABdbb4fDhxUTNqTEYvU41pXg XTU= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1633589344; x=1636181345; bh=MxalhseLi36UKYAPd5 ZRGgexP5PLsfw7Q5xkRkgPNTw=; b=ljd8m6xQra80FLNVV/k1gUFSsvjTSEsP6D vd/ra3cmI/yxQtNgzNsetaFgrdfOA23CeSrVoFfCcSiEu5scjCK9k89I8znzR/Cx L50nD42Q+NkrSCD4V4+nxjMZRAdKr0iZes3KWwM9mPTAGQ+VxSBYwxJmugRwxqga dTDudzXrN8P3pgpelyk1q7QEBvQhA2Gzt2icc3SITF5++Mv3fWJxfEEH7PayjAja b2+i1ehi30i+nwmVTba6XnPrWg7M0sLzP9uhdBXjPoOCMv36bPb3Qlph4D9sX7la ZAUSF3PEUazX+Lf/+lZ7sGa8CAtg3I5PTGt0NG9/rLjs6c5uKqkQ== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, Philipp Tomsich , Richard Henderson , Alistair Francis , Bin Meng Subject: [PULL 10/26] target/riscv: Reassign instructions to the Zbb-extension Date: Thu, 7 Oct 2021 16:47:35 +1000 Message-Id: <20211007064751.608580-11-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=216.71.153.141; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633590156383100001 Content-Type: text/plain; charset="utf-8" From: Philipp Tomsich This reassigns the instructions that are part of Zbb into it, with the notable exceptions of the instructions (rev8, zext.w and orc.b) that changed due to gorci, grevi and pack not being part of Zb[abcs]. Signed-off-by: Philipp Tomsich Reviewed-by: Richard Henderson Reviewed-by: Alistair Francis Acked-by: Bin Meng Message-id: 20210911140016.834071-11-philipp.tomsich@vrull.eu Signed-off-by: Alistair Francis --- target/riscv/insn32.decode | 40 ++++++++++--------- target/riscv/insn_trans/trans_rvb.c.inc | 51 ++++++++++++++----------- 2 files changed, 50 insertions(+), 41 deletions(-) diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode index 1658bb4217..a509cfee11 100644 --- a/target/riscv/insn32.decode +++ b/target/riscv/insn32.decode @@ -672,45 +672,47 @@ sh2add_uw 0010000 .......... 100 ..... 0111011 @r sh3add_uw 0010000 .......... 110 ..... 0111011 @r slli_uw 00001 ............ 001 ..... 0011011 @sh =20 -# *** RV32B Standard Extension *** +# *** RV32 Zbb Standard Extension *** +andn 0100000 .......... 111 ..... 0110011 @r clz 011000 000000 ..... 001 ..... 0010011 @r2 -ctz 011000 000001 ..... 001 ..... 0010011 @r2 cpop 011000 000010 ..... 001 ..... 0010011 @r2 +ctz 011000 000001 ..... 001 ..... 0010011 @r2 +max 0000101 .......... 110 ..... 0110011 @r +maxu 0000101 .......... 111 ..... 0110011 @r +min 0000101 .......... 100 ..... 0110011 @r +minu 0000101 .......... 101 ..... 0110011 @r +orn 0100000 .......... 110 ..... 0110011 @r +rol 0110000 .......... 001 ..... 0110011 @r +ror 0110000 .......... 101 ..... 0110011 @r +rori 01100 ............ 101 ..... 0010011 @sh sext_b 011000 000100 ..... 001 ..... 0010011 @r2 sext_h 011000 000101 ..... 001 ..... 0010011 @r2 - -andn 0100000 .......... 111 ..... 0110011 @r -orn 0100000 .......... 110 ..... 0110011 @r xnor 0100000 .......... 100 ..... 0110011 @r + +# *** RV64 Zbb Standard Extension (in addition to RV32 Zbb) *** +clzw 0110000 00000 ..... 001 ..... 0011011 @r2 +ctzw 0110000 00001 ..... 001 ..... 0011011 @r2 +cpopw 0110000 00010 ..... 001 ..... 0011011 @r2 +rolw 0110000 .......... 001 ..... 0111011 @r +roriw 0110000 .......... 101 ..... 0011011 @sh5 +rorw 0110000 .......... 101 ..... 0111011 @r + +# *** RV32B Standard Extension *** pack 0000100 .......... 100 ..... 0110011 @r packu 0100100 .......... 100 ..... 0110011 @r packh 0000100 .......... 111 ..... 0110011 @r -min 0000101 .......... 100 ..... 0110011 @r -minu 0000101 .......... 101 ..... 0110011 @r -max 0000101 .......... 110 ..... 0110011 @r -maxu 0000101 .......... 111 ..... 0110011 @r -ror 0110000 .......... 101 ..... 0110011 @r -rol 0110000 .......... 001 ..... 0110011 @r grev 0110100 .......... 101 ..... 0110011 @r gorc 0010100 .......... 101 ..... 0110011 @r =20 -rori 01100. ........... 101 ..... 0010011 @sh grevi 01101. ........... 101 ..... 0010011 @sh gorci 00101. ........... 101 ..... 0010011 @sh =20 # *** RV64B Standard Extension (in addition to RV32B) *** -clzw 0110000 00000 ..... 001 ..... 0011011 @r2 -ctzw 0110000 00001 ..... 001 ..... 0011011 @r2 -cpopw 0110000 00010 ..... 001 ..... 0011011 @r2 - packw 0000100 .......... 100 ..... 0111011 @r packuw 0100100 .......... 100 ..... 0111011 @r -rorw 0110000 .......... 101 ..... 0111011 @r -rolw 0110000 .......... 001 ..... 0111011 @r grevw 0110100 .......... 101 ..... 0111011 @r gorcw 0010100 .......... 101 ..... 0111011 @r =20 -roriw 0110000 .......... 101 ..... 0011011 @sh5 greviw 0110100 .......... 101 ..... 0011011 @sh5 gorciw 0010100 .......... 101 ..... 0011011 @sh5 =20 diff --git a/target/riscv/insn_trans/trans_rvb.c.inc b/target/riscv/insn_tr= ans/trans_rvb.c.inc index 2eb5fa3640..bdfb495f24 100644 --- a/target/riscv/insn_trans/trans_rvb.c.inc +++ b/target/riscv/insn_trans/trans_rvb.c.inc @@ -1,5 +1,5 @@ /* - * RISC-V translation routines for the Zb[acs] Standard Extension. + * RISC-V translation routines for the Zb[abcs] Standard Extension. * * Copyright (c) 2020 Kito Cheng, kito.cheng@sifive.com * Copyright (c) 2020 Frank Chang, frank.chang@sifive.com @@ -24,6 +24,12 @@ } \ } while (0) =20 +#define REQUIRE_ZBB(ctx) do { \ + if (!RISCV_CPU(ctx->cs)->cfg.ext_zbb) { \ + return false; \ + } \ +} while (0) + #define REQUIRE_ZBC(ctx) do { \ if (!RISCV_CPU(ctx->cs)->cfg.ext_zbc) { \ return false; \ @@ -40,9 +46,10 @@ static void gen_clz(TCGv ret, TCGv arg1) { tcg_gen_clzi_tl(ret, arg1, TARGET_LONG_BITS); } + static bool trans_clz(DisasContext *ctx, arg_clz *a) { - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBB(ctx); return gen_unary(ctx, a, EXT_ZERO, gen_clz); } =20 @@ -53,31 +60,31 @@ static void gen_ctz(TCGv ret, TCGv arg1) =20 static bool trans_ctz(DisasContext *ctx, arg_ctz *a) { - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBB(ctx); return gen_unary(ctx, a, EXT_ZERO, gen_ctz); } =20 static bool trans_cpop(DisasContext *ctx, arg_cpop *a) { - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBB(ctx); return gen_unary(ctx, a, EXT_ZERO, tcg_gen_ctpop_tl); } =20 static bool trans_andn(DisasContext *ctx, arg_andn *a) { - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBB(ctx); return gen_arith(ctx, a, EXT_NONE, tcg_gen_andc_tl); } =20 static bool trans_orn(DisasContext *ctx, arg_orn *a) { - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBB(ctx); return gen_arith(ctx, a, EXT_NONE, tcg_gen_orc_tl); } =20 static bool trans_xnor(DisasContext *ctx, arg_xnor *a) { - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBB(ctx); return gen_arith(ctx, a, EXT_NONE, tcg_gen_eqv_tl); } =20 @@ -124,37 +131,37 @@ static bool trans_packh(DisasContext *ctx, arg_packh = *a) =20 static bool trans_min(DisasContext *ctx, arg_min *a) { - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBB(ctx); return gen_arith(ctx, a, EXT_SIGN, tcg_gen_smin_tl); } =20 static bool trans_max(DisasContext *ctx, arg_max *a) { - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBB(ctx); return gen_arith(ctx, a, EXT_SIGN, tcg_gen_smax_tl); } =20 static bool trans_minu(DisasContext *ctx, arg_minu *a) { - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBB(ctx); return gen_arith(ctx, a, EXT_SIGN, tcg_gen_umin_tl); } =20 static bool trans_maxu(DisasContext *ctx, arg_maxu *a) { - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBB(ctx); return gen_arith(ctx, a, EXT_SIGN, tcg_gen_umax_tl); } =20 static bool trans_sext_b(DisasContext *ctx, arg_sext_b *a) { - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBB(ctx); return gen_unary(ctx, a, EXT_NONE, tcg_gen_ext8s_tl); } =20 static bool trans_sext_h(DisasContext *ctx, arg_sext_h *a) { - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBB(ctx); return gen_unary(ctx, a, EXT_NONE, tcg_gen_ext16s_tl); } =20 @@ -250,19 +257,19 @@ static bool trans_bexti(DisasContext *ctx, arg_bexti = *a) =20 static bool trans_ror(DisasContext *ctx, arg_ror *a) { - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBB(ctx); return gen_shift(ctx, a, EXT_NONE, tcg_gen_rotr_tl); } =20 static bool trans_rori(DisasContext *ctx, arg_rori *a) { - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBB(ctx); return gen_shift_imm_fn(ctx, a, EXT_NONE, tcg_gen_rotri_tl); } =20 static bool trans_rol(DisasContext *ctx, arg_rol *a) { - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBB(ctx); return gen_shift(ctx, a, EXT_NONE, tcg_gen_rotl_tl); } =20 @@ -337,7 +344,7 @@ static void gen_clzw(TCGv ret, TCGv arg1) static bool trans_clzw(DisasContext *ctx, arg_clzw *a) { REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBB(ctx); return gen_unary(ctx, a, EXT_NONE, gen_clzw); } =20 @@ -350,14 +357,14 @@ static void gen_ctzw(TCGv ret, TCGv arg1) static bool trans_ctzw(DisasContext *ctx, arg_ctzw *a) { REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBB(ctx); return gen_unary(ctx, a, EXT_NONE, gen_ctzw); } =20 static bool trans_cpopw(DisasContext *ctx, arg_cpopw *a) { REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBB(ctx); ctx->w =3D true; return gen_unary(ctx, a, EXT_ZERO, tcg_gen_ctpop_tl); } @@ -414,7 +421,7 @@ static void gen_rorw(TCGv ret, TCGv arg1, TCGv arg2) static bool trans_rorw(DisasContext *ctx, arg_rorw *a) { REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBB(ctx); ctx->w =3D true; return gen_shift(ctx, a, EXT_NONE, gen_rorw); } @@ -422,7 +429,7 @@ static bool trans_rorw(DisasContext *ctx, arg_rorw *a) static bool trans_roriw(DisasContext *ctx, arg_roriw *a) { REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBB(ctx); ctx->w =3D true; return gen_shift_imm_tl(ctx, a, EXT_NONE, gen_rorw); } @@ -448,7 +455,7 @@ static void gen_rolw(TCGv ret, TCGv arg1, TCGv arg2) static bool trans_rolw(DisasContext *ctx, arg_rolw *a) { REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); + REQUIRE_ZBB(ctx); ctx->w =3D true; return gen_shift(ctx, a, EXT_NONE, gen_rolw); } --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 163358995285995.20233979552984; Wed, 6 Oct 2021 23:59:12 -0700 (PDT) Received: from localhost ([::1]:37080 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNN1-0001L2-Ot for importer@patchew.org; Thu, 07 Oct 2021 02:59:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34084) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNDT-0004Bc-EM for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:49:21 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:24054) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNDR-0006EZ-F3 for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:49:19 -0400 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:49:10 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:23:32 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:49:11 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ23p4Wpdz1RvmK for ; Wed, 6 Oct 2021 23:49:10 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id P0zFMSWLVL_z for ; Wed, 6 Oct 2021 23:49:09 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ23j1z00z1Rvll; Wed, 6 Oct 2021 23:49:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589357; x=1665125357; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Ld+T7Gl5sVBi8Sj6L3Sw5JhQj5z67EqzDBRSWwaWaLs=; b=MH9deGlouXkUM3W74XcKNgXYL4bO8ooXUYXaKegltO6bUK5GYjIfzq6T GM0mtOnQanmqQic3/kJaXKkraPHf9Y3izUHzckrS7Ug3VwUXrr/YnvBB+ 6hDXgLI35PcYLh3qi17+Mi8TX/5CXaVM4FVJQH8USW133mDNbH9t4FR4t bv+fgvxemoIuJ9xDQhcTuxTQ+OL8EKkXWA8abJAem7vd1VSStTw79mjBr 33Mnxv+5pIhAdywX1g3uoqCWFnalDtpgQ+WuB/pPOQrCBVDImZOhYNp0I eCUJvfrRV86Bquypg0fBR5CbMI4UxrRf+vMlNmeQvMfXKrSIVJKzri9l4 g==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="186894920" IronPort-SDR: o4rVtiiHFdB2GASLO7FvF8h7BQB4AwBgf7JU//U3S060ytBrlTzERbmtVknMgMD5JQKZmJEfnj biwVd2R+0oID2+VRt084FVr+TdwB8jbvG7Ft0iLiBwJskUa98wWau5ly07orha+hFU7D7zzwvv iKcEwyAbaPw4JV5NJU+veOMaezGf9c7ytR3WJ0Eh0KGVV8Niou16BMCNYKnag2MkCsEIGXL5aA nKqWf2jwZrJxmifyiCOIzyORwcmG8iGQ+ARB20F04Wmt1gZp9dqQi90zluNvJkvUQl1VKESNH3 epFJ9bCGf4y2MmEk5iysmBZC IronPort-SDR: hZlJ+2BwKG049AeSFxfl4cSk/iuT694cKk3i8avgLyxx0VSWb2TDSbvJFbMUdEFvpCrKyDWEjG oUBI/xeUGSMcED2Q4McJezZCqJXaiC3TkMhOg0BeudYKE2mhu3XknL5eqh0WlJcNQy8lt2J7vj MvuCA9ASq74Uf+OJUINqkmsBCdr1LDubQpeMC707Qmm9H//764x7uTXuGnDMybMH6GT4aq5Si2 orPA2wJ4s3CsbPy21CdB+Th3+mo7k/lyPN0pnMIpwVg/JfrNHZNvZxYckhNjt+jRwlEyTwi0K/ PnI= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1633589349; x=1636181350; bh=Ld+T7Gl5sVBi8Sj6L3 Sw5JhQj5z67EqzDBRSWwaWaLs=; b=asrsAxFC71n0dM8FTL6/f5I5YKjcYmNsGX yAAjovHS4m2MqRtcwAO1g/K4YjiahvE360c1FJOIrYbhzkH42c6Xt9NZIPd9T0cN XGgBHj3SUU/p63hbpi6S/HdQRa1BazR5zwcnN0P0OXzcSgBNQCOcH7oeNfHSqxNO 0xJXUokszySpl2nl4604BJ5pK3vYTzrsvGNibSSoE+D1vrTkMCxB+uHsw/UFX1Wk R5kfwwSPe71jqOf2hLdEf5+jSxQzEuyNtVbWFFVp+8Loc7ZYqFFATbBa4BZcvbBz FmiurDRAco5+2rrHygvTx/zIx8cbMiZt8t1tpR1JoRqiVGC93TmA== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, Philipp Tomsich , Richard Henderson , Alistair Francis Subject: [PULL 11/26] target/riscv: Add orc.b instruction for Zbb, removing gorc/gorci Date: Thu, 7 Oct 2021 16:47:36 +1000 Message-Id: <20211007064751.608580-12-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=216.71.153.141; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633589954768100001 Content-Type: text/plain; charset="utf-8" From: Philipp Tomsich The 1.0.0 version of Zbb does not contain gorc/gorci. Instead, a orc.b instruction (equivalent to the orc.b pseudo-instruction built on gorci from pre-0.93 draft-B) is available, mainly targeting string-processing workloads. This commit adds the new orc.b instruction and removed gorc/gorci. Signed-off-by: Philipp Tomsich Reviewed-by: Richard Henderson Reviewed-by: Alistair Francis Message-id: 20210911140016.834071-12-philipp.tomsich@vrull.eu Signed-off-by: Alistair Francis --- target/riscv/helper.h | 2 -- target/riscv/insn32.decode | 6 +--- target/riscv/bitmanip_helper.c | 26 ----------------- target/riscv/insn_trans/trans_rvb.c.inc | 39 +++++++++++-------------- 4 files changed, 18 insertions(+), 55 deletions(-) diff --git a/target/riscv/helper.h b/target/riscv/helper.h index 8a318a2dbc..a9bda2c8ac 100644 --- a/target/riscv/helper.h +++ b/target/riscv/helper.h @@ -61,8 +61,6 @@ DEF_HELPER_FLAGS_1(fclass_d, TCG_CALL_NO_RWG_SE, tl, i64) /* Bitmanip */ DEF_HELPER_FLAGS_2(grev, TCG_CALL_NO_RWG_SE, tl, tl, tl) DEF_HELPER_FLAGS_2(grevw, TCG_CALL_NO_RWG_SE, tl, tl, tl) -DEF_HELPER_FLAGS_2(gorc, TCG_CALL_NO_RWG_SE, tl, tl, tl) -DEF_HELPER_FLAGS_2(gorcw, TCG_CALL_NO_RWG_SE, tl, tl, tl) DEF_HELPER_FLAGS_2(clmul, TCG_CALL_NO_RWG_SE, tl, tl, tl) DEF_HELPER_FLAGS_2(clmulr, TCG_CALL_NO_RWG_SE, tl, tl, tl) =20 diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode index a509cfee11..59202196dc 100644 --- a/target/riscv/insn32.decode +++ b/target/riscv/insn32.decode @@ -681,6 +681,7 @@ max 0000101 .......... 110 ..... 0110011 @r maxu 0000101 .......... 111 ..... 0110011 @r min 0000101 .......... 100 ..... 0110011 @r minu 0000101 .......... 101 ..... 0110011 @r +orc_b 001010 000111 ..... 101 ..... 0010011 @r2 orn 0100000 .......... 110 ..... 0110011 @r rol 0110000 .......... 001 ..... 0110011 @r ror 0110000 .......... 101 ..... 0110011 @r @@ -702,19 +703,14 @@ pack 0000100 .......... 100 ..... 0110011 @r packu 0100100 .......... 100 ..... 0110011 @r packh 0000100 .......... 111 ..... 0110011 @r grev 0110100 .......... 101 ..... 0110011 @r -gorc 0010100 .......... 101 ..... 0110011 @r - grevi 01101. ........... 101 ..... 0010011 @sh -gorci 00101. ........... 101 ..... 0010011 @sh =20 # *** RV64B Standard Extension (in addition to RV32B) *** packw 0000100 .......... 100 ..... 0111011 @r packuw 0100100 .......... 100 ..... 0111011 @r grevw 0110100 .......... 101 ..... 0111011 @r -gorcw 0010100 .......... 101 ..... 0111011 @r =20 greviw 0110100 .......... 101 ..... 0011011 @sh5 -gorciw 0010100 .......... 101 ..... 0011011 @sh5 =20 # *** RV32 Zbc Standard Extension *** clmul 0000101 .......... 001 ..... 0110011 @r diff --git a/target/riscv/bitmanip_helper.c b/target/riscv/bitmanip_helper.c index 73be5a81c7..bb48388fcd 100644 --- a/target/riscv/bitmanip_helper.c +++ b/target/riscv/bitmanip_helper.c @@ -64,32 +64,6 @@ target_ulong HELPER(grevw)(target_ulong rs1, target_ulon= g rs2) return do_grev(rs1, rs2, 32); } =20 -static target_ulong do_gorc(target_ulong rs1, - target_ulong rs2, - int bits) -{ - target_ulong x =3D rs1; - int i, shift; - - for (i =3D 0, shift =3D 1; shift < bits; i++, shift <<=3D 1) { - if (rs2 & shift) { - x |=3D do_swap(x, adjacent_masks[i], shift); - } - } - - return x; -} - -target_ulong HELPER(gorc)(target_ulong rs1, target_ulong rs2) -{ - return do_gorc(rs1, rs2, TARGET_LONG_BITS); -} - -target_ulong HELPER(gorcw)(target_ulong rs1, target_ulong rs2) -{ - return do_gorc(rs1, rs2, 32); -} - target_ulong HELPER(clmul)(target_ulong rs1, target_ulong rs2) { target_ulong result =3D 0; diff --git a/target/riscv/insn_trans/trans_rvb.c.inc b/target/riscv/insn_tr= ans/trans_rvb.c.inc index bdfb495f24..d32af5915a 100644 --- a/target/riscv/insn_trans/trans_rvb.c.inc +++ b/target/riscv/insn_trans/trans_rvb.c.inc @@ -295,16 +295,27 @@ static bool trans_grevi(DisasContext *ctx, arg_grevi = *a) return gen_shift_imm_fn(ctx, a, EXT_NONE, gen_grevi); } =20 -static bool trans_gorc(DisasContext *ctx, arg_gorc *a) +static void gen_orc_b(TCGv ret, TCGv source1) { - REQUIRE_EXT(ctx, RVB); - return gen_shift(ctx, a, EXT_ZERO, gen_helper_gorc); + TCGv tmp =3D tcg_temp_new(); + TCGv ones =3D tcg_constant_tl(dup_const_tl(MO_8, 0x01)); + + /* Set lsb in each byte if the byte was zero. */ + tcg_gen_sub_tl(tmp, source1, ones); + tcg_gen_andc_tl(tmp, tmp, source1); + tcg_gen_shri_tl(tmp, tmp, 7); + tcg_gen_andc_tl(tmp, ones, tmp); + + /* Replicate the lsb of each byte across the byte. */ + tcg_gen_muli_tl(ret, tmp, 0xff); + + tcg_temp_free(tmp); } =20 -static bool trans_gorci(DisasContext *ctx, arg_gorci *a) +static bool trans_orc_b(DisasContext *ctx, arg_orc_b *a) { - REQUIRE_EXT(ctx, RVB); - return gen_shift_imm_tl(ctx, a, EXT_ZERO, gen_helper_gorc); + REQUIRE_ZBB(ctx); + return gen_unary(ctx, a, EXT_ZERO, gen_orc_b); } =20 #define GEN_SHADD(SHAMT) \ @@ -476,22 +487,6 @@ static bool trans_greviw(DisasContext *ctx, arg_greviw= *a) return gen_shift_imm_tl(ctx, a, EXT_ZERO, gen_helper_grev); } =20 -static bool trans_gorcw(DisasContext *ctx, arg_gorcw *a) -{ - REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); - ctx->w =3D true; - return gen_shift(ctx, a, EXT_ZERO, gen_helper_gorc); -} - -static bool trans_gorciw(DisasContext *ctx, arg_gorciw *a) -{ - REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); - ctx->w =3D true; - return gen_shift_imm_tl(ctx, a, EXT_ZERO, gen_helper_gorc); -} - #define GEN_SHADD_UW(SHAMT) \ static void gen_sh##SHAMT##add_uw(TCGv ret, TCGv arg1, TCGv arg2) \ { \ --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 163359036244175.5314818440363; Thu, 7 Oct 2021 00:06:02 -0700 (PDT) Received: from localhost ([::1]:51782 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNTd-0003Dc-8S for importer@patchew.org; Thu, 07 Oct 2021 03:06:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34104) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNDV-0004DB-Bu for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:49:21 -0400 Received: from esa6.hgst.iphmx.com ([216.71.154.45]:14598) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNDS-0006IC-V8 for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:49:21 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:49:16 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:25:10 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:49:17 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ23v5ts6z1Rvll for ; Wed, 6 Oct 2021 23:49:15 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id YxppQAi5UuG7 for ; Wed, 6 Oct 2021 23:49:15 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ23q05ngz1RvTg; Wed, 6 Oct 2021 23:49:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589359; x=1665125359; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=/4xbYMv52y8WUOUrMRngpDSSgYeT23Q/QDQ52Sz6QKs=; b=ar209T4+n2bt4zjPy5+TuLlQpNlOCglGX7H7dyGrA3JzHMeZt3/KgFSE AEWYd/rKfiA3RjQHhqdg1N73UMugkqynx7s2XC5JFQB6F4eVEyJE4DAY3 7oPoe9ejz9YcCWATMRvDw/U1rkJCrHhIgBrihZbGvydTxA9OMIU+TMf7v y15VzPr8reNRszdlvNgxTArnbLnnh90R18vo/IMdw/fbcjL6s479p3eHK XE/LdTwQK03kjwexZEhprmsW7EwGmUU7Q1caKu3w53Cgw+GoP/sXjO8T9 OThQgH8uk5Dvu6zX8G3eNvyBr56ibnOnHL1bbgcHzndJJ/F9ErOkxfNmA A==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="182849367" IronPort-SDR: BjSO9hNWbza4rxdgaHEC153Yk7FdOEK98kR9B/7Z6OJgIk5ADveMcZOPsYtamo06CpSVJHec7T lMXtgoipUAH2BnFJphgiErRnhYM1cKxjEqFa68DCSSF/MNnXI/XjxKryvWKRmhl4aAcK3BnyUI nvPR6fdFUP09TuOdD50P3YPAiSX0m07fq+JTbKFgmrcY3CntD/akgqlLrzFNKIt9Z+7kQVXjeF L+otzpIcckJyxjTecpy0756vskwlq9ChRTgRropi3zxSJSGfm8mSl2Dd+NGv9j2Fwv30Tly7x9 pYAArv1OMBz2NGqB/xNq6yl3 IronPort-SDR: QMsUa7fW72Mo8V/MOclA0Jy8GGCw8zKoWjudAUO0UcXdmQWAN/upHIJbYcVYW5lOcy70OsJyzc fszV99+2u4sunjkUnkr1w7kx03oLM9dnoSw6HyIaYW1sXlgzZeYI/Y7QX7MYKE9LPcOaeezGGT 7flRSLPsm+JZp4mDNSr4NvwuKRmEDgq00/oPofXxfXQQjzigppTbbmvysYNr/4c9WoCcGrkQFV /MBB1esPqbCnjINNqSCb5sulicPz1Y+BApSdLP3BRRpEQexvgBykzq/Bo6byr+aM5EjywOrgUk +W0= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1633589355; x=1636181356; bh=/4xbYMv52y8WUOUrMR ngpDSSgYeT23Q/QDQ52Sz6QKs=; b=ZakjrwE0hlu/EauoJC08lcDZmDDbtYk0u4 1OdZfm9i8/7afuSIFgoL4KL8z1iLjU1b7aFDYCExCSSShMTjLDzlXkBFJYwOUJdW YqZwi9QusKbyp4x6zWPvhESUoNJ4EmZrleSq+0K9NJh4tJmB9gbGcVvQxfytRHoP GS9SoVMYr7eF0/Ekn4F7YVj2fYAud2xlAC61OGLDQFg1lFJwD5y2vB35bzw18Qg1 tK+37Ie3kXL+p4ktozURW8MMNb7/GqoPMYtL007xv2FQATB1l97fJIKebQ0I4oly dQ5/iEk3WRssZOOnlFCM0DyhvIKOuoXVm9aCX/AFLg8HGALzyElA== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, Philipp Tomsich , Richard Henderson , Alistair Francis , Bin Meng Subject: [PULL 12/26] target/riscv: Add a REQUIRE_32BIT macro Date: Thu, 7 Oct 2021 16:47:37 +1000 Message-Id: <20211007064751.608580-13-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=216.71.154.45; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa6.hgst.iphmx.com X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633590363327100001 Content-Type: text/plain; charset="utf-8" From: Philipp Tomsich With the changes to Zb[abcs], there's some encodings that are different in RV64 and RV32 (e.g., for rev8 and zext.h). For these, we'll need a helper macro allowing us to select on RV32, as well. Signed-off-by: Philipp Tomsich Reviewed-by: Richard Henderson Reviewed-by: Alistair Francis Reviewed-by: Bin Meng Message-id: 20210911140016.834071-13-philipp.tomsich@vrull.eu Signed-off-by: Alistair Francis --- target/riscv/translate.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/target/riscv/translate.c b/target/riscv/translate.c index 74b33fa3c9..b2d3444bc5 100644 --- a/target/riscv/translate.c +++ b/target/riscv/translate.c @@ -337,6 +337,12 @@ EX_SH(12) } \ } while (0) =20 +#define REQUIRE_32BIT(ctx) do { \ + if (!is_32bit(ctx)) { \ + return false; \ + } \ +} while (0) + #define REQUIRE_64BIT(ctx) do { \ if (is_32bit(ctx)) { \ return false; \ --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1633590161770312.8039668462716; Thu, 7 Oct 2021 00:02:41 -0700 (PDT) Received: from localhost ([::1]:44052 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNQO-0006PE-KI for importer@patchew.org; Thu, 07 Oct 2021 03:02:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34146) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNDY-0004F0-RV for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:49:24 -0400 Received: from esa6.hgst.iphmx.com ([216.71.154.45]:14598) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNDV-0006IC-Le for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:49:23 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:49:21 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:25:14 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:49:21 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ2404sXYz1Rvll for ; Wed, 6 Oct 2021 23:49:20 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id F963aLNC1sFs for ; Wed, 6 Oct 2021 23:49:20 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ23w2N7Nz1RvTg; Wed, 6 Oct 2021 23:49:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589362; x=1665125362; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=oi5NmUScCwSuMReGSzJU2UC4FdFVR6J7RpXVFRRyjwQ=; b=bDCbmgn82YmkGUMRv1EZV30ShNAbAuOXfuZKXP8VZC/z/5mU1jqVpC/P dvurCwLhbFAI/HxOt7RYAtT5BqDwmVj90viCnkC8ExpgEFTI+wydg/c2V hyhXpuCisq53xV+4zfTeldfuHyuJxaPFg+ltXt4Q+e0UT0bZrO3tm6QKC WpkWGG1T9ic0XnvvKCzSwo2oaK7sGMIAAwdG/bGsf0aNqncQOVmWqBTNX teL/DPZ4fcObLMscF7YrZIeaof/8YsZAvGnnEBY+QbxMdZgPDkOqgAHsY gnhF6+kxWN+v1g+YUhd854Pvpp9LV9tzVeD5Pr8XoKQfv2+mXJBLQV5gh Q==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="182849377" IronPort-SDR: upDjBujjcsHSgepIncW6FOkrE5sNrZyahhvrXz0cNmG6Prn4FiVKWQfWfBuUy4XM+St7rzAzAD 6EdnKyi/Ma8OgJlPzzJFUo+yGHRVbJFuyMMHlfseoMJeDTncH7OoGMsjHRUJHmt59JUxDXtoxR z3aOneOP/DLPEIfLU6PKZDPuiCU7gJPoBL6u9AcEwFxJjmp+2/MaLRKD/vdwGF5F+/WjxPD8Uq DkV0Pm+t7cFUKUOoesbalyARyyRPA3YfDKx/NZLX2/SW+zAvl3HQeLMyjGQ+CzllHJ+cyGnkSU n3cH6FOhQqb8COVOMUH42zIJ IronPort-SDR: pxMSNpWUBUgcTJCirTpBPFnk9NwOtyojN60zSmgvGQ+/Rh0gNhGrsdMgkciV/ZoK0DBKO/EfyV 6VFrm02ftV4vOSDmRhW2/is1uaxOFue1lev4yYv/nS24W6Qwb5DSuVehMcvdf11dpTVllYyP+F veWNX5v7WwLXeqm/9gl5BUfIEf8FQ4RJC4Gne62uPRNE/05NIo08WnqkfMhiWJACtv3/rCg5dO RKltc039Nj9gbVjNn/B+YGNXeYZQesgtc7fgID3L5rz69y8UitZt+8KcIhGUXge3eBQPsdwAkU hm4= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1633589360; x=1636181361; bh=oi5NmUScCwSuMReGSz JU2UC4FdFVR6J7RpXVFRRyjwQ=; b=mUyzMkt9ns6hDKVtHdLrVnGcURKJ84lXIc eh82DxBGk2XsNUT5ONxKgsijO5fgbmG8P5jBUNbp+Amlo2Ei6/tq+xLPBKAuex66 T0uPSJhMTZ5fPOIdnQjAIuswRNTJY0FRb1ef30/rpa3B+m4QOro3NYmBlBhBlYjW UUWNQiaEURbxD2q66uiRtLCK24nfqWZ/2Uso+sT9+Znpu2jI2vZN1V8U+f/1VYBp nwgAtN13My4A/dfDr6uvuRBk8biBlxkn68zHWcn53zFvG+LZfu0UgTgWyw3QJUKc 7vfbSUZorfBDrQZx1GSKHAELPzCyQm5S4Rb8ecNCpCcsUwdes0Jg== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, Philipp Tomsich , Richard Henderson , Alistair Francis Subject: [PULL 13/26] target/riscv: Add rev8 instruction, removing grev/grevi Date: Thu, 7 Oct 2021 16:47:38 +1000 Message-Id: <20211007064751.608580-14-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=216.71.154.45; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa6.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633590162827100001 Content-Type: text/plain; charset="utf-8" From: Philipp Tomsich The 1.0.0 version of Zbb does not contain grev/grevi. Instead, a rev8 instruction (equivalent to the rev8 pseudo-instruction built on grevi from pre-0.93 draft-B) is available. This commit adds the new rev8 instruction and removes grev/grevi. Note that there is no W-form of this instruction (both a sign-extending and zero-extending 32-bit version can easily be synthesized by following rev8 with either a srai or srli instruction on RV64) and that the opcode encodings for rev8 in RV32 and RV64 are different. Signed-off-by: Philipp Tomsich Reviewed-by: Richard Henderson Reviewed-by: Alistair Francis Message-id: 20210911140016.834071-14-philipp.tomsich@vrull.eu Signed-off-by: Alistair Francis --- target/riscv/helper.h | 2 -- target/riscv/insn32.decode | 12 ++++---- target/riscv/bitmanip_helper.c | 40 ------------------------- target/riscv/insn_trans/trans_rvb.c.inc | 40 +++++-------------------- 4 files changed, 15 insertions(+), 79 deletions(-) diff --git a/target/riscv/helper.h b/target/riscv/helper.h index a9bda2c8ac..c7a5376227 100644 --- a/target/riscv/helper.h +++ b/target/riscv/helper.h @@ -59,8 +59,6 @@ DEF_HELPER_FLAGS_2(fcvt_d_lu, TCG_CALL_NO_RWG, i64, env, = tl) DEF_HELPER_FLAGS_1(fclass_d, TCG_CALL_NO_RWG_SE, tl, i64) =20 /* Bitmanip */ -DEF_HELPER_FLAGS_2(grev, TCG_CALL_NO_RWG_SE, tl, tl, tl) -DEF_HELPER_FLAGS_2(grevw, TCG_CALL_NO_RWG_SE, tl, tl, tl) DEF_HELPER_FLAGS_2(clmul, TCG_CALL_NO_RWG_SE, tl, tl, tl) DEF_HELPER_FLAGS_2(clmulr, TCG_CALL_NO_RWG_SE, tl, tl, tl) =20 diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode index 59202196dc..901a66c0f5 100644 --- a/target/riscv/insn32.decode +++ b/target/riscv/insn32.decode @@ -683,6 +683,9 @@ min 0000101 .......... 100 ..... 0110011 @r minu 0000101 .......... 101 ..... 0110011 @r orc_b 001010 000111 ..... 101 ..... 0010011 @r2 orn 0100000 .......... 110 ..... 0110011 @r +# The encoding for rev8 differs between RV32 and RV64. +# rev8_32 denotes the RV32 variant. +rev8_32 011010 011000 ..... 101 ..... 0010011 @r2 rol 0110000 .......... 001 ..... 0110011 @r ror 0110000 .......... 101 ..... 0110011 @r rori 01100 ............ 101 ..... 0010011 @sh @@ -694,6 +697,10 @@ xnor 0100000 .......... 100 ..... 0110011 @r clzw 0110000 00000 ..... 001 ..... 0011011 @r2 ctzw 0110000 00001 ..... 001 ..... 0011011 @r2 cpopw 0110000 00010 ..... 001 ..... 0011011 @r2 +# The encoding for rev8 differs between RV32 and RV64. +# When executing on RV64, the encoding used in RV32 is an illegal +# instruction, so we use different handler functions to differentiate. +rev8_64 011010 111000 ..... 101 ..... 0010011 @r2 rolw 0110000 .......... 001 ..... 0111011 @r roriw 0110000 .......... 101 ..... 0011011 @sh5 rorw 0110000 .......... 101 ..... 0111011 @r @@ -702,15 +709,10 @@ rorw 0110000 .......... 101 ..... 0111011 @r pack 0000100 .......... 100 ..... 0110011 @r packu 0100100 .......... 100 ..... 0110011 @r packh 0000100 .......... 111 ..... 0110011 @r -grev 0110100 .......... 101 ..... 0110011 @r -grevi 01101. ........... 101 ..... 0010011 @sh =20 # *** RV64B Standard Extension (in addition to RV32B) *** packw 0000100 .......... 100 ..... 0111011 @r packuw 0100100 .......... 100 ..... 0111011 @r -grevw 0110100 .......... 101 ..... 0111011 @r - -greviw 0110100 .......... 101 ..... 0011011 @sh5 =20 # *** RV32 Zbc Standard Extension *** clmul 0000101 .......... 001 ..... 0110011 @r diff --git a/target/riscv/bitmanip_helper.c b/target/riscv/bitmanip_helper.c index bb48388fcd..f1b5e5549f 100644 --- a/target/riscv/bitmanip_helper.c +++ b/target/riscv/bitmanip_helper.c @@ -24,46 +24,6 @@ #include "exec/helper-proto.h" #include "tcg/tcg.h" =20 -static const uint64_t adjacent_masks[] =3D { - dup_const(MO_8, 0x55), - dup_const(MO_8, 0x33), - dup_const(MO_8, 0x0f), - dup_const(MO_16, 0xff), - dup_const(MO_32, 0xffff), - UINT32_MAX -}; - -static inline target_ulong do_swap(target_ulong x, uint64_t mask, int shif= t) -{ - return ((x & mask) << shift) | ((x & ~mask) >> shift); -} - -static target_ulong do_grev(target_ulong rs1, - target_ulong rs2, - int bits) -{ - target_ulong x =3D rs1; - int i, shift; - - for (i =3D 0, shift =3D 1; shift < bits; i++, shift <<=3D 1) { - if (rs2 & shift) { - x =3D do_swap(x, adjacent_masks[i], shift); - } - } - - return x; -} - -target_ulong HELPER(grev)(target_ulong rs1, target_ulong rs2) -{ - return do_grev(rs1, rs2, TARGET_LONG_BITS); -} - -target_ulong HELPER(grevw)(target_ulong rs1, target_ulong rs2) -{ - return do_grev(rs1, rs2, 32); -} - target_ulong HELPER(clmul)(target_ulong rs1, target_ulong rs2) { target_ulong result =3D 0; diff --git a/target/riscv/insn_trans/trans_rvb.c.inc b/target/riscv/insn_tr= ans/trans_rvb.c.inc index d32af5915a..48a7c9ca5e 100644 --- a/target/riscv/insn_trans/trans_rvb.c.inc +++ b/target/riscv/insn_trans/trans_rvb.c.inc @@ -273,26 +273,18 @@ static bool trans_rol(DisasContext *ctx, arg_rol *a) return gen_shift(ctx, a, EXT_NONE, tcg_gen_rotl_tl); } =20 -static bool trans_grev(DisasContext *ctx, arg_grev *a) +static bool trans_rev8_32(DisasContext *ctx, arg_rev8_32 *a) { - REQUIRE_EXT(ctx, RVB); - return gen_shift(ctx, a, EXT_NONE, gen_helper_grev); -} - -static void gen_grevi(TCGv dest, TCGv src, target_long shamt) -{ - if (shamt =3D=3D TARGET_LONG_BITS - 8) { - /* rev8, byte swaps */ - tcg_gen_bswap_tl(dest, src); - } else { - gen_helper_grev(dest, src, tcg_constant_tl(shamt)); - } + REQUIRE_32BIT(ctx); + REQUIRE_ZBB(ctx); + return gen_unary(ctx, a, EXT_NONE, tcg_gen_bswap_tl); } =20 -static bool trans_grevi(DisasContext *ctx, arg_grevi *a) +static bool trans_rev8_64(DisasContext *ctx, arg_rev8_64 *a) { - REQUIRE_EXT(ctx, RVB); - return gen_shift_imm_fn(ctx, a, EXT_NONE, gen_grevi); + REQUIRE_64BIT(ctx); + REQUIRE_ZBB(ctx); + return gen_unary(ctx, a, EXT_NONE, tcg_gen_bswap_tl); } =20 static void gen_orc_b(TCGv ret, TCGv source1) @@ -471,22 +463,6 @@ static bool trans_rolw(DisasContext *ctx, arg_rolw *a) return gen_shift(ctx, a, EXT_NONE, gen_rolw); } =20 -static bool trans_grevw(DisasContext *ctx, arg_grevw *a) -{ - REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); - ctx->w =3D true; - return gen_shift(ctx, a, EXT_ZERO, gen_helper_grev); -} - -static bool trans_greviw(DisasContext *ctx, arg_greviw *a) -{ - REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); - ctx->w =3D true; - return gen_shift_imm_tl(ctx, a, EXT_ZERO, gen_helper_grev); -} - #define GEN_SHADD_UW(SHAMT) \ static void gen_sh##SHAMT##add_uw(TCGv ret, TCGv arg1, TCGv arg2) \ { \ --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1633590510605645.6728377806969; Thu, 7 Oct 2021 00:08:30 -0700 (PDT) Received: from localhost ([::1]:60304 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNW1-0000Ox-Jp for importer@patchew.org; Thu, 07 Oct 2021 03:08:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34192) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNDf-0004M9-On for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:49:32 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:53914) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNDc-0006R5-L2 for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:49:30 -0400 Received: from h199-255-45-15.hgst.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:49:26 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:23:47 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:49:27 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ24622yfz1Rvlt for ; Wed, 6 Oct 2021 23:49:26 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id mT8H7PdRDN2k for ; Wed, 6 Oct 2021 23:49:25 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ2411Fclz1RvTg; Wed, 6 Oct 2021 23:49:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589368; x=1665125368; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=atZuZvyi319thSSUWTro/5GAyHJXvG/Dh+TK2Y41ChA=; b=iLlWiemSLiRDMYptL06TvJOhRwYO3C64n+tFsl/U2PqiezFUX1ODq3tV TqvylPazqsZbKRF1fRYNiWP7ITz4aGPfgGMPheliAdz/OO334CATAcMNo SEIIW3CXDJGnBh3xyNGohSuFgmP4zq0GL/POHm8YG/T9C4+8s+6s6gJ5Y VXYkTsSI3IqtBGLHVniMeH2KU0KcrswwQWWdbMNFIspAECh7rOdFhhArs GRNaw9zXUm56Ng9ZucNEnvkKCMc4S1A+2IOeyIJLJdtwzmicsRXwV/Me8 8mAx2b/mCmaRkXRo4Ga9unNQiBL+UEI66N2QLl+XkemOfreeIk46Z0iYi Q==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="293815494" IronPort-SDR: Eiypy/RjVR+1L+mbg7UOS0FXwl6GIdmunGMsk94/ALeh8600K0PW/CGmZsWEDFzEOHnkSVdzPc Wq4kSFmrD26g81QleBXTEurH0U8fyJ+XwHN2VoxliKg2NxuLCyJNwGCBOYPdQcwZVhoEN4sDka zZ5bfkGQiE1VSU8UZZVnnhNX2gp+Nmh0S+zEYSuNXgIaMvn0Q/tL5qeFThqF3QtGpSd6s/01R+ +E1T+fvrewPiqh1CI3HQ2AS400FdrcQQNz5ojFUmF69NLWfdHdTwXqRTYloDMG8R6hvSrnFQyH ukOAbB5KsUrRZF6/VbSLHUWA IronPort-SDR: Ni+9b2YOYac73DUZD59dho0t3ikuwTiehNr/qn1u3BkPe3QVZX1HAkjdwM1sDCOYN8reJfGQFr 2MRQzLtHKTMriDmysNOvV2GyluSzadueAUdUejCizmA4MMBgwMExFuM86zicWDftmrO/BJtmEu stYUu/fkMnYtUwymIEGHTvvP0WwLbmMtlDOhk3TnmQqnscMe6B8dOmCl6VzK4Loghl4Lc5sRvx sBxYnL5l0bi5pg6N66pwe0XujY9D8zievyA4hR2vJspIYgVhu7Cv4JDEEBHeUBcrD0X0fX2Ou7 0bI= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1633589365; x=1636181366; bh=atZuZvyi319thSSUWT ro/5GAyHJXvG/Dh+TK2Y41ChA=; b=loJ8zAVZzQks30+SvlLQOOGNStMwV3XWq3 cAanBaSVMc3e0p6GAQHJ0+zxIC6w/gVd50iar4sOpJqb55za36rQBAV7jPAQjl/v HvuCT6O3gr8NMDvPp4biD1Te0jrSKwLW/FGVnxCKepVortMRL2U+R8Z3yEu5M6ik 5ws/c3e3/Q1nCBgNj6Wfg6Q7SbJ07oUGxMIe69clcBUbIh2e/uZusyiFCEhGZT9e 4wNhJptqhunTJrme47aLnj6s95p939doHWk5tDZ50PaYhCMJ9PCennmHeOSAx4OV R9cxksk+NTBzXKjZVV49AzO48rTsgeeznhHhzsTDZiM20DeCybog== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, Philipp Tomsich , Richard Henderson , Alistair Francis Subject: [PULL 14/26] target/riscv: Add zext.h instructions to Zbb, removing pack/packu/packh Date: Thu, 7 Oct 2021 16:47:39 +1000 Message-Id: <20211007064751.608580-15-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=68.232.141.245; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa1.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633590511860100001 Content-Type: text/plain; charset="utf-8" From: Philipp Tomsich The 1.0.0 version of Zbb does not contain pack/packu/packh. However, a zext.h instruction is provided (built on pack/packh from pre-0.93 draft-B) is available. This commit adds zext.h and removes the pack* instructions. Note that the encodings for zext.h are different between RV32 and RV64, which is handled through REQUIRE_32BIT. Signed-off-by: Philipp Tomsich Reviewed-by: Richard Henderson Reviewed-by: Alistair Francis Message-id: 20210911140016.834071-15-philipp.tomsich@vrull.eu Signed-off-by: Alistair Francis --- target/riscv/insn32.decode | 12 ++-- target/riscv/insn_trans/trans_rvb.c.inc | 86 ++++--------------------- 2 files changed, 21 insertions(+), 77 deletions(-) diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode index 901a66c0f5..affb99b3e6 100644 --- a/target/riscv/insn32.decode +++ b/target/riscv/insn32.decode @@ -692,6 +692,9 @@ rori 01100 ............ 101 ..... 0010011 @sh sext_b 011000 000100 ..... 001 ..... 0010011 @r2 sext_h 011000 000101 ..... 001 ..... 0010011 @r2 xnor 0100000 .......... 100 ..... 0110011 @r +# The encoding for zext.h differs between RV32 and RV64. +# zext_h_32 denotes the RV32 variant. +zext_h_32 0000100 00000 ..... 100 ..... 0110011 @r2 =20 # *** RV64 Zbb Standard Extension (in addition to RV32 Zbb) *** clzw 0110000 00000 ..... 001 ..... 0011011 @r2 @@ -704,15 +707,14 @@ rev8_64 011010 111000 ..... 101 ..... 0010011 @r2 rolw 0110000 .......... 001 ..... 0111011 @r roriw 0110000 .......... 101 ..... 0011011 @sh5 rorw 0110000 .......... 101 ..... 0111011 @r +# The encoding for zext.h differs between RV32 and RV64. +# When executing on RV64, the encoding used in RV32 is an illegal +# instruction, so we use different handler functions to differentiate. +zext_h_64 0000100 00000 ..... 100 ..... 0111011 @r2 =20 # *** RV32B Standard Extension *** -pack 0000100 .......... 100 ..... 0110011 @r -packu 0100100 .......... 100 ..... 0110011 @r -packh 0000100 .......... 111 ..... 0110011 @r =20 # *** RV64B Standard Extension (in addition to RV32B) *** -packw 0000100 .......... 100 ..... 0111011 @r -packuw 0100100 .......... 100 ..... 0111011 @r =20 # *** RV32 Zbc Standard Extension *** clmul 0000101 .......... 001 ..... 0110011 @r diff --git a/target/riscv/insn_trans/trans_rvb.c.inc b/target/riscv/insn_tr= ans/trans_rvb.c.inc index 48a7c9ca5e..185c3e9a60 100644 --- a/target/riscv/insn_trans/trans_rvb.c.inc +++ b/target/riscv/insn_trans/trans_rvb.c.inc @@ -88,47 +88,6 @@ static bool trans_xnor(DisasContext *ctx, arg_xnor *a) return gen_arith(ctx, a, EXT_NONE, tcg_gen_eqv_tl); } =20 -static void gen_pack(TCGv ret, TCGv arg1, TCGv arg2) -{ - tcg_gen_deposit_tl(ret, arg1, arg2, - TARGET_LONG_BITS / 2, - TARGET_LONG_BITS / 2); -} - -static bool trans_pack(DisasContext *ctx, arg_pack *a) -{ - REQUIRE_EXT(ctx, RVB); - return gen_arith(ctx, a, EXT_NONE, gen_pack); -} - -static void gen_packu(TCGv ret, TCGv arg1, TCGv arg2) -{ - TCGv t =3D tcg_temp_new(); - tcg_gen_shri_tl(t, arg1, TARGET_LONG_BITS / 2); - tcg_gen_deposit_tl(ret, arg2, t, 0, TARGET_LONG_BITS / 2); - tcg_temp_free(t); -} - -static bool trans_packu(DisasContext *ctx, arg_packu *a) -{ - REQUIRE_EXT(ctx, RVB); - return gen_arith(ctx, a, EXT_NONE, gen_packu); -} - -static void gen_packh(TCGv ret, TCGv arg1, TCGv arg2) -{ - TCGv t =3D tcg_temp_new(); - tcg_gen_ext8u_tl(t, arg2); - tcg_gen_deposit_tl(ret, arg1, t, 8, TARGET_LONG_BITS - 8); - tcg_temp_free(t); -} - -static bool trans_packh(DisasContext *ctx, arg_packh *a) -{ - REQUIRE_EXT(ctx, RVB); - return gen_arith(ctx, a, EXT_NONE, gen_packh); -} - static bool trans_min(DisasContext *ctx, arg_min *a) { REQUIRE_ZBB(ctx); @@ -336,6 +295,20 @@ GEN_TRANS_SHADD(1) GEN_TRANS_SHADD(2) GEN_TRANS_SHADD(3) =20 +static bool trans_zext_h_32(DisasContext *ctx, arg_zext_h_32 *a) +{ + REQUIRE_32BIT(ctx); + REQUIRE_ZBB(ctx); + return gen_unary(ctx, a, EXT_NONE, tcg_gen_ext16u_tl); +} + +static bool trans_zext_h_64(DisasContext *ctx, arg_zext_h_64 *a) +{ + REQUIRE_64BIT(ctx); + REQUIRE_ZBB(ctx); + return gen_unary(ctx, a, EXT_NONE, tcg_gen_ext16u_tl); +} + static void gen_clzw(TCGv ret, TCGv arg1) { TCGv t =3D tcg_temp_new(); @@ -372,37 +345,6 @@ static bool trans_cpopw(DisasContext *ctx, arg_cpopw *= a) return gen_unary(ctx, a, EXT_ZERO, tcg_gen_ctpop_tl); } =20 -static void gen_packw(TCGv ret, TCGv arg1, TCGv arg2) -{ - TCGv t =3D tcg_temp_new(); - tcg_gen_ext16s_tl(t, arg2); - tcg_gen_deposit_tl(ret, arg1, t, 16, 48); - tcg_temp_free(t); -} - -static bool trans_packw(DisasContext *ctx, arg_packw *a) -{ - REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); - return gen_arith(ctx, a, EXT_NONE, gen_packw); -} - -static void gen_packuw(TCGv ret, TCGv arg1, TCGv arg2) -{ - TCGv t =3D tcg_temp_new(); - tcg_gen_shri_tl(t, arg1, 16); - tcg_gen_deposit_tl(ret, arg2, t, 0, 16); - tcg_gen_ext32s_tl(ret, ret); - tcg_temp_free(t); -} - -static bool trans_packuw(DisasContext *ctx, arg_packuw *a) -{ - REQUIRE_64BIT(ctx); - REQUIRE_EXT(ctx, RVB); - return gen_arith(ctx, a, EXT_NONE, gen_packuw); -} - static void gen_rorw(TCGv ret, TCGv arg1, TCGv arg2) { TCGv_i32 t1 =3D tcg_temp_new_i32(); --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1633590010348228.3197521460636; Thu, 7 Oct 2021 00:00:10 -0700 (PDT) Received: from localhost ([::1]:38978 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNNx-0002ZA-6g for importer@patchew.org; Thu, 07 Oct 2021 03:00:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34236) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNDm-0004bD-QE for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:49:38 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:53914) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNDh-0006R5-8j for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:49:38 -0400 Received: from h199-255-45-15.hgst.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:49:32 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:23:53 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:49:33 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ24D11Wcz1RvmJ for ; Wed, 6 Oct 2021 23:49:32 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 9dJO54NPQ0Md for ; Wed, 6 Oct 2021 23:49:31 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ2464TN0z1RvTg; Wed, 6 Oct 2021 23:49:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589372; x=1665125372; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=HzOH5zU/Z5xyWh7p/0y+2b1dMv0UQNdqjlXAy9yWYow=; b=CpiralUIU48JbbKU7E7xcm+NJR0YMyzn/xYRVupv8TQCX+i36kMtXGX2 2bQM4+rYr45QfDXrH+VOHaZKcKVWaM+4sSYqVr1a6M8+mbnWkm1BtsI+Y G5M9OeFx+j8wzoPYlOCCritgjDUtLRzJpLnvPsj8Eh1X8F15Nx6NZsNe/ 4W0TdS8Q5EaVv/8kBFM62Ay3hNNUGwItpAj5vBAuiunsCC7VwDbzqPZAX nZMOKSmI437WnkPdqeJ92RSimFe5J+Meugiv0ucBVwL7X3ttd1H8RsCFc X4fDhEFj+Td6Tz5b1jzmahVCaMxAhtoY0GKNKVz8pxtf29ygEaSDC5fyu Q==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="293815499" IronPort-SDR: fFAlNTZSDtecmMNxNp4ZiZVZNYRU5ijUQOeImsz56CB22kd4zm1w3tsaIEO/QpVL5SAgQmowwG z4lC0UlZkwqzzHQfvUXrX65SLzPgwYk8zPSXK3/Z3nrr9ZEkpoxtYO0QBVqYBwNc7X/YSwYt9J /mjsrckC9EUs3fZvDM/Gu99N2cGiFRQwldbok7i41+/4TQ5USXBZ42Q6DB6h+kg55gvrLC73ua sz/lcpBTr2Yfv6mJqQvW3InK/902HBuFxqd9UBKUdOmdYhWKF/pb86RpAdD9F3Ide0iEGrMAVs BzAT7GLpWXTbUrNG3Acngqq3 IronPort-SDR: P1jDUJcBOBUwdUKeqOT/srp2yP/5cGj3/EdwWMeDXuO09a8LEpfuRzNV0SiFFPVvHs5noqNjoq NnooB1hj8ts91FHqnPa1UIlbgFkrQFDJ+6nYUqnM/z1XYfQuFwcPPOE7pGICmt8QFrPg5etfFB sSxrIXYQg+vM/8+IZx2AzjsvoIiey0cJGlKP/u1m8CC8SMF1a5e+U2hJ4+S03zj/sjxlcIQhqi HvNdvDrap+ihwvq3s8vaieVd2omGI+3x+yc+Q+RGTlg+mmervHce8TSIlhKygK52StlECm4N2i 3Mw= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1633589371; x=1636181372; bh=HzOH5zU/Z5xyWh7p/0 y+2b1dMv0UQNdqjlXAy9yWYow=; b=lOQDLcwbhtv8HbOu1/TT24YW8lzaBmgk/d dl0toc7hVv3ToodMDx9PPB3vkw+NsMUhqplG2SDKZ7q7JS6IclkW1DUmMExfQ0jg UD9YdOxgmBMH+W6ZBu93kO7pknN5+wsfpINHlqc7DOSDZ6Nmk2JYB28RamaBj//t +SA0/Q5ScaWb9AMvE8z8JKpNBHV+ij2YZlfLrHowj5aDta+5rTTpnUu9mL6l8sg/ i7unYeBpHKWagqwGyygolRxe1IKmH1/iYBtjxteqCQFZwd2aX1PyJI3MJf1aGnW1 0t6z+nWcXeDgN44KaCt3T1Yc4Kcb8Q7tPjn6xrzhzK0T3tIi4Uxg== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, Philipp Tomsich , Richard Henderson , Alistair Francis , Bin Meng Subject: [PULL 15/26] target/riscv: Remove RVB (replaced by Zb[abcs]) Date: Thu, 7 Oct 2021 16:47:40 +1000 Message-Id: <20211007064751.608580-16-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=68.232.141.245; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa1.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_SPF_HELO_TEMPERROR=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633590011529100001 Content-Type: text/plain; charset="utf-8" From: Philipp Tomsich With everything classified as Zb[abcs] and pre-0.93 draft-B instructions that are not part of Zb[abcs] removed, we can remove the remaining support code for RVB. Note that RVB has been retired for good and misa.B will neither mean 'some' or 'all of' Zb*: https://lists.riscv.org/g/tech-bitmanip/message/532 Signed-off-by: Philipp Tomsich Reviewed-by: Richard Henderson Reviewed-by: Alistair Francis Reviewed-by: Bin Meng Message-id: 20210911140016.834071-16-philipp.tomsich@vrull.eu Signed-off-by: Alistair Francis --- target/riscv/cpu.h | 3 --- target/riscv/insn32.decode | 4 ---- target/riscv/cpu.c | 26 -------------------------- 3 files changed, 33 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 1a38723f2c..bd519c9090 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -67,7 +67,6 @@ #define RVS RV('S') #define RVU RV('U') #define RVH RV('H') -#define RVB RV('B') =20 /* S extension denotes that Supervisor mode exists, however it is possible to have a core that support S mode but does not have an MMU and there @@ -83,7 +82,6 @@ enum { #define PRIV_VERSION_1_10_0 0x00011000 #define PRIV_VERSION_1_11_0 0x00011100 =20 -#define BEXT_VERSION_0_93_0 0x00009300 #define VEXT_VERSION_0_07_1 0x00000701 =20 enum { @@ -288,7 +286,6 @@ struct RISCVCPU { bool ext_f; bool ext_d; bool ext_c; - bool ext_b; bool ext_s; bool ext_u; bool ext_h; diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode index affb99b3e6..2f251dac1b 100644 --- a/target/riscv/insn32.decode +++ b/target/riscv/insn32.decode @@ -712,10 +712,6 @@ rorw 0110000 .......... 101 ..... 0111011 @r # instruction, so we use different handler functions to differentiate. zext_h_64 0000100 00000 ..... 100 ..... 0111011 @r2 =20 -# *** RV32B Standard Extension *** - -# *** RV64B Standard Extension (in addition to RV32B) *** - # *** RV32 Zbc Standard Extension *** clmul 0000101 .......... 001 ..... 0110011 @r clmulh 0000101 .......... 011 ..... 0110011 @r diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 785a3a8d19..1d69d1887e 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -127,11 +127,6 @@ static void set_priv_version(CPURISCVState *env, int p= riv_ver) env->priv_ver =3D priv_ver; } =20 -static void set_bext_version(CPURISCVState *env, int bext_ver) -{ - env->bext_ver =3D bext_ver; -} - static void set_vext_version(CPURISCVState *env, int vext_ver) { env->vext_ver =3D vext_ver; @@ -496,25 +491,6 @@ static void riscv_cpu_realize(DeviceState *dev, Error = **errp) if (cpu->cfg.ext_h) { target_misa |=3D RVH; } - if (cpu->cfg.ext_b) { - int bext_version =3D BEXT_VERSION_0_93_0; - target_misa |=3D RVB; - - if (cpu->cfg.bext_spec) { - if (!g_strcmp0(cpu->cfg.bext_spec, "v0.93")) { - bext_version =3D BEXT_VERSION_0_93_0; - } else { - error_setg(errp, - "Unsupported bitmanip spec version '%s'", - cpu->cfg.bext_spec); - return; - } - } else { - qemu_log("bitmanip version is not specified, " - "use the default value v0.93\n"); - } - set_bext_version(env, bext_version); - } if (cpu->cfg.ext_v) { int vext_version =3D VEXT_VERSION_0_07_1; target_misa |=3D RVV; @@ -616,7 +592,6 @@ static Property riscv_cpu_properties[] =3D { DEFINE_PROP_BOOL("s", RISCVCPU, cfg.ext_s, true), DEFINE_PROP_BOOL("u", RISCVCPU, cfg.ext_u, true), /* This is experimental so mark with 'x-' */ - DEFINE_PROP_BOOL("x-b", RISCVCPU, cfg.ext_b, false), DEFINE_PROP_BOOL("x-zba", RISCVCPU, cfg.ext_zba, false), DEFINE_PROP_BOOL("x-zbb", RISCVCPU, cfg.ext_zbb, false), DEFINE_PROP_BOOL("x-zbc", RISCVCPU, cfg.ext_zbc, false), @@ -627,7 +602,6 @@ static Property riscv_cpu_properties[] =3D { DEFINE_PROP_BOOL("Zifencei", RISCVCPU, cfg.ext_ifencei, true), DEFINE_PROP_BOOL("Zicsr", RISCVCPU, cfg.ext_icsr, true), DEFINE_PROP_STRING("priv_spec", RISCVCPU, cfg.priv_spec), - DEFINE_PROP_STRING("bext_spec", RISCVCPU, cfg.bext_spec), DEFINE_PROP_STRING("vext_spec", RISCVCPU, cfg.vext_spec), DEFINE_PROP_UINT16("vlen", RISCVCPU, cfg.vlen, 128), DEFINE_PROP_UINT16("elen", RISCVCPU, cfg.elen, 64), --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 163359027754986.71676314655735; Thu, 7 Oct 2021 00:04:37 -0700 (PDT) Received: from localhost ([::1]:47514 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNSF-0000GL-6e for importer@patchew.org; Thu, 07 Oct 2021 03:04:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34280) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNDp-0004iT-8G for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:49:42 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:53929) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNDm-0006aO-TD for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:49:40 -0400 Received: from h199-255-45-15.hgst.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:49:37 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:23:58 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:49:38 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ24K157dz1RvmK for ; Wed, 6 Oct 2021 23:49:37 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id vs6GXMJ5oZ88 for ; Wed, 6 Oct 2021 23:49:36 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ24D3Gnxz1RvTg; Wed, 6 Oct 2021 23:49:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589378; x=1665125378; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=44EpuBfg38e46D5ZB2j6SjqVBChyFccP5t1uUs09tEA=; b=HYpqVSMYEG7cS1dePKTEM45ZzZiVjDYleO8LyigQVmytEofNEtW3cUiL cAEsKDYzHRnfaR+Xgql5SIRnGbJtyNXmjHJmBPChA5e6UTxS8IBOnAyZ0 p5KpOp32yEOOEgqRYI13AqJQouNHpgFUo5eGDbmZ26YkXBuTVeGjdOlEb 5D+Sw0dmEibhGX3m7omzvrk5mCs/HomI1j8bBSn7dN9oB3Iof9sB0DlVB rrsE58Y8arfcafU+emHwWkChU2ddNfgNOANHxN+MaiqJOInY1jxEZznpG eqEAxgbJpFy/8w+2JI055bRx5EUIxxBOr0BxytIlEGSSssqD5GLogj9HL g==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="293815502" IronPort-SDR: tI3jA7YRRilHDdgIfeq9uKJENaOTpSHUSHwcqoyExiY1wGzostPkqhG/WO512OG8ZInYqA6ARS 2oOHK/uql3nNfWr3LoNL7Ziot3U89hfDnJTo/2WjcgUyUYi6U3NYgy8uG3tYSI8L3LhHTaN250 KXZS7vQ6UB8XqMt5kI5aSJ1+f4XnkHtLYHISu+egUX+PZ6ovykrLh0sl57FJgDdE+q25NCQSEu WOzi2d38j7nd5G1cppwrVgPAMhUFrQgIhxNPjC8d8AyW7emlgGqQ68h9CDj0lEBiuX0hfFSzOw Hz+tfj4idtBK7V/kokYuCxn8 IronPort-SDR: oBAII0nrQoF2zKbzCMnRNl69WLPBM4cyipJ/9EMZF6vxWy2Zpub4GbayHFM3kThwgSNbZ8sHnz qTjVmS3wenIHj55DoSPQaYkNe/BMxKSOrzjJD02sybNUwM2mV7JHqxciOVU2Z9b3Pqde0jXh8A TnrCxUGk2HNJE/xM48/+gxwFAr7HB/v0PgPhBDtnzbEYZ23W5zRaVKoVyI6HlGoSy0NNBVh4aW m1bi8hNZo4RdQHEVWJTzq7v9BCNWROVadx1D0qNhtAMcMIThGcNNNAGl0PZpHEoUzbaoIFLUR6 X+g= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1633589376; x=1636181377; bh=44EpuBfg38e46D5ZB2 j6SjqVBChyFccP5t1uUs09tEA=; b=M51woXci/yEaDenwPLviRV37UYnQkbPKFc +Ht1Gbg/FWjEKS9mB2HJwtepUBbr9RB4lg1FJ21BHszwTvAskF6/2NreV7BiWfWm BYZjUwcAzCv3aXx7khcAOr8+W9rBQQmMSWD35tzO60Toymv6psC28fWVbMUIS5o+ R9mAggmkUG7el0ziehOGmpqHyvoQHXM0pWXCOjqD2iziw3NSEAprMDE5IRPb8GOK iI/vc73A2+D5geZVe1lvh6Ub9JcJNGQmNdScTV59nmiiEjQ9IKUj/1avkzxA8r5k b6fINzRqjvwI/9NdZjK+q7Co1gh2LL3T8LpTEITsEZ885+ux9UOw== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, Philipp Tomsich , Alistair Francis Subject: [PULL 16/26] disas/riscv: Add Zb[abcs] instructions Date: Thu, 7 Oct 2021 16:47:41 +1000 Message-Id: <20211007064751.608580-17-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=68.232.141.245; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa1.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633590277937100001 Content-Type: text/plain; charset="utf-8" From: Philipp Tomsich With the addition of Zb[abcs], we also need to add disassembler support for these new instructions. Signed-off-by: Philipp Tomsich Acked-by: Alistair Francis Message-id: 20210911140016.834071-17-philipp.tomsich@vrull.eu Signed-off-by: Alistair Francis --- disas/riscv.c | 157 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 154 insertions(+), 3 deletions(-) diff --git a/disas/riscv.c b/disas/riscv.c index 278d9be924..793ad14c27 100644 --- a/disas/riscv.c +++ b/disas/riscv.c @@ -478,6 +478,49 @@ typedef enum { rv_op_fsflags =3D 316, rv_op_fsrmi =3D 317, rv_op_fsflagsi =3D 318, + rv_op_bseti =3D 319, + rv_op_bclri =3D 320, + rv_op_binvi =3D 321, + rv_op_bexti =3D 322, + rv_op_rori =3D 323, + rv_op_clz =3D 324, + rv_op_ctz =3D 325, + rv_op_cpop =3D 326, + rv_op_sext_h =3D 327, + rv_op_sext_b =3D 328, + rv_op_xnor =3D 329, + rv_op_orn =3D 330, + rv_op_andn =3D 331, + rv_op_rol =3D 332, + rv_op_ror =3D 333, + rv_op_sh1add =3D 334, + rv_op_sh2add =3D 335, + rv_op_sh3add =3D 336, + rv_op_sh1add_uw =3D 337, + rv_op_sh2add_uw =3D 338, + rv_op_sh3add_uw =3D 339, + rv_op_clmul =3D 340, + rv_op_clmulr =3D 341, + rv_op_clmulh =3D 342, + rv_op_min =3D 343, + rv_op_minu =3D 344, + rv_op_max =3D 345, + rv_op_maxu =3D 346, + rv_op_clzw =3D 347, + rv_op_ctzw =3D 348, + rv_op_cpopw =3D 349, + rv_op_slli_uw =3D 350, + rv_op_add_uw =3D 351, + rv_op_rolw =3D 352, + rv_op_rorw =3D 353, + rv_op_rev8 =3D 354, + rv_op_zext_h =3D 355, + rv_op_roriw =3D 356, + rv_op_orc_b =3D 357, + rv_op_bset =3D 358, + rv_op_bclr =3D 359, + rv_op_binv =3D 360, + rv_op_bext =3D 361, } rv_op; =20 /* structures */ @@ -1117,6 +1160,49 @@ const rv_opcode_data opcode_data[] =3D { { "fsflags", rv_codec_i_csr, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, { "fsrmi", rv_codec_i_csr, rv_fmt_rd_zimm, NULL, 0, 0, 0 }, { "fsflagsi", rv_codec_i_csr, rv_fmt_rd_zimm, NULL, 0, 0, 0 }, + { "bseti", rv_codec_i_sh7, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, + { "bclri", rv_codec_i_sh7, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, + { "binvi", rv_codec_i_sh7, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, + { "bexti", rv_codec_i_sh7, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, + { "rori", rv_codec_i_sh7, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, + { "clz", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, + { "ctz", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, + { "cpop", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, + { "sext.h", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, + { "sext.b", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, + { "xnor", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, + { "orn", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, + { "andn", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, + { "rol", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "ror", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "sh1add", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "sh2add", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "sh3add", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "sh1add.uw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "sh2add.uw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "sh3add.uw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "clmul", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "clmulr", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "clmulh", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "min", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "minu", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "max", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "maxu", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "clzw", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, + { "clzw", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, + { "cpopw", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, + { "slli.uw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "add.uw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "rolw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "rorw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "rev8", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, + { "zext.h", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, + { "roriw", rv_codec_i_sh5, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, + { "orc.b", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, + { "bset", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "bclr", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "binv", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "bext", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, }; =20 /* CSR names */ @@ -1507,7 +1593,20 @@ static void decode_inst_opcode(rv_decode *dec, rv_is= a isa) case 0: op =3D rv_op_addi; break; case 1: switch (((inst >> 27) & 0b11111)) { - case 0: op =3D rv_op_slli; break; + case 0b00000: op =3D rv_op_slli; break; + case 0b00101: op =3D rv_op_bseti; break; + case 0b01001: op =3D rv_op_bclri; break; + case 0b01101: op =3D rv_op_binvi; break; + case 0b01100: + switch (((inst >> 20) & 0b1111111)) { + case 0b0000000: op =3D rv_op_clz; break; + case 0b0000001: op =3D rv_op_ctz; break; + case 0b0000010: op =3D rv_op_cpop; break; + /* 0b0000011 */ + case 0b0000100: op =3D rv_op_sext_b; break; + case 0b0000101: op =3D rv_op_sext_h; break; + } + break; } break; case 2: op =3D rv_op_slti; break; @@ -1515,8 +1614,16 @@ static void decode_inst_opcode(rv_decode *dec, rv_is= a isa) case 4: op =3D rv_op_xori; break; case 5: switch (((inst >> 27) & 0b11111)) { - case 0: op =3D rv_op_srli; break; - case 8: op =3D rv_op_srai; break; + case 0b00000: op =3D rv_op_srli; break; + case 0b00101: op =3D rv_op_orc_b; break; + case 0b01000: op =3D rv_op_srai; break; + case 0b01001: op =3D rv_op_bexti; break; + case 0b01100: op =3D rv_op_rori; break; + case 0b01101: + switch ((inst >> 20) & 0b1111111) { + case 0b0111000: op =3D rv_op_rev8; break; + } + break; } break; case 6: op =3D rv_op_ori; break; @@ -1530,12 +1637,21 @@ static void decode_inst_opcode(rv_decode *dec, rv_i= sa isa) case 1: switch (((inst >> 25) & 0b1111111)) { case 0: op =3D rv_op_slliw; break; + case 4: op =3D rv_op_slli_uw; break; + case 48: + switch ((inst >> 20) & 0b11111) { + case 0b00000: op =3D rv_op_clzw; break; + case 0b00001: op =3D rv_op_ctzw; break; + case 0b00010: op =3D rv_op_cpopw; break; + } + break; } break; case 5: switch (((inst >> 25) & 0b1111111)) { case 0: op =3D rv_op_srliw; break; case 32: op =3D rv_op_sraiw; break; + case 48: op =3D rv_op_roriw; break; } break; } @@ -1623,8 +1739,32 @@ static void decode_inst_opcode(rv_decode *dec, rv_is= a isa) case 13: op =3D rv_op_divu; break; case 14: op =3D rv_op_rem; break; case 15: op =3D rv_op_remu; break; + case 36: + switch ((inst >> 20) & 0b11111) { + case 0: op =3D rv_op_zext_h; break; + } + break; + case 41: op =3D rv_op_clmul; break; + case 42: op =3D rv_op_clmulr; break; + case 43: op =3D rv_op_clmulh; break; + case 44: op =3D rv_op_min; break; + case 45: op =3D rv_op_minu; break; + case 46: op =3D rv_op_max; break; + case 47: op =3D rv_op_maxu; break; + case 130: op =3D rv_op_sh1add; break; + case 132: op =3D rv_op_sh2add; break; + case 134: op =3D rv_op_sh3add; break; + case 161: op =3D rv_op_bset; break; case 256: op =3D rv_op_sub; break; + case 260: op =3D rv_op_xnor; break; case 261: op =3D rv_op_sra; break; + case 262: op =3D rv_op_orn; break; + case 263: op =3D rv_op_andn; break; + case 289: op =3D rv_op_bclr; break; + case 293: op =3D rv_op_bext; break; + case 385: op =3D rv_op_rol; break; + case 386: op =3D rv_op_ror; break; + case 417: op =3D rv_op_binv; break; } break; case 13: op =3D rv_op_lui; break; @@ -1638,8 +1778,19 @@ static void decode_inst_opcode(rv_decode *dec, rv_is= a isa) case 13: op =3D rv_op_divuw; break; case 14: op =3D rv_op_remw; break; case 15: op =3D rv_op_remuw; break; + case 32: op =3D rv_op_add_uw; break; + case 36: + switch ((inst >> 20) & 0b11111) { + case 0: op =3D rv_op_zext_h; break; + } + break; + case 130: op =3D rv_op_sh1add_uw; break; + case 132: op =3D rv_op_sh2add_uw; break; + case 134: op =3D rv_op_sh3add_uw; break; case 256: op =3D rv_op_subw; break; case 261: op =3D rv_op_sraw; break; + case 385: op =3D rv_op_rolw; break; + case 389: op =3D rv_op_rorw; break; } break; case 16: --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1633590194568909.0654122756789; Thu, 7 Oct 2021 00:03:14 -0700 (PDT) Received: from localhost ([::1]:45824 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNQu-0007b5-Vl for importer@patchew.org; Thu, 07 Oct 2021 03:03:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34340) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNDv-0004lX-6Z for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:49:47 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:53936) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNDt-0006fx-9w for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:49:46 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:49:43 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:25:37 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:49:44 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ24R2Q5wz1RvmJ for ; Wed, 6 Oct 2021 23:49:43 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 4Dn0ya47eIWM for ; Wed, 6 Oct 2021 23:49:42 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ24K4rnnz1RvTg; Wed, 6 Oct 2021 23:49:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589385; x=1665125385; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=er94YNdPEyDm1X3nyxSkXfKoyRKBD5rGyQq8d2Iu0p0=; b=TWaOlej3RFIxsm4wYhCMW0l2E74qa0e1LrUYd0AMZqGvkkJ23lN+CJmG F5oGiYzpW8YLfVEhXmYOFKyCc2ibFGJAAgzU9EDkPlKJaARtuliGvWntI bSb0JZDIlMaFs9qYEWd1b8xxVrnKVPIzd7cjwmaonYQz3iKepWm5rgkzA j7OhrpRdYvHn9pvUfnLbEyLRKqBkoa0T5mxo0pKYEUy+cpZqrv6jCP5jY l6NT/Zk32NgYNeAFe9o4E1nkh6rz9pPF/hDFILFZ2Ku7caK15Yb+tc8no aN1GLXt8kEkAT10T6fS7SkloENaNZRDsE+9Ysj3D8OWibG4bB5DJbfav0 A==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="293815506" IronPort-SDR: lGZ8q7HshtqUSqnB9f/n2pZNHWAYrN9RC+WJX+exo0e48baFwFY/gYeRGPtbqoBKb/UA6mj2s6 LZbTKZg/kPoYIkly0yr76tTwupt4r0LVuDnom3m/2+6jrH6WFXXkHiiVYAUTlFaedA/NwpRj7s zAKmet788aFQORnQ8ECVJCpd7HEHhCih72N9HwgCYY2DrgkPemobrKU8TmTnKu9aaw6++/FUTN iKwzB2TE/mDgQiFzZLk2y0GvTwjJrlLz/nl9uM90e8Z3CYczy6pM7ApQ3LwwGNrxrLjiTsyA2Z wBD7BiQwGsYYsFer9SH1z2eA IronPort-SDR: livlMvKyE6HT2r/g2Vl+YjeUyZSU480YxQPtV9HOQtb/fMVxpcd2cyU/euMVujVqwUqSYcawDF WwE28JZB4zwqFfFfMHYQlguveqCWsKWl4vJA6BGV8N8Zus4rRM/UZ8rM4CiBL0AxeaOyfBApyg 5eTlB2llGtGnZtLG5fkaLOCHhBvGKToUiXSWEtDjIJNJgMuyuFlI3wsaa1gq5hxiw/Z3lKWRuS OwWftrvYrHdt3POhuQIWEOEnqHUx/PYsxMS5NY6TwYWVG88DK0xf5X7KI5Yycs8tMixULjBOTh Gok= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1633589382; x=1636181383; bh=er94YNdPEyDm1X3nyx SkXfKoyRKBD5rGyQq8d2Iu0p0=; b=FPwnrVxsgHXYAYmPU8+VPL1iiXRl/+rej0 NjeI6xeKSDAfcu9vzoUsZgR1s16g2PVuoacm4WPZrZlMS2nj+lb4JQ4bOv6q7jgv WPm3Sq+NdrMfHHYiLdci7lbVtg/LKcNZSCuBXrxCrT/N7mhmVQUU01Fu7n9u3+5b /ZkB8mJTnk1YGkZXYhZSze7zZLPDknAgxBC0ObpyX9IWylJn7BXnP8BR7jEx0OGO zWN97IBXqpABCboJwK5ODnxdgoi8srxzs2irqa+ZoPEkvKLcd+Pvivyb8DOfGxMn 6PgANUzGfml99JqrlSzAPoozCXIC0YvaLNv/KqMvXdu/KO5/43/Q== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, Frank Chang , Vincent Chen , Richard Henderson , Alistair Francis Subject: [PULL 17/26] target/riscv: Set mstatus_hs.[SD|FS] bits if Clean and V=1 in mark_fs_dirty() Date: Thu, 7 Oct 2021 16:47:42 +1000 Message-Id: <20211007064751.608580-18-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=68.232.141.245; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa1.hgst.iphmx.com X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633590196311100001 Content-Type: text/plain; charset="utf-8" From: Frank Chang When V=3D1, both vsstauts.FS and HS-level sstatus.FS are in effect. Modifying the floating-point state when V=3D1 causes both fields to be set to 3 (Dirty). However, it's possible that HS-level sstatus.FS is Clean and VS-level vsstatus.FS is Dirty at the time mark_fs_dirty() is called when V=3D1. We can't early return for this case because we still need to set sstatus.FS to Dirty according to spec. Signed-off-by: Frank Chang Reviewed-by: Vincent Chen Tested-by: Vincent Chen Reviewed-by: Richard Henderson Reviewed-by: Alistair Francis Message-id: 20210921020234.123448-1-frank.chang@sifive.com Signed-off-by: Alistair Francis --- target/riscv/cpu.h | 4 ++++ target/riscv/translate.c | 30 +++++++++++++++++------------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index bd519c9090..9e55b2f5b1 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -393,6 +393,7 @@ FIELD(TB_FLAGS, SEW, 5, 3) FIELD(TB_FLAGS, VILL, 8, 1) /* Is a Hypervisor instruction load/store allowed? */ FIELD(TB_FLAGS, HLSX, 9, 1) +FIELD(TB_FLAGS, MSTATUS_HS_FS, 10, 2) =20 bool riscv_cpu_is_32bit(CPURISCVState *env); =20 @@ -449,6 +450,9 @@ static inline void cpu_get_tb_cpu_state(CPURISCVState *= env, target_ulong *pc, get_field(env->hstatus, HSTATUS_HU))) { flags =3D FIELD_DP32(flags, TB_FLAGS, HLSX, 1); } + + flags =3D FIELD_DP32(flags, TB_FLAGS, MSTATUS_HS_FS, + get_field(env->mstatus_hs, MSTATUS_FS)); } #endif =20 diff --git a/target/riscv/translate.c b/target/riscv/translate.c index b2d3444bc5..d2442f0cf5 100644 --- a/target/riscv/translate.c +++ b/target/riscv/translate.c @@ -58,6 +58,7 @@ typedef struct DisasContext { target_ulong misa; uint32_t opcode; uint32_t mstatus_fs; + uint32_t mstatus_hs_fs; uint32_t mem_idx; /* Remember the rounding mode encoded in the previous fp instruction, which we have already installed into env->fp_status. Or -1 for @@ -280,27 +281,29 @@ static void gen_jal(DisasContext *ctx, int rd, target= _ulong imm) static void mark_fs_dirty(DisasContext *ctx) { TCGv tmp; - target_ulong sd; + target_ulong sd =3D is_32bit(ctx) ? MSTATUS32_SD : MSTATUS64_SD; =20 - if (ctx->mstatus_fs =3D=3D MSTATUS_FS) { - return; - } - /* Remember the state change for the rest of the TB. */ - ctx->mstatus_fs =3D MSTATUS_FS; + if (ctx->mstatus_fs !=3D MSTATUS_FS) { + /* Remember the state change for the rest of the TB. */ + ctx->mstatus_fs =3D MSTATUS_FS; =20 - tmp =3D tcg_temp_new(); - sd =3D is_32bit(ctx) ? MSTATUS32_SD : MSTATUS64_SD; + tmp =3D tcg_temp_new(); + tcg_gen_ld_tl(tmp, cpu_env, offsetof(CPURISCVState, mstatus)); + tcg_gen_ori_tl(tmp, tmp, MSTATUS_FS | sd); + tcg_gen_st_tl(tmp, cpu_env, offsetof(CPURISCVState, mstatus)); + tcg_temp_free(tmp); + } =20 - tcg_gen_ld_tl(tmp, cpu_env, offsetof(CPURISCVState, mstatus)); - tcg_gen_ori_tl(tmp, tmp, MSTATUS_FS | sd); - tcg_gen_st_tl(tmp, cpu_env, offsetof(CPURISCVState, mstatus)); + if (ctx->virt_enabled && ctx->mstatus_hs_fs !=3D MSTATUS_FS) { + /* Remember the stage change for the rest of the TB. */ + ctx->mstatus_hs_fs =3D MSTATUS_FS; =20 - if (ctx->virt_enabled) { + tmp =3D tcg_temp_new(); tcg_gen_ld_tl(tmp, cpu_env, offsetof(CPURISCVState, mstatus_hs)); tcg_gen_ori_tl(tmp, tmp, MSTATUS_FS | sd); tcg_gen_st_tl(tmp, cpu_env, offsetof(CPURISCVState, mstatus_hs)); + tcg_temp_free(tmp); } - tcg_temp_free(tmp); } #else static inline void mark_fs_dirty(DisasContext *ctx) { } @@ -539,6 +542,7 @@ static void riscv_tr_init_disas_context(DisasContextBas= e *dcbase, CPUState *cs) ctx->frm =3D -1; /* unknown rounding mode */ ctx->ext_ifencei =3D cpu->cfg.ext_ifencei; ctx->vlen =3D cpu->cfg.vlen; + ctx->mstatus_hs_fs =3D FIELD_EX32(tb_flags, TB_FLAGS, MSTATUS_HS_FS); ctx->hlsx =3D FIELD_EX32(tb_flags, TB_FLAGS, HLSX); ctx->vill =3D FIELD_EX32(tb_flags, TB_FLAGS, VILL); ctx->sew =3D FIELD_EX32(tb_flags, TB_FLAGS, SEW); --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1633590410686208.33384711172368; Thu, 7 Oct 2021 00:06:50 -0700 (PDT) Received: from localhost ([::1]:54468 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNUP-0004ym-Ja for importer@patchew.org; Thu, 07 Oct 2021 03:06:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34368) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNE0-0004uc-OU for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:49:53 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:53936) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNDx-0006fx-JG for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:49:52 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:49:48 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:25:42 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:49:49 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ24X0hfwz1RvmK for ; Wed, 6 Oct 2021 23:49:48 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 0qhGDUtwE0fC for ; Wed, 6 Oct 2021 23:49:47 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ24R3yWVz1RvTg; Wed, 6 Oct 2021 23:49:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589389; x=1665125389; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=sA0TrCcyxV0oaDsCs1x2bn8s4mToT7JsviG/C69VdnA=; b=Iyuyv54o4Rh3pZ6V5cklbllV5B3pekZWf3N9MdfjE4H1VPMlS/BWKBGU gS5eTebN7pdunV5fzPZe07W48BA/XZG0lu5nP3Fgbvme5O8ju+HwKchZW AOAF3YBiNrKz28BHoTDr7toaphzMh+BhvxCgho1xSACTyoAwoWlr4aZek Gxu1i7RigrYo+nsRZ3OzX1DYPKwt5jLP5D7QbePylB6fMZKzasp92jRbs EyJlMXXCq/QEkVJqki0mBmEOW2VCdW/SaiCoAP+CrJePK7j4QBWYeiwuI XtYt0iwOIJ41LH3t+V4U2mi2CEPdsg8iwWl4FjUIhdjgCQx8yDg3rMcJy A==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="293815510" IronPort-SDR: YmQdHUtZtoMPoEzCyiwZu6Z0F7UZ0/M1EqhJEmvzeEwjkNfJTsvmqYinof0lQ1XMAA4NZWVj31 1ZW/TlG3o6qRSClT/XULCucNxMNAQxwN6AKa36RdtY4AHh71vbl4EENPkZhVh6Cslf4SPTzWPT CKQvGZUseo/RN7aM6Kg4WPK1NogFUdCIq0J6Hwect2bWPftbq0vCO9ZdU1JheuW6wmCiP3KaW0 qRoPEOWTPdZqvpu4oKuhuQlr0WtNAZfOyYb39nMQGqgMeDK+7hb27N1MQYhZWIDLVcVg14pdSx sjSAb40uLMtyWgz7uSTT46Qz IronPort-SDR: MeEh0foGQw+Oc+FNb+T6nt/NTAb6aFRqYnlDrfK5HBrk7Fjpuh9AmivvpRy+Qwz/WlotO7UAIe aFm3i2jeZajplcDduOIL3fcsaWXmFWIR7aWly4TjX0gdI5Jbc44zCzo4agR4FKk3W3yIAZxkr1 pcjRpIWObe3PbO9XfaEZpa+A9A+jCV1fqBNGLJH4CEOPQ/y8J3scSuM78t/PnYGjLioSSf9I6X apEvYmYo6R6g7FtuyT8ccpFg4eU4DkUTt97UMSBoSz+IsiWW8LzmbR9d1DEo51sPXv01kqxnaY BEc= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:content-type :mime-version:references:in-reply-to:x-mailer:message-id:date :subject:to:from; s=dkim; t=1633589387; x=1636181388; bh=sA0TrCc yxV0oaDsCs1x2bn8s4mToT7JsviG/C69VdnA=; b=CgGVWod2JIM6wTeuZuxaV8A eACKZijB6kE36d9O7hXhE483FlJOz5YvQmAMU04Ilkv/V7aSn0LAmQFNLrQMPpKS 9MfxiuZEVbHicnKt5hamS3Vdy9pvH/KJK0V1ilHuF6rXa0BPfkaHxdh9s4g8ha+o iuoccDlMsI4HtkJVwviYUGifzwmJKmqIW/h4DqwZXiJz+xABo1bAPFIFOnHjBDiG N2NDp1MaU2n3HPvTq8nLHOYtsK8aDO9s2nUtc3WNc0Jf4A81iAdRCgjxZ09Dkkze 4+1vjZj0LDHQvLcBb81zqT9nFbWSifL+SBFYqMn9yLOKHReq7yb/DieCcYW957A= = X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, Bin Meng , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alistair Francis Subject: [PULL 18/26] hw/char: ibex_uart: Register device in 'input' category Date: Thu, 7 Oct 2021 16:47:43 +1000 Message-Id: <20211007064751.608580-19-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=68.232.141.245; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa1.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633590412448100001 Content-Type: text/plain; charset="utf-8" From: Bin Meng The category of ibex_uart device is not set. Put it into the 'input' category. Signed-off-by: Bin Meng Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis Message-id: 20210926105003.2716-1-bmeng.cn@gmail.com Signed-off-by: Alistair Francis --- hw/char/ibex_uart.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/char/ibex_uart.c b/hw/char/ibex_uart.c index 9b0a817713..e58181fcf4 100644 --- a/hw/char/ibex_uart.c +++ b/hw/char/ibex_uart.c @@ -550,6 +550,7 @@ static void ibex_uart_class_init(ObjectClass *klass, vo= id *data) dc->realize =3D ibex_uart_realize; dc->vmsd =3D &vmstate_ibex_uart; device_class_set_props(dc, ibex_uart_properties); + set_bit(DEVICE_CATEGORY_INPUT, dc->categories); } =20 static const TypeInfo ibex_uart_info =3D { --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1633590372835401.77984638879525; Thu, 7 Oct 2021 00:06:12 -0700 (PDT) Received: from localhost ([::1]:52702 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNTn-0003oe-QK for importer@patchew.org; Thu, 07 Oct 2021 03:06:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34438) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNE7-000530-V1 for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:49:59 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:24099) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNE5-0006pD-9p for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:49:59 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:49:53 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:25:48 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:49:55 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ24f1jjqz1RvmK for ; Wed, 6 Oct 2021 23:49:54 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 0tpQQzgrpRBW for ; Wed, 6 Oct 2021 23:49:53 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ24X5mpVz1RvTg; Wed, 6 Oct 2021 23:49:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589395; x=1665125395; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=7muA6BblBjgKS6MFJkpK3aWT4dKQtyogCxrBaIt3Dcs=; b=j8HzFarkUvHfiIgdSKR2ndi5vO0ndNSwqMJjwn046cS4+LaiBCYemF2z i27D3a0FrgtIOI7UXURQshymOGZRXK5aGx7oKCRk0xZrLhrW+zWsHkPuf OgOCfHG3WgRGjx3wzbeLOr9vNXugXNoP1FKdsx9LZHHPl1Wkxsc6fm3+a zMAGsvRqB7e0AP0e4fzov72SUasxaq14WFVky7Y8xN1kHuBHVZvakawpC O/ROh7NNrE/JKjKbyIm2ueOGYI7KTcGsEzrp1s/k4JGNkgEPFNouCRmKh 4WY1QhRYODtkTWZyyg23icmWvq+IuPslgPQr7EIkHB0DdcBdaouGTsrCB g==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="186894964" IronPort-SDR: c4JmfJQQV7Q073XO1bJM++Pk2osH22uMcUimw+d5eV1n4V+6NviZQsZ4AAdGhbWD+2f9XaC+C4 jOQkrlQu3vXYuTp8cPZ9Hr5Calzi+0vw/STf0ss4F5q+GZf7fTjbRFRzti7Oh4tcC3LXBK2UJW AsCfBXov08hF4NVmdFG6YbnY8jTVQu97VuvYjEuUrHUfjKDqLkkkwQqGU5nTeYHUGXLsISJHs8 BkzlslQZXpAI03UV0WJ4oVP3AqiFCfOkcDpWOJuMCUout5vb9bbU0zCrj0V28G1wvmQmK58XOG k4VomNQpHvNbFYF4vcPaNt5D IronPort-SDR: nFnnLvZCvvbSN8LQKDmpNwyxJRXXiAZ/hsZqxmRZieNpYfnRA5hvac0JT2+0lcGCJbFx/Zykvn +vmIojak/NW93frxsPn/XPdswDlUul1u9xLnW7+zPfG5uiuGvgT0aKbXYmlyg4+e1/kE/4gJOg QY0bqaCZKnVa6J1Q+F69L5LAw3MYKslREdMrIN0D4/grGVkefKbvA8fayM0tTkKmDrE+pIhY7q aVxj9CWqg0JxVGK9uhuGzDOFXTKKLPlekhuH8wvqgbUQ4jdiq7dQAhZoCe5AqrfpbVStAJXt0B pvE= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:content-type :mime-version:references:in-reply-to:x-mailer:message-id:date :subject:to:from; s=dkim; t=1633589393; x=1636181394; bh=7muA6Bb lBjgKS6MFJkpK3aWT4dKQtyogCxrBaIt3Dcs=; b=iIo8+wFOkggCg4AjkSoLxO4 iS3nR2wQpsqAxWNZJrJNYF0/vc4qPd4ve9UoRtwl1K0cBzaDE8UOuqQVVLAZL786 q6AzLkgrVcFmadUP0px9HgoRGjeaVPrNVs8C22UiQsFhLdOWJognHb69aINr3MkR cS4u3E53yOfVHp4baOL6R/3cl9U1yp4Zffmotx+AHpWXNXNfqJePz4NXroTGpQ7H Cyk6gF14HZf8nPJmAef9PFJs6J4n/tbwoexLfxXLTWj2S1kDpogN00M2Sw7JCvdR tHsc3y2Bbp2pBB80M2WOPyLTlo7oLr/d4nH4idLcb+MIkia8B46dcF0Jms7uCqw= = X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, Bin Meng , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alistair Francis Subject: [PULL 19/26] hw/char: shakti_uart: Register device in 'input' category Date: Thu, 7 Oct 2021 16:47:44 +1000 Message-Id: <20211007064751.608580-20-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=216.71.153.141; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633590374089100003 Content-Type: text/plain; charset="utf-8" From: Bin Meng The category of shakti_uart device is not set. Put it into the 'input' category. Signed-off-by: Bin Meng Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis Message-id: 20210926105003.2716-2-bmeng.cn@gmail.com Signed-off-by: Alistair Francis --- hw/char/shakti_uart.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/char/shakti_uart.c b/hw/char/shakti_uart.c index 6870821325..98b142c7df 100644 --- a/hw/char/shakti_uart.c +++ b/hw/char/shakti_uart.c @@ -168,6 +168,7 @@ static void shakti_uart_class_init(ObjectClass *klass, = void *data) dc->reset =3D shakti_uart_reset; dc->realize =3D shakti_uart_realize; device_class_set_props(dc, shakti_uart_properties); + set_bit(DEVICE_CATEGORY_INPUT, dc->categories); } =20 static const TypeInfo shakti_uart_info =3D { --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1633590588402407.07704976260845; Thu, 7 Oct 2021 00:09:48 -0700 (PDT) Received: from localhost ([::1]:34722 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNXH-00029k-BO for importer@patchew.org; Thu, 07 Oct 2021 03:09:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34466) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNE9-00057n-SF for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:50:01 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:24099) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNE8-0006pD-9m for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:50:01 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:49:57 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:25:53 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:50:00 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ24l0s9mz1RvmL for ; Wed, 6 Oct 2021 23:49:59 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id NxgqdRk9GDmd for ; Wed, 6 Oct 2021 23:49:58 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ24f5LX3z1RvTg; Wed, 6 Oct 2021 23:49:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589398; x=1665125398; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=KCAwwCSZqFgYjxIHNr5xKhwKtO6JxjH9B2EgeWLwlk8=; b=HuiIRLwLWHqhu1ao4BNxE25n/x32BzOvu1rJlt7ebLGkMEtLATxlRmwp yYxLeYRYNKea9E94uySrxy70Hxi3X7d8kfaS+fUgij876hstuRTzC0JoS lYxNY/skQTFYz0JPYEr63ZbOfCDH9gmhk758ENvtusP4FUu3KBoUP7vvA o5QKiFZwwg13pVNlWy9pFVfn8B7lfS61BXJ78ObjD8ZTL3l9sytdWqewl lt0wNZQF4kTBdXEW1Oi+tdLiymYNIel9PVFFyMEHFSYgQkmDuCzAH/u8g atfjZ8h1MX5RD9P7dhlbCyflvXTETrL3qH2om5lATKk7HU4CUVDwe1Q5z A==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="186894971" IronPort-SDR: ZPXpIFKA72ha3CXywXn0jlYL0/2KZQL5w4OpActjCtmrqVoW32zgg/fC3GzZQbSOyas7DhEfmY Xf3ASnWdexvzJ9hn5sjtfFmxXYUBiteAerOE91XXwNAh37D/JB2iPdkuafldqQpN5Lh3ITxv3E XuBYBY5ywnUzqKZVnTvx/hfjlwGDmClO0IPpbbKp9ZCEhvWF7nX1GtaGxGIKvdac98jc0fLUeI vLeWGF4oFBIABnaFDy6gLPaUCBjvDkPxMHjhZwHj3SlTsARO44P7J1RTef06mgQhZVXxA3qI/5 szg13oIAgCYq41M7vy9htt8S IronPort-SDR: qfpYKOQS7lmj2hzpa9n5Nc+JyXdo5/9h7bOvQqKHS/kbAkLo0B9WH+XRKrafNU7YFtciLQd8Pf gSbAbqh0fNnoA4MELTCBUYH29AkZ4H747ojaQA1QlSrB3H1rYMvxMdVsDqzwyDaFOx+TjyNGDT dSfgmw3snoiRblMlC2va9+HLVjrIPFHOKYTcZaenL9V6yqaQ+5lrhzf/z0LsVi1ONhgBWy/kJY hLJX8qEFVBw7h+IQKztAL+cp11wkzS29UftPy1roSJITCNkWy4hfouWGiXIv2pdqFRq9vtVIfQ qLg= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:content-type :mime-version:references:in-reply-to:x-mailer:message-id:date :subject:to:from; s=dkim; t=1633589398; x=1636181399; bh=KCAwwCS ZqFgYjxIHNr5xKhwKtO6JxjH9B2EgeWLwlk8=; b=SFBDYS5lniw55YomtxjueVG vmHsFRQq2GAClmvo4q6J+IMceHwr9nVwfj+0CqKUs2GZ3SC+eTYDrjF2d5UJig2H jxBUhK7k/uTKdIiWdEBxsd+uA5vcDqVP3h9ldzS6ujuskwDlyG3vq2wttAkKQjL/ LG7u0QldE63uFmUgq6JXTkJSsfUf6ZyB/zykbD/9f5GAW5dmyBpDtzG7XGVyj4or N0vChdSz12Orylqn4KDxzPfl2CHV2+X2kfgQatVWrRZcgeNwIDx4tIMHbuJjw/0C Rg3LI4BqeiuAJwwUFPDzJS3Hey7UkfXDwhDowMG2Tyy5Bbwk0wxBvzCXw+8PRfA= = X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, Bin Meng , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alistair Francis Subject: [PULL 20/26] hw/char: sifive_uart: Register device in 'input' category Date: Thu, 7 Oct 2021 16:47:45 +1000 Message-Id: <20211007064751.608580-21-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=216.71.153.141; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633590590002100001 Content-Type: text/plain; charset="utf-8" From: Bin Meng The category of sifive_uart device is not set. Put it into the 'input' category. Signed-off-by: Bin Meng Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis Message-id: 20210926105003.2716-3-bmeng.cn@gmail.com Signed-off-by: Alistair Francis --- hw/char/sifive_uart.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/char/sifive_uart.c b/hw/char/sifive_uart.c index 278e21c434..1c75f792b3 100644 --- a/hw/char/sifive_uart.c +++ b/hw/char/sifive_uart.c @@ -248,6 +248,7 @@ static void sifive_uart_class_init(ObjectClass *oc, voi= d *data) rc->phases.enter =3D sifive_uart_reset_enter; rc->phases.hold =3D sifive_uart_reset_hold; device_class_set_props(dc, sifive_uart_properties); + set_bit(DEVICE_CATEGORY_INPUT, dc->categories); } =20 static const TypeInfo sifive_uart_info =3D { --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 163359043622323.13539535223572; Thu, 7 Oct 2021 00:07:16 -0700 (PDT) Received: from localhost ([::1]:56322 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNUp-0006DG-7t for importer@patchew.org; Thu, 07 Oct 2021 03:07:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34502) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNEJ-0005Fm-Vw for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:50:18 -0400 Received: from esa4.hgst.iphmx.com ([216.71.154.42]:25643) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNEE-0006yG-Fo for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:50:07 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:50:05 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:25:59 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:50:06 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ24r6swZz1RvmJ for ; Wed, 6 Oct 2021 23:50:04 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 5QfmAk2VV67y for ; Wed, 6 Oct 2021 23:50:04 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ24l6ZRLz1RvTg; Wed, 6 Oct 2021 23:49:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589406; x=1665125406; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=W9UZg/AuSNOSJg3PTtbVzY0SYxMaAjxpFacvTfTecvM=; b=E/mkWP48qtvpFfQP5b8dkGnFpTqIvkdFnCuHcztj4o+VsbKwxd+HexDb HObdn7oHkwtcYRKt2EcpsbW8i/xF0UNqbxmU4hgN3NgZkdbIk0jbtwvYX ubBOjbbW18fLaH3ettKU6lRHt99gqRTjIGe0JcFOBteZhEon8n573PgkW wQdXM0MlA7Lqa38GKzabznAVnmU+seL78kAQZb+MVbAnR3zVBVRLjqLvv C6cc19SLhfxSAPnKVH7OR89NNIp0oox50PSrtPQW4mtlRkwxdRZeOMR4B emSQuP7+RKhqyH2BFfmSuR5SfAZYqrSnLs+VAoOsOsl2x34iKvm8dec46 w==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="181145331" IronPort-SDR: QPsmsOA5GaVW4GcM7kepOpWwCL+/I4ThTVOO63fMioh46dIPAw+oFnGF65JlFn8jmLka9KrsSs kmLqsIP/Qpr9GD0w3EmyT7TL6uvZIUUN7NZ7KO0UvFxmyPZYaEHTHPkdjzkDsU5RLlTNEJBU9F iI8byBwjKmhxBGjvwPYPA45vDztne6Xj3wYJh22RJJTxToKFQeYhNRv3WGYlvmBS7Wcj6gYrkO HytDiRhUX3JbiEkEgGPhZ2LgVLqadDAvJstJkGfiwiPZyFEiyOBRAPi1sgY7br8t7W0cCUR5xk sr3AgFZISKYsUJJ7evfyEX50 IronPort-SDR: +jl5MC/dJLWQZFcThMOuOdoK1NTd3grg9jqo3RrT4yoxzZrK6YeYvswjrircuJSrb9ZxsbwPbK eIg3y6p+4RziSeE/NzevU+wP6rtRIrqOnUmf2SOrUSE2tVayAjt6ZE3Um5tUkHFX5PvoO/GZCV +e6DYhW+XDkvG+tH3NRkS8Fhlnjjw+CFOIgVPNqkqVjV+11F2pO+IExDsAt2WC24jRF7c8jowz Kn1f4XJC/5MyuwYzI0S3CcB3KqhCKHBsYAIXoiLsGW15MkRLzRR1hzUcKUt4BL9PxNpJUZPY/Y Ht4= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:content-type :mime-version:references:in-reply-to:x-mailer:message-id:date :subject:to:from; s=dkim; t=1633589404; x=1636181405; bh=W9UZg/A uSNOSJg3PTtbVzY0SYxMaAjxpFacvTfTecvM=; b=BRX9ySdfuFcW9ms0zrDDkUW fA/XXqrnlgSAr5tkAtz1c5DedHGC4CcoqRdSUeGklaH84o7/M85jUcQ3g81iLAd0 3NQdqYZll6oynIHEq7lmZlonIE/98kTZktfz5NU1BXNvgFEl84GnGjWq/wx1svs6 x2lAjUkCIr1VIAR4TcUDVZG2DuOF4YDe+SHvf7eAyFVnaevHiLB4/lLcLIDwkPK4 lpJ6oDzstJBV5d55pB0yjJGeZROwvo1hrKSuCoaYOCpEH9M+ZDE6Co+q3Hre18oy P+IcbXr5i/dbESJGwzcEiVqrG59Wp2VlK1sF/APBxVgj29BsidoAbJHVcgTD+Sg= = X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Bin Meng , Alistair Francis Subject: [PULL 21/26] hw/char/mchp_pfsoc_mmuart: Simplify MCHP_PFSOC_MMUART_REG definition Date: Thu, 7 Oct 2021 16:47:46 +1000 Message-Id: <20211007064751.608580-22-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=216.71.154.42; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa4.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633590437284100001 Content-Type: text/plain; charset="utf-8" From: Philippe Mathieu-Daud=C3=A9 The current MCHP_PFSOC_MMUART_REG_SIZE definition represent the size occupied by all the registers. However all registers are 32-bit wide, and the MemoryRegionOps handlers are restricted to 32-bit: static const MemoryRegionOps mchp_pfsoc_mmuart_ops =3D { .read =3D mchp_pfsoc_mmuart_read, .write =3D mchp_pfsoc_mmuart_write, .impl =3D { .min_access_size =3D 4, .max_access_size =3D 4, }, Avoid being triskaidekaphobic, simplify by using the number of registers. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Bin Meng Tested-by: Bin Meng Reviewed-by: Alistair Francis Message-id: 20210925133407.1259392-2-f4bug@amsat.org Signed-off-by: Alistair Francis --- include/hw/char/mchp_pfsoc_mmuart.h | 4 ++-- hw/char/mchp_pfsoc_mmuart.c | 14 ++++++++------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/include/hw/char/mchp_pfsoc_mmuart.h b/include/hw/char/mchp_pfs= oc_mmuart.h index f61990215f..9c012e6c97 100644 --- a/include/hw/char/mchp_pfsoc_mmuart.h +++ b/include/hw/char/mchp_pfsoc_mmuart.h @@ -30,7 +30,7 @@ =20 #include "hw/char/serial.h" =20 -#define MCHP_PFSOC_MMUART_REG_SIZE 52 +#define MCHP_PFSOC_MMUART_REG_COUNT 13 =20 typedef struct MchpPfSoCMMUartState { MemoryRegion iomem; @@ -39,7 +39,7 @@ typedef struct MchpPfSoCMMUartState { =20 SerialMM *serial; =20 - uint32_t reg[MCHP_PFSOC_MMUART_REG_SIZE / sizeof(uint32_t)]; + uint32_t reg[MCHP_PFSOC_MMUART_REG_COUNT]; } MchpPfSoCMMUartState; =20 /** diff --git a/hw/char/mchp_pfsoc_mmuart.c b/hw/char/mchp_pfsoc_mmuart.c index 2facf85c2d..584e7fec17 100644 --- a/hw/char/mchp_pfsoc_mmuart.c +++ b/hw/char/mchp_pfsoc_mmuart.c @@ -29,13 +29,14 @@ static uint64_t mchp_pfsoc_mmuart_read(void *opaque, hw= addr addr, unsigned size) { MchpPfSoCMMUartState *s =3D opaque; =20 - if (addr >=3D MCHP_PFSOC_MMUART_REG_SIZE) { + addr >>=3D 2; + if (addr >=3D MCHP_PFSOC_MMUART_REG_COUNT) { qemu_log_mask(LOG_GUEST_ERROR, "%s: read: addr=3D0x%" HWADDR_PRIx = "\n", - __func__, addr); + __func__, addr << 2); return 0; } =20 - return s->reg[addr / sizeof(uint32_t)]; + return s->reg[addr]; } =20 static void mchp_pfsoc_mmuart_write(void *opaque, hwaddr addr, @@ -44,13 +45,14 @@ static void mchp_pfsoc_mmuart_write(void *opaque, hwadd= r addr, MchpPfSoCMMUartState *s =3D opaque; uint32_t val32 =3D (uint32_t)value; =20 - if (addr >=3D MCHP_PFSOC_MMUART_REG_SIZE) { + addr >>=3D 2; + if (addr >=3D MCHP_PFSOC_MMUART_REG_COUNT) { qemu_log_mask(LOG_GUEST_ERROR, "%s: bad write: addr=3D0x%" HWADDR_= PRIx - " v=3D0x%x\n", __func__, addr, val32); + " v=3D0x%x\n", __func__, addr << 2, val32); return; } =20 - s->reg[addr / sizeof(uint32_t)] =3D val32; + s->reg[addr] =3D val32; } =20 static const MemoryRegionOps mchp_pfsoc_mmuart_ops =3D { --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1633590537773774.1133043991713; Thu, 7 Oct 2021 00:08:57 -0700 (PDT) Received: from localhost ([::1]:33172 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNWS-000173-N1 for importer@patchew.org; Thu, 07 Oct 2021 03:08:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34612) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNEW-0005Ht-30 for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:50:28 -0400 Received: from esa4.hgst.iphmx.com ([216.71.154.42]:5819) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNEK-00072t-2e for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:50:23 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:50:10 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:26:04 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:50:11 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ24y0G3lz1RvmH for ; Wed, 6 Oct 2021 23:50:10 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id D1NDjwWh4HiN for ; Wed, 6 Oct 2021 23:50:09 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ24s3Cyyz1RvTg; Wed, 6 Oct 2021 23:50:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589412; x=1665125412; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=EiCsybfW76bO6gD3KXL7cM/MzWcIXsMcur22ZTnBFkY=; b=pdvDtz7MGEJuuBJNMj5sAumjaJ4y5WxNvWwtE/L4F4DpTRr37p9f/ucz LUNjzMOV9UxXjHKPAvqXhis6RihK3MDRRlLp22T81GwZWe/xuXK1bbmWJ +c/E+8zaOHY2Gh9aUrt+4YRYvzzWSsHCDsBeBJRyc9K/7eCsxad9mU9A+ H2Nksf7FwlGLTJjsvQa0Ntwm1CdfCIr+tPkqvEHiVl5kavbIe4J66YbLq nL63uD0y6kYufj7C5SR6NjTUM7agxazKwFC8zRh1LFRbJO8YGm/kpKQ96 tsLrpAfzYSm9AG8aDo9lSSovZe/4sg9m/7hD0Pj36WqfICNvVvfOlWxob w==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="181145337" IronPort-SDR: 4l8jmphmuKCh+Ux9E2hQkF5EogQHDcq6pCekQpVbd39kjVvxsg+UYjiOTtzm66fxbXpINVrii3 50bKmjUGQZe4hfC183PELYrsh507OGnEdVtzkv+YPLpur13omlkQlKW73m24FTFENDvKLhHIoz 3vtRc6N75Fz9+xOPrFC8CJEYzwlYQA2f3P7ZpwPa2n3czD/Fmfvhf3YrtygRemuZLVhnwjY1aj xYJHy6/qN3ExVhlHT0YIiajYXSowUrhTpqAp2DVlyd4ZzlAKmqhJGH5CDqaaoNEN0fp5TdkMU6 kl9rugZvuMx/aYBsUIr2iHfr IronPort-SDR: WO/F2DUKzhMGDAEQrg/Eg3mws0rpyUHuXZKFsrqM3I3P9jJ2pzyhZAl5e4gyYOsCSBSCcOq9nO iZUst9XJShBIPK/joEwsxczUWE6rjoW6gA71kVOvVRu2jUgKJIk7zuk1oHn5Cq+kcJmKBONal3 Yj34Vq4D3GkPw08fgsogt4pV04xk7TpzFSCaKlrvUjqTl88kuSdoAQTCpP/q1FWJGanz4rrXFd RdtRqP809tczYkGzirTw4JlucNa9sNe96fyKdi8cA2JY/SB/9gLmMki1n5AqiDGjhLXdol8ECB 6qQ= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:content-type :mime-version:references:in-reply-to:x-mailer:message-id:date :subject:to:from; s=dkim; t=1633589409; x=1636181410; bh=EiCsybf W76bO6gD3KXL7cM/MzWcIXsMcur22ZTnBFkY=; b=Lftl/1RvkAEwz53884Sr5Zc 0jdNaR72fy8t/t7k6j771kr6dQECSi02UKKufCys22rj6XTBldeAfmhcFzvDhBXo V9mvcAClZ3OIxztRq3FqrbCN2EEeL+ImUIVJC9k69HB2Zd+mrRwwcGtXyeiXfyrW ZKg55cswv4fUZWiT41SODP5IQ2QeSimESQ7SD3sr+b1SuIep8lYVD89GnPOTntwn +My8UN6OTCAet6ji8fzsd5SY9griEVFeKs9vE3JUUvC4WCJjaSX7tVtA2GBW/Vu0 d3dxgbHgR0o4F8S55iQnr1jwIw7Qa8RpO3XRPP/HZj1VeXPuCGmRgk1WKv/XLzA= = X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Bin Meng , Alistair Francis Subject: [PULL 22/26] hw/char/mchp_pfsoc_mmuart: Use a MemoryRegion container Date: Thu, 7 Oct 2021 16:47:47 +1000 Message-Id: <20211007064751.608580-23-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=216.71.154.42; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa4.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633590539776100003 Content-Type: text/plain; charset="utf-8" From: Philippe Mathieu-Daud=C3=A9 Our device have 2 different I/O regions: - a 16550 UART mapped for 32-bit accesses - 13 extra registers Instead of mapping each region on the main bus, introduce a container, map the 2 devices regions on the container, and map the container on the main bus. Before: (qemu) info mtree ... 0000000020100000-000000002010001f (prio 0, i/o): serial 0000000020100020-000000002010101f (prio 0, i/o): mchp.pfsoc.mmuart 0000000020102000-000000002010201f (prio 0, i/o): serial 0000000020102020-000000002010301f (prio 0, i/o): mchp.pfsoc.mmuart 0000000020104000-000000002010401f (prio 0, i/o): serial 0000000020104020-000000002010501f (prio 0, i/o): mchp.pfsoc.mmuart 0000000020106000-000000002010601f (prio 0, i/o): serial 0000000020106020-000000002010701f (prio 0, i/o): mchp.pfsoc.mmuart After: (qemu) info mtree ... 0000000020100000-0000000020100fff (prio 0, i/o): mchp.pfsoc.mmuart 0000000020100000-000000002010001f (prio 0, i/o): serial 0000000020100020-0000000020100fff (prio 0, i/o): mchp.pfsoc.mmuart.re= gs 0000000020102000-0000000020102fff (prio 0, i/o): mchp.pfsoc.mmuart 0000000020102000-000000002010201f (prio 0, i/o): serial 0000000020102020-0000000020102fff (prio 0, i/o): mchp.pfsoc.mmuart.re= gs 0000000020104000-0000000020104fff (prio 0, i/o): mchp.pfsoc.mmuart 0000000020104000-000000002010401f (prio 0, i/o): serial 0000000020104020-0000000020104fff (prio 0, i/o): mchp.pfsoc.mmuart.re= gs 0000000020106000-0000000020106fff (prio 0, i/o): mchp.pfsoc.mmuart 0000000020106000-000000002010601f (prio 0, i/o): serial 0000000020106020-0000000020106fff (prio 0, i/o): mchp.pfsoc.mmuart.re= gs Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Bin Meng Reviewed-by: Alistair Francis Tested-by: Bin Meng Message-id: 20210925133407.1259392-3-f4bug@amsat.org Signed-off-by: Alistair Francis --- include/hw/char/mchp_pfsoc_mmuart.h | 1 + hw/char/mchp_pfsoc_mmuart.c | 11 ++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/include/hw/char/mchp_pfsoc_mmuart.h b/include/hw/char/mchp_pfs= oc_mmuart.h index 9c012e6c97..864ac1a36b 100644 --- a/include/hw/char/mchp_pfsoc_mmuart.h +++ b/include/hw/char/mchp_pfsoc_mmuart.h @@ -33,6 +33,7 @@ #define MCHP_PFSOC_MMUART_REG_COUNT 13 =20 typedef struct MchpPfSoCMMUartState { + MemoryRegion container; MemoryRegion iomem; hwaddr base; qemu_irq irq; diff --git a/hw/char/mchp_pfsoc_mmuart.c b/hw/char/mchp_pfsoc_mmuart.c index 584e7fec17..ea58655976 100644 --- a/hw/char/mchp_pfsoc_mmuart.c +++ b/hw/char/mchp_pfsoc_mmuart.c @@ -25,6 +25,8 @@ #include "chardev/char.h" #include "hw/char/mchp_pfsoc_mmuart.h" =20 +#define REGS_OFFSET 0x20 + static uint64_t mchp_pfsoc_mmuart_read(void *opaque, hwaddr addr, unsigned= size) { MchpPfSoCMMUartState *s =3D opaque; @@ -72,16 +74,19 @@ MchpPfSoCMMUartState *mchp_pfsoc_mmuart_create(MemoryRe= gion *sysmem, =20 s =3D g_new0(MchpPfSoCMMUartState, 1); =20 + memory_region_init(&s->container, NULL, "mchp.pfsoc.mmuart", 0x1000); + memory_region_init_io(&s->iomem, NULL, &mchp_pfsoc_mmuart_ops, s, - "mchp.pfsoc.mmuart", 0x1000); + "mchp.pfsoc.mmuart.regs", 0x1000 - REGS_OFFSET); + memory_region_add_subregion(&s->container, REGS_OFFSET, &s->iomem); =20 s->base =3D base; s->irq =3D irq; =20 - s->serial =3D serial_mm_init(sysmem, base, 2, irq, 399193, chr, + s->serial =3D serial_mm_init(&s->container, 0, 2, irq, 399193, chr, DEVICE_LITTLE_ENDIAN); =20 - memory_region_add_subregion(sysmem, base + 0x20, &s->iomem); + memory_region_add_subregion(sysmem, base, &s->container); =20 return s; } --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1633590694011466.3110713997992; Thu, 7 Oct 2021 00:11:34 -0700 (PDT) Received: from localhost ([::1]:40762 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNYy-0006E9-Tc for importer@patchew.org; Thu, 07 Oct 2021 03:11:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34622) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNEW-0005Hu-Qh for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:50:28 -0400 Received: from esa2.hgst.iphmx.com ([68.232.143.124]:38388) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNEQ-00079b-53 for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:50:24 -0400 Received: from h199-255-45-15.hgst.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:50:15 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:24:37 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:50:16 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ2532xWhz1RvmJ for ; Wed, 6 Oct 2021 23:50:15 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id fEZs4Zcl3MaO for ; Wed, 6 Oct 2021 23:50:14 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ24y34Kjz1RvTg; Wed, 6 Oct 2021 23:50:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589418; x=1665125418; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=StlUVH83YTMAmhY7Fh5pKut9uUrAY9cEMohgucbNc7Y=; b=kCySMJNZ1t0teV4LU5LKQPBiTyX7D7azmJoibcT8a2Fm8HEbkISKmRQe azxQNdy6DHVfncZA+IDdWd130xBSONgQz6OcyMuhx7U9b39HT5RgqrOUd VunqBFGtpHYcrUbbFPONDMkgqXXuaLZXWRA1qk8a3PPA683I3OGepPJeE w2SDFXSzibnWjTGdruNFpctoafpF3aZlvjPaRTtt/kbUcu08/zTk0D6On 7cwJa5h5IvFk8Cy2W1KRlPhzl+/shKevktPnNQZSpR9Z7gx8I72BbYLb2 IuX1Er/4qW4Cmx+YqgNJ7rwITwfo1qAYJocquvKLm3pA9xaOTq1ZLuJfK g==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="285950773" IronPort-SDR: 5k/5UXryS53k3B2X7zdNIsAhFzYN0mKfVDAzi9YveeBirEF6EAY40Pp7eRzoeWpp0L92w2RDQ1 C91jogd3Szedxqk4/shSQTuMZksZHmC1e+t8LjlKG6joElPCSTTHtgiMhtSHzLslKIyGrqd8IQ hbBZ3Tpbzx0WCosP4DsSLqOGCyoKV8T9kuWsq8tpdlMZ9mGEwW4sj24jHxASRIH59XZihI+vX2 X80RuYh5kOMewKVjEL6oB33UqU6WW+cJMbW4at+rvjgJUJY2KxNN+Dnft2B33qDF4mCfiiMLSS 5Yry1qtwTMAKxpyFYTbTBwgg IronPort-SDR: 2ggKFr/pOgGwWQCx76jcjMbMOf93S1q6Oh3bjRt1BQjQyIIvBZ72LYzlLOuAKJl295NCLjsx54 KgnSaN4GhLwq4YLLiBO0sxcuWp3f+6UoXptju8lfLWKvkLQVOj38Ha3A2tA8E0sjhlaKnRePoc IyZ/oQwFaJjXO3IqzLjzS3nCwqdwdRCWdhDmqZU7esT8lXJcqk6DzRHFpZELiboeetNa2xHQVO X+Wk3e+VPTRzcOowY6yyzP5CCMKd97vAuo/QSWHy6e+vmDi4K8Qg8HnWFS1zTvJ6iMp13/Tib1 pJc= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:content-type :mime-version:references:in-reply-to:x-mailer:message-id:date :subject:to:from; s=dkim; t=1633589414; x=1636181415; bh=StlUVH8 3YTMAmhY7Fh5pKut9uUrAY9cEMohgucbNc7Y=; b=WoJ6h1H6J+v1W2Di/FayZ4n Qro1fXZYqXWewOg3Q8HCrYeeO2wrdXNt4xFN5qWcATRYgx8JccLBBgMEYmUMh3sq RUKjmpERgkJScEWTXPKUhHn/VO9XK8UATOYSs1bBu52FoSa2y2YIP4zGxksgWy5O FWjiFrvgpwx38PM6aiweMqjNRTMZUeLN8nmYL1bixRCwL47fau2LJkTuSz2lWi0a NOEWzoMTLMCFISdTPk3n7QcK+vb69G5UUq6zdxsTXECbbhl+/b2tLkX1zQqWm3Bb Y8YSgWOP8UHE07+1MohUaZeWtkhdhm8EZY7W4vHD8VW4bRTwXLrNNTUjmkqcM+g= = X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Bin Meng , Alistair Francis Subject: [PULL 23/26] hw/char/mchp_pfsoc_mmuart: QOM'ify PolarFire MMUART Date: Thu, 7 Oct 2021 16:47:48 +1000 Message-Id: <20211007064751.608580-24-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=68.232.143.124; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633590696080100001 Content-Type: text/plain; charset="utf-8" From: Philippe Mathieu-Daud=C3=A9 - Embed SerialMM in MchpPfSoCMMUartState and QOM-initialize it - Alias SERIAL_MM 'chardev' property on MCHP_PFSOC_UART - Forward SerialMM sysbus IRQ in mchp_pfsoc_mmuart_realize() - Add DeviceReset() method - Add vmstate structure for migration - Register device in 'input' category - Keep mchp_pfsoc_mmuart_create() behavior Note, serial_mm_init() calls qdev_set_legacy_instance_id(). This call is only needed for backwards-compatibility of incoming migration data with old versions of QEMU which implemented migration of devices with hand-rolled code. Since this device didn't previously handle migration at all, then it doesn't need to set the legacy instance ID. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Bin Meng Tested-by: Bin Meng Reviewed-by: Alistair Francis Message-id: 20210925133407.1259392-4-f4bug@amsat.org Signed-off-by: Alistair Francis --- include/hw/char/mchp_pfsoc_mmuart.h | 12 +++- hw/char/mchp_pfsoc_mmuart.c | 97 +++++++++++++++++++++++++---- 2 files changed, 93 insertions(+), 16 deletions(-) diff --git a/include/hw/char/mchp_pfsoc_mmuart.h b/include/hw/char/mchp_pfs= oc_mmuart.h index 864ac1a36b..b0e14ca355 100644 --- a/include/hw/char/mchp_pfsoc_mmuart.h +++ b/include/hw/char/mchp_pfsoc_mmuart.h @@ -28,17 +28,23 @@ #ifndef HW_MCHP_PFSOC_MMUART_H #define HW_MCHP_PFSOC_MMUART_H =20 +#include "hw/sysbus.h" #include "hw/char/serial.h" =20 #define MCHP_PFSOC_MMUART_REG_COUNT 13 =20 +#define TYPE_MCHP_PFSOC_UART "mchp.pfsoc.uart" +OBJECT_DECLARE_SIMPLE_TYPE(MchpPfSoCMMUartState, MCHP_PFSOC_UART) + typedef struct MchpPfSoCMMUartState { + /*< private >*/ + SysBusDevice parent_obj; + + /*< public >*/ MemoryRegion container; MemoryRegion iomem; - hwaddr base; - qemu_irq irq; =20 - SerialMM *serial; + SerialMM serial_mm; =20 uint32_t reg[MCHP_PFSOC_MMUART_REG_COUNT]; } MchpPfSoCMMUartState; diff --git a/hw/char/mchp_pfsoc_mmuart.c b/hw/char/mchp_pfsoc_mmuart.c index ea58655976..22f3e78eb9 100644 --- a/hw/char/mchp_pfsoc_mmuart.c +++ b/hw/char/mchp_pfsoc_mmuart.c @@ -22,8 +22,10 @@ =20 #include "qemu/osdep.h" #include "qemu/log.h" -#include "chardev/char.h" +#include "qapi/error.h" +#include "migration/vmstate.h" #include "hw/char/mchp_pfsoc_mmuart.h" +#include "hw/qdev-properties.h" =20 #define REGS_OFFSET 0x20 =20 @@ -67,26 +69,95 @@ static const MemoryRegionOps mchp_pfsoc_mmuart_ops =3D { }, }; =20 -MchpPfSoCMMUartState *mchp_pfsoc_mmuart_create(MemoryRegion *sysmem, - hwaddr base, qemu_irq irq, Chardev *chr) +static void mchp_pfsoc_mmuart_reset(DeviceState *dev) +{ + MchpPfSoCMMUartState *s =3D MCHP_PFSOC_UART(dev); + + memset(s->reg, 0, sizeof(s->reg)); + device_cold_reset(DEVICE(&s->serial_mm)); +} + +static void mchp_pfsoc_mmuart_init(Object *obj) { - MchpPfSoCMMUartState *s; + MchpPfSoCMMUartState *s =3D MCHP_PFSOC_UART(obj); =20 - s =3D g_new0(MchpPfSoCMMUartState, 1); + object_initialize_child(obj, "serial-mm", &s->serial_mm, TYPE_SERIAL_M= M); + object_property_add_alias(obj, "chardev", OBJECT(&s->serial_mm), "char= dev"); +} =20 - memory_region_init(&s->container, NULL, "mchp.pfsoc.mmuart", 0x1000); +static void mchp_pfsoc_mmuart_realize(DeviceState *dev, Error **errp) +{ + MchpPfSoCMMUartState *s =3D MCHP_PFSOC_UART(dev); =20 - memory_region_init_io(&s->iomem, NULL, &mchp_pfsoc_mmuart_ops, s, + qdev_prop_set_uint8(DEVICE(&s->serial_mm), "regshift", 2); + qdev_prop_set_uint32(DEVICE(&s->serial_mm), "baudbase", 399193); + qdev_prop_set_uint8(DEVICE(&s->serial_mm), "endianness", + DEVICE_LITTLE_ENDIAN); + if (!sysbus_realize(SYS_BUS_DEVICE(&s->serial_mm), errp)) { + return; + } + + sysbus_pass_irq(SYS_BUS_DEVICE(dev), SYS_BUS_DEVICE(&s->serial_mm)); + + memory_region_init(&s->container, OBJECT(s), "mchp.pfsoc.mmuart", 0x10= 00); + sysbus_init_mmio(SYS_BUS_DEVICE(dev), &s->container); + + memory_region_add_subregion(&s->container, 0, + sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->serial_mm), = 0)); + + memory_region_init_io(&s->iomem, OBJECT(s), &mchp_pfsoc_mmuart_ops, s, "mchp.pfsoc.mmuart.regs", 0x1000 - REGS_OFFSET); memory_region_add_subregion(&s->container, REGS_OFFSET, &s->iomem); +} =20 - s->base =3D base; - s->irq =3D irq; +static const VMStateDescription mchp_pfsoc_mmuart_vmstate =3D { + .name =3D "mchp.pfsoc.uart", + .version_id =3D 0, + .minimum_version_id =3D 0, + .fields =3D (VMStateField[]) { + VMSTATE_UINT32_ARRAY(reg, MchpPfSoCMMUartState, + MCHP_PFSOC_MMUART_REG_COUNT), + VMSTATE_END_OF_LIST() + } +}; + +static void mchp_pfsoc_mmuart_class_init(ObjectClass *oc, void *data) +{ + DeviceClass *dc =3D DEVICE_CLASS(oc); + + dc->realize =3D mchp_pfsoc_mmuart_realize; + dc->reset =3D mchp_pfsoc_mmuart_reset; + dc->vmsd =3D &mchp_pfsoc_mmuart_vmstate; + set_bit(DEVICE_CATEGORY_INPUT, dc->categories); +} + +static const TypeInfo mchp_pfsoc_mmuart_info =3D { + .name =3D TYPE_MCHP_PFSOC_UART, + .parent =3D TYPE_SYS_BUS_DEVICE, + .instance_size =3D sizeof(MchpPfSoCMMUartState), + .instance_init =3D mchp_pfsoc_mmuart_init, + .class_init =3D mchp_pfsoc_mmuart_class_init, +}; + +static void mchp_pfsoc_mmuart_register_types(void) +{ + type_register_static(&mchp_pfsoc_mmuart_info); +} + +type_init(mchp_pfsoc_mmuart_register_types) + +MchpPfSoCMMUartState *mchp_pfsoc_mmuart_create(MemoryRegion *sysmem, + hwaddr base, + qemu_irq irq, Chardev *chr) +{ + DeviceState *dev =3D qdev_new(TYPE_MCHP_PFSOC_UART); + SysBusDevice *sbd =3D SYS_BUS_DEVICE(dev); =20 - s->serial =3D serial_mm_init(&s->container, 0, 2, irq, 399193, chr, - DEVICE_LITTLE_ENDIAN); + qdev_prop_set_chr(dev, "chardev", chr); + sysbus_realize(sbd, &error_fatal); =20 - memory_region_add_subregion(sysmem, base, &s->container); + memory_region_add_subregion(sysmem, base, sysbus_mmio_get_region(sbd, = 0)); + sysbus_connect_irq(sbd, 0, irq); =20 - return s; + return MCHP_PFSOC_UART(dev); } --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1633590736904254.66232647925779; Thu, 7 Oct 2021 00:12:16 -0700 (PDT) Received: from localhost ([::1]:43664 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNZf-000894-RH for importer@patchew.org; Thu, 07 Oct 2021 03:12:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34624) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNEY-0005IA-1G for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:50:29 -0400 Received: from esa6.hgst.iphmx.com ([216.71.154.45]:14679) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNEV-0007Fc-Ne for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:50:25 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:50:22 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:26:15 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:50:22 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ2585bLZz1RvmL for ; Wed, 6 Oct 2021 23:50:20 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id QILgMBH4Mu5R for ; Wed, 6 Oct 2021 23:50:20 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ2535S1qz1RvTg; Wed, 6 Oct 2021 23:50:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589424; x=1665125424; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=pE4cUODrAhWSvvxVxExRTcx6HNb4wfGjorkME61/oFM=; b=MvencvjdxcfLihJBYTvAFmdBBZib2/PH2FyC9VCDzUgQuerr4IRM/7QL DkvEFnI8zLIz+m6r+D3JT/k675oCpUMrGd4C8+wNKJ+bm7hIqqHP23OBZ tus/e1UAzTbRcWSKC4VrxoLzenkp3DbfeSLX5K+JlaonWSYK75trnMWbg xKbTBDpFz4P4yntXRG27Hy1KgPbtuyrEi08Rxp66qLeF54HsmflHc55UJ f5Ks/FK97q99hbQoc6kBHW9QyAqPJcmqb8QMsMbegUpg0AFjkSAf1qm8N 75WWfAIXMHnzxteY4aFfYNxTXETAhdu7TCwkgOMKtEzow45IRm4U0c8EF w==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="182849434" IronPort-SDR: 0JcTHSO+8iNzuvp/j/LMIW3itrtCyATI/NdENS3aKBeRsg3BnGkm5KR9XQQ8wr125iynhYRCaF i+1olaexIF1cpopre/dlb53Sh05vSweB8zbmERRWq02tjr4fWBVZUYzs1rgnW2+nEt/4I8eei+ us1dfBK/U4n6lBjBCxzmSzTVnlYyue2fbQGOso70kDFJH4T6oxwQUXRqgEMyxXWDAsn0GPbdlF tQime3bLiF7JHyNsKtbxL9ipnMPIW66uEiRDX7WBgIyEy4mFm2vw0cYSMPnQ819eZt3/cIa2VI xd+J7tuaREprK8BCOZbua4D5 IronPort-SDR: 1XiIzfeTLlf3UIL1rqp/lw8IU0082PnTtmKnjOt3fcL2kXpCQztt/asTyScBNQifwTGfbKvJvZ frOaAk9LuW55JYrdPt/lHsMBGUzVEJMlKPhFMTG4x1ELqhfwmsAdfWVau5lPcEY+5AJZbOpgE+ 9l6ivb9/19lU7q+0ZWfs5GFRUKmZEvntu27gNJ6vFRbPnlJ8zL6wLAwbFKZjnKBOR/yEssJ+hy ao8v8wt9jlB+43nOJBcTpn7k83QiRIEJjslhW3pGv2s5RLxoK3J4EoOT0N5DzO/IZLRYhvV2vy 4M0= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:content-type :mime-version:references:in-reply-to:x-mailer:message-id:date :subject:to:from; s=dkim; t=1633589420; x=1636181421; bh=pE4cUOD rAhWSvvxVxExRTcx6HNb4wfGjorkME61/oFM=; b=M4dfMJCOkcjHQ0s949jYiDp PZXPO9mX7eAzhu+zfhOb1oWVip8yTGLT4RSnNuan6QlscEAWKPWI/tYFRDLj0x77 0TSTbD0jzTgAmjOFv4LUjMqHASb4rG812h71fCKAGhtjpAwrc7c7fwHb26PhgWmC wyT/L0DMiJ2ZlM466+mrFwNWhPb3OjFVwckfqBbFoFCf77+5LIA54FEObqTc7GjJ PDTiia1qR3WmpxyI2Mof25reuaMulRBuHr4tymJOOlhu9ogMLmZMdn9qWQlneSWg IIx663Op+ExmA9lWtTpj1jBDRL5QsnYqqodJd69KdxZqqO8NmcW9m6qj/pvpQpw= = X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, Bin Meng , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alistair Francis Subject: [PULL 24/26] hw/dma: sifive_pdma: Fix Control.claim bit detection Date: Thu, 7 Oct 2021 16:47:49 +1000 Message-Id: <20211007064751.608580-25-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=216.71.154.45; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa6.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633590737597100001 Content-Type: text/plain; charset="utf-8" From: Bin Meng At present the codes detect whether the DMA channel is claimed by: claimed =3D !!s->chan[ch].control & CONTROL_CLAIM; As ! has higher precedence over & (bitwise and), this is essentially claimed =3D (!!s->chan[ch].control) & CONTROL_CLAIM; which is wrong, as any non-zero bit set in the control register will produce a result of a claimed channel. Fixes: de7c7988d25d ("hw/dma: sifive_pdma: reset Next* registers when Contr= ol.claim is set") Signed-off-by: Bin Meng Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20210927072124.1564129-1-bmeng.cn@gmail.com Signed-off-by: Alistair Francis --- hw/dma/sifive_pdma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/dma/sifive_pdma.c b/hw/dma/sifive_pdma.c index b4fd40573a..b8ec7621f3 100644 --- a/hw/dma/sifive_pdma.c +++ b/hw/dma/sifive_pdma.c @@ -243,7 +243,7 @@ static void sifive_pdma_write(void *opaque, hwaddr offs= et, offset &=3D 0xfff; switch (offset) { case DMA_CONTROL: - claimed =3D !!s->chan[ch].control & CONTROL_CLAIM; + claimed =3D !!(s->chan[ch].control & CONTROL_CLAIM); =20 if (!claimed && (value & CONTROL_CLAIM)) { /* reset Next* registers */ --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1633590825444117.51093675540221; Thu, 7 Oct 2021 00:13:45 -0700 (PDT) Received: from localhost ([::1]:47200 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNb6-00025P-Bp for importer@patchew.org; Thu, 07 Oct 2021 03:13:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34700) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNEi-0005Pq-UL for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:50:39 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:53991) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNEc-0007Mt-3y for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:50:35 -0400 Received: from h199-255-45-15.hgst.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:50:27 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:24:49 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:50:28 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ25H2mjGz1RvmJ for ; Wed, 6 Oct 2021 23:50:27 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id Npyxsvx4OKA8 for ; Wed, 6 Oct 2021 23:50:25 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ2596rQSz1RvTg; Wed, 6 Oct 2021 23:50:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589429; x=1665125429; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=BTzHRqg3KYihr5V4ei4vw2bJz+NKu62Z4H1nI+eZsMY=; b=VFGyz2Nv3NXXQQ0igDRIDNu8YtzG3lxbcIR9bo6ImmDUjG43HwMHVxrR dO9POYCb+H+yckX2uzeRgfGgwrMmqUGXH5XnfNhQIYBEnEW9sxWPQgFNV T6NSvhqgqJEovB5GtSwLE1WN1TCc3euMcqqX3Kt1oNj/vjBG9DLMTVVBA bdHKc0YrJYmVZ7l3yH0Z5oCSVyFsF6P+eeLbBYQLbTKv85kdUCoBNEFza et6AwHJ5lcgUrjQgkPfva7qyyiiWJLogL3SvfS9ifS4iYsOhs16GhMeSt yODzxt41R9ixFobkgsUeWL1BvXm4IEiMzEyn/tdZQd3H+39bfJNvN2uds w==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="293815549" IronPort-SDR: 8ATTHI86h+NcxroBy4Q5ItQtFqnuq9ONVNf2L3TaINcXxkrUpbdsQmHx+BDHvqZoAXweDfjnYr WVxelBUHHj+1TrsCX/d4e0gwOmi52rJdxj3rWBQT9PHZWk1ixVLjIoITFRSxOsiPVOEx0ngkEa bV4qaHUETgw87pc8cltrLNTLqMIboj7R/W6nDUVcCayNfEhHCAzSsvDDqpkTyySzPK+8r5Zenx WzNNYvmPU+yJcOhZl+zAG+o+R5Mv3HRQoWn81aRIsIeuBEK42a7zOP33zafCGYXCa4QKW5nWdO r2cNmmonMomkPn3sDBqaUCJx IronPort-SDR: h/zzGU3P6LTKrjD74OfBJuHqgdGzaCV7G6yiHKOHkBLKKbcXNqnVcxrshbcYj0F65vOd3wX+pX zvD7ng0T/EoNipXcULKJw9MXlWrodiAr2EXq80XYsQyJe7bC0nH8NXrNG9CkMed6TWWuwO3xRb G75XY8aRnx/+x7ch0IMC8J8KR9kDUhSCPyeycVdq1us2HGDJj+gmyNb4xU51pUfDbIJPRap/Nf NFV/BudlhdtNSd9UVx4PtUq8xX9/2jVZ+LZnkKv2aBlF8jyKIpeykNDtAJbTbKz3j/LaengST4 fYs= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1633589425; x=1636181426; bh=BTzHRqg3KYihr5V4ei 4vw2bJz+NKu62Z4H1nI+eZsMY=; b=uAQ92lc99dxXOlDTt+aTkhr1TAb8XAs2+/ h3RNbagSsRISJKbztlsUMDinU+ejmciGUs2zXnEr8rKOPMQz0L91WIzPURUUQJ0z iDSrM0AuU5LRDFByiZCWBnE2/PcvEbb0p+aOemArnWxpfqGOUed+yWNVnIWrQPl1 0OvMtOruSYDM4ClkDkpqi9+1FZEsHPGhOuRh6Apd4J65gaV+v4V73Er6U1OcoRJo WsPWQxV8hzhF/ItgDOEc6ERh3i+t1bF2mu9IYoynSY6pGHmDCoec5swpEe/vMwkP ZoI8tdfqQN/QAMjUQcfIIMyXwNOMiv4BOgKJIynPMD3rm6DoReOQ== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, Bin Meng , Alistair Francis Subject: [PULL 25/26] hw/dma: sifive_pdma: Don't run DMA when channel is disclaimed Date: Thu, 7 Oct 2021 16:47:50 +1000 Message-Id: <20211007064751.608580-26-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=68.232.141.245; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa1.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633590825785100001 Content-Type: text/plain; charset="utf-8" From: Bin Meng If Control.run bit is set while not preserving the Control.claim bit, the DMA transfer shall not be started. The following result is PDMA tested in U-Boot on Unleashed board: =3D> mw.l 0x3000000 0x0 <=3D Disclaim channel 0 =3D> mw.l 0x3000000 0x1 <=3D Claim channel 0 =3D> mw.l 0x3000004 0x55000000 <=3D wsize =3D rsize =3D 5 (2^= 5 =3D 32 bytes) =3D> mw.q 0x3000008 0x2 <=3D NextBytes =3D 2 =3D> mw.q 0x3000010 0x84000000 <=3D NextDestination =3D 0x840= 00000 =3D> mw.q 0x3000018 0x84001000 <=3D NextSource =3D 0x84001000 =3D> mw.l 0x84000000 0x87654321 <=3D Fill test data to dst =3D> mw.l 0x84001000 0x12345678 <=3D Fill test data to src =3D> md.l 0x84000000 1; md.l 0x84001000 1 <=3D Dump src/dst memory conte= nts 84000000: 87654321 !Ce. 84001000: 12345678 xV4. =3D> md.l 0x3000000 8 <=3D Dump PDMA status 03000000: 00000001 55000000 00000002 00000000 .......U........ 03000010: 84000000 00000000 84001000 00000000 ................ =3D> mw.l 0x3000000 0x2 <=3D Set channel 0 run bit only =3D> md.l 0x3000000 8 <=3D Dump PDMA status 03000000: 00000000 55000000 00000002 00000000 .......U........ 03000010: 84000000 00000000 84001000 00000000 ................ =3D> md.l 0x84000000 1; md.l 0x84001000 1 <=3D Dump src/dst memory conte= nts 84000000: 87654321 !Ce. 84001000: 12345678 xV4. Signed-off-by: Bin Meng Acked-by: Alistair Francis Message-id: 20210927072124.1564129-2-bmeng.cn@gmail.com Signed-off-by: Alistair Francis --- hw/dma/sifive_pdma.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/hw/dma/sifive_pdma.c b/hw/dma/sifive_pdma.c index b8ec7621f3..85fe34f5f3 100644 --- a/hw/dma/sifive_pdma.c +++ b/hw/dma/sifive_pdma.c @@ -232,7 +232,7 @@ static void sifive_pdma_write(void *opaque, hwaddr offs= et, { SiFivePDMAState *s =3D opaque; int ch =3D SIFIVE_PDMA_CHAN_NO(offset); - bool claimed; + bool claimed, run; =20 if (ch >=3D SIFIVE_PDMA_CHANS) { qemu_log_mask(LOG_GUEST_ERROR, "%s: Invalid channel no %d\n", @@ -244,6 +244,7 @@ static void sifive_pdma_write(void *opaque, hwaddr offs= et, switch (offset) { case DMA_CONTROL: claimed =3D !!(s->chan[ch].control & CONTROL_CLAIM); + run =3D !!(s->chan[ch].control & CONTROL_RUN); =20 if (!claimed && (value & CONTROL_CLAIM)) { /* reset Next* registers */ @@ -254,13 +255,19 @@ static void sifive_pdma_write(void *opaque, hwaddr of= fset, s->chan[ch].next_src =3D 0; } =20 + /* claim bit can only be cleared when run is low */ + if (run && !(value & CONTROL_CLAIM)) { + value |=3D CONTROL_CLAIM; + } + s->chan[ch].control =3D value; =20 /* * If channel was not claimed before run bit is set, + * or if the channel is disclaimed when run was low, * DMA won't run. */ - if (!claimed) { + if (!claimed || (!run && !(value & CONTROL_CLAIM))) { s->chan[ch].control &=3D ~CONTROL_RUN; return; } --=20 2.31.1 From nobody Sun May 19 00:47:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=fail(p=quarantine dis=none) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1633590868020776.9119137878016; Thu, 7 Oct 2021 00:14:28 -0700 (PDT) Received: from localhost ([::1]:48532 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYNbm-0002xu-JR for importer@patchew.org; Thu, 07 Oct 2021 03:14:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34690) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNEh-0005O3-FS for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:50:38 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:53997) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYNEf-0007RY-L8 for qemu-devel@nongnu.org; Thu, 07 Oct 2021 02:50:35 -0400 Received: from h199-255-45-15.hgst.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 07 Oct 2021 14:50:31 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:24:53 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 23:50:33 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4HQ25M6TBcz1RvmK for ; Wed, 6 Oct 2021 23:50:31 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id Wm5eCT4wfW4j for ; Wed, 6 Oct 2021 23:50:31 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.165.32]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4HQ25H3H0tz1RvTg; Wed, 6 Oct 2021 23:50:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1633589433; x=1665125433; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=9fs71T5Mdf9ggLeWUlC2nMjB7d+jmZf4ianZpLyaCFs=; b=QhCWXV3TjLS9Cvu/MuAELP69v5mSR5ka4m1D9gUWZqQym5L5cTG/aChu kmmOivigSm1uFO8jmwW3Vaa1ZcYwXrTbntkJ+c1TyAfx/MCrNUTLSTFnB snyEyUOiVy4ZYkZdLRMzxxpz6SbMDoS0Rl+lEkR4dhBrox+/wHTpBBwmq i1Gr0xzifZnLCU7z8KM0dU1yeFSOIlNumdy22js5jF5jYGBIs7Zmq6A7N ssnPT5bl79fCk+eHyHSTa3pbllpPKE3879Pgyt5dU28mRdZpCMEZzn+1w ZG9y1Yk5QViIVIyrVh/iLhxd+omBtpkBspKaGiAQI+LCT1S0sbbqqn3zl Q==; X-IronPort-AV: E=Sophos;i="5.85,352,1624291200"; d="scan'208";a="293815552" IronPort-SDR: NPPt0Zra2N9ruIvD9w95jILjzxc7h8SGu3nLANXnzTkxSUP0XAxlz0Zs7ycCzyaOJoGdBIg/tc 5kRMSnfFdf5JCNG+63O9D65pkvuX8ZdKv7uM2yykF63qwhGMAMAp4IXT+6lmrf+es1fVUTnhoE JmtgW5I2tTuHsP8ty9Y/iczOGQEqi7hVLpBnWR7cRUUHNsgPXolw5zJlbGXh1Z+eiXGCVS2xnN ytmzR5OGKLlXAZsh3bYluYwh70TulN645X0lvFzvOYL9pKMWV7to0utDMn9RNKMNqDD/xCWqdM qiAFXZUlx1qiEoeYAFZOmD+l IronPort-SDR: kFXyTToyW+kNwSCptFJoa3c9KLk+vRmsSBbTeGHS+v3+ct4bDKzmgaquso5N/xbb+v2TESlpFU VNiNThZLDYkMs3lENCJTx2YpeVbEsPAwwrOWtRpmM02wAmy3S/+wFGpbHUa8kfoUBDGrHz07S8 qvp8f/k/5XqExIZYbzF3tuDC/LGXuzJueflcgazDBfCdwkUKv5jC8NHbOPpLCqtXDQMaEhOqQC dB6nci4z2+OBn6wOGtOojkch9DYeNx+AiJiiAPhuX4DlSz0qQhVe1A4p3/ndIkB1z/VXoq5Yfb h1s= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:content-type :mime-version:references:in-reply-to:x-mailer:message-id:date :subject:to:from; s=dkim; t=1633589431; x=1636181432; bh=9fs71T5 Mdf9ggLeWUlC2nMjB7d+jmZf4ianZpLyaCFs=; b=RucoN/diXxMO2U2YzKtXr1g c0VtLr6XGznmec3deUlcZ62FTNTZukaLVLmPS4q9wH1/Cte7497mK18jYiJFVTnc 1Sa7PfmRpLkQumrmhXGoBgiaTEeiHZG2kzVKzMEQcWgmfuSlxY6NJClNICPn4WMN S7wU+fbNZmTDw4vGie3WDAONtn75qW13zG29n00qq8eWNwaEL0goNwvpg9T5LouA 7RDhQn7yk3IgztufgXeui9efhpKgKaRqTDd6P3lUreL0Gh8YmSgsnEsHDH8RaEIy gsKwA7XHC7pFleyAvKLbFTPZEp2pOSys9FtSSDJk2osgxnVxTmrtLikAP8VJCOA= = X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: alistair23@gmail.com, Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Bin Meng Subject: [PULL 26/26] hw/riscv: shakti_c: Mark as not user creatable Date: Thu, 7 Oct 2021 16:47:51 +1000 Message-Id: <20211007064751.608580-27-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211007064751.608580-1-alistair.francis@opensource.wdc.com> References: <20211007064751.608580-1-alistair.francis@opensource.wdc.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=68.232.141.245; envelope-from=prvs=907902f29=alistair.francis@opensource.wdc.com; helo=esa1.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 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" X-ZM-MESSAGEID: 1633590869660100001 Content-Type: text/plain; charset="utf-8" From: Alistair Francis Mark the shakti_c machine as not user creatable. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/639 Signed-off-by: Alistair Francis Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Bin Meng Tested-by: Philippe Mathieu-Daud=C3=A9 Message-Id: --- hw/riscv/shakti_c.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/hw/riscv/shakti_c.c b/hw/riscv/shakti_c.c index 2f084d3c8d..d7d1f91fa5 100644 --- a/hw/riscv/shakti_c.c +++ b/hw/riscv/shakti_c.c @@ -150,6 +150,13 @@ static void shakti_c_soc_class_init(ObjectClass *klass= , void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); dc->realize =3D shakti_c_soc_state_realize; + /* + * Reasons: + * - Creates CPUS in riscv_hart_realize(), and can create unintend= ed + * CPUs + * - Uses serial_hds in realize function, thus can't be used twice + */ + dc->user_creatable =3D false; } =20 static void shakti_c_soc_instance_init(Object *obj) --=20 2.31.1