From nobody Wed May 1 07:09:38 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 ARC-Seal: i=1; a=rsa-sha256; t=1616280001; cv=none; d=zohomail.com; s=zohoarc; b=W1iC+ochcO3c6KLlIjIY/fm0B2iE1QcJiH239v/NVI4iC7cIWsVG7GBAQ0bkd3c0RXWAubQIFjWrRGQe2izP39OuELiXY8mr+dganj9oMLPIPXprozw8+OpsrQe4JZsKop4Rj+1Gazht+idulqqNT7hUrK+bV+EpDiWvFm+kluI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1616280001; h=Content-Type:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=MuZsC09U+VY9GwA/y0/AzZl7558OBolSifrZRsKUy+E=; b=DTsDXHjoJWYO63BIkEXPXEh7hxoC8XIGPUrg2AgO2HVhQQ1fjVnwMj/uq1a1Gq4bzj7UIT/lh3OR3SUhdm7zCtO4QFk+Q8ByBU3EzKbWfAbefWbvSQ+Gz0Ek+Ik5VeMGL7VnsAUNRErpdaOv+6NWCTJohkp6zobjjAJXFy1Gcg8= ARC-Authentication-Results: i=1; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1616280001038936.6001550819718; Sat, 20 Mar 2021 15:40:01 -0700 (PDT) Received: from localhost ([::1]:37924 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lNkGG-0006sb-0q for importer@patchew.org; Sat, 20 Mar 2021 18:40:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43418) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lNkEs-00063J-Uw for qemu-devel@nongnu.org; Sat, 20 Mar 2021 18:38:34 -0400 Received: from os.inf.tu-dresden.de ([141.76.48.99]:43104) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lNkEr-00085l-58 for qemu-devel@nongnu.org; Sat, 20 Mar 2021 18:38:34 -0400 Received: from erwin.inf.tu-dresden.de ([141.76.48.80] helo=os.inf.tu-dresden.de) by os.inf.tu-dresden.de with esmtps (TLS1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.94) id 1lNkEn-0007wO-Ba; Sat, 20 Mar 2021 23:38:29 +0100 Date: Sat, 20 Mar 2021 23:38:26 +0100 From: Adam Lackorzynski To: qemu-devel@nongnu.org Subject: Arm: VFP regression Message-ID: MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/2.0.5 (2021-01-21) 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: none client-ip=141.76.48.99; envelope-from=adam@l4re.org; helo=os.inf.tu-dresden.de X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_NONE=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: , Cc: Peter Maydell , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Hi, I'm seeing a regression in Arm's vfp handling, giving an undefined instruction when reading mvfr1 in PL2/armv7 although the FPU is enabled. The following makes it work again for me, however this just looks like a band-aid. Thanks for taking a look. Adam diff --git a/target/arm/translate-vfp.c.inc b/target/arm/translate-vfp.c.inc index 10766f210c..37c079fab1 100644 --- a/target/arm/translate-vfp.c.inc +++ b/target/arm/translate-vfp.c.inc @@ -120,7 +120,7 @@ static void gen_preserve_fp_state(DisasContext *s) */ static bool full_vfp_access_check(DisasContext *s, bool ignore_vfp_enabled) { - if (s->fp_excp_el) { + if (s->fp_excp_el && !ignore_vfp_enabled) { /* M-profile handled this earlier, in disas_m_nocp() */ assert (!arm_dc_feature(s, ARM_FEATURE_M)); gen_exception_insn(s, s->pc_curr, EXCP_UDEF,