From nobody Sun Jul 26 11:54:47 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=sifive.com ARC-Seal: i=1; a=rsa-sha256; t=1782816279; cv=none; d=zohomail.com; s=zohoarc; b=V9pCrEj2vNtJPKi3mncoN31q8pf9u/uE3LZw3JlVbs2/o5ZLIqbdLTM1/BdpE9+pD/f01W1T5pcKBjphwDZ81DDm/nuMiXbaGtBB48Ibd/ET9SODcaLss7Im1ljnpLNSQWI1+cMLnjsXnVr6Tqyr/WXw7hUz1hU3DGWWjQHi9q4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782816279; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=9Gykh+5P8EC5j4uZxNdjyOMe+zEXw26y8NMVO5QDhqI=; b=GslcqTwKxIr7LPK5DZRIRXHgCm+jcPWI3e79FDugw2zeyBgtB/LKUYqKZ3SnGtOf7mJGDDEs41keYSDMweYNziVOQvIPVi535qPfpWnbNka2lJq8f6l+3YxIJ3QXeLJDnJBV7xogNUc/n1ZgQlKBSd/olfpu3z86LLRweXfM43Q= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782816279785450.78311513578376; Tue, 30 Jun 2026 03:44:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weVx5-0006Bi-Ri; Tue, 30 Jun 2026 06:44:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weVwf-00065z-Kl for qemu-devel@nongnu.org; Tue, 30 Jun 2026 06:44:02 -0400 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1weVwe-0004o2-8v for qemu-devel@nongnu.org; Tue, 30 Jun 2026 06:44:01 -0400 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-37d70036426so1947248a91.3 for ; Tue, 30 Jun 2026 03:43:59 -0700 (PDT) Received: from hsinchu16.internal.sifive.com ([210.176.154.34]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c9bbf95be56sm1274745a12.16.2026.06.30.03.43.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Jun 2026 03:43:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1782816238; x=1783421038; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=9Gykh+5P8EC5j4uZxNdjyOMe+zEXw26y8NMVO5QDhqI=; b=L8MLCgcIzPLxEk6oIi3sgxaxk/YxPgVclVumvCmWShKNELyV/Pnw84zJgJF/xZbKUR tUj75vCBCBsy4fda9+24h9i7vnhl5jdZlmyd3wI7h/GPU5+32z5YNHqXENsHJ7ht1JAY ujQL7juD2oDtUcq9yrY/ivBU20wfwIPuSn6LZD0zLjNbPJSqh9fydJ+Vm9e0nTp68DgC vn9r68aItP0RpVeLnx6ZpR9urt7irlY059Y6nXFwLB52PKh+E2EI1dX60Z0KDec7i2rC qHC4f6bzvb0QKl4DdGjsrXOTwdlQldywayl35yQLekzNwmnqC09ZJpe13/if+9TxWlZK casg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782816238; x=1783421038; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=9Gykh+5P8EC5j4uZxNdjyOMe+zEXw26y8NMVO5QDhqI=; b=TrUzmvlai1JaN88t0wF9fLMwxEcINb2IAAGYcSU5vI7Pqb1m90mc+qL0R/MfuiKFHp 0fLf/wNZjajG//QyvacxBPAxKL5NiLMqQ9BCN03lk5EYXbW1hu4mwdKBcZmi7dleFAB9 xM4mVF7jb/Oh0ns/q/xN2NxTsu7XT56XwTPur+L6DFkVBPKnjs10cigg3CGVu/B3o/wB JPPPFvkFHo1EajoraJ0JOPuVgEeJKnC5Sp+MzEYR2MbCKEPSJpK4larcPpLXVbPF+++U EtjS0DdwZyNgVCNy3m+YkAsEbDaOKeXD7Ac9zudqMDOjnPXVb7lqXH/YRO4w6kjjbQAU +ahg== X-Gm-Message-State: AOJu0YxU3uW1I+of6Y/IVH2o2evx8oPtnn/q7BOfbzOjW315kPEgQr9P Y4wrgYUaHGXiNi39qvDe4aoTOtjfxHgjrXmsPt/58uPV97YcnEauyrKr29J82PrmALv5cB0PUW4 0WeIPqBtHfB41cXA7I+jWegX6OEtpperZ/6CPwh6vZA9/iqi7g2cOhsIUGVvkdPfdXqQLWoXzUM RbUBN41gjlI7fN8caPoNRYyHEpS8shmTH00WWz9dWyBoZSz8Aa X-Gm-Gg: AfdE7cllQMfx9idzwVw/4+XO1DSXOe9Uc1M1QKJxDaCsNBA6GWARGHCwy9UqZnbBDj2 Z3YEGPn8M0EQoTeK6apTGdcToKCGNJu01PzuDghshOKyFjuf9PapTyEzA6gYUoPBZ3T+l0dRA3P lI3JIocJqYNDJd1Ed5i3UWYuRb+g8l7Swc4GCnDXu/SirKrRY3R7EB8JlRAUnMUb/1mXNyZTd9m toiF3FTd1SlFG6f4MTfOiFCFLOkfyuo8DR7hbCRHNulaVPYHoihYJEaY3vSBgBP3EjxJKBDBZkx qP9Sag7QZdDz7DVVKEK8iqYzwl0+aE3saKQGfNKQcRKmMQ3FQa52c+MR3JfqRBI1ri8qK79+18P 1fVIZjP1tCptnJDdSdmPy/0qTNf2BsAxkBNiY8nGxFzspdue+S3Gqtk510mIfIjXC7t4et1Wa/d trAaAkdj4OOoVqQRjg7vUOqEDdMiZVToWFHN4S8Xs= X-Received: by 2002:a05:6a20:2583:b0:3b5:489c:7bb5 with SMTP id adf61e73a8af0-3bfc5271719mr2902273637.28.1782816238281; Tue, 30 Jun 2026 03:43:58 -0700 (PDT) From: frank.chang@sifive.com To: qemu-devel@nongnu.org Cc: Palmer Dabbelt , Alistair Francis , Weiwei Li , Daniel Henrique Barboza , Liu Zhiwei , Chao Liu , qemu-riscv@nongnu.org (open list:RISC-V TCG CPUs), Frank Chang , Max Chou Subject: [PATCH v3 1/5] target/riscv: Add Zicclsm CPU option Date: Tue, 30 Jun 2026 18:43:46 +0800 Message-ID: <20260630104350.748267-2-frank.chang@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260630104350.748267-1-frank.chang@sifive.com> References: <20260630104350.748267-1-frank.chang@sifive.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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1032; envelope-from=frank.chang@sifive.com; helo=mail-pj1-x1032.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @sifive.com) X-ZM-MESSAGEID: 1782816280226158500 Content-Type: text/plain; charset="utf-8" From: Frank Chang Add Zicclsm CPU option so that user can turn on/off misaligned loads and stores support. Signed-off-by: Frank Chang Reviewed-by: Max Chou Reviewed-by: Alistair Francis --- target/riscv/cpu_cfg_fields.h.inc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/target/riscv/cpu_cfg_fields.h.inc b/target/riscv/cpu_cfg_field= s.h.inc index 9eb47af0a76..f8c27a574f8 100644 --- a/target/riscv/cpu_cfg_fields.h.inc +++ b/target/riscv/cpu_cfg_fields.h.inc @@ -139,6 +139,8 @@ BOOL_FIELD(has_priv_1_11) /* Always enabled for TCG if has_priv_1_11 */ BOOL_FIELD(ext_ziccrse) =20 +BOOL_FIELD(ext_zicclsm) + /* Vendor-specific custom extensions */ BOOL_FIELD(ext_xtheadba) BOOL_FIELD(ext_xtheadbb) --=20 2.43.0 From nobody Sun Jul 26 11:54:47 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=sifive.com ARC-Seal: i=1; a=rsa-sha256; t=1782816357; cv=none; d=zohomail.com; s=zohoarc; b=DUlTkwTS+kA8z6Ju3k+yzqKaonClta8I4G68okgTM51QJVYXF/+26mBvE2hR5DK2/Q3ePTwjV/JkU2XDcHPC+8nq715kJrWVLScOEix0kJ3LegDTX8ZbKU7wEER9AOCzY0f+h3tXu7eV7ZIl2VLWIKbEPbHu79ycUbnHHa/3fHk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782816357; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=5lNhqIEO4Y4/uK8KijQuDX0PHP8gR1qrz5+KexoydX0=; b=JHQkhGW3cNhhH5gsg5r8VXoFSTrdkdlmLp2m6C06yenu82nsUzujv0lUa7G/A1Ft+y3p2Q83wUHO6YIUVCkiblBMm9HnZuhbo870hjLC1OWVCaUgA4tbD6cKVC+KCwTCjylxaNNJlsJ7ZEaXmoJuo6ZgrYmnQftHoYk/H44EU4g= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782816357504978.4661353594169; Tue, 30 Jun 2026 03:45:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weVxD-0006FQ-Od; Tue, 30 Jun 2026 06:44:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weVwi-00066m-1q for qemu-devel@nongnu.org; Tue, 30 Jun 2026 06:44:07 -0400 Received: from mail-pj1-x1029.google.com ([2607:f8b0:4864:20::1029]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1weVwg-0004q6-Bm for qemu-devel@nongnu.org; Tue, 30 Jun 2026 06:44:03 -0400 Received: by mail-pj1-x1029.google.com with SMTP id 98e67ed59e1d1-37e4098e920so1801795a91.3 for ; Tue, 30 Jun 2026 03:44:02 -0700 (PDT) Received: from hsinchu16.internal.sifive.com ([210.176.154.34]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c9bbf95be56sm1274745a12.16.2026.06.30.03.43.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Jun 2026 03:44:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1782816241; x=1783421041; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5lNhqIEO4Y4/uK8KijQuDX0PHP8gR1qrz5+KexoydX0=; b=V5BrZi09W91xkjScJHLvf//dFzwze5T120wwz4bicmWd3xzqdOlO4nWjhfqskzed5U 9fIxBCw7CInbNuMlENnduiri0ZJ3lvOCGdePaKVSFO4a9oFrV9NJKYfmx1jNUZkyJf3A j7sAHoPnogUNadZcI/hb5PPZCRoPP5VJamyJVs1LL5cRfP9c3NZk/wKNtdaV0DwFyeIp WBrwZ/TlNYeId+Wugj9tBEjPFN/q+eIDRYeUui3KRq86sO8asZWlCL0ITr8qdFq9/6sW iYXbI/z6uWztSlzwIvnUYkEm7mXNGzL4yo3A0UJxfZU1guXrlLP9rsUHjmW+mY/a1mfP kzyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782816241; x=1783421041; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=5lNhqIEO4Y4/uK8KijQuDX0PHP8gR1qrz5+KexoydX0=; b=VMtgTnhlsHWBMWguw6u9Nl4D+LXMvSBT/dv4VleddaEQ1iWWkiPrtrj81x4gqWmSHQ 7zfC8gneSi03UeZUaZUU3fdvSEakO9LyVk7yXJMgvFwTlaZoJayNo/FZbXBso0UWQ1V3 MBpHIsfFp2Q22X3RWbWdsKP2Etn5DO+Cus8jBwXgOtMDNpzqYbN3b+e4qYY5YUPfldYa thrajIV+TywfLTNqbhal2bYEzAB7FQggtRp1WIuW2i/6fGn8Yj5EOtId0k0zTvExob6E BhZkdcodorWhAXFgAP6vxr/A/9oGUlSwHdC6A+cAaItX2BnMaasktzRvfsvjqd9GssFF rQZQ== X-Gm-Message-State: AOJu0Yw81qnp+bj2lJa/OZORpOzWuQL+j629ZaMh2dgRtTW9rcvQqqmf ycwqhCOqdNagnTKP4kUKhqrutfUPcLd25AR0chA4tuHXyYT1sR8zPsFStkCQDLoSjgP2ih54EUE +gChjWrJioeIG29qqoSxiAt3NSZcKPrpIQN5C5v3Twn7lk6uxOW3JVeDrpfdnZLbvJaz2glWJSK 2u4gZZyQLcQsuSAXdZxgUYjhZsSm9JsA+CtwaurNHRz7odutAz X-Gm-Gg: AfdE7cm96I9CfaReA8uuCgFPWiTwhJ3lmuP+kfWQn7pIsOJJpVMleVx7iMATV32hACn WP1NbwtHDWiXrXpKF2+OD6Qx+r3QntovdIpfzsoV4lzaihQiB/WCKWVVGDKfVq5geBwP64KrJbe MRrox5mb4IutbC8HVjktfTcgp6xXWfVClLCRC5I5pY0z+5OiS4obM/BsPdexRU1joYaM2AZBftj 607rgQxa10kpbBDwaaSsV3ij7+ZbcwZ6VzygL3JVbQ2rWNTnj7NeqBv7OCsNB5ZMAc8RmdyMpa5 ZJvpHdcfEqeG510ugisAMG6lELfXUgHR+6x3JFtC31SJlRVJKQGB5Zq3aWIGIRWwkivJMwWawFL JFspy/tK5im7vhnlnoPdqv2hKA4+ZS9V+Jg9T4CXUOpog18t43EOWPhd9NbfMi08u0bWIRORk+h +0qP0B7rEdvtQ5qNIN2ywwSSArAwh8/nGgl1hBpP89VCj9uUNGeQ== X-Received: by 2002:a05:6a21:648e:b0:3bf:a412:ca11 with SMTP id adf61e73a8af0-3bfc52dfba2mr2882693637.48.1782816240923; Tue, 30 Jun 2026 03:44:00 -0700 (PDT) From: frank.chang@sifive.com To: qemu-devel@nongnu.org Cc: Palmer Dabbelt , Alistair Francis , Weiwei Li , Daniel Henrique Barboza , Liu Zhiwei , Chao Liu , qemu-riscv@nongnu.org (open list:RISC-V TCG CPUs), Frank Chang , Max Chou Subject: [PATCH v3 2/5] target/riscv: Support raising misaligned exceptions for scalar loads/stores Date: Tue, 30 Jun 2026 18:43:47 +0800 Message-ID: <20260630104350.748267-3-frank.chang@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260630104350.748267-1-frank.chang@sifive.com> References: <20260630104350.748267-1-frank.chang@sifive.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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1029; envelope-from=frank.chang@sifive.com; helo=mail-pj1-x1029.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @sifive.com) X-ZM-MESSAGEID: 1782816358740158500 Content-Type: text/plain; charset="utf-8" From: Frank Chang When the Zicclsm extension is not enabled, raise misaligned load/store exceptions for misaligned accesses from scalar load/store instructions. Signed-off-by: Frank Chang Reviewed-by: Max Chou Reviewed-by: Alistair Francis --- target/riscv/insn_trans/trans_rvi.c.inc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/target/riscv/insn_trans/trans_rvi.c.inc b/target/riscv/insn_tr= ans/trans_rvi.c.inc index e47b16a7fa2..cc1b5dbbadc 100644 --- a/target/riscv/insn_trans/trans_rvi.c.inc +++ b/target/riscv/insn_trans/trans_rvi.c.inc @@ -413,6 +413,9 @@ static bool gen_load(DisasContext *ctx, arg_lb *a, MemO= p memop) if (ctx->cfg_ptr->ext_zama16b) { memop |=3D MO_ATOM_WITHIN16; } + if (!ctx->cfg_ptr->ext_zicclsm) { + memop |=3D MO_ALIGN; + } decode_save_opc(ctx, 0); if (get_xl(ctx) =3D=3D MXL_RV128) { out =3D gen_load_i128(ctx, a, memop); @@ -524,6 +527,9 @@ static bool gen_store(DisasContext *ctx, arg_sb *a, Mem= Op memop) if (ctx->cfg_ptr->ext_zama16b) { memop |=3D MO_ATOM_WITHIN16; } + if (!ctx->cfg_ptr->ext_zicclsm) { + memop |=3D MO_ALIGN; + } decode_save_opc(ctx, 0); if (get_xl(ctx) =3D=3D MXL_RV128) { return gen_store_i128(ctx, a, memop); --=20 2.43.0 From nobody Sun Jul 26 11:54:47 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=sifive.com ARC-Seal: i=1; a=rsa-sha256; t=1782816375; cv=none; d=zohomail.com; s=zohoarc; b=BljV7wZ/uh174rrbbY6n2snmO34MuHOVnmksUCrhCwfSx4QV9Jtnh/KklYFyMGxjjgDWrcvwcGZvRllD2anoJa3eLcS+5iKiMJQdBMjQC2W18bNkAeWI9O8tCXmczS36sDi2FDWbNpslqTjr4XmCGYPrejl3mhG2ox+cRH6E63w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782816375; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=YtIyYpzeM5Kwvua36guWtYHkqs/SjveRWH6ItRKTCCs=; b=ds2qdmM7HAtq4ZTciEBjDICD5hU9CR32z5fjeohBXqGgl5XiseK5bTCiCsxcOasHqKi0YzKCKfNlaMD5+urF+X2wRE50zD0v3nKh8WUbF+3U3dO6lbqcXtH3mhIp+bmo3WMNTyczXoTWk38IfEIYOjfOdc/pWERZiuMJWBkbSIE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782816375742939.7525550090679; Tue, 30 Jun 2026 03:46:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weVxV-0006On-M2; Tue, 30 Jun 2026 06:44:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weVwp-00067X-Ug for qemu-devel@nongnu.org; Tue, 30 Jun 2026 06:44:19 -0400 Received: from mail-pg1-x532.google.com ([2607:f8b0:4864:20::532]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1weVwk-0004uh-6V for qemu-devel@nongnu.org; Tue, 30 Jun 2026 06:44:10 -0400 Received: by mail-pg1-x532.google.com with SMTP id 41be03b00d2f7-c8894387780so1849665a12.2 for ; Tue, 30 Jun 2026 03:44:05 -0700 (PDT) Received: from hsinchu16.internal.sifive.com ([210.176.154.34]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c9bbf95be56sm1274745a12.16.2026.06.30.03.44.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Jun 2026 03:44:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1782816244; x=1783421044; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=YtIyYpzeM5Kwvua36guWtYHkqs/SjveRWH6ItRKTCCs=; b=UefcmMURa/pLU7DgXqr1Tq6VXyRDGNT2YpxdwupEkU8TiUWJPlgzVW4QalB4DqxVoE Dh6NnDT3BJgkYs7gpnFQo7Ho7esj+sG/YaVEuFhnMvQtM05k/ArTLdp9y+TZ6c5EkOGU 9Vn+ar00UvXRGc3muYkK2gNUwP/9qf+GjBZuvvoYQmq0+jhJFfDMn4b+ZFxNO5r1LS4O q8XWgbISw6UU0X8oVL+pNcrhzf10uRY6jzMxVlwA/LN2LlvICG504LUTDLTm8ITIbYPq Wj+lZpjPhImVKym/EhWo+RCozDt/Z1UAs7ot0VKn2aLADVCy8nTL336Rd9V8EE2ln+jm MWtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782816244; x=1783421044; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=YtIyYpzeM5Kwvua36guWtYHkqs/SjveRWH6ItRKTCCs=; b=PeJj3SXKKSOCEn3bC+rOvPi33X11JwXxrkcS/T7rT5GY93K4i76qGGkKmqlwohAcmW K/mxSbkn31c58xBWUHLPCGFH29QhV58VqYXx+P/566VuVcB6lsDYMLlmlIfsDvor8iK2 WiOED/DKIqrZvS9TTPEiblSjCFsBK5Pu4DDANa2h9sq+qnXnifcac5hDQUcN/3Hq8hui VmiaYJWfrQTgUOlJPPhKrb+/C3R6+kUx5mrXDIbURjow8HjrUKyVCI30lCqx7GuIrdG9 LSSATIr/QfsZhKUfN9MdmETDzcBX0F2a5d/6NOf1PiZhT5whu2QbA3mFL+10QuIAiyaQ wUsg== X-Gm-Message-State: AOJu0Yz5P2hvDmwl++K2yd0lYnO1kCadBCPoHFVruYvQ12xP0uyZ6ygp UxZbr/cph/lA5cRXVhDIGXnQRspa6zzigT8Y1xPm+El62CqpEnMgZthFBSarqIq3gxl1gtsFZcs YIEtRKdEDo551vS/k+HIDO96EHpu+nvEfRnYRLREKZ/9ekwDbRKw8lj9oeHttXK/eZG8Da4Iqk/ cAp4qr59xSs/2N/FivKUg1ejbHzD+wAJ/FnyeeZ43t3MPhJF8u X-Gm-Gg: AfdE7cnOMLT/brzCrsedngZSKoWejZs1+LSRbTnVBbePb0ZAtMhT4NhCFbNrWGO5vkd JYSQEOiWU/E1q+UlG/5stDdmk3pf/Ca15ftWB+1v8uL2KNY81w7oYcNwnHnFYbCm2S6MpDsw69h Gaqzth84ucgpuiZ0PkWnAOhvYi+AHHg6iAhKdt2ZVjh/LOQ2NWZLHc7VKlA2k2i8jMmi41wr2Dt YGS0VYa0Wi76FxkYwXfKm72bbzsOOSh91CkJEi6pncR1NzfnexWpP9bFRg1q9zxo0rTGn3j2zWB Z/j+oR9rmpKaadLNVLiy7tQug2bLTDL13ArBSoMWCZb7ti0jmBB6m3g9KF69TV3QcMi4AVqqE5B Kd4qS6KxMtcL4BmE9+/4l5xgo/Dsq12SKvTqPRclfxZYbgY9tpi7FaW6UGqW4DPZOqA/ayf8ZWD fAdJ3ZAk/A7H5FUZS1ysBUyMyquiGol4Pju5vr7Ic= X-Received: by 2002:a05:6a21:4c03:b0:3bf:bde7:d671 with SMTP id adf61e73a8af0-3bfc50a7f6amr2633327637.20.1782816243692; Tue, 30 Jun 2026 03:44:03 -0700 (PDT) From: frank.chang@sifive.com To: qemu-devel@nongnu.org Cc: Palmer Dabbelt , Alistair Francis , Weiwei Li , Daniel Henrique Barboza , Liu Zhiwei , Chao Liu , qemu-riscv@nongnu.org (open list:RISC-V TCG CPUs), Frank Chang , Max Chou Subject: [PATCH v3 3/5] target/riscv: Support raising misaligned exceptions for vector loads/stores Date: Tue, 30 Jun 2026 18:43:48 +0800 Message-ID: <20260630104350.748267-4-frank.chang@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260630104350.748267-1-frank.chang@sifive.com> References: <20260630104350.748267-1-frank.chang@sifive.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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::532; envelope-from=frank.chang@sifive.com; helo=mail-pg1-x532.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @sifive.com) X-ZM-MESSAGEID: 1782816377014158500 Content-Type: text/plain; charset="utf-8" From: Frank Chang When the Zicclsm extension is not enabled, raise misaligned load/store exceptions for misaligned accesses from vector load/store instructions. We will skip the host fast-path and fall back to the slow TLB-path to raise misaligned load/store exceptions for the misaligned accesses when Zicclsm extension is disabled. Signed-off-by: Frank Chang Reviewed-by: Max Chou Acked-by: Alistair Francis --- target/riscv/insn_trans/trans_rvv.c.inc | 18 +++++-- target/riscv/vector_helper.c | 65 +++++++++++++++++++------ 2 files changed, 65 insertions(+), 18 deletions(-) diff --git a/target/riscv/insn_trans/trans_rvv.c.inc b/target/riscv/insn_tr= ans/trans_rvv.c.inc index 23262b1d036..a22e2cae6ce 100644 --- a/target/riscv/insn_trans/trans_rvv.c.inc +++ b/target/riscv/insn_trans/trans_rvv.c.inc @@ -1191,26 +1191,38 @@ static bool ldst_whole_trans(uint32_t vd, uint32_t = rs1, uint32_t nf, * Use the helper function if either: * - vstart is not 0. */ - bool use_helper_fn =3D !s->vstart_eq_zero; =20 if (!use_helper_fn) { uint32_t size =3D s->cfg_ptr->vlenb * nf; TCGv_i64 t8 =3D tcg_temp_new_i64(); MemOp atomicity =3D MO_ATOM_NONE; + MemOp alignment =3D MO_UNALN; + + /* + * If Zicclsm is disabled, require alignment based on element size. + * Use MO_ALIGN_* based on log2_esz (0 =3D MO_UNALN, 1 =3D MO_ALIG= N_2, etc). + */ + if (!s->cfg_ptr->ext_zicclsm) { + alignment =3D log2_esz << MO_ASHIFT; + } + if (log2_esz =3D=3D 0) { atomicity =3D MO_ATOM_NONE; } else { atomicity =3D MO_ATOM_IFALIGN_PAIR; } + for (int i =3D 0; i < size; i +=3D 8) { TCGv addr =3D get_address(s, rs1, i); if (is_load) { - tcg_gen_qemu_ld_i64(t8, addr, s->mem_idx, MO_LEUQ | atomic= ity); + tcg_gen_qemu_ld_i64(t8, addr, s->mem_idx, + MO_LEUQ | atomicity | alignment); tcg_gen_st_i64(t8, tcg_env, vreg_ofs(s, vd) + i); } else { tcg_gen_ld_i64(t8, tcg_env, vreg_ofs(s, vd) + i); - tcg_gen_qemu_st_i64(t8, addr, s->mem_idx, MO_LEUQ | atomic= ity); + tcg_gen_qemu_st_i64(t8, addr, s->mem_idx, + MO_LEUQ | atomicity | alignment); } if (i =3D=3D size - 8) { tcg_gen_movi_i32(cpu_vstart, 0); diff --git a/target/riscv/vector_helper.c b/target/riscv/vector_helper.c index e321ca26161..e28d8a3d9fd 100644 --- a/target/riscv/vector_helper.c +++ b/target/riscv/vector_helper.c @@ -199,20 +199,34 @@ static inline void vext_set_elem_mask(void *v0, int i= ndex, ((uint64_t *)v0)[idx] =3D deposit64(old, pos, 1, value); } =20 +static inline MemOpIdx vext_make_memop_idx(CPURISCVState *env, size_t size) +{ + int mmu_idx =3D riscv_env_mmu_index(env, false); + MemOp memop =3D size_memop(size) | mo_endian_env(env); + + if (!riscv_cpu_cfg(env)->ext_zicclsm) { + memop |=3D MO_ALIGN; + } + + return make_memop_idx(memop, mmu_idx); +} + /* elements operations for load and store */ typedef void vext_ldst_elem_fn_tlb(CPURISCVState *env, abi_ptr addr, uint32_t idx, void *vd, uintptr_t retad= dr); typedef void vext_ldst_elem_fn_host(void *vd, uint32_t idx, void *host); =20 -#define GEN_VEXT_LD_ELEM(NAME, ETYPE, H, LDSUF) \ +#define GEN_VEXT_TLB_LD_ELEM(NAME, ETYPE, H, LDSUF) \ static inline QEMU_ALWAYS_INLINE \ void NAME##_tlb(CPURISCVState *env, abi_ptr addr, \ uint32_t idx, void *vd, uintptr_t retaddr) \ { \ ETYPE *cur =3D ((ETYPE *)vd + H(idx)); \ - *cur =3D cpu_##LDSUF##_data_ra(env, addr, retaddr); \ + MemOpIdx oi =3D vext_make_memop_idx(env, sizeof(ETYPE)); \ + *cur =3D cpu_##LDSUF##_mmu(env, addr, oi, retaddr); \ } \ - \ + +#define GEN_VEXT_HOST_LD_ELEM(NAME, ETYPE, H, LDSUF) \ static inline QEMU_ALWAYS_INLINE \ void NAME##_host(void *vd, uint32_t idx, void *host) \ { \ @@ -220,20 +234,27 @@ void NAME##_host(void *vd, uint32_t idx, void *host) = \ *cur =3D (ETYPE)LDSUF##_p(host); \ } =20 -GEN_VEXT_LD_ELEM(lde_b, uint8_t, H1, ldub) -GEN_VEXT_LD_ELEM(lde_h, uint16_t, H2, lduw_le) -GEN_VEXT_LD_ELEM(lde_w, uint32_t, H4, ldl_le) -GEN_VEXT_LD_ELEM(lde_d, uint64_t, H8, ldq_le) +GEN_VEXT_TLB_LD_ELEM(lde_b, uint8_t, H1, ldb) +GEN_VEXT_TLB_LD_ELEM(lde_h, uint16_t, H2, ldw) +GEN_VEXT_TLB_LD_ELEM(lde_w, uint32_t, H4, ldl) +GEN_VEXT_TLB_LD_ELEM(lde_d, uint64_t, H8, ldq) =20 -#define GEN_VEXT_ST_ELEM(NAME, ETYPE, H, STSUF) \ +GEN_VEXT_HOST_LD_ELEM(lde_b, uint8_t, H1, ldub) +GEN_VEXT_HOST_LD_ELEM(lde_h, uint16_t, H2, lduw_le) +GEN_VEXT_HOST_LD_ELEM(lde_w, uint32_t, H4, ldl_le) +GEN_VEXT_HOST_LD_ELEM(lde_d, uint64_t, H8, ldq_le) + +#define GEN_VEXT_TLB_ST_ELEM(NAME, ETYPE, H, STSUF) \ static inline QEMU_ALWAYS_INLINE \ void NAME##_tlb(CPURISCVState *env, abi_ptr addr, \ uint32_t idx, void *vd, uintptr_t retaddr) \ { \ ETYPE data =3D *((ETYPE *)vd + H(idx)); \ - cpu_##STSUF##_data_ra(env, addr, data, retaddr); \ + MemOpIdx oi =3D vext_make_memop_idx(env, sizeof(ETYPE)); \ + cpu_##STSUF##_mmu(env, addr, data, oi, retaddr); \ } \ - \ + +#define GEN_VEXT_HOST_ST_ELEM(NAME, ETYPE, H, STSUF) \ static inline QEMU_ALWAYS_INLINE \ void NAME##_host(void *vd, uint32_t idx, void *host) \ { \ @@ -241,10 +262,15 @@ void NAME##_host(void *vd, uint32_t idx, void *host) = \ STSUF##_p(host, data); \ } =20 -GEN_VEXT_ST_ELEM(ste_b, uint8_t, H1, stb) -GEN_VEXT_ST_ELEM(ste_h, uint16_t, H2, stw_le) -GEN_VEXT_ST_ELEM(ste_w, uint32_t, H4, stl_le) -GEN_VEXT_ST_ELEM(ste_d, uint64_t, H8, stq_le) +GEN_VEXT_TLB_ST_ELEM(ste_b, uint8_t, H1, stb) +GEN_VEXT_TLB_ST_ELEM(ste_h, uint16_t, H2, stw) +GEN_VEXT_TLB_ST_ELEM(ste_w, uint32_t, H4, stl) +GEN_VEXT_TLB_ST_ELEM(ste_d, uint64_t, H8, stq) + +GEN_VEXT_HOST_ST_ELEM(ste_b, uint8_t, H1, stb) +GEN_VEXT_HOST_ST_ELEM(ste_h, uint16_t, H2, stw_le) +GEN_VEXT_HOST_ST_ELEM(ste_w, uint32_t, H4, stl_le) +GEN_VEXT_HOST_ST_ELEM(ste_d, uint64_t, H8, stq_le) =20 static inline QEMU_ALWAYS_INLINE void vext_continuous_ldst_tlb(CPURISCVState *env, vext_ldst_elem_fn_tlb *ldst_t= lb, @@ -398,7 +424,16 @@ vext_page_ldst_us(CPURISCVState *env, void *vd, target= _ulong addr, probe_pages(env, addr, size, ra, access_type, mmu_index, &host, &flags, true); =20 - if (flags =3D=3D 0) { + bool misaligned =3D addr & (esz - 1); + + /* + * Allow the host fast-pash when: + * 1. Page permission/pmp/watchpoint are checked and we have a conti= gous + * host mapping. + * 2. Zicclsm is enabled or load/store is not a misaligned access. + * Otherwise, we will fall back to the slow TLB-path. + */ + if (flags =3D=3D 0 && (riscv_cpu_cfg(env)->ext_zicclsm || !misaligned)= ) { if (nf =3D=3D 1) { vext_continuous_ldst_host(env, ldst_host, vd, evl, env->vstart, host, esz, is_load); --=20 2.43.0 From nobody Sun Jul 26 11:54:47 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=sifive.com ARC-Seal: i=1; a=rsa-sha256; t=1782816301; cv=none; d=zohomail.com; s=zohoarc; b=m35vcdvGnFoGTQmepJ6IZvgGfzyxatow+eLy/XcxR3cWdexENMh+YyfoDAEaWHQgC8CD5rbsh9729ZujUzbcExKpN4FehPRtNpLVMCnQgyw6xj0WCN0rERJtpX6UmDEKqocMc9vWbwqJKDvwa/s2TtehppG13W2bGOFGhdsDj4g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782816301; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=q2T+s0I+pb39JwLsJ+WkCJFqSBOBfYUHzaqPSRYlffE=; b=Ok28GJRcynEreXk3Z5CRnsKN6WXiVLvlqDfvZaBpZvaKaUQg3mqT4sUemHw5hhde6Hp3kRw4N5Vs0GL5oJ1Br7i5DholLVkO8sKDtfiocW239bzfEEf66H/OdeA7u8Ngp7sRRCt4LZRtBnN6sNBEQk5i1Vo9ZRyZC7TrLm97YdU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782816301480729.6213062152274; Tue, 30 Jun 2026 03:45:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weVxF-0006Fp-Pn; Tue, 30 Jun 2026 06:44:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weVwp-00067W-UM for qemu-devel@nongnu.org; Tue, 30 Jun 2026 06:44:19 -0400 Received: from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1weVwm-0004wZ-8a for qemu-devel@nongnu.org; Tue, 30 Jun 2026 06:44:11 -0400 Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-2c9d87b1f9eso14588905ad.3 for ; Tue, 30 Jun 2026 03:44:07 -0700 (PDT) Received: from hsinchu16.internal.sifive.com ([210.176.154.34]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c9bbf95be56sm1274745a12.16.2026.06.30.03.44.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Jun 2026 03:44:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1782816246; x=1783421046; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=q2T+s0I+pb39JwLsJ+WkCJFqSBOBfYUHzaqPSRYlffE=; b=C+zt6lzW+G675YeoGDdRE7WkHBzx0kwS2QRSw5QfbCjphvKopeWea0Uqe18vnVZN6K vl1SkoZxXjc3t/EQadmUlUDKTDZ6gfcIZi1qsOFqDkf3ho8hgC3B3zygM9MFVVu+uRcc F2eOc56hsbsDzCuSA4+3HA5M1DEB0BE53Gsr6cNwTDxA6ZHKHE6TxxjfhzxO6vdRL7hn mEeShHl5ty4eKcEL+7bn1sjhTNRNo5JxA6Q3L3kGRgtvLrH6XEtTWpf1kMH2RiermHxA 0ilQDKcvlg1MqSacbTLdkeED3eZSF5ezw3/K2havp/hnKdGK6rfwIGptysOkOLS+55FJ i7rg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782816246; x=1783421046; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=q2T+s0I+pb39JwLsJ+WkCJFqSBOBfYUHzaqPSRYlffE=; b=Yi/fJJhmos5RT9vhnBBgf2B+OSugTwJrwX5tT4EM9kTHpRCbZzqvbH0Yqmg2ovRXgn 2oPc46O3ePDX13auXOlcDJpxStY1+5n6HXCMQddx8mqPFXV+E+1FVmzV586BszkPDASK Ub+RqA75vznUk6IEXXoWbjFyrVQs+WfIIE7svuVGhN6N5q3fTx8isBfXyZVId/0H25SS HyVc2+5rWRIa2n409WSJ0Mj7+swoCQzQht8m137RUc7WHan/jVHzDJFCvo0z3bpay/cn 33x6HY58DgptxZqrPPvIvVfRH/lV88fTSSbR/A4TSLmJYsfpqeeKzFwthVAhvHgNPZsv pJVg== X-Gm-Message-State: AOJu0YxG8D67/dIc8KX2Rqw8T34WmOpYkkkvCgDihnIt8gBD0wtIYL/y 7CUKqXCxREjZYR7Yaz9FLUOYtzMoWn1lEjHriNI9cyudtpdaw+QD7KxRSC2cVxn2T52e3A2ZC2g tyWZOSA3y3rUUny5gwBO7Mv5iwtLFN56SIcbWtUwKSzDnLnseZt3aPIw5+8B1Q0Bwajme7NB60O D7FPuPggRAq3K925TAGe62jBa1mISLYSnSIewDpx7jEsO/rCMj X-Gm-Gg: AfdE7cnp6BqLQv1snMIq2d2pMVXSoHIDBoVjTU2v+8gW1oErdVsg338fNVWis9i4LWY ZY2L1oza/xAdgycfPIdBX+Xcf3KzX9ASYdzjVXjhhqkbhfRktWiV94uN1cnd72C8nUxKsOXNKet +m64Pwya9EE2yx0wZW6G8nKU1fMwW4lwMcm2UqWyI61agCeivAdyp2ayQYypVf1g/7QPvFH+pnF Ku0IvTtyfxkbUhEx7P47Snu7CMgVdBPjuRmdKI7hmHrDWTnwbiqqyUAvy2f1PFuWWttO9oHXrQX zhIrBIk7Uf2RaRWxrFbPOy3w6G8ZqGjYEc5mZzPbof7CTJiwV9Y42pd2sWlAmfXqJVL2sAUVahY PIfFOe+yrkt91yH9J+PQ+BUaih4VzdunTqoff0NQ9RDo9dNnLXYNPbzkm0IO/BWFjmySpTieXsR 1tquk9HDC6c9bKw6WDV8g65dA0NV87JjOMclYvies= X-Received: by 2002:a17:902:c941:b0:2c6:a772:7e43 with SMTP id d9443c01a7336-2ca2e333005mr21878875ad.18.1782816246224; Tue, 30 Jun 2026 03:44:06 -0700 (PDT) From: frank.chang@sifive.com To: qemu-devel@nongnu.org Cc: Palmer Dabbelt , Alistair Francis , Weiwei Li , Daniel Henrique Barboza , Liu Zhiwei , Chao Liu , qemu-riscv@nongnu.org (open list:RISC-V TCG CPUs), Frank Chang Subject: [PATCH v3 4/5] target/riscv: Enable Zicclsm for the compatible CPUs Date: Tue, 30 Jun 2026 18:43:49 +0800 Message-ID: <20260630104350.748267-5-frank.chang@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260630104350.748267-1-frank.chang@sifive.com> References: <20260630104350.748267-1-frank.chang@sifive.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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62c; envelope-from=frank.chang@sifive.com; helo=mail-pl1-x62c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @sifive.com) X-ZM-MESSAGEID: 1782816302482158500 Content-Type: text/plain; charset="utf-8" From: Frank Chang Now that Zicclsm is supported, let's enable it for the following compatible CPUs: - Base 32 CPU (to be backward compatible) - Base 64 CPU (to be backward compatible) - XuanTie (T-Head) C908 - Tenstorrent Ascalon - Ventana Veyron V1 - XiangShan Kunminghu - MIPS P8700 (ISA doesn't include Zicclsm, but their datasheet claims that it has unaligned load/store support in hardware) Signed-off-by: Frank Chang Acked-by: Alistair Francis --- target/riscv/cpu.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index bff3ed5de14..a3cccdfed3c 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -3021,6 +3021,7 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { .cfg.ext_zicbom =3D true, .cfg.ext_zicbop =3D true, .cfg.ext_zicboz =3D true, + .cfg.ext_zicclsm =3D true, .cfg.ext_zicntr =3D true, .cfg.ext_zicsr =3D true, .cfg.ext_zifencei =3D true, @@ -3093,6 +3094,7 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { .cfg.ext_zicbom =3D true, .cfg.ext_zicbop =3D true, .cfg.ext_zicboz =3D true, + .cfg.ext_zicclsm =3D true, .cfg.ext_zicntr =3D true, .cfg.ext_zicsr =3D true, .cfg.ext_zifencei =3D true, @@ -3179,6 +3181,7 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { .cfg.ext_zbs =3D true, .cfg.ext_zkt =3D true, .cfg.ext_zbkc =3D true, + .cfg.ext_zicclsm =3D true, .cfg.ext_zicsr =3D true, .cfg.ext_zifencei =3D true, .cfg.ext_zihintpause =3D true, @@ -3222,6 +3225,7 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { .cfg.ext_zicbom =3D true, .cfg.ext_zicbop =3D true, .cfg.ext_zicboz =3D true, + .cfg.ext_zicclsm =3D true, .cfg.ext_zicntr =3D true, .cfg.ext_zicond =3D true, .cfg.ext_zicsr =3D true, @@ -3270,6 +3274,7 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { =20 /* ISA extensions */ .cfg.mmu =3D true, + .cfg.ext_zicclsm =3D true, .cfg.ext_zifencei =3D true, .cfg.ext_zicsr =3D true, .cfg.pmp =3D true, @@ -3329,6 +3334,7 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { * The RISC-V Instruction Set Manual: Volume I * Unprivileged Architecture */ + .cfg.ext_zicclsm =3D true, .cfg.ext_zicntr =3D true, .cfg.ext_zihpm =3D true, .cfg.ext_zihintntl =3D true, @@ -3385,6 +3391,7 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { .misa_ext =3D RVI | RVM | RVA | RVF | RVD | RVC | RVS | RVU, .priv_spec =3D PRIV_VERSION_1_12_0, .cfg.max_satp_mode =3D VM_1_10_SV48, + .cfg.ext_zicclsm =3D true, .cfg.ext_zifencei =3D true, .cfg.ext_zicsr =3D true, .cfg.mmu =3D true, --=20 2.43.0 From nobody Sun Jul 26 11:54:47 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=sifive.com ARC-Seal: i=1; a=rsa-sha256; t=1782816375; cv=none; d=zohomail.com; s=zohoarc; b=oD/lNyUp6TYHbmmAl6uUjQm9vpvHogLzagDXxFfvGSS6IYSlcPAZY9FLw5fcRJkWHRkgnX+f7o5s8MzDKFBSU+yPNss8oHZWfbF+D1hfaTz0g9PpiajkYlp0/VBPh5j6eCJuUnTzPSdz5A1v0rMeTfJ0n+YuN0CC3AyiqRCUsXU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782816375; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=oWB1VMpEOQWXHjt4fAXcLPtGgLfNKt45L82Gan4wey4=; b=hEQieRzWE7WrbbXtq/pMQwbDGHSHGjDM8x/53RqMK3VNF6Lt6+RPSKKZvw2ClAu8QH2w0ZBjuzLzc1k+9oE/x+M6XmOgQVF7U7cWtDBKvxYpY3SpOsg+XT9D3UIVLfcXrqWkqTkGN7Fql7BrSScMO9bsOJrN7MqFeBlmfNX6E+E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782816375053286.51927131280036; Tue, 30 Jun 2026 03:46:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weVxt-0006Zq-KV; Tue, 30 Jun 2026 06:45:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weVwz-0006AM-5g for qemu-devel@nongnu.org; Tue, 30 Jun 2026 06:44:25 -0400 Received: from mail-pj1-x1036.google.com ([2607:f8b0:4864:20::1036]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1weVwt-0004ws-Sq for qemu-devel@nongnu.org; Tue, 30 Jun 2026 06:44:19 -0400 Received: by mail-pj1-x1036.google.com with SMTP id 98e67ed59e1d1-37fc01a7835so1528346a91.3 for ; Tue, 30 Jun 2026 03:44:09 -0700 (PDT) Received: from hsinchu16.internal.sifive.com ([210.176.154.34]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c9bbf95be56sm1274745a12.16.2026.06.30.03.44.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Jun 2026 03:44:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1782816249; x=1783421049; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=oWB1VMpEOQWXHjt4fAXcLPtGgLfNKt45L82Gan4wey4=; b=LBRvqTy89tYyzv+9k9yxa27miV04iFvnrHcC5R/z/taxKSp04miZ0KcdIxG+5FbHAF r0psZJ9map5kZ5Y0rXz8pjJ+pZeDb7VvK4e8xuKZ9tDXrFD1bVj16HV8+jg5Oe17zotv rox6DEJxFZW+qpOAfHpUCglloQAuTW/pjTwBJCeZMKIj9lhGt/YcbqAd/oqiO7+W3VLo +iicYW2eAPUDxcghJ68+mmW1KcsrWsK9/9VybNdzLQlvZ9yRt3dL/kSeuczUNfJqRg3D 4Zx2tIs+Fg5lE4uKGFsgFDVQPBNwoWBCZIWoZL4rmvfcBLnDksJ58c1/Hk4CiP76PZP7 Kpgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782816249; x=1783421049; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=oWB1VMpEOQWXHjt4fAXcLPtGgLfNKt45L82Gan4wey4=; b=EWaxhkrwW5MSXYnHxpBdo142v/P0FilMHFuNZYFxA5+cXPKj5MLnSGgVxDwhm/nWh/ IWIvd3i+IZBSMv0N+eluUxT5IpCnBiU8UvTW1M6fFPM9009ufaRF1E5VLbdqsUFL+kMC 3hiQkDjwfgoJEj5CqQv+6MkAnhT5jcbavoTzwe5lHFxMLc6i3gpe7zZ3A+5V4rF5G09b ObBP7SvvOw1AJdaTFXawKh6yHdUUs84aOOPudXilvmxHrpb8AdPCewiWWtwfce9j2wQv fpMEjx1v6OtWhEDEbBmbXItA/0+37EzWjKPqeAcC63Qf3nvELXoq5/h4ClISLVxInb6M Kngg== X-Gm-Message-State: AOJu0Yy+hHbVcaVh4ZWFMqYbZ5BeTGMu/dXG+DkzTHZemz7D9FmZ07Qb coBk+rFEF+q3Fa/8CMghDZHTC4EJOegr6IowMBbCy8uwQQPliQEPGlcR93K2R9AQrneW+zerlMU 2JzlmKUZ4HzSw7xUfmwMDfMz0plxryPhUT/IpswFk3UceurTj3E7a/XO3Q/zL6n8+b0RtkWYe3h jjkjbZNrDYA0jRpGM89Ewo4Udw59/nfVeotb0TbToHcNif8Y1R X-Gm-Gg: AfdE7cksDAT+FCMevGMopWmllU6H7UZspzdusAbqfEaAgow29pantgP/YmpK8y0d3t3 clmhntiMCqj4XLWOiqYX0MREC7m6IL1EzVPk63+F8BjfvNr8JSss8h3KzG29xTZlDKVLk5gcZIb MzQ40nB/y2OylhRsGKAkuDt7IbcD9X/6qS8CyGjR8pAH1+xAfs166WMvAjN3T9yOFYsMtU9MF5b Rag/2yrCdMj2aK1Dqmw8WtB5+Zg5PDnpSCTPLuoQ2kmCrOja8JtVQoFbrvW5C9qmrc0Vp0RzUDw 5O1t9GxAKE0g8k9mao6sEY1aXK2CI0PwuOYep4zD20jBuU86QilA3ulTkAPEPwbEFdEMiiF8xWx ewmbG6ufFiQZe2EYVjAQoNClPimqN9yAPScZRhW6nSTshZ4nY8yLcn64FeaYxZmt/mrRhKIaNeU Nh8p07+AG9evADNMIuJAIZJaheD6qDthF1wi8e3Oe28dcGUaGB4g== X-Received: by 2002:a17:90b:2d05:b0:37f:9cdf:f039 with SMTP id 98e67ed59e1d1-380527bcdc7mr2226233a91.28.1782816248814; Tue, 30 Jun 2026 03:44:08 -0700 (PDT) From: frank.chang@sifive.com To: qemu-devel@nongnu.org Cc: Palmer Dabbelt , Alistair Francis , Weiwei Li , Daniel Henrique Barboza , Liu Zhiwei , Chao Liu , qemu-riscv@nongnu.org (open list:RISC-V TCG CPUs), Frank Chang , Max Chou Subject: [PATCH v3 5/5] target/riscv: Update Zicclsm ISA string and expose it as a CPU property Date: Tue, 30 Jun 2026 18:43:50 +0800 Message-ID: <20260630104350.748267-6-frank.chang@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260630104350.748267-1-frank.chang@sifive.com> References: <20260630104350.748267-1-frank.chang@sifive.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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1036; envelope-from=frank.chang@sifive.com; helo=mail-pj1-x1036.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @sifive.com) X-ZM-MESSAGEID: 1782816377010158500 Content-Type: text/plain; charset="utf-8" From: Frank Chang Update Zicclsm ISA string and expose it as a CPU property to allow user to turn on/off Zicclsm extension. Signed-off-by: Frank Chang Reviewed-by: Max Chou Reviewed-by: Alistair Francis --- target/riscv/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index a3cccdfed3c..8735a5ce846 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -144,7 +144,7 @@ const RISCVIsaExtData isa_edata_arr[] =3D { ISA_EXT_DATA_ENTRY(zicboz, PRIV_VERSION_1_12_0, ext_zicboz), ISA_INTERNAL_EXT_DATA_ENTRY(ziccamoa, PRIV_VERSION_1_11_0, has_priv_1_= 11), ISA_INTERNAL_EXT_DATA_ENTRY(ziccif, PRIV_VERSION_1_11_0, has_priv_1_11= ), - ISA_INTERNAL_EXT_DATA_ENTRY(zicclsm, PRIV_VERSION_1_11_0, has_priv_1_1= 1), + ISA_EXT_DATA_ENTRY(zicclsm, PRIV_VERSION_1_11_0, ext_zicclsm), ISA_EXT_DATA_ENTRY(ziccrse, PRIV_VERSION_1_11_0, ext_ziccrse), ISA_EXT_DATA_ENTRY(zicfilp, PRIV_VERSION_1_12_0, ext_zicfilp), ISA_EXT_DATA_ENTRY(zicfiss, PRIV_VERSION_1_13_0, ext_zicfiss), --=20 2.43.0