From nobody Sat May 30 19:21:52 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=1777007177; cv=none; d=zohomail.com; s=zohoarc; b=jetgqIY1xP/hcSuAoT4K1NKg7CFCOPhsaSKGcRmzwuhaJr6V85VG7WBcCHnriDw2JvjQjkGGBKLll5YwU8TPS4S2iYav3quhmmRkItGEtTD1bGfCc2xsILDWCDI3A3Aaq+d4VLHa01l7kJMwcTa8wfqkIw5avbzbsMQd6qTnFGQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777007177; 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=Eggucli4qTqnT+0XjlTx/9JXPvjlpybl8ngBYSrfqOw=; b=cvPnFQniau5kPmHTKW+Nx9THQ1hF4XPsqMZB4rJvczASmutzf0Y+79fE7ylMSMscyKaOCcDsY8C9JVL0biLff6TZq5e/b1Efan81O+h8uGbEtE1SKvJ6zjNhvk02jnHnfvS6I3XOWX593IqXeyrbwRyhcnY1vTDxHtRmQK0U8/M= 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 177700717785146.89286031635504; Thu, 23 Apr 2026 22:06:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wG8jC-0003vA-SG; Fri, 24 Apr 2026 01:05: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 1wG8jB-0003uH-5y for qemu-devel@nongnu.org; Fri, 24 Apr 2026 01:05:21 -0400 Received: from mail-pf1-x433.google.com ([2607:f8b0:4864:20::433]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wG8j9-0005pX-MZ for qemu-devel@nongnu.org; Fri, 24 Apr 2026 01:05:20 -0400 Received: by mail-pf1-x433.google.com with SMTP id d2e1a72fcca58-824c9da9928so3750399b3a.3 for ; Thu, 23 Apr 2026 22:05:19 -0700 (PDT) Received: from hsinchu16.internal.sifive.com ([210.176.154.34]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82f8e981992sm26698554b3a.7.2026.04.23.22.05.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Apr 2026 22:05:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1777007118; x=1777611918; 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=Eggucli4qTqnT+0XjlTx/9JXPvjlpybl8ngBYSrfqOw=; b=koBfIg+Cxlttp5gmfxOnRtfI9UOVRP3ZP4eO5zeW+2sFKi+xohdiCEosmyzU9dtnMT hQwv9HYhq3MU6/I9LtWAPIUYUlO8i9ogJ9Ttmm4OOrlsa5Zjgfxut7Bi9rIkl9U29fsF QNTBdEGl32kQ9VqGBvYwaNNmKd8Qa7cFLNtSnUVn8X/DAjNenIEnBkVyJPnq0Ap+fn7l I8f0V4Zq1y6ZVjTJxvaUI4aR65PcC7A1mKme7JK/9GIaRfMg/Qh4wsuUowmiw3g3NBG6 pa7hXsSVOn0BA0n95VZW9H5+z3NGJeTf4h6VjbnzghcNKcocmQtq65UF9HBAc+NXyq3Y IdDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777007118; x=1777611918; 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=Eggucli4qTqnT+0XjlTx/9JXPvjlpybl8ngBYSrfqOw=; b=GO7+VJAXFUoB9jZGmSm2OxdRleAJEAPrSy1ms/IrFx/5HXU17E42xtppHQgD6uOO4W uOJ1covNZ49nwe1w2/cFZQfC5yL3QY00qwnpP5DNssl/CW/e9aahIBJ4JqHyCR3sC8pf BlZ0rEDCeDkmuS3i5+XbmBDtcMwwyXv2txSYLjq1hinKlOr4FFzFgxYfKKmDKt2bhMDA /rvxrBD8BXX3rRXPcH6p81E1r7AA2azxGCBfarD1Lvm2W1TL99XavIjBiqon7xJJoUvT TqDhDRKHbY/72KF3m6N8FL7P7jK07h7UO/muY8a4FwfiA0ltBN4uc0Lr6nCg4viaOCGJ KkXg== X-Gm-Message-State: AOJu0Yx6pjLIY4t+RpCU59ro7uXPAmLrXnITztt/2Lyb+kMWcK/sBDmm 2pFGwDJ1/pVdXbFqF/PoIeFIOOjoP+4GA2GKT4Gw+nnKPscQ+Z9ouF6lDNaoIZIjbUqYoHJrI++ txJlBT7RO5+SXdyqWdV3+1EySuPtXFmLjW5MS31xvWDV7u2xCSm4nkttUikSa7cgdZof9ccNrYF AWM+5l5dWsCwyd1Xd/LT4Jch/l+kaHRsAoUstKuy2m/uF4v6dX X-Gm-Gg: AeBDievIVXx86MloM4r7Gu+SUwEAzMViCP4IbryOPpQR56AY558CYBvWe8JQm1/XpRS lNC0Gsoolw0UWuZG5K/XRdyLbnGNn5mMa+0sMump4u9ImmgH1hJmEz20DtGCl8s0kHnb2UJIIjc PIwDudh6tOcgUEP9S539oR/8xL++eN242c+fFdk+JF/ekbyBueKTEpg6MrefYSXtQQVhhUJ4Xol q9fGCcYnMn9rfoIEUwToEqAsYXgOd57Hkny5+QgUAuJIzki5NeM//dqtZBkyquhEkMwHs5FPbDP oSK+sey29TZJF6yoaOM5FSLkW0FKmIwDi1X1NwdxVjRz4GQzhJkAYxyjsjwqw+ndwp2HDLq1R1k CzIh3dIucRnD82Fogps2bRDnW5/IaBJJWBBp+TqEFIHZa3uzluAUbOSae/s5JH1HDLBxdEQ5U7K UC1Jcec2ZF47hSovoarTKzHIyunVuHujy1U/qBu/jVmzATbWj7JFvUnCichntX X-Received: by 2002:a05:6a00:ab8c:b0:829:800b:9fe with SMTP id d2e1a72fcca58-82f8c99a9a3mr32737654b3a.39.1777007117407; Thu, 23 Apr 2026 22:05:17 -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 v4 1/2] target/riscv: Update MISA.C for Zc* extensions Date: Fri, 24 Apr 2026 13:05:08 +0800 Message-ID: <20260424050509.3935180-2-frank.chang@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260424050509.3935180-1-frank.chang@sifive.com> References: <20260424050509.3935180-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::433; envelope-from=frank.chang@sifive.com; helo=mail-pf1-x433.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: 1777007180555158500 Content-Type: text/plain; charset="utf-8" From: Frank Chang MISA.C is set if the following extensions are selected: * Zca and not F. * Zca, Zcf and F (but not D) is specified (RV32 only). * Zca, Zcf and Zcd if D is specified (RV32 only). * Zca, Zcd if D is specified (RV64 only). Therefore, MISA.C must be set according to the Zc* extension rules. Warn the user if RVC is explicitly disabled but MISA.C is required by the rules above. Signed-off-by: Frank Chang Reviewed-by: Max Chou Reviewed-by: Alistair Francis --- target/riscv/tcg/tcg-cpu.c | 39 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index f3f78088956..5db166c01e9 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -1163,6 +1163,44 @@ static void riscv_cpu_enable_implied_rules(RISCVCPU = *cpu) } } =20 +/* + * MISA.C is set if the following extensions are selected: + * - Zca and not F. + * - Zca, Zcf and F (but not D) is specified on RV32. + * - Zca, Zcf and Zcd if D is specified on RV32. + * - Zca, Zcd if D is specified on RV64. + */ +static void riscv_cpu_update_misa_c(RISCVCPU *cpu) +{ + CPURISCVState *env =3D &cpu->env; + bool set_misa_c =3D false; + + if (riscv_has_ext(env, RVC)) { + return; + } + + if (cpu->cfg.ext_zca && !riscv_has_ext(env, RVF)) { + set_misa_c =3D true; + } else if (riscv_cpu_mxl(env) =3D=3D MXL_RV32 && + cpu->cfg.ext_zca && cpu->cfg.ext_zcf && + (riscv_has_ext(env, RVD) ? cpu->cfg.ext_zcd : + riscv_has_ext(env, RVF))) { + set_misa_c =3D true; + } else if (riscv_cpu_mxl(env) =3D=3D MXL_RV64 && + cpu->cfg.ext_zca && cpu->cfg.ext_zcd) { + set_misa_c =3D true; + } + + if (set_misa_c) { + if (cpu_misa_ext_is_user_set(RVC)) { + warn_report("RVC mandated by Zca/Zcf/Zcd extensions"); + return; + } + + riscv_cpu_set_misa_ext(env, env->misa_ext | RVC); + } +} + void riscv_tcg_cpu_finalize_features(RISCVCPU *cpu, Error **errp) { CPURISCVState *env =3D &cpu->env; @@ -1170,6 +1208,7 @@ void riscv_tcg_cpu_finalize_features(RISCVCPU *cpu, E= rror **errp) =20 riscv_cpu_init_implied_exts_rules(); riscv_cpu_enable_implied_rules(cpu); + riscv_cpu_update_misa_c(cpu); =20 riscv_cpu_validate_misa_priv(env, &local_err); if (local_err !=3D NULL) { --=20 2.43.0 From nobody Sat May 30 19:21:52 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=1777007180; cv=none; d=zohomail.com; s=zohoarc; b=lbo0fPQjIxpmuIDsLiYRNfdqOTYc3/6vtkUl3sKJM/rp7PaDuHBQR9MFAdx/T7pDZb13a2EHUBUYgWtRvwicBWSLSO6ab4cmNJeHIlvJmtdaMkq0J+yJAJ/bfoaOPdPVXgsnZIdBALRuHAQ9+t18xgeT752dNIEZwrqRVAkQ8Kk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777007180; 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=vmZ0nGBImY+awhw0ANHTquhG/heSaRQBT3E52jWGxAE=; b=HMQGijbKOvl1Iryom1+EYS/VCIxBbugCBkg41WtmWa8utD0qaWlOmANKnjvy96cXUalG9H7EUM72YEXbe+V+6605VX8wOofPtu7IeEs4gbSRc76PHEbk2mPum/Xc8Q9HiZ2aYaT6OH3JKAVr6YuIPzfKr/i5dv44/OOGVQdXhuM= 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 1777007180690316.2586678623185; Thu, 23 Apr 2026 22:06:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wG8jF-0003wO-Cx; Fri, 24 Apr 2026 01:05:25 -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 1wG8jD-0003vb-V5 for qemu-devel@nongnu.org; Fri, 24 Apr 2026 01:05:23 -0400 Received: from mail-pf1-x433.google.com ([2607:f8b0:4864:20::433]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wG8jC-0005q7-9x for qemu-devel@nongnu.org; Fri, 24 Apr 2026 01:05:23 -0400 Received: by mail-pf1-x433.google.com with SMTP id d2e1a72fcca58-82f8b60e485so3155462b3a.0 for ; Thu, 23 Apr 2026 22:05:21 -0700 (PDT) Received: from hsinchu16.internal.sifive.com ([210.176.154.34]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82f8e981992sm26698554b3a.7.2026.04.23.22.05.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Apr 2026 22:05:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1777007120; x=1777611920; 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=vmZ0nGBImY+awhw0ANHTquhG/heSaRQBT3E52jWGxAE=; b=BWXO6yz9+OvMMuc+2BjIrSnPzTzN+cV+PRWbko7QT5oWU+vEsLXXDgMnzEMiy5J/dA Jv1IOWtBDor8JvOeQQGjOdyREEiKwZ+GYoSIGv9nFSdenIK710/f6cPEqos8cQrUr2hd kr24Kf9LM13W5xmIbshxV8dvreR4KHUx+5sSXVWZNzUqAMF75CCM3p0D7OKJzvlMoRkh QR9DmjJgoG5vw/IgKpkwtn2Yssp7HLN0ALVDcGkmZI7vBNmgf4NH+1tlQKLDSgz/7rfm e8q2tERlY/fuYc5Zwz+ywUn5nhwCwgk9M1CDIZdBc4GtbY67qmyxRZ2jY2GQkXXp85NY f6uQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777007120; x=1777611920; 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=vmZ0nGBImY+awhw0ANHTquhG/heSaRQBT3E52jWGxAE=; b=cRJuUPCOrfQj16/EAIcRJn1xQVXcXywme8itktS2VXBTxmP8mjOrX2SUfNMxz+wBaO Es/lytm49JHglPewtVeNJk27FipPulisIznaAoCA9/8QaTzPLAyHzD4wEuV+ugce/Pvq 4JYdPPuO4c7+nkizHZ4BWR1/dxl8d6HPfAVSg+vUqaBvTbyGDwWf+Uw+qYN6K3OrIoFK aRH+S6o+Sc2rAyZZwyWYP56MxzkEPvTGRWMXHluEa8o/+jFIqnwEG8HwmDs/RxZJ/zUF +Xq9Hh66BYnHIudeeIqxk1Wlzg1LJvTOcjpHgnnnSQAk4nFGboYoYdGZi54oucbR4t/4 q/5w== X-Gm-Message-State: AOJu0YyoUF8e08+1Gi3xzMzI1F/taETIkTnn6SaibkUAgiJ+lv8I3PnE RrLiH7qthGADj3MOzqbLOELldM6YZGW7D6CN8h8/mDfEP2IvmKJt146cWYHyUnrf45D14SFUl0T 1J7YP3HZEF38ldI2PqsMBCCjlvoPIBIh7iy1KroORiG3qrCE+tWJxctf9m4MDE+5NR8/YhhXRu2 srutxdeehFNDkQomQ1thxso2rbO8rzXrWxJsUrrK9e0ZoJaPNg X-Gm-Gg: AeBDieuE9/5+Q/pCPyEzjZW6ZPEDwYHSNqzfFYkoOYMPwlb3+ok58K39Xh/LTVHJFVo Ys5YwhZYRgvrRgv+tpucjN8lDCl6yOC4C1bRIEqBxdIK8vIVGHAhYIPE3f6FgpTSrqbcWI2SSLY +x/KggKtntRoqASO+kvkALU5pV38+dgUixAPjQ/fF4VpVGbsvau04XQImywTX5Qv001I1TPnOcJ S4/FA8vRaOMrMrmWPK2EwBvvbDtONRfGnIrzhB+TNoxvoVkwTe48URagrcTclQ2nY1C+5LPF3MW jABPoKRLu7L2wkx7TgNuezkIFna1bZ1yytDKGfNjENUsi9VWM+WgF1+O1RzCmqjTHMHhkXSSdHo TSzw8NgcAnUjEL0oY7kDgffKYfFYkWuhq29yPsAvS1NaiBcfMjAE9XbouHKQBY/w15oBa6lHc9m +nN6GkjO1inl2H5BFKfK977i4rBYaDbsQRc9XsDvXMc8Tzu0LshtbZpbrKON1V X-Received: by 2002:a05:6a00:c8f:b0:82c:26a4:df02 with SMTP id d2e1a72fcca58-82f8c9bad60mr32888759b3a.42.1777007120169; Thu, 23 Apr 2026 22:05:20 -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 , Daniel Henrique Barboza Subject: [PATCH v4 2/2] target/riscv: Update MISA.X for non-standard extensions Date: Fri, 24 Apr 2026 13:05:09 +0800 Message-ID: <20260424050509.3935180-3-frank.chang@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260424050509.3935180-1-frank.chang@sifive.com> References: <20260424050509.3935180-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::433; envelope-from=frank.chang@sifive.com; helo=mail-pf1-x433.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: 1777007183004154100 Content-Type: text/plain; charset="utf-8" From: Frank Chang MISA.X is set if there are any non-standard extensions. We should set MISA.X when any of the vendor extensions is enabled. Signed-off-by: Frank Chang Reviewed-by: Max Chou Reviewed-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis --- target/riscv/cpu.h | 1 + target/riscv/tcg/tcg-cpu.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 4c0676ed53b..175e877f90a 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -69,6 +69,7 @@ typedef struct CPUArchState CPURISCVState; #define RVH RV('H') #define RVG RV('G') #define RVB RV('B') +#define RVX RV('X') =20 extern const uint32_t misa_bits[]; const char *riscv_get_misa_ext_name(uint32_t bit); diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index 5db166c01e9..42b40104806 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -1201,6 +1201,20 @@ static void riscv_cpu_update_misa_c(RISCVCPU *cpu) } } =20 +/* MISA.X is set when any of the non-standard extensions is enabled. */ +static void riscv_cpu_update_misa_x(RISCVCPU *cpu) +{ + CPURISCVState *env =3D &cpu->env; + const RISCVCPUMultiExtConfig *arr =3D riscv_cpu_vendor_exts; + + for (int i =3D 0; arr[i].name !=3D NULL; i++) { + if (isa_ext_is_enabled(cpu, arr[i].offset)) { + riscv_cpu_set_misa_ext(env, env->misa_ext | RVX); + break; + } + } +} + void riscv_tcg_cpu_finalize_features(RISCVCPU *cpu, Error **errp) { CPURISCVState *env =3D &cpu->env; @@ -1209,6 +1223,7 @@ void riscv_tcg_cpu_finalize_features(RISCVCPU *cpu, E= rror **errp) riscv_cpu_init_implied_exts_rules(); riscv_cpu_enable_implied_rules(cpu); riscv_cpu_update_misa_c(cpu); + riscv_cpu_update_misa_x(cpu); =20 riscv_cpu_validate_misa_priv(env, &local_err); if (local_err !=3D NULL) { --=20 2.43.0