From nobody Tue Apr 21 14:38:43 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=1776757403; cv=none; d=zohomail.com; s=zohoarc; b=Z22zuO/jw3paE8i+VbjBYmYvIVhnd7YKqNLIwbe6BXLFRANWp8wNO6uFvHD4+YUNMa642HYSL6fLIsdKP3t8NtZjquxmcXEMaOwSG07LnDpOTiv4/9EWtm8FzYF9GDK4CxNHxL5+/x3JrpVeqnY+RVI+isTeP4WSKeY1ELMR0D0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776757403; 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=u32VCWbUqw/KoJwFnMW3CTsxfVufA4KHN5YakpZ2TKU=; b=jPq4DTcNyWe0kvR4H8WsbTq+0e196kSg5afOYE8C68tqhKM32ISi5E+bI1hWoWmKyBXTAYBhPqYJkB7Ihtd+n6LS6Fzpu4ZNI90e94lARmTb2NGrVy1rEXLXvdxxezuOia5nedMofN1W4YICUA9QsYHxZHuM7SI+l5vCmAp0dnE= 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 1776757403791198.6035400069219; Tue, 21 Apr 2026 00:43:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wF5kP-00011h-LW; Tue, 21 Apr 2026 03:42:17 -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 1wF5kO-00011E-3Q for qemu-devel@nongnu.org; Tue, 21 Apr 2026 03:42:16 -0400 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wF5kM-0004IS-FV for qemu-devel@nongnu.org; Tue, 21 Apr 2026 03:42:15 -0400 Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-2b4583f0a1aso24315715ad.3 for ; Tue, 21 Apr 2026 00:42:14 -0700 (PDT) Received: from hsinchu16.internal.sifive.com ([210.176.154.34]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b5fa9ff918sm133191675ad.13.2026.04.21.00.42.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Apr 2026 00:42:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1776757333; x=1777362133; 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=u32VCWbUqw/KoJwFnMW3CTsxfVufA4KHN5YakpZ2TKU=; b=jH2OJkeCit7VCyXYIvTn/uoY7J8L1p4+VzpUQildGY0JzoDyxO9pF6gki7Q656dNwa lYw0cI7dmOUgYCmkHXKrVANdnmc52tIHx6wQPjC52qpQ63bibxw20V5hqdPQTnYUUE8b i2/bIw2NEhJDqzmsyfk38b11+rfOZKdJIkBwaKTtj3tn8pbIxE1QIN1b9U68llC1BKN1 96pAcraPi3cUMZEjsi6yZaQpYxFNKvVF2dMiANcpvrhYHXnUaGHNKeTpjJLr8n8HSvYI uHAoLJI1sbtkx1JCajtoeWpPS4yfu0xnMpk4BtlMxC/gaeYfj5PZit//ynLd13OPYCgs j2nQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776757333; x=1777362133; 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=u32VCWbUqw/KoJwFnMW3CTsxfVufA4KHN5YakpZ2TKU=; b=Xgrmyr1vOKqmBsUb3y5h6jDo8Nib71fYZU+Vi72c1+uyqBMRBCe3gInx0SDDFzJck9 1XZPPD+4YghZQFgxkY8blwC5jHAGvCARBhK6AQuZuxDdgyVlEZhYNZdUPdEQsbK8rNGJ hBE8JU/hzinCN7/DtR6zs1EaaAFQaJLfvC9TIfffh9wIq+rxomDMwxhHNzfToXaRbux3 jomt45sxjJBhR/NJJ6JT5Z9e9YUCqsQ1BOGr2G6bR6jJAz+id+yoGHd6kRQmH2kHJz1d mZdbun5CwszjAhcmVap4m4Gs2pIj727vap1IK2BXKTX0RrQos5d+SXj/+1USqoTKfXcC 0XKg== X-Gm-Message-State: AOJu0YzAGbNPYIaWVTZrdIulIYS467e4WQ7paT/ZnF2TX5xbOmrc8waj iTf1KwNSuuCzdaOR+/2+I796AD898wi9ixm+8DdmoBwmqMyEV5dmOoMm/baHapwFr2sfI2oDJoE GjN2L08XNQsIXroBV2d4OYIWgMjBB2Ts+EUGCSpeG8NHZPOpKcWl2xwkTJ1HzDqDlU3+ijRqj1a M0DpGTS04i8naFK7rRSZZIV2XOpXRxBXDQBcLZNwp/OIKJMhhI X-Gm-Gg: AeBDievIT4WlYCgLsjKOE9ySuDGotos55qWjzD/LWZwPzY3L7+tUG7cIt2+ZRtzTgnU at/DaRrOLRKThkzVKFFpPBMetHakSOeHs0LAQXoCCfTepOJF4u49pomWXC2K/8Rvs5G1Deqb7Pj vmYTyaRbn90x14+BhsoWHmvV77rLmc5F//STMexVK6Ptnyx5ZzbmeRI2Y0z8SdWL/Z/eAkdzWRO Szzv3beGDgWJFUrPqIN3M5CusupLhddpbTou+CZUFcijtyY/SCu9+znaq1nqpmVrD92aswD5Enx I4Lx0S85NUz21eFQUxn1wweksfBzMo5jd0ZcNwUCddUQoKIc3BWevaNW0px/CVIQf8xacOGxpIf zydopJWixzB6s44I02u2krj3qJhnS9yvILwkBdYof8vqnGCEaVxG29eTGf+UtbGt8nzk20G5Yc3 2Ix1zpW/uoeYQK+1s4wDTJtV2ZMGhFK6eltTe9dyq7vANgmIPA/pFB6GeAxQas X-Received: by 2002:a17:903:b8f:b0:2b0:7225:d2c0 with SMTP id d9443c01a7336-2b5f9fb9d4cmr169244785ad.30.1776757332434; Tue, 21 Apr 2026 00:42:12 -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), Jim Shu , Frank Chang Subject: [PATCH v2 1/2] target/riscv: Add the implied rule for G extension Date: Tue, 21 Apr 2026 15:42:03 +0800 Message-ID: <20260421074204.2908422-2-frank.chang@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260421074204.2908422-1-frank.chang@sifive.com> References: <20260421074204.2908422-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::631; envelope-from=frank.chang@sifive.com; helo=mail-pl1-x631.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: 1776757404321158500 Content-Type: text/plain; charset="utf-8" From: Jim Shu Add the missing implied rule from G to imafd_zicsr_zifencei. riscv_cpu_validate_g() is also removed as imafd_zicsr_zifencei can be enabled by the implied rule. Signed-off-by: Jim Shu Reviewed-by: Frank Chang --- target/riscv/cpu.c | 14 +++++++++++- target/riscv/tcg/tcg-cpu.c | 44 -------------------------------------- 2 files changed, 13 insertions(+), 45 deletions(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 72c6f4f0f14..7978b4fad43 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -2247,6 +2247,18 @@ static RISCVCPUImpliedExtsRule RVV_IMPLIED =3D { }, }; =20 +static RISCVCPUImpliedExtsRule RVG_IMPLIED =3D { + .is_misa =3D true, + .ext =3D RVG, + .implied_misa_exts =3D RVI | RVM | RVA | RVF | RVD, + .implied_multi_exts =3D { + CPU_CFG_OFFSET(ext_zicsr), + CPU_CFG_OFFSET(ext_zifencei), + + RISCV_IMPLIED_EXTS_RULE_END + }, +}; + static RISCVCPUImpliedExtsRule ZCB_IMPLIED =3D { .ext =3D CPU_CFG_OFFSET(ext_zcb), .implied_multi_exts =3D { @@ -2634,7 +2646,7 @@ static RISCVCPUImpliedExtsRule ZVFBFA_IMPLIED =3D { =20 RISCVCPUImpliedExtsRule *riscv_misa_ext_implied_rules[] =3D { &RVA_IMPLIED, &RVD_IMPLIED, &RVF_IMPLIED, - &RVM_IMPLIED, &RVV_IMPLIED, NULL + &RVM_IMPLIED, &RVV_IMPLIED, &RVG_IMPLIED, NULL }; =20 RISCVCPUImpliedExtsRule *riscv_multi_ext_implied_rules[] =3D { diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index f3f78088956..840ef82350d 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -532,46 +532,6 @@ static void riscv_cpu_update_named_features(RISCVCPU *= cpu) cpu->cfg.ext_ziccrse =3D cpu->cfg.has_priv_1_11; } =20 -static void riscv_cpu_validate_g(RISCVCPU *cpu) -{ - const char *warn_msg =3D "RVG mandates disabled extension %s"; - uint32_t g_misa_bits[] =3D {RVI, RVM, RVA, RVF, RVD}; - bool send_warn =3D cpu_misa_ext_is_user_set(RVG); - - for (int i =3D 0; i < ARRAY_SIZE(g_misa_bits); i++) { - uint32_t bit =3D g_misa_bits[i]; - - if (riscv_has_ext(&cpu->env, bit)) { - continue; - } - - if (!cpu_misa_ext_is_user_set(bit)) { - riscv_cpu_write_misa_bit(cpu, bit, true); - continue; - } - - if (send_warn) { - warn_report(warn_msg, riscv_get_misa_ext_name(bit)); - } - } - - if (!cpu->cfg.ext_zicsr) { - if (!cpu_cfg_ext_is_user_set(CPU_CFG_OFFSET(ext_zicsr))) { - cpu->cfg.ext_zicsr =3D true; - } else if (send_warn) { - warn_report(warn_msg, "zicsr"); - } - } - - if (!cpu->cfg.ext_zifencei) { - if (!cpu_cfg_ext_is_user_set(CPU_CFG_OFFSET(ext_zifencei))) { - cpu->cfg.ext_zifencei =3D true; - } else if (send_warn) { - warn_report(warn_msg, "zifencei"); - } - } -} - static void riscv_cpu_validate_b(RISCVCPU *cpu) { const char *warn_msg =3D "RVB mandates disabled extension %s"; @@ -611,10 +571,6 @@ void riscv_cpu_validate_set_extensions(RISCVCPU *cpu, = Error **errp) CPURISCVState *env =3D &cpu->env; Error *local_err =3D NULL; =20 - if (riscv_has_ext(env, RVG)) { - riscv_cpu_validate_g(cpu); - } - if (riscv_has_ext(env, RVB)) { riscv_cpu_validate_b(cpu); } --=20 2.43.0 From nobody Tue Apr 21 14:38:43 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=1776757384; cv=none; d=zohomail.com; s=zohoarc; b=gKsvPi1vsoa7cHRHLil2+mn2hifiEXjEAxQ8J7Kd6W8Kmr0YyY+keXO8Aa1B6/l3/XcoOtBE9WjnA0BHbqthJZyJYQ6q2+Da6slC1Me1QVniefZQQ2wToO3e32xj7sAlziFBdSFzqJvQLskNRTcs8hubEhdQD0jwaWL8Xc2kQrU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776757384; 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=+wnpLM1zgV9lQHEBMJ3HvQ/dnk60Wn5Ah4/Bdh1qDj0=; b=kVQtEirhweA+nQ1OD9K5e2CrDTZ5aq1iS0XaKJbFKqfC3CQy+IC/j4bRs3EgAc48F2W4VQlLYneuvpXJdLr1PcU5iRkrSX7zHBbVceyC2zX9fXOkkjf3TO2ZAiW4zCMU5uUNAFYcD+75rDCOu1WXzqEBszLxvyDjAdRm5d/Ilts= 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 1776757384517949.022749753057; Tue, 21 Apr 2026 00:43:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wF5kU-00013C-33; Tue, 21 Apr 2026 03:42: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 1wF5kR-00012A-Ub for qemu-devel@nongnu.org; Tue, 21 Apr 2026 03:42:19 -0400 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wF5kQ-0004Il-4s for qemu-devel@nongnu.org; Tue, 21 Apr 2026 03:42:19 -0400 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-2aaf43014d0so24026975ad.2 for ; Tue, 21 Apr 2026 00:42:17 -0700 (PDT) Received: from hsinchu16.internal.sifive.com ([210.176.154.34]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b5fa9ff918sm133191675ad.13.2026.04.21.00.42.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Apr 2026 00:42:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1776757336; x=1777362136; 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=+wnpLM1zgV9lQHEBMJ3HvQ/dnk60Wn5Ah4/Bdh1qDj0=; b=kdoVf6AmJJLvadwYOKrtNOZIqVatnicoD+U+SgX+D1UeVf4UsxCsZgasTy7B/Uv8qj AHF6rtbnwo17hB0usGME+jpbo1C6kRfyi+Tj6S18dqmh+GAnx5we/iphEM9o1TG4jaQr HFEbb3Rgh/4OkEu6lL3DyzCRWAPGkJoJHjaKN7K3wFw1teyUltaRXWP462ahnd6ZPvRR igRwPWobwnBCqzh3USMYtPFCynEWB3uiZMQ2ByVzj3B8RSnAVzs4Ue3ihXduzSkfP4hd HQQywOx3ghtZLWyTEXPXbVYVFr/eQIIQ8Wn32063SS2w6OgQm4rlE0tp+Jwz30FQgzQW 1myg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776757336; x=1777362136; 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=+wnpLM1zgV9lQHEBMJ3HvQ/dnk60Wn5Ah4/Bdh1qDj0=; b=HjXVEghlvf5Yqp1P0Ql0fZoVDJ5ec5TXQ6gruF7/0FR0fOk6Pq8mvZAP5anlttUv73 naIC5FmL1njc8TgEmSEGI9EZwwbrrJoqhgC9bZSJyBSt7lkaGRwr4k8FuPlD8ZczYqVu maiWPPa8beaF3lwTO8D8eVW/Z1LCwqtbX/gElP5Zl+f9sgyzBlrEXI4OelBNg1NL1iDo OStDZ34FDfy0mW2exrEPVYOnnAWEOPNbQSOG+hTz15CM/xFeD80vDELJFrKkt3xkihfA /OS1Oyj/HG8SPPaFrfIDZlhDkr6nKdtEM3vxlTtHPb3W8o9+fkn2YLx2CG2nsKZRPh4M tV7A== X-Gm-Message-State: AOJu0Yy/ppF4rWJuEbNxj4wVhdpBnDzft9//E1Arf3MpfCnauwelgHOn SGMieCEB2fQYrGtI8fumtXmJpgJYNj1WQLKlS+jmGvnyxnB26ro0At9cMRB56kBjH9rYK5pUopS vY+0QcXndh9HpzbthimqslTyIW1VNMSRrMOra3tfbmmbDjqF283SxrFwYdljjiOG3KSQsZUDvUU POh0ci8cZlixJTRSJ6Vz6IvIvLR++VWaptTc8DtY5VlSzkpJ2b X-Gm-Gg: AeBDievLZ64phB8iIOdemw3PzAqe3M//K2xqnuxNSn+wp3uAXe2oITRPtYWjXf3qbGB wQ/4yodMgKVJeOBQDBmgbquXtgvmEp23TPLnbcMkxuP27P1rHG0Wo6QvPcCXemvd38vlM04rfQL 74eGnaNXNXWUnWVWnHr26DIlBsJVXwwOEABoZbxIQXkuIyxXJDJ0sGRkYdP6+iey9DG3Q85cJcI tcPnZ1lVabrYSYzH0yK0F3Vs9dRUL5YruamKG/8sz1km0ZhwECYDXvPcHTlFgVTZ2J5DeXDWIjN B3wBQgifVcn772XhPu7U4bIR3otovwPPIC3weEXQ0mwefC4TuDxiHff096NJ5D8mEsCfj+K6ZLK 1+T3DKeKWezcXpF+KKOkGQX6IZA2YK5QLJvJ9GVWXQC08Sgyft0LpaS5tYfI7I4dpMg1XeA1DJG PjN7B2RKV66osZUBtbFoXrncXdjljynpNE2h5YtdLJX0Ae4AnUQdGjYPfQgJXX X-Received: by 2002:a17:903:17cf:b0:2b0:52b7:e82 with SMTP id d9443c01a7336-2b5f9ed031amr171109405ad.16.1776757335872; Tue, 21 Apr 2026 00:42:15 -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 , Jerry Zhang Jian , Jim Shu , Daniel Henrique Barboza Subject: [PATCH v2 2/2] target/riscv: Add standard B extension implied rule Date: Tue, 21 Apr 2026 15:42:04 +0800 Message-ID: <20260421074204.2908422-3-frank.chang@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260421074204.2908422-1-frank.chang@sifive.com> References: <20260421074204.2908422-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::62f; envelope-from=frank.chang@sifive.com; helo=mail-pl1-x62f.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: 1776757386400158500 Content-Type: text/plain; charset="utf-8" From: Frank Chang Add the missing implied rule for standard B extension. Standard B extension implies Zba, Zbb, Zbs extensions. riscv_cpu_validate_b() is also removed as Zba, Zbb, Zbs extensions can be enabled by the implied rule. RISC-V B spec: https://github.com/riscv/riscv-b Reviewed-by: Jerry Zhang Jian Reviewed-by: Jim Shu Reviewed-by: Alistair Francis Reviewed-by: Daniel Henrique Barboza Signed-off-by: Frank Chang --- target/riscv/cpu.c | 14 +++++++++++++- target/riscv/tcg/tcg-cpu.c | 33 --------------------------------- 2 files changed, 13 insertions(+), 34 deletions(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 7978b4fad43..37a328f2df7 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -2259,6 +2259,17 @@ static RISCVCPUImpliedExtsRule RVG_IMPLIED =3D { }, }; =20 +static RISCVCPUImpliedExtsRule RVB_IMPLIED =3D { + .is_misa =3D true, + .ext =3D RVB, + .implied_multi_exts =3D { + CPU_CFG_OFFSET(ext_zba), CPU_CFG_OFFSET(ext_zbb), + CPU_CFG_OFFSET(ext_zbs), + + RISCV_IMPLIED_EXTS_RULE_END + }, +}; + static RISCVCPUImpliedExtsRule ZCB_IMPLIED =3D { .ext =3D CPU_CFG_OFFSET(ext_zcb), .implied_multi_exts =3D { @@ -2646,7 +2657,8 @@ static RISCVCPUImpliedExtsRule ZVFBFA_IMPLIED =3D { =20 RISCVCPUImpliedExtsRule *riscv_misa_ext_implied_rules[] =3D { &RVA_IMPLIED, &RVD_IMPLIED, &RVF_IMPLIED, - &RVM_IMPLIED, &RVV_IMPLIED, &RVG_IMPLIED, NULL + &RVM_IMPLIED, &RVV_IMPLIED, &RVG_IMPLIED, + &RVB_IMPLIED, NULL }; =20 RISCVCPUImpliedExtsRule *riscv_multi_ext_implied_rules[] =3D { diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index 840ef82350d..7255f73f5a2 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -532,35 +532,6 @@ static void riscv_cpu_update_named_features(RISCVCPU *= cpu) cpu->cfg.ext_ziccrse =3D cpu->cfg.has_priv_1_11; } =20 -static void riscv_cpu_validate_b(RISCVCPU *cpu) -{ - const char *warn_msg =3D "RVB mandates disabled extension %s"; - - if (!cpu->cfg.ext_zba) { - if (!cpu_cfg_ext_is_user_set(CPU_CFG_OFFSET(ext_zba))) { - cpu->cfg.ext_zba =3D true; - } else { - warn_report(warn_msg, "zba"); - } - } - - if (!cpu->cfg.ext_zbb) { - if (!cpu_cfg_ext_is_user_set(CPU_CFG_OFFSET(ext_zbb))) { - cpu->cfg.ext_zbb =3D true; - } else { - warn_report(warn_msg, "zbb"); - } - } - - if (!cpu->cfg.ext_zbs) { - if (!cpu_cfg_ext_is_user_set(CPU_CFG_OFFSET(ext_zbs))) { - cpu->cfg.ext_zbs =3D true; - } else { - warn_report(warn_msg, "zbs"); - } - } -} - /* * Check consistency between chosen extensions while setting * cpu->cfg accordingly. @@ -571,10 +542,6 @@ void riscv_cpu_validate_set_extensions(RISCVCPU *cpu, = Error **errp) CPURISCVState *env =3D &cpu->env; Error *local_err =3D NULL; =20 - if (riscv_has_ext(env, RVB)) { - riscv_cpu_validate_b(cpu); - } - if (riscv_has_ext(env, RVI) && riscv_has_ext(env, RVE)) { error_setg(errp, "I and E extensions are incompatible"); --=20 2.43.0