From nobody Thu Oct 2 03:24:58 2025 Delivered-To: importer@patchew.org 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; Authentication-Results: mx.zohomail.com; dkim=fail; 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 ARC-Seal: i=1; a=rsa-sha256; t=1584440417; cv=none; d=zohomail.com; s=zohoarc; b=RO1bMfIRKiE2V3UEmzEpUwWmT6JDji9e4gfDYHqRqaG+Gf+qVf68XqM4q/YgstsGHtFbmF5Gbfhk2UsF+K0s8fxzeBgXV6WTDOIG6SS0ezZsDCHoZT9b/ej+AprllZgVmuDBTiQ9I/Tn+H1a7XpoczV9ttTNE7KChcgMl+Y7FwI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584440417; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=zHDfFonk8LVeS6JDcch0W+bR7raOE/e/sbssLHoEPG8=; b=jkHQUp+9C0WPR9kvE1otRCDNXo4xmbIqChfBuwx2v8JBnzL0cuD1dQC/BjQR32jN560RwwrrrHo8BBsqX8KFQLVB6qVQq3VGmUq5nZeitQd2SaCw7m1Vaud6QEAZhW2Nk7PqoBNiob8UKbYTNOHpciZd+/mwpdDjK+ur6nmeT+k= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 158444041748590.57268422022173; Tue, 17 Mar 2020 03:20:17 -0700 (PDT) Received: from localhost ([::1]:55784 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jE9Ka-0003ur-91 for importer@patchew.org; Tue, 17 Mar 2020 06:20:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45360) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jE95l-00016V-8M for qemu-devel@nongnu.org; Tue, 17 Mar 2020 06:05:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jE95h-0002mt-Tt for qemu-devel@nongnu.org; Tue, 17 Mar 2020 06:04:57 -0400 Received: from ozlabs.org ([203.11.71.1]:36463) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jE95h-0001uZ-EG; Tue, 17 Mar 2020 06:04:53 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 48hTKw4VWVz9sSw; Tue, 17 Mar 2020 21:04:36 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1584439476; bh=88kztm91h2bkC3afsiHERGe38CDEWroGsrNUk9qctec=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ojU1y/fVAWoS4lnWaBx1VTEhLTVmaM09uEABtCO7JqcCp5mGdD8M+CqZCtf6tbrAy cAKdZtwpWJysdNDonAcXVr3rVSPTfvCF73BGPQ9ljgRh5qTSctQMPEsF6m6XwQxVtK JYPTi/TirxwbxTnzrHa2/caKeH67CpT8Z+GDVLGM= From: David Gibson To: peter.maydell@linaro.org Subject: [PULL 15/45] target/ppc: Only calculate RMLS derived RMA limit on demand Date: Tue, 17 Mar 2020 21:03:53 +1100 Message-Id: <20200317100423.622643-16-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200317100423.622643-1-david@gibson.dropbear.id.au> References: <20200317100423.622643-1-david@gibson.dropbear.id.au> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 203.11.71.1 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: , Cc: lvivier@redhat.com, aik@ozlabs.ru, mdroth@linux.vnet.ibm.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, clg@kaod.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" When the LPCR is written, we update the env->rmls field with the RMA limit it implies. Simplify things by just calculating the value directly from the LPCR value when we need it. It's possible this is a little slower, but it's unlikely to be significant, since this is only for real mode accesses in a translation configuration that's not used very often, and the whole thing is behind the qemu TLB anyway. Therefore, keeping the number of state variables down and not having to worry about making sure it's always in sync seems the better option. Signed-off-by: David Gibson Reviewed-by: Greg Kurz Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/ppc/cpu.h | 1 - target/ppc/mmu-hash64.c | 9 ++++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h index 8077fdb068..f9871b1233 100644 --- a/target/ppc/cpu.h +++ b/target/ppc/cpu.h @@ -1046,7 +1046,6 @@ struct CPUPPCState { uint64_t insns_flags2; #if defined(TARGET_PPC64) ppc_slb_t vrma_slb; - target_ulong rmls; #endif =20 int error_code; diff --git a/target/ppc/mmu-hash64.c b/target/ppc/mmu-hash64.c index fcccaabb88..4fd7b7ee74 100644 --- a/target/ppc/mmu-hash64.c +++ b/target/ppc/mmu-hash64.c @@ -837,8 +837,10 @@ int ppc_hash64_handle_mmu_fault(PowerPCCPU *cpu, vaddr= eaddr, =20 goto skip_slb_search; } else { + target_ulong limit =3D rmls_limit(cpu); + /* Emulated old-style RMO mode, bounds check against RMLS */ - if (raddr >=3D env->rmls) { + if (raddr >=3D limit) { if (rwx =3D=3D 2) { ppc_hash64_set_isi(cs, SRR1_PROTFAULT); } else { @@ -1000,8 +1002,10 @@ hwaddr ppc_hash64_get_phys_page_debug(PowerPCCPU *cp= u, target_ulong addr) return -1; } } else { + target_ulong limit =3D rmls_limit(cpu); + /* Emulated old-style RMO mode, bounds check against RMLS */ - if (raddr >=3D env->rmls) { + if (raddr >=3D limit) { return -1; } return raddr | env->spr[SPR_RMOR]; @@ -1091,7 +1095,6 @@ void ppc_store_lpcr(PowerPCCPU *cpu, target_ulong val) CPUPPCState *env =3D &cpu->env; =20 env->spr[SPR_LPCR] =3D val & pcc->lpcr_mask; - env->rmls =3D rmls_limit(cpu); ppc_hash64_update_vrma(cpu); } =20 --=20 2.24.1