From patchwork Tue Oct 22 13:31:12 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 177184 Delivered-To: patch@linaro.org Received: by 2002:a92:409a:0:0:0:0:0 with SMTP id d26csp4896755ill; Tue, 22 Oct 2019 06:53:57 -0700 (PDT) X-Google-Smtp-Source: APXvYqwXmNL2LXIsK5R1Y+LgR7q6iurUUFsZCSpt6kZd3Mz3P5c0YkdAydATf1are7xzat8zkoZs X-Received: by 2002:a05:620a:2099:: with SMTP id e25mr3121260qka.84.1571752437649; Tue, 22 Oct 2019 06:53:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571752437; cv=none; d=google.com; s=arc-20160816; b=tjbeWizS5ihYzQausBV9CJWo/nRSt1+jVSllG/ltGlS+WwEgvsc5SBERzvwVKxu78N PhILLel5rUaG77OwGTG5R53jCt5L+JRo8ZzZ6M0jOcbvijrjzTVEyWrlZMSHGgJ0MQEx VnsYLoV09mCgEWtTHFdic63+kSdkiA4hZq7hcPS2KAooP62J+qkkr2i+YlcWJQnrvRv2 qMIbkUcMdQ86MOd7oNGENUbMK6Y6EkhsnNu2beadT0RAY7+2d1NslsFNjWqnqFNWnFCK p1UZZp8rGVKepKxoHSmYsyD7rB37Np3lXZYXr9ZENZy5nVnjYww08XjD4InNTRfPUdI2 Q7bA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=QWlvz9xoCtL9FPUpzDpAooVc9XHZ3LGO0EPWiVhUPtw=; b=nL40vkCA2MTnucA0I3KcDv7JQsCtKqiMLXjH0+oTnWtFBOzQYAAfDbrRrWD53+A9uc YnbIpaHhv+2MBPSKkZZ2PcuuZu3i4kjXMTmiySQGixnKFnUGZ6p1KSnqr+RyTwMhp+pj icUCJNT45vL0xoUR3xwshde3l7qa2XYelhNv0XweIUaeoTXxcdguX44ehEIYH1mZm9pz SQL+kxRCqrX12LjlcQl4h8LnA7BR2PZ0kQr5Wok9Def3iZ/Yemq4rlDEW4RnHLpBO9In CMbZacThWrtTGy5BK0i68cNmLJ+y/isbZ8fOqrQSSoQEzZfXHGLa4aZjzWLaQ0waFcSi dOBA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=l4uahlPp; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id o18si4159147qtf.285.2019.10.22.06.53.57 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 22 Oct 2019 06:53:57 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=l4uahlPp; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:57798 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iMubk-0002xI-Jc for patch@linaro.org; Tue, 22 Oct 2019 09:53:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36865) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iMuGw-0002qN-Kt for qemu-devel@nongnu.org; Tue, 22 Oct 2019 09:32:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iMuGv-0001MJ-Ee for qemu-devel@nongnu.org; Tue, 22 Oct 2019 09:32:26 -0400 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]:35171) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iMuGv-0001M6-8b for qemu-devel@nongnu.org; Tue, 22 Oct 2019 09:32:25 -0400 Received: by mail-wm1-x342.google.com with SMTP id v9so267854wml.0 for ; Tue, 22 Oct 2019 06:32:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=QWlvz9xoCtL9FPUpzDpAooVc9XHZ3LGO0EPWiVhUPtw=; b=l4uahlPp3p+6sqjOpsjWFo/nUVlBGKvgkXX7b0oZR3CqIvIKYkMmKsIbkvFIzaXOBe cv+hMiQU92mvARh+vjCOa1a8lW/qpGU//wz2FIp3sJLJoW6isWLIV7ke2Uq23vuKetc9 4fBUEWS8SG8SbCif4UfuTs5QbccB9hROSuAZ9OO1JWtoZJ00O9e3SFuPh8SZxWiXdc8Y KuXoo6mXDcka/CpvBy5FgMUI4c4FGggryVo3Ctn7ASEEupHKLAl9GC7B5EqTxqEzXyU8 51t9JVhx29Mw3DntCfMRFIggA3bss9CvdM6zlKg0UUdpUjA9mqmKvzu00dCxOl2vWekK DvfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=QWlvz9xoCtL9FPUpzDpAooVc9XHZ3LGO0EPWiVhUPtw=; b=qBlf6ZdiIac4mGE0P4Y4JzZvZPhKdKF1TxpX6dNMZe7BAwaFgIuIBo8roYlp1emaRr eHI9oKABKFHshmGnIDekRCuGkbxAktqyMlZ9hhJSMOF6SE9SvW7VqUpNnQzK8M53EkOM ZmQjQMMyyCunZiUO6zRwst+kH2KmeBHnBRf+BWjYW2VraKKI/Mo4u4Iqd5PNfqBbn640 vaEmv2FowhSXNCmAGEAS+f8+/zYmOvnvwIfjsTVqHkqv81Y87moEGtsZVZd3ZfG9VNEz D7Jf8VdLItB0pdKNlWIbtnfLzOeMLH1KYUy+wUTJFO/N2RSfQpJNbEiSbH3Hfn75+HGV +R9A== X-Gm-Message-State: APjAAAVFiRnwQSnk5UZ3hUNA0ubnh1gdn6vkcnBOrnTpgZ5ShyLXCjMG vfh0IalxWz/rO3ZuMhojnSPrSgQHc0w= X-Received: by 2002:a05:600c:28d:: with SMTP id 13mr3288572wmk.100.1571751143281; Tue, 22 Oct 2019 06:32:23 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id r2sm20263856wma.1.2019.10.22.06.32.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Oct 2019 06:32:21 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 19/41] target/arm: Hoist XSCALE_CPAR, VECLEN, VECSTRIDE in cpu_get_tb_cpu_state Date: Tue, 22 Oct 2019 14:31:12 +0100 Message-Id: <20191022133134.14487-20-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191022133134.14487-1-peter.maydell@linaro.org> References: <20191022133134.14487-1-peter.maydell@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::342 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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Richard Henderson We do not need to compute any of these values for M-profile. Further, XSCALE_CPAR overlaps VECSTRIDE so obviously the two sets must be mutually exclusive. Reviewed-by: Alex Bennée Signed-off-by: Richard Henderson Message-id: 20191018174431.1784-10-richard.henderson@linaro.org Signed-off-by: Peter Maydell --- target/arm/helper.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) -- 2.20.1 diff --git a/target/arm/helper.c b/target/arm/helper.c index ddd21edfcf1..e2a62cf19a0 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -11235,21 +11235,28 @@ void cpu_get_tb_cpu_state(CPUARMState *env, target_ulong *pc, } } else { flags = rebuild_hflags_a32(env, fp_el, mmu_idx); + + /* + * Note that XSCALE_CPAR shares bits with VECSTRIDE. + * Note that VECLEN+VECSTRIDE are RES0 for M-profile. + */ + if (arm_feature(env, ARM_FEATURE_XSCALE)) { + flags = FIELD_DP32(flags, TBFLAG_A32, + XSCALE_CPAR, env->cp15.c15_cpar); + } else { + flags = FIELD_DP32(flags, TBFLAG_A32, VECLEN, + env->vfp.vec_len); + flags = FIELD_DP32(flags, TBFLAG_A32, VECSTRIDE, + env->vfp.vec_stride); + } } flags = FIELD_DP32(flags, TBFLAG_A32, THUMB, env->thumb); - flags = FIELD_DP32(flags, TBFLAG_A32, VECLEN, env->vfp.vec_len); - flags = FIELD_DP32(flags, TBFLAG_A32, VECSTRIDE, env->vfp.vec_stride); flags = FIELD_DP32(flags, TBFLAG_A32, CONDEXEC, env->condexec_bits); if (env->vfp.xregs[ARM_VFP_FPEXC] & (1 << 30) || arm_el_is_aa64(env, 1) || arm_feature(env, ARM_FEATURE_M)) { flags = FIELD_DP32(flags, TBFLAG_A32, VFPEN, 1); } - /* Note that XSCALE_CPAR shares bits with VECSTRIDE */ - if (arm_feature(env, ARM_FEATURE_XSCALE)) { - flags = FIELD_DP32(flags, TBFLAG_A32, - XSCALE_CPAR, env->cp15.c15_cpar); - } } /* The SS_ACTIVE and PSTATE_SS bits correspond to the state machine