From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592912442; cv=none; d=zohomail.com; s=zohoarc; b=DuG/e78jWV4HCil8nFg3Wa+FM9Gm1mvpfKw1V9nA6jwRrJP58dpTs4MTSe1N2tuJk/mL+8gOZSAAiSYJ0VwpuqZw+iyoGXpil9RZm60NBMEK91efSW9R0BgiCmNXJhKoINxFND7NHfFgJCh68fXHrDtFNEzWr8EhUHV4SVpTolA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592912442; h=Content-Transfer-Encoding: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=e3yZlBX9xNiG28mBJ+uBjbIqL32jKJprQAQLqWGSi0A=; b=kFyQgJR1slNn4unSiS8GmnOIui8hBiPINBwYSCTVlDkX9FnIeo733guYvHEiizrELGd6eSA0Zp0LI/YAUVp6tGIO/E5rYiouPCSQuqDIMuUvAPwrH0Mu9FVvV4V//sgs75AoFsjXAERWnChWOLvhPI5SUceKi6WHEj8D98p3l1E= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592912442747611.287683239047; Tue, 23 Jun 2020 04:40:42 -0700 (PDT) Received: from localhost ([::1]:57824 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhI9-00045j-8k for importer@patchew.org; Tue, 23 Jun 2020 07:40:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43770) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhGi-0002H1-Op for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:12 -0400 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]:37985) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhGg-00032s-Cq for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:12 -0400 Received: by mail-wm1-x335.google.com with SMTP id f18so2852072wml.3 for ; Tue, 23 Jun 2020 04:39:10 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:07 -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=e3yZlBX9xNiG28mBJ+uBjbIqL32jKJprQAQLqWGSi0A=; b=VWuJXmrqw5jLLWYk1lXl9ByPaFD/NRv9X7Xadp3Hzi8ZQBz3mPe4r+JFKlsDYpgCsz 1HP1bKaxXNVTCJn1fyw5ru0AxaeZASByNijBWrHhe4fnHVHZwAYbXgGE22COfgL/BPvD KvU9w2F5DhWO7qVMrqWbscf8uJ7Dg3oRousyncgy7TGV6AGCJ5LaBWIDcnObV1ZESb3h 2yt/CKzYV3Vnfp5KGCQ81eILjhswDLbRzoZF1VCCiqOntMzIfxg4zfQ9qcNwCOQgeog7 qxTwFa15UyijDPzxkEU5wzJopwq4pkP4h2UHnOMK/uZkuTaEZtXG+q8auDNjpn1LfrP7 QpnA== 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=e3yZlBX9xNiG28mBJ+uBjbIqL32jKJprQAQLqWGSi0A=; b=rBDauGkPqpojmwDcIrinHuivdn0Kc+Y4rwhLpMGbF+CKUPUWgyJYIfk1H4iEdnb+lw rcpTHOk6k8CEt8VSUOl5rjmYgusH0VshOwbxpIJy/hsBqA5g9STjLzqDPKB7q9GxsXTX qK9WUmg4UCfq+uUViDKoTZtvUsnDUOfxOz2MyTJ82qWM3TvSXZUD//ImRDukwI0AUMkx WXF+5gpAEOa9R547YeAMOYExSE8Qo2Wj0WHB20pUJ+JmS9elsmgIbdPkDzj6Am9x8EDb LyhpVUk1HUQUicRKYTXoj809CHbBtB1PujUkkgFXscazK6pbSvwfQ/K9EPQX7jcAXHYg pETw== X-Gm-Message-State: AOAM531f44W1Msoas31p2LOXzLG2xBMEXfg1c6UnxdAsQDjl9b/hgaht 6lYCrStOATC3jy/4h+N6pfcSo045Wg2hWw== X-Google-Smtp-Source: ABdhPJxIaUycr491S7rgBlTgZKK1cO6pzvKeF0E4BO5MooNaF1yLcojznUKRJ/UdIX2QOCFgVLs4XQ== X-Received: by 2002:a05:600c:c1:: with SMTP id u1mr9086839wmm.48.1592912347866; Tue, 23 Jun 2020 04:39:07 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 01/42] hw/arm/virt: Add 5.0 HW compat props Date: Tue, 23 Jun 2020 12:38:23 +0100 Message-Id: <20200623113904.28805-2-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::335; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x335.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" From: Andrew Jones Cc: Cornelia Huck Signed-off-by: Andrew Jones Reviewed-by: Cornelia Huck Message-id: 20200616140803.25515-1-drjones@redhat.com Signed-off-by: Peter Maydell --- hw/arm/virt.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/arm/virt.c b/hw/arm/virt.c index caceb1e4a05..8b6e6aa7b13 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -2375,6 +2375,7 @@ DEFINE_VIRT_MACHINE_AS_LATEST(5, 1) static void virt_machine_5_0_options(MachineClass *mc) { virt_machine_5_1_options(mc); + compat_props_add(mc->compat_props, hw_compat_5_0, hw_compat_5_0_len); } DEFINE_VIRT_MACHINE(5, 0) =20 --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592912442; cv=none; d=zohomail.com; s=zohoarc; b=Wst3WZ+GL1DuC+OPiM2/BqSr1GsIVOSmTUm5d9cX4iOrpDf8Ra9wAQgo0zp+BHO+1XQTrKD0x/Iop2MB0sJcOU5owm86gf4E8Hh3ZPDm6RZqCe4zmO0FLWgbnUUNe52Z4Hc27EGMGbTU7nyfwCioXXesBo/nWdp/VAsISvDzg9I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592912442; h=Content-Transfer-Encoding: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=e266PxlxI12WIYe2b81DHcJwXbjmet15CRZzovOJKkQ=; b=Au0sCmIK4hv9jWrxqmKBRPxuGb7Nf/dOWVBUHU5bjEuimlhCCxSnYvgzILwhsk14B1jICyIQIvzPrAKfZcQdcqn/K52WBzenB2OFsHVR+uqhlD9E87nNZ9Dz74KzSefmqnM1tekhhijvF1VJKZd35YqRCK8VYCPlwHdOSqCk1t8= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 159291244276827.34078019063645; Tue, 23 Jun 2020 04:40:42 -0700 (PDT) Received: from localhost ([::1]:57798 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhI9-00045F-Ax for importer@patchew.org; Tue, 23 Jun 2020 07:40:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43750) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhGh-0002Gh-Tq for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:11 -0400 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]:33273) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhGg-00034F-D2 for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:11 -0400 Received: by mail-wm1-x335.google.com with SMTP id a6so2054015wmm.0 for ; Tue, 23 Jun 2020 04:39:10 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:08 -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=e266PxlxI12WIYe2b81DHcJwXbjmet15CRZzovOJKkQ=; b=J4xoYTT80RBlY5T0MCRlP3aAe884iA1hWTOX8NckEEk5skPw5XVJ2yH/A8o9cuzCrN BsOfxxoVTDwQ7jLQeGRaRJWVtB9/IhyINRDxldb1Tzzb5azk+nrd71d+KkpnIEXvnfMG D2G466I3n2TpVHYtOEb3iJ0P9K4on4egQK1jNZhDR4i/WQPVV2y2L07CyykQvB637X8j nIrgoKtpUYIM+RdSYPLJe6FhF5DRqVzAzlXeaeVRRROb3/uoopJ50qCbOr64g4eDxOLm U4vXg8LKqAWHw70OMJAazkrUNzkw5CNnuffBmP3OwqtZ9UTeAatRI573em3nO+PdeLfk o7nA== 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=e266PxlxI12WIYe2b81DHcJwXbjmet15CRZzovOJKkQ=; b=BLcHSMV6K+T0ejT3kKbh2JGOUkA9EWZrTX/hE447gZzdf4Wl9oVXJYQ0SNyBLIuUO8 3yMimxBz06XA14sctCY/WUEyPzpNIHAXgw9kxsLVNxGCc1k22TC8jQAbHCBDJKfMQVWx 5xgE4opXYqy8VS9QJuvnnoakQb1iiyobv3eyfvrKgqh7RhpLYISILh6UMsR1g5tSiVzy 5wAnGbKGZnj5UwLPIwwwEOlBvqAevHZzmOgvdFfHC1M91Z7vWQgO8wVEtESXS7c/htOc dvI01tpEi0oUsPfgmpf0CEtI8dxyQfzlxqSOmJvo5g4MiDJdNAdb7QIBhNXS9PqLa52h iJYw== X-Gm-Message-State: AOAM531VMSYYWsgXlME9FC5A8gDm/ntMZ3KEzr73fqAyInrzmNy32xSq Hxxf0dAAJL3870qB3ZoIOGw/wxYLgst5Qw== X-Google-Smtp-Source: ABdhPJyI0c+Rhc2M5a2pdRs+oP/rdDLkVkaPCX4Zl/0SQQCDZcCe9fN5/Y+7ItNGGfCG6+A+P68TCQ== X-Received: by 2002:a7b:cd90:: with SMTP id y16mr16341769wmj.20.1592912348879; Tue, 23 Jun 2020 04:39:08 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 02/42] util/oslib-posix : qemu_init_exec_dir implementation for Mac Date: Tue, 23 Jun 2020 12:38:24 +0100 Message-Id: <20200623113904.28805-3-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::335; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x335.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" From: David CARLIER From 3025a0ce3fdf7d3559fc35a52c659f635f5c750c Mon Sep 17 00:00:00 2001 From: David Carlier Date: Tue, 26 May 2020 21:35:27 +0100 Subject: [PATCH] util/oslib-posix : qemu_init_exec_dir implementation for M= ac Using dyld API to get the full path of the current process. Signed-off-by: David Carlier Message-id: CA+XhMqxwC10XHVs4Z-JfE0-WLAU3ztDuU9QKVi31mjr59HWCxg@mail.gmail.= com Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- util/oslib-posix.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/util/oslib-posix.c b/util/oslib-posix.c index 916f1be2243..39ddc77c85b 100644 --- a/util/oslib-posix.c +++ b/util/oslib-posix.c @@ -57,6 +57,10 @@ #include #endif =20 +#ifdef __APPLE__ +#include +#endif + #include "qemu/mmap-alloc.h" =20 #ifdef CONFIG_DEBUG_STACK_USAGE @@ -375,6 +379,17 @@ void qemu_init_exec_dir(const char *argv0) p =3D buf; } } +#elif defined(__APPLE__) + { + char fpath[PATH_MAX]; + uint32_t len =3D sizeof(fpath); + if (_NSGetExecutablePath(fpath, &len) =3D=3D 0) { + p =3D realpath(fpath, buf); + if (!p) { + return; + } + } + } #endif /* If we don't have any way of figuring out the actual executable location then try argv[0]. */ --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592912573; cv=none; d=zohomail.com; s=zohoarc; b=c6yNoGRWdnNsmaCtF4ukjcOo5PZo6Xd62OHsS3lTEPO9c5VCJ5BWnHhsKA6kHjiFB6lHqT+IQdCgZce8b1TlZtRJrC/SmK60+iFWUfNzWOtAnEj7p14ublKnazTy8HF8izhiBwMpq+5jUZdM6zCH/lwH3mJYEPsSIYnXRj5BMYI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592912573; h=Content-Transfer-Encoding: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=t1bCYdeRbvwavbyNWTI7wfZT9Q1x2S0UP6cctTswOsE=; b=KutCFVRGiDUbgHHAnN76f7mSHKED68xkmVb9izeHk1KQLWHmEvkEmbfY/AQllSmfQCAbkT563agKJcr9U22d+VrsH1clzhBjMzyxZJEB0JC/t2Ju2p1GhT81h2lLUavt6NK412IuC/Vp1Ff3KlucB5M6BUlLT+KnIXtgsqBUdvw= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592912573185719.8534369573165; Tue, 23 Jun 2020 04:42:53 -0700 (PDT) Received: from localhost ([::1]:38198 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhKF-00087x-NL for importer@patchew.org; Tue, 23 Jun 2020 07:42:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43782) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhGj-0002Hp-AZ for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:13 -0400 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:35440) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhGh-00035u-M7 for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:13 -0400 Received: by mail-wr1-x444.google.com with SMTP id g18so11113462wrm.2 for ; Tue, 23 Jun 2020 04:39:11 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:09 -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=t1bCYdeRbvwavbyNWTI7wfZT9Q1x2S0UP6cctTswOsE=; b=TiwGiwcQMCbhDKWzguYEFWCyGX/XSPwxvNhab1W824OzRD5UR7cu7VeH0ERYXEb617 bNAcPeRhVMDlUPygA92oRX4FuEeAXl2sieUV9FJNApNnPLJibhTUgOJbrknmitYVIhIB srIeCQEgL3zMwzl6/1jlctp2K5/Aj3kSzzOzofZ7NScaZ7NHChtVQPurajKb41xKWuTZ ctvkJZ4i1hSwPMseb1aYiqObfloAbxDoEf7K53ugime7K5HUUj8ASgB3XfXSZaUbx5W4 jAREqsTHqhhOYnla0c2QAK9Vj+BfUA/Ji+B7i0aXLmanClriCNZM4TD31giy3NQjaaQm nVbw== 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=t1bCYdeRbvwavbyNWTI7wfZT9Q1x2S0UP6cctTswOsE=; b=Ai7r/hHK4FSAOb9vMr5N7G2sZR8h4A2D9t7GBB+bm66pmwDdSHuiJ8C1JIe27gU0Uu vo8a3XmRrD7XjjJ5NRVl7CwYLPz7Ek4Pb4M+Lrt5ZlCHmvt7ZbZq3zrmwGt28Pke0AWu KiOy3io89A/+5o0BlWva5FzokJbP2Ygsn6cbQEk3QOASmC5mhrGlvcd67+HEpN6AQ6QL yV0M5ezdMSiQXMqWN+x/GCoWcMkcled7dVh1eFvs+hFqcNhfbD+9rNT59bfZ9wAWaWfQ LE/QB34nd8A8X7NLux0asnyyjKHygtb0+JhLKW4UHwLMXPBPPEFjMrsEr1KANItfnD/V lCNg== X-Gm-Message-State: AOAM533zd+hNVvesLmO9NoAoQo+KENgMD051UUY21HpM6TJzzT5sktKg JoxI07iJerDCYjkySc3pDRCdfsG55IxedQ== X-Google-Smtp-Source: ABdhPJzqm1DK9hmGLCyK++Z/fkah/8+GrwEzGW7oYX+a00SPU1ENqjM6jSLQ+xdEKyxcjslF6zF0kw== X-Received: by 2002:adf:ff83:: with SMTP id j3mr24871322wrr.264.1592912349843; Tue, 23 Jun 2020 04:39:09 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 03/42] target/arm: Convert Neon 2-reg-misc VREV64 to decodetree Date: Tue, 23 Jun 2020 12:38:25 +0100 Message-Id: <20200623113904.28805-4-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::444; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x444.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Convert the Neon VREV64 insn from the 2-reg-misc grouping to decodetree. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20200616170844.13318-2-peter.maydell@linaro.org --- target/arm/neon-dp.decode | 12 ++++++++ target/arm/translate-neon.inc.c | 50 +++++++++++++++++++++++++++++++++ target/arm/translate.c | 24 ++-------------- 3 files changed, 64 insertions(+), 22 deletions(-) diff --git a/target/arm/neon-dp.decode b/target/arm/neon-dp.decode index 6d890b2161f..e12fdf30957 100644 --- a/target/arm/neon-dp.decode +++ b/target/arm/neon-dp.decode @@ -429,6 +429,18 @@ Vimm_1r 1111 001 . 1 . 000 ... .... cmode:4 0= . op:1 1 .... @1reg_imm vm=3D%vm_dp vd=3D%vd_dp size=3D1 VDUP_scalar 1111 001 1 1 . 11 index:1 100 .... 11 000 q:1 . 0 .... \ vm=3D%vm_dp vd=3D%vd_dp size=3D2 + + ################################################################## + # 2-reg-misc grouping: + # 1111 001 11 D 11 size:2 opc1:2 Vd:4 0 opc2:4 q:1 M 0 Vm:4 + ################################################################## + + &2misc vd vm q size + + @2misc .... ... .. . .. size:2 .. .... . .... q:1 . . .... \ + &2misc vm=3D%vm_dp vd=3D%vd_dp + + VREV64 1111 001 11 . 11 .. 00 .... 0 0000 . . 0 .... @2misc ] =20 # Subgroup for size !=3D 0b11 diff --git a/target/arm/translate-neon.inc.c b/target/arm/translate-neon.in= c.c index a5aa56bbdeb..90431a5383f 100644 --- a/target/arm/translate-neon.inc.c +++ b/target/arm/translate-neon.inc.c @@ -2970,3 +2970,53 @@ static bool trans_VDUP_scalar(DisasContext *s, arg_V= DUP_scalar *a) a->q ? 16 : 8, a->q ? 16 : 8); return true; } + +static bool trans_VREV64(DisasContext *s, arg_VREV64 *a) +{ + int pass, half; + + if (!arm_dc_feature(s, ARM_FEATURE_NEON)) { + return false; + } + + /* UNDEF accesses to D16-D31 if they don't exist. */ + if (!dc_isar_feature(aa32_simd_r32, s) && + ((a->vd | a->vm) & 0x10)) { + return false; + } + + if ((a->vd | a->vm) & a->q) { + return false; + } + + if (a->size =3D=3D 3) { + return false; + } + + if (!vfp_access_check(s)) { + return true; + } + + for (pass =3D 0; pass < (a->q ? 2 : 1); pass++) { + TCGv_i32 tmp[2]; + + for (half =3D 0; half < 2; half++) { + tmp[half] =3D neon_load_reg(a->vm, pass * 2 + half); + switch (a->size) { + case 0: + tcg_gen_bswap32_i32(tmp[half], tmp[half]); + break; + case 1: + gen_swap_half(tmp[half]); + break; + case 2: + break; + default: + g_assert_not_reached(); + } + } + neon_store_reg(a->vd, pass * 2, tmp[1]); + neon_store_reg(a->vd, pass * 2 + 1, tmp[0]); + } + return true; +} diff --git a/target/arm/translate.c b/target/arm/translate.c index 6d18892adee..5fca38b5fae 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -5092,28 +5092,8 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) } switch (op) { case NEON_2RM_VREV64: - for (pass =3D 0; pass < (q ? 2 : 1); pass++) { - tmp =3D neon_load_reg(rm, pass * 2); - tmp2 =3D neon_load_reg(rm, pass * 2 + 1); - switch (size) { - case 0: tcg_gen_bswap32_i32(tmp, tmp); break; - case 1: gen_swap_half(tmp); break; - case 2: /* no-op */ break; - default: abort(); - } - neon_store_reg(rd, pass * 2 + 1, tmp); - if (size =3D=3D 2) { - neon_store_reg(rd, pass * 2, tmp2); - } else { - switch (size) { - case 0: tcg_gen_bswap32_i32(tmp2, tmp2); break; - case 1: gen_swap_half(tmp2); break; - default: abort(); - } - neon_store_reg(rd, pass * 2, tmp2); - } - } - break; + /* handled by decodetree */ + return 1; case NEON_2RM_VPADDL: case NEON_2RM_VPADDL_U: case NEON_2RM_VPADAL: case NEON_2RM_VPADAL_U: for (pass =3D 0; pass < q + 1; pass++) { --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592912687; cv=none; d=zohomail.com; s=zohoarc; b=IoTkctdy7Bf7h+8U+dL7nXtUtUeIWyx5wJ58bouhhzlN1v32rIVXfLoSTKMBnklZfzDKjmQBOQZKYofuMX91C+y69CJiHyQ3mddu8dbULOAkFM1ZPUMSPsvbowx7UkO6jGqEetblqV2o8geqiJ5P+edMCTw02tGxh+Abm2CT+XI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592912687; h=Content-Transfer-Encoding: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=xYKTWC3ffE6s/UpssJDU0EDSlWdP5VpX9X1VchpKNKE=; b=ZP0KbsvJwngq91SRZ44lmwOlEUzK9rAGnmVf5S3A0oa6x/EbWNsgpLwZEk/Uf0Jl7kVcaoS1r0cBuZ6IJVoMOCaCs3vvE+aptIWfj/SIANVrDWnOaQAx5BfO7+65SaZBU87t6qGoZglTbVxwa6BxPilGecy+0QlHnfsta+joP94= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592912687489899.3830390898408; Tue, 23 Jun 2020 04:44:47 -0700 (PDT) Received: from localhost ([::1]:46740 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhM6-0003lV-5B for importer@patchew.org; Tue, 23 Jun 2020 07:44:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43816) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhGk-0002JV-LY for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:14 -0400 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]:46550) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhGi-00036o-Lv for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:14 -0400 Received: by mail-wr1-x42b.google.com with SMTP id r12so2845383wrj.13 for ; Tue, 23 Jun 2020 04:39:12 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.09 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:10 -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=xYKTWC3ffE6s/UpssJDU0EDSlWdP5VpX9X1VchpKNKE=; b=OV328c7OWoEhySwZHqCM5u8MSA0IVyzfSESNLdzJY4XdtFeIG4skvhXz4zIQnEZFcu k9g7hEunBhfTw/u+ArCCEiISL48psoQf2OmeHfx+MvwGHtcARmcmQ0XbHo1C3AhbzGsM s8LzqBE95w+/td1MSHxnh3y6RmhMm56hmD515frjJTzU+2aOZ1gvE3LVlPbdDN+wJil6 XexDBTySjP8cxeJAqyo8814TCtFFnMpeY+Ote3k7XxhHI77L6gDgImc9teGp7n2m87pM I90geoPqonrm7Izl8thb5bRfoNj6NvChUm2QlkOSoxE9kbgHgMPdyR11GVZzb2lwIpB2 xlPA== 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=xYKTWC3ffE6s/UpssJDU0EDSlWdP5VpX9X1VchpKNKE=; b=EVBZ05s8iKdDWXckyLCrMcqfiGIlHoGzGXGnRLt2SprI952DIs26dqTpowHYxYld0l 9uthHNJEG6RnQo/G2AeM5PLY3bB4CZcdLLJ1PZa33/Tu4/vCupONw7fz/GJncFcm0chX qNhckhHz5YYA5XGnUznFOvoRIzUiSDw/plv0VQ3OiCZMe4RdmUdzLxc1Osue3SxyRXXV 4Z5587AFE/XYVnEtcRjk7xwzc9/vsKOe3UB/EtxGdvHmYJ3nhDSsXFsmWL7/Qdzt6zEH ZtUDYBvB9fIc9RbWXspZToojYZTqWniftagEW1mRvx0PXiosd+B66unIcc/O7ywJ+qiz mn6w== X-Gm-Message-State: AOAM532+JCK5OInndly0NCLcNEP7LfXnsfMWDI+zP0luNM4G78mlNqkn D6f+Y7gj2BYFKu/QGRj1ut+q3gYppv/89g== X-Google-Smtp-Source: ABdhPJwxz/HNCT7CBPkwSMKQQjzwF1M8dIg4MUit0D+ZT3mYIn/HI4zmFPp0369JCi0kgpmFfj0Q8A== X-Received: by 2002:adf:fec8:: with SMTP id q8mr25761068wrs.2.1592912350801; Tue, 23 Jun 2020 04:39:10 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 04/42] target/arm: Convert Neon 2-reg-misc pairwise ops to decodetree Date: Tue, 23 Jun 2020 12:38:26 +0100 Message-Id: <20200623113904.28805-5-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::42b; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x42b.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Convert the pairwise ops VPADDL and VPADAL in the 2-reg-misc grouping to decodetree. At this point we can get rid of the weird CPU_V001 #define that was used to avoid having to explicitly list all the arguments being passed to some TCG gen/helper functions. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20200616170844.13318-3-peter.maydell@linaro.org --- target/arm/neon-dp.decode | 6 ++ target/arm/translate-neon.inc.c | 149 ++++++++++++++++++++++++++++++++ target/arm/translate.c | 35 +------- 3 files changed, 157 insertions(+), 33 deletions(-) diff --git a/target/arm/neon-dp.decode b/target/arm/neon-dp.decode index e12fdf30957..dd521baa07d 100644 --- a/target/arm/neon-dp.decode +++ b/target/arm/neon-dp.decode @@ -441,6 +441,12 @@ Vimm_1r 1111 001 . 1 . 000 ... .... cmode:4 0= . op:1 1 .... @1reg_imm &2misc vm=3D%vm_dp vd=3D%vd_dp =20 VREV64 1111 001 11 . 11 .. 00 .... 0 0000 . . 0 .... @2misc + + VPADDL_S 1111 001 11 . 11 .. 00 .... 0 0100 . . 0 .... @2misc + VPADDL_U 1111 001 11 . 11 .. 00 .... 0 0101 . . 0 .... @2misc + + VPADAL_S 1111 001 11 . 11 .. 00 .... 0 1100 . . 0 .... @2misc + VPADAL_U 1111 001 11 . 11 .. 00 .... 0 1101 . . 0 .... @2misc ] =20 # Subgroup for size !=3D 0b11 diff --git a/target/arm/translate-neon.inc.c b/target/arm/translate-neon.in= c.c index 90431a5383f..2f7bd0d556f 100644 --- a/target/arm/translate-neon.inc.c +++ b/target/arm/translate-neon.inc.c @@ -3020,3 +3020,152 @@ static bool trans_VREV64(DisasContext *s, arg_VREV6= 4 *a) } return true; } + +static bool do_2misc_pairwise(DisasContext *s, arg_2misc *a, + NeonGenWidenFn *widenfn, + NeonGenTwo64OpFn *opfn, + NeonGenTwo64OpFn *accfn) +{ + /* + * Pairwise long operations: widen both halves of the pair, + * combine the pairs with the opfn, and then possibly accumulate + * into the destination with the accfn. + */ + int pass; + + if (!arm_dc_feature(s, ARM_FEATURE_NEON)) { + return false; + } + + /* UNDEF accesses to D16-D31 if they don't exist. */ + if (!dc_isar_feature(aa32_simd_r32, s) && + ((a->vd | a->vm) & 0x10)) { + return false; + } + + if ((a->vd | a->vm) & a->q) { + return false; + } + + if (!widenfn) { + return false; + } + + if (!vfp_access_check(s)) { + return true; + } + + for (pass =3D 0; pass < a->q + 1; pass++) { + TCGv_i32 tmp; + TCGv_i64 rm0_64, rm1_64, rd_64; + + rm0_64 =3D tcg_temp_new_i64(); + rm1_64 =3D tcg_temp_new_i64(); + rd_64 =3D tcg_temp_new_i64(); + tmp =3D neon_load_reg(a->vm, pass * 2); + widenfn(rm0_64, tmp); + tcg_temp_free_i32(tmp); + tmp =3D neon_load_reg(a->vm, pass * 2 + 1); + widenfn(rm1_64, tmp); + tcg_temp_free_i32(tmp); + opfn(rd_64, rm0_64, rm1_64); + tcg_temp_free_i64(rm0_64); + tcg_temp_free_i64(rm1_64); + + if (accfn) { + TCGv_i64 tmp64 =3D tcg_temp_new_i64(); + neon_load_reg64(tmp64, a->vd + pass); + accfn(rd_64, tmp64, rd_64); + tcg_temp_free_i64(tmp64); + } + neon_store_reg64(rd_64, a->vd + pass); + tcg_temp_free_i64(rd_64); + } + return true; +} + +static bool trans_VPADDL_S(DisasContext *s, arg_2misc *a) +{ + static NeonGenWidenFn * const widenfn[] =3D { + gen_helper_neon_widen_s8, + gen_helper_neon_widen_s16, + tcg_gen_ext_i32_i64, + NULL, + }; + static NeonGenTwo64OpFn * const opfn[] =3D { + gen_helper_neon_paddl_u16, + gen_helper_neon_paddl_u32, + tcg_gen_add_i64, + NULL, + }; + + return do_2misc_pairwise(s, a, widenfn[a->size], opfn[a->size], NULL); +} + +static bool trans_VPADDL_U(DisasContext *s, arg_2misc *a) +{ + static NeonGenWidenFn * const widenfn[] =3D { + gen_helper_neon_widen_u8, + gen_helper_neon_widen_u16, + tcg_gen_extu_i32_i64, + NULL, + }; + static NeonGenTwo64OpFn * const opfn[] =3D { + gen_helper_neon_paddl_u16, + gen_helper_neon_paddl_u32, + tcg_gen_add_i64, + NULL, + }; + + return do_2misc_pairwise(s, a, widenfn[a->size], opfn[a->size], NULL); +} + +static bool trans_VPADAL_S(DisasContext *s, arg_2misc *a) +{ + static NeonGenWidenFn * const widenfn[] =3D { + gen_helper_neon_widen_s8, + gen_helper_neon_widen_s16, + tcg_gen_ext_i32_i64, + NULL, + }; + static NeonGenTwo64OpFn * const opfn[] =3D { + gen_helper_neon_paddl_u16, + gen_helper_neon_paddl_u32, + tcg_gen_add_i64, + NULL, + }; + static NeonGenTwo64OpFn * const accfn[] =3D { + gen_helper_neon_addl_u16, + gen_helper_neon_addl_u32, + tcg_gen_add_i64, + NULL, + }; + + return do_2misc_pairwise(s, a, widenfn[a->size], opfn[a->size], + accfn[a->size]); +} + +static bool trans_VPADAL_U(DisasContext *s, arg_2misc *a) +{ + static NeonGenWidenFn * const widenfn[] =3D { + gen_helper_neon_widen_u8, + gen_helper_neon_widen_u16, + tcg_gen_extu_i32_i64, + NULL, + }; + static NeonGenTwo64OpFn * const opfn[] =3D { + gen_helper_neon_paddl_u16, + gen_helper_neon_paddl_u32, + tcg_gen_add_i64, + NULL, + }; + static NeonGenTwo64OpFn * const accfn[] =3D { + gen_helper_neon_addl_u16, + gen_helper_neon_addl_u32, + tcg_gen_add_i64, + NULL, + }; + + return do_2misc_pairwise(s, a, widenfn[a->size], opfn[a->size], + accfn[a->size]); +} diff --git a/target/arm/translate.c b/target/arm/translate.c index 5fca38b5fae..4405b034f77 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -2934,8 +2934,6 @@ static void gen_exception_return(DisasContext *s, TCG= v_i32 pc) gen_rfe(s, pc, load_cpu_field(spsr)); } =20 -#define CPU_V001 cpu_V0, cpu_V0, cpu_V1 - static int gen_neon_unzip(int rd, int rm, int size, int q) { TCGv_ptr pd, pm; @@ -3117,16 +3115,6 @@ static inline void gen_neon_widen(TCGv_i64 dest, TCG= v_i32 src, int size, int u) tcg_temp_free_i32(src); } =20 -static inline void gen_neon_addl(int size) -{ - switch (size) { - case 0: gen_helper_neon_addl_u16(CPU_V001); break; - case 1: gen_helper_neon_addl_u32(CPU_V001); break; - case 2: tcg_gen_add_i64(CPU_V001); break; - default: abort(); - } -} - static void gen_neon_narrow_op(int op, int u, int size, TCGv_i32 dest, TCGv_i64 src) { @@ -5092,29 +5080,10 @@ static int disas_neon_data_insn(DisasContext *s, ui= nt32_t insn) } switch (op) { case NEON_2RM_VREV64: - /* handled by decodetree */ - return 1; case NEON_2RM_VPADDL: case NEON_2RM_VPADDL_U: case NEON_2RM_VPADAL: case NEON_2RM_VPADAL_U: - for (pass =3D 0; pass < q + 1; pass++) { - tmp =3D neon_load_reg(rm, pass * 2); - gen_neon_widen(cpu_V0, tmp, size, op & 1); - tmp =3D neon_load_reg(rm, pass * 2 + 1); - gen_neon_widen(cpu_V1, tmp, size, op & 1); - switch (size) { - case 0: gen_helper_neon_paddl_u16(CPU_V001); break; - case 1: gen_helper_neon_paddl_u32(CPU_V001); break; - case 2: tcg_gen_add_i64(CPU_V001); break; - default: abort(); - } - if (op >=3D NEON_2RM_VPADAL) { - /* Accumulate. */ - neon_load_reg64(cpu_V1, rd + pass); - gen_neon_addl(size); - } - neon_store_reg64(cpu_V0, rd + pass); - } - break; + /* handled by decodetree */ + return 1; case NEON_2RM_VTRN: if (size =3D=3D 2) { int n; --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592912447; cv=none; d=zohomail.com; s=zohoarc; b=FDdqWQ3cOCRFGjrVoMPU+DUlHZkxnJ6n+SbockFeFkfEr9q6b09KD6qx4gqsboQ5EZ2HlVX6jGXORW3szzdptKpWWqiV2PeaqtFlLXm9j79lK4LfncbIlcxYVG5fAz+gkEQArRHBNX/zGmWIwYmcZo1u1Iwxh3F3EFl2kgFvH10= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592912447; h=Content-Transfer-Encoding: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=gRw4h9UD+OhkmlKpVapEWtG7EMQyMl+l02GMd7Nx7gQ=; b=bBMb83gq9rVTibJg/jvQuQ7T4EAZAdseN+bN0AzNLU+jtFGFikIC39oKAW19MsUoScNmPHpNJ1WOwcNkNZs3UVj62pyKv5hYT8+UY7XtBh01MckRKeVZiPRzaBS4UhpzZDUaPRP1s+YSIX3U/QTNIK+cPvvQi99hoMD5Hqe4BEg= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592912447518789.9277872375744; Tue, 23 Jun 2020 04:40:47 -0700 (PDT) Received: from localhost ([::1]:58200 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhIE-0004Fq-53 for importer@patchew.org; Tue, 23 Jun 2020 07:40:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43842) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhGl-0002LX-Jj for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:15 -0400 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]:42331) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhGj-00038L-PC for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:15 -0400 Received: by mail-wr1-x42d.google.com with SMTP id o11so12447945wrv.9 for ; Tue, 23 Jun 2020 04:39:13 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.10 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:11 -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=gRw4h9UD+OhkmlKpVapEWtG7EMQyMl+l02GMd7Nx7gQ=; b=J/JPg4MOIZ9G/GdLzWL0gACIH/2SbKQ6yj8I+oLnsfCrA6f9zH3PMoGizb6bfTxF4R MfB66WMb8t1eGSsTs5thuNcRs76dg3zfEL5ljW8f8pJzKlLVf7kD2/kSdEi2hfVnmUMD 0teMKNTVViJya/3KxKuiNxtrPTBkwsLl0UH12eEowyN9JTZVbxX9e30eUzfiEVYpTj1G aOO+a2hijGtgFBEWyc496UPVDSeJQAq877y2NhYow2RU0eFrfTetRyQnkCx+HmhsF7QY 72KT8KiifMFxhTO1P+5x6huptbPmJsWssEs2nczl37geEC3fklCmg5rX7E0zURsd3LQ/ +8uw== 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=gRw4h9UD+OhkmlKpVapEWtG7EMQyMl+l02GMd7Nx7gQ=; b=kBlFB6uVe0uj0kseqpoCtX1oiaSvNpTSwqfFILhRTLUguRayL/jvtliV5rgtGh95pI mTE2UT1oF3Nu3bQk6+RkwXcF/kIqxFSrf9nX+JsxbiSBrvmMMI9ROHJONFynvRlDLKGw KNt8UfS3+pB9xHW8Dy99USHOzA1Kj7xEUpJxK3bfs4W3u0uhYP7K7oeetbGo7rqzmhC5 dpikpT5oQ20QXl/EkscPyEq7j+fBIYSyRtq1ZwZvP+Zcdqw3SZpcyv2bK2cH9Y4InE42 FOXJqUZvnvfCx2WTOTanhVTKWO37UsgeUnOpM2mYldmYpjzaW2njLnCrmAfpIdXRAY4L L+UA== X-Gm-Message-State: AOAM531XCuDUtCWJ2kayNlXp5VksmIKfAmbyZ+L5aTyGH2+OFB2DYROI Bs6dDTh4oz4qqJaCfs749tthM4HhrMySpg== X-Google-Smtp-Source: ABdhPJxAsHW3FlZd67u/vyi7kcTdYo1NLAtNA2oAxICMLlAAGHqIU+tlTUgPlCgrTPvAVYDgQtZlmQ== X-Received: by 2002:adf:db4d:: with SMTP id f13mr20903981wrj.336.1592912351949; Tue, 23 Jun 2020 04:39:11 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 05/42] target/arm: Convert VZIP, VUZP to decodetree Date: Tue, 23 Jun 2020 12:38:27 +0100 Message-Id: <20200623113904.28805-6-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::42d; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x42d.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Convert the Neon VZIP and VUZP insns in the 2-reg-misc group to decodetree. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20200616170844.13318-4-peter.maydell@linaro.org --- target/arm/neon-dp.decode | 3 ++ target/arm/translate-neon.inc.c | 74 ++++++++++++++++++++++++++ target/arm/translate.c | 92 +-------------------------------- 3 files changed, 79 insertions(+), 90 deletions(-) diff --git a/target/arm/neon-dp.decode b/target/arm/neon-dp.decode index dd521baa07d..ad9e17fd737 100644 --- a/target/arm/neon-dp.decode +++ b/target/arm/neon-dp.decode @@ -447,6 +447,9 @@ Vimm_1r 1111 001 . 1 . 000 ... .... cmode:4 0 = . op:1 1 .... @1reg_imm =20 VPADAL_S 1111 001 11 . 11 .. 00 .... 0 1100 . . 0 .... @2misc VPADAL_U 1111 001 11 . 11 .. 00 .... 0 1101 . . 0 .... @2misc + + VUZP 1111 001 11 . 11 .. 10 .... 0 0010 . . 0 .... @2misc + VZIP 1111 001 11 . 11 .. 10 .... 0 0011 . . 0 .... @2misc ] =20 # Subgroup for size !=3D 0b11 diff --git a/target/arm/translate-neon.inc.c b/target/arm/translate-neon.in= c.c index 2f7bd0d556f..f4799dd9770 100644 --- a/target/arm/translate-neon.inc.c +++ b/target/arm/translate-neon.inc.c @@ -3169,3 +3169,77 @@ static bool trans_VPADAL_U(DisasContext *s, arg_2mis= c *a) return do_2misc_pairwise(s, a, widenfn[a->size], opfn[a->size], accfn[a->size]); } + +typedef void ZipFn(TCGv_ptr, TCGv_ptr); + +static bool do_zip_uzp(DisasContext *s, arg_2misc *a, + ZipFn *fn) +{ + TCGv_ptr pd, pm; + + if (!arm_dc_feature(s, ARM_FEATURE_NEON)) { + return false; + } + + /* UNDEF accesses to D16-D31 if they don't exist. */ + if (!dc_isar_feature(aa32_simd_r32, s) && + ((a->vd | a->vm) & 0x10)) { + return false; + } + + if ((a->vd | a->vm) & a->q) { + return false; + } + + if (!fn) { + /* Bad size or size/q combination */ + return false; + } + + if (!vfp_access_check(s)) { + return true; + } + + pd =3D vfp_reg_ptr(true, a->vd); + pm =3D vfp_reg_ptr(true, a->vm); + fn(pd, pm); + tcg_temp_free_ptr(pd); + tcg_temp_free_ptr(pm); + return true; +} + +static bool trans_VUZP(DisasContext *s, arg_2misc *a) +{ + static ZipFn * const fn[2][4] =3D { + { + gen_helper_neon_unzip8, + gen_helper_neon_unzip16, + NULL, + NULL, + }, { + gen_helper_neon_qunzip8, + gen_helper_neon_qunzip16, + gen_helper_neon_qunzip32, + NULL, + } + }; + return do_zip_uzp(s, a, fn[a->q][a->size]); +} + +static bool trans_VZIP(DisasContext *s, arg_2misc *a) +{ + static ZipFn * const fn[2][4] =3D { + { + gen_helper_neon_zip8, + gen_helper_neon_zip16, + NULL, + NULL, + }, { + gen_helper_neon_qzip8, + gen_helper_neon_qzip16, + gen_helper_neon_qzip32, + NULL, + } + }; + return do_zip_uzp(s, a, fn[a->q][a->size]); +} diff --git a/target/arm/translate.c b/target/arm/translate.c index 4405b034f77..442f287d861 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -2934,86 +2934,6 @@ static void gen_exception_return(DisasContext *s, TC= Gv_i32 pc) gen_rfe(s, pc, load_cpu_field(spsr)); } =20 -static int gen_neon_unzip(int rd, int rm, int size, int q) -{ - TCGv_ptr pd, pm; - =20 - if (!q && size =3D=3D 2) { - return 1; - } - pd =3D vfp_reg_ptr(true, rd); - pm =3D vfp_reg_ptr(true, rm); - if (q) { - switch (size) { - case 0: - gen_helper_neon_qunzip8(pd, pm); - break; - case 1: - gen_helper_neon_qunzip16(pd, pm); - break; - case 2: - gen_helper_neon_qunzip32(pd, pm); - break; - default: - abort(); - } - } else { - switch (size) { - case 0: - gen_helper_neon_unzip8(pd, pm); - break; - case 1: - gen_helper_neon_unzip16(pd, pm); - break; - default: - abort(); - } - } - tcg_temp_free_ptr(pd); - tcg_temp_free_ptr(pm); - return 0; -} - -static int gen_neon_zip(int rd, int rm, int size, int q) -{ - TCGv_ptr pd, pm; - - if (!q && size =3D=3D 2) { - return 1; - } - pd =3D vfp_reg_ptr(true, rd); - pm =3D vfp_reg_ptr(true, rm); - if (q) { - switch (size) { - case 0: - gen_helper_neon_qzip8(pd, pm); - break; - case 1: - gen_helper_neon_qzip16(pd, pm); - break; - case 2: - gen_helper_neon_qzip32(pd, pm); - break; - default: - abort(); - } - } else { - switch (size) { - case 0: - gen_helper_neon_zip8(pd, pm); - break; - case 1: - gen_helper_neon_zip16(pd, pm); - break; - default: - abort(); - } - } - tcg_temp_free_ptr(pd); - tcg_temp_free_ptr(pm); - return 0; -} - static void gen_neon_trn_u8(TCGv_i32 t0, TCGv_i32 t1) { TCGv_i32 rd, tmp; @@ -5082,6 +5002,8 @@ static int disas_neon_data_insn(DisasContext *s, uint= 32_t insn) case NEON_2RM_VREV64: case NEON_2RM_VPADDL: case NEON_2RM_VPADDL_U: case NEON_2RM_VPADAL: case NEON_2RM_VPADAL_U: + case NEON_2RM_VUZP: + case NEON_2RM_VZIP: /* handled by decodetree */ return 1; case NEON_2RM_VTRN: @@ -5097,16 +5019,6 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) goto elementwise; } break; - case NEON_2RM_VUZP: - if (gen_neon_unzip(rd, rm, size, q)) { - return 1; - } - break; - case NEON_2RM_VZIP: - if (gen_neon_zip(rd, rm, size, q)) { - return 1; - } - break; case NEON_2RM_VMOVN: case NEON_2RM_VQMOVN: /* also VQMOVUN; op field and mnemonics don't line up = */ if (rm & 1) { --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592912581; cv=none; d=zohomail.com; s=zohoarc; b=IG1ZC6TKidMHd5mxrdQZJu6rvwGT0sYjE9c8fLK77q7JSUo/FH+n0hoLclWZwbXviSde5ivWrMPhScFVfTyXHD320sjIdjlE1urf+DEKUecdGCykuqSDlbC9CNI71dTAtGOwRIiJQ7cgVfb0MouSxxj1uPIKh6QzWFamsuTVw3k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592912581; h=Content-Transfer-Encoding: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=ewpEywe0wRSBi+LbUmJlkvdtnItIOQfmXv/xIynBB9M=; b=lfCrqWmWnm7+tQ0t0X4rdv2fHcNW3VFdeWXSpv03lWFDeQEzjc007B2+AQfrLXfwbeDZPVDLrkZr9ackkwVCtTfLWyDtDquCPpe9kThuAAV1uTNWm2pRoFsRuuS9jzS3zhfFgXmDjeBBm7O5Sh7O5yoiLiw+vBj0TBap4vonV1s= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592912581163857.2706058536319; Tue, 23 Jun 2020 04:43:01 -0700 (PDT) Received: from localhost ([::1]:38626 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhKN-0008LC-TM for importer@patchew.org; Tue, 23 Jun 2020 07:42:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43886) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhGn-0002OV-0Z for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:17 -0400 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:41967) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhGk-00039n-U0 for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:16 -0400 Received: by mail-wr1-x442.google.com with SMTP id h15so206729wrq.8 for ; Tue, 23 Jun 2020 04:39:14 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.12 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:12 -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=ewpEywe0wRSBi+LbUmJlkvdtnItIOQfmXv/xIynBB9M=; b=MvT6+aOkv+XkVht5gsex0tISXk/tX8QRIrMMbLfgdJGfvx1HvrBoMGdGADPgBXvFo7 ed1UJsMsJhUL3Y/3iUFf1Oe8tZ+VfYbqQmL0uG+gdxwrODgYPZWEzaByCT2s55mPZGTp d2hc96igmeFRzS8cjYgm/XLwlhDydMikgVL0+7t9d5RAuEypRZbReUoyJJgHE5h+02yJ gCnCBOZmmPrKRF3r7nBx7UCH7LlJq2t0erM+WpALLuyoH7pk8tXCEl/cHLm/YmvpYv8l xtu73yPC27fDLqNXquBtVlabcS+Ivvvvx9jG3k/lHngcuGp8HQf+IOMKFu/3bRwCRgyM So3g== 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=ewpEywe0wRSBi+LbUmJlkvdtnItIOQfmXv/xIynBB9M=; b=plmXLiicOzDkoc6HfTvRfHCtbI6WDrcgZImYbtlTXrrSC8kOTyareebNjTr0kCwVF0 48x7h1fBHOE2LXo44nWm7lHjBZbg86pDk4rgSFcde8Tw5tr24DPgMOgVJsE2SkNwuh89 Oy9U/irp9l/A+gpoFgGPKekZmBh6nDsXysL46zWAueoUB+XCDLr/9MtH2qoxM5ee9b5Z JgCjweq4KsNN/bLbPYHdpqZ8N6WLAyM9vmP8cpXxPfxYJzMz3z+BpNOBpnFf1EU1zYve 4IYvMh4cebkLSnUSQBq9COfwmTCL5q5LBLjYWGwpsRm0cl6FRyLuuULCU0oUKFuecv2M w05Q== X-Gm-Message-State: AOAM533fQU0HRjNkJ/zfsgQvq9xbQHExuAJ21/M9nqYP3zDQvLxJho3H JSAL2S/Bmepver7RyEIIPcoYuEfm3nFJkw== X-Google-Smtp-Source: ABdhPJxuo543k4/GG54FYGNy+kAylqq8VUULb0v5WAaWEfb7iSUA+wlzyUW4UKsNlGVBB5EV2RkV/g== X-Received: by 2002:a5d:56d0:: with SMTP id m16mr23898452wrw.194.1592912353127; Tue, 23 Jun 2020 04:39:13 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 06/42] target/arm: Convert Neon narrowing moves to decodetree Date: Tue, 23 Jun 2020 12:38:28 +0100 Message-Id: <20200623113904.28805-7-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::442; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x442.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Convert the Neon narrowing moves VMQNV, VQMOVN, VQMOVUN in the 2-reg-misc group to decodetree. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20200616170844.13318-5-peter.maydell@linaro.org --- target/arm/neon-dp.decode | 9 ++++ target/arm/translate-neon.inc.c | 59 ++++++++++++++++++++++++ target/arm/translate.c | 81 +-------------------------------- 3 files changed, 70 insertions(+), 79 deletions(-) diff --git a/target/arm/neon-dp.decode b/target/arm/neon-dp.decode index ad9e17fd737..2277b4c7b51 100644 --- a/target/arm/neon-dp.decode +++ b/target/arm/neon-dp.decode @@ -439,6 +439,8 @@ Vimm_1r 1111 001 . 1 . 000 ... .... cmode:4 0 = . op:1 1 .... @1reg_imm =20 @2misc .... ... .. . .. size:2 .. .... . .... q:1 . . .... \ &2misc vm=3D%vm_dp vd=3D%vd_dp + @2misc_q0 .... ... .. . .. size:2 .. .... . .... . . . .... \ + &2misc vm=3D%vm_dp vd=3D%vd_dp q=3D0 =20 VREV64 1111 001 11 . 11 .. 00 .... 0 0000 . . 0 .... @2misc =20 @@ -450,6 +452,13 @@ Vimm_1r 1111 001 . 1 . 000 ... .... cmode:4 0= . op:1 1 .... @1reg_imm =20 VUZP 1111 001 11 . 11 .. 10 .... 0 0010 . . 0 .... @2misc VZIP 1111 001 11 . 11 .. 10 .... 0 0011 . . 0 .... @2misc + + VMOVN 1111 001 11 . 11 .. 10 .... 0 0100 0 . 0 .... @2misc_q0 + # VQMOVUN: unsigned result (source is always signed) + VQMOVUN 1111 001 11 . 11 .. 10 .... 0 0100 1 . 0 .... @2misc_q0 + # VQMOVN: signed result, source may be signed (_S) or unsigned (_U) + VQMOVN_S 1111 001 11 . 11 .. 10 .... 0 0101 0 . 0 .... @2misc_q0 + VQMOVN_U 1111 001 11 . 11 .. 10 .... 0 0101 1 . 0 .... @2misc_q0 ] =20 # Subgroup for size !=3D 0b11 diff --git a/target/arm/translate-neon.inc.c b/target/arm/translate-neon.in= c.c index f4799dd9770..b0620972854 100644 --- a/target/arm/translate-neon.inc.c +++ b/target/arm/translate-neon.inc.c @@ -3243,3 +3243,62 @@ static bool trans_VZIP(DisasContext *s, arg_2misc *a) }; return do_zip_uzp(s, a, fn[a->q][a->size]); } + +static bool do_vmovn(DisasContext *s, arg_2misc *a, + NeonGenNarrowEnvFn *narrowfn) +{ + TCGv_i64 rm; + TCGv_i32 rd0, rd1; + + if (!arm_dc_feature(s, ARM_FEATURE_NEON)) { + return false; + } + + /* UNDEF accesses to D16-D31 if they don't exist. */ + if (!dc_isar_feature(aa32_simd_r32, s) && + ((a->vd | a->vm) & 0x10)) { + return false; + } + + if (a->vm & 1) { + return false; + } + + if (!narrowfn) { + return false; + } + + if (!vfp_access_check(s)) { + return true; + } + + rm =3D tcg_temp_new_i64(); + rd0 =3D tcg_temp_new_i32(); + rd1 =3D tcg_temp_new_i32(); + + neon_load_reg64(rm, a->vm); + narrowfn(rd0, cpu_env, rm); + neon_load_reg64(rm, a->vm + 1); + narrowfn(rd1, cpu_env, rm); + neon_store_reg(a->vd, 0, rd0); + neon_store_reg(a->vd, 1, rd1); + tcg_temp_free_i64(rm); + return true; +} + +#define DO_VMOVN(INSN, FUNC) \ + static bool trans_##INSN(DisasContext *s, arg_2misc *a) \ + { \ + static NeonGenNarrowEnvFn * const narrowfn[] =3D { \ + FUNC##8, \ + FUNC##16, \ + FUNC##32, \ + NULL, \ + }; \ + return do_vmovn(s, a, narrowfn[a->size]); \ + } + +DO_VMOVN(VMOVN, gen_neon_narrow_u) +DO_VMOVN(VQMOVUN, gen_helper_neon_unarrow_sat) +DO_VMOVN(VQMOVN_S, gen_helper_neon_narrow_sat_s) +DO_VMOVN(VQMOVN_U, gen_helper_neon_narrow_sat_u) diff --git a/target/arm/translate.c b/target/arm/translate.c index 442f287d861..8ecae264e15 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -2975,46 +2975,6 @@ static void gen_neon_trn_u16(TCGv_i32 t0, TCGv_i32 t= 1) tcg_temp_free_i32(rd); } =20 -static inline void gen_neon_narrow(int size, TCGv_i32 dest, TCGv_i64 src) -{ - switch (size) { - case 0: gen_helper_neon_narrow_u8(dest, src); break; - case 1: gen_helper_neon_narrow_u16(dest, src); break; - case 2: tcg_gen_extrl_i64_i32(dest, src); break; - default: abort(); - } -} - -static inline void gen_neon_narrow_sats(int size, TCGv_i32 dest, TCGv_i64 = src) -{ - switch (size) { - case 0: gen_helper_neon_narrow_sat_s8(dest, cpu_env, src); break; - case 1: gen_helper_neon_narrow_sat_s16(dest, cpu_env, src); break; - case 2: gen_helper_neon_narrow_sat_s32(dest, cpu_env, src); break; - default: abort(); - } -} - -static inline void gen_neon_narrow_satu(int size, TCGv_i32 dest, TCGv_i64 = src) -{ - switch (size) { - case 0: gen_helper_neon_narrow_sat_u8(dest, cpu_env, src); break; - case 1: gen_helper_neon_narrow_sat_u16(dest, cpu_env, src); break; - case 2: gen_helper_neon_narrow_sat_u32(dest, cpu_env, src); break; - default: abort(); - } -} - -static inline void gen_neon_unarrow_sats(int size, TCGv_i32 dest, TCGv_i64= src) -{ - switch (size) { - case 0: gen_helper_neon_unarrow_sat8(dest, cpu_env, src); break; - case 1: gen_helper_neon_unarrow_sat16(dest, cpu_env, src); break; - case 2: gen_helper_neon_unarrow_sat32(dest, cpu_env, src); break; - default: abort(); - } -} - static inline void gen_neon_widen(TCGv_i64 dest, TCGv_i32 src, int size, i= nt u) { if (u) { @@ -3035,24 +2995,6 @@ static inline void gen_neon_widen(TCGv_i64 dest, TCG= v_i32 src, int size, int u) tcg_temp_free_i32(src); } =20 -static void gen_neon_narrow_op(int op, int u, int size, - TCGv_i32 dest, TCGv_i64 src) -{ - if (op) { - if (u) { - gen_neon_unarrow_sats(size, dest, src); - } else { - gen_neon_narrow(size, dest, src); - } - } else { - if (u) { - gen_neon_narrow_satu(size, dest, src); - } else { - gen_neon_narrow_sats(size, dest, src); - } - } -} - /* Symbolic constants for op fields for Neon 2-register miscellaneous. * The values correspond to bits [17:16,10:7]; see the ARM ARM DDI0406B * table A7-13. @@ -4994,8 +4936,7 @@ static int disas_neon_data_insn(DisasContext *s, uint= 32_t insn) !arm_dc_feature(s, ARM_FEATURE_V8)) { return 1; } - if ((op !=3D NEON_2RM_VMOVN && op !=3D NEON_2RM_VQMOVN) && - q && ((rm | rd) & 1)) { + if (q && ((rm | rd) & 1)) { return 1; } switch (op) { @@ -5004,6 +4945,7 @@ static int disas_neon_data_insn(DisasContext *s, uint= 32_t insn) case NEON_2RM_VPADAL: case NEON_2RM_VPADAL_U: case NEON_2RM_VUZP: case NEON_2RM_VZIP: + case NEON_2RM_VMOVN: case NEON_2RM_VQMOVN: /* handled by decodetree */ return 1; case NEON_2RM_VTRN: @@ -5019,25 +4961,6 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) goto elementwise; } break; - case NEON_2RM_VMOVN: case NEON_2RM_VQMOVN: - /* also VQMOVUN; op field and mnemonics don't line up = */ - if (rm & 1) { - return 1; - } - tmp2 =3D NULL; - for (pass =3D 0; pass < 2; pass++) { - neon_load_reg64(cpu_V0, rm + pass); - tmp =3D tcg_temp_new_i32(); - gen_neon_narrow_op(op =3D=3D NEON_2RM_VMOVN, q, si= ze, - tmp, cpu_V0); - if (pass =3D=3D 0) { - tmp2 =3D tmp; - } else { - neon_store_reg(rd, 0, tmp2); - neon_store_reg(rd, 1, tmp); - } - } - break; case NEON_2RM_VSHLL: if (q || (rd & 1)) { return 1; --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592912848; cv=none; d=zohomail.com; s=zohoarc; b=fb3RCbE7dHtFdl+I1nlMtrqUROnBBmwohYG3qTaRpjGwys4qdQtp5agC0Kx2BbRyeS6xiZDg7l6noizRpY4uqFrGdFGiYOgrxmwpsB1LDWdyiyrgk/t+nIcGF2fGByRS7fmPIzj583enjmAK80RmPYVWbixKt/RqPeflNOMIuXg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592912848; h=Content-Transfer-Encoding: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=5MijMronqy/vV6z9QsNci29v72H8pIiba+pqY/e1OtA=; b=ZtO3ePFEzurNuRu/UMHWPUuDYXkuiGfQHr09b8RJIUXpjTohLaBCXzxYz0otPN8ORK/QejWRJQ9Daxi8zJNLODINghewb6d0WP5ahTqBNsT2cPE5h66m5Tg7D+n+FIcGshcKxr6k0h4Yspuzvs075smHII8/AmZw4EO3V02hG3A= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 15929128484121016.0521408350734; Tue, 23 Jun 2020 04:47:28 -0700 (PDT) Received: from localhost ([::1]:55318 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhOg-0000QO-87 for importer@patchew.org; Tue, 23 Jun 2020 07:47:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43914) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhGo-0002Rd-I2 for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:18 -0400 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]:40091) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhGm-0003AG-1G for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:18 -0400 Received: by mail-wm1-x330.google.com with SMTP id f139so1438155wmf.5 for ; Tue, 23 Jun 2020 04:39:15 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:13 -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=5MijMronqy/vV6z9QsNci29v72H8pIiba+pqY/e1OtA=; b=Rbzbe3njTIPSbn285kti5OfZhGOV3LENJrVreLNokQS4TL6XrDUI4ZzSXJM4TGDMD2 JZ/D3eixWa/2dZmI3V8Oe76G7FqPmeorNl97AUubshQn6g7RXVRoZhPF206JrAc/Csdm 4s4whnKj6I83L8xvF23J0V43ADqEYgzhgsIANifKh44hiiPl3mXqOPD8vHm7KIj0gVCr b42iimsIHKytkPyRt5A6nmYoU3uY2IqYnsVqjHbbvml/gxxE5dcYH5OFBCOuZUXHid4V I6q77O8m7JwHRIjH3XFDesdnbNFWRzmHq91+/bEqNv9483tFvI4MSrEhz5RHHVwvaebe sTuQ== 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=5MijMronqy/vV6z9QsNci29v72H8pIiba+pqY/e1OtA=; b=R1pA1C9/fQ5Y8+hTAuJvBRg+DA2HX0ovY3ZAiXE30ZhWJtGUrT+LQaXNaHdXFOxMYB /kRy1L3hm1N9FYQX3rQuW0aeu7EDd4/mHkFNZ9o5Hf7Dln5p6QzOBp6KV4nGhheZH5lt qK7roOi840s4qHWaJcr9K1gkXH6o+LyC6duyl/bsmbYwemXaKzbK6nLbukG3XKkU5XOT 0KLI3UDN/mZRN8IdCg79EX7rvUq12k9ekfkE3zLyiCk5IH0iqoOcGoM+ZnwLIL1P3uFm GcUNzHjGWNmm1rrFXz3OZKZGgMLdPm0DaAZB2ARzgw+UstriNw2O4dV4jmwsZZXqkm1D u2RQ== X-Gm-Message-State: AOAM5327SuVHq7uMjef6+ylpkxOuKfZ/zn9f19o4RDbDizeA5lzVRMtv +t+Fe09OmNe+I41X6V8R6h55kvSO+JDSIw== X-Google-Smtp-Source: ABdhPJxwblUMzcx0GKBob7WRIybPzX7O0GfVHFiG6DPrwegaCNTvYdPHrkTsv+C3pHSCtaoi0LxuSQ== X-Received: by 2002:a1c:750e:: with SMTP id o14mr23221702wmc.86.1592912354201; Tue, 23 Jun 2020 04:39:14 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 07/42] target/arm: Convert Neon 2-reg-misc VSHLL to decodetree Date: Tue, 23 Jun 2020 12:38:29 +0100 Message-Id: <20200623113904.28805-8-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::330; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x330.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Convert the VSHLL insn in the 2-reg-misc Neon group to decodetree. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20200616170844.13318-6-peter.maydell@linaro.org --- target/arm/neon-dp.decode | 2 ++ target/arm/translate-neon.inc.c | 52 +++++++++++++++++++++++++++++++++ target/arm/translate.c | 35 +--------------------- 3 files changed, 55 insertions(+), 34 deletions(-) diff --git a/target/arm/neon-dp.decode b/target/arm/neon-dp.decode index 2277b4c7b51..0102aa7254b 100644 --- a/target/arm/neon-dp.decode +++ b/target/arm/neon-dp.decode @@ -459,6 +459,8 @@ Vimm_1r 1111 001 . 1 . 000 ... .... cmode:4 0 = . op:1 1 .... @1reg_imm # VQMOVN: signed result, source may be signed (_S) or unsigned (_U) VQMOVN_S 1111 001 11 . 11 .. 10 .... 0 0101 0 . 0 .... @2misc_q0 VQMOVN_U 1111 001 11 . 11 .. 10 .... 0 0101 1 . 0 .... @2misc_q0 + + VSHLL 1111 001 11 . 11 .. 10 .... 0 0110 0 . 0 .... @2misc_q0 ] =20 # Subgroup for size !=3D 0b11 diff --git a/target/arm/translate-neon.inc.c b/target/arm/translate-neon.in= c.c index b0620972854..78239ec1c1b 100644 --- a/target/arm/translate-neon.inc.c +++ b/target/arm/translate-neon.inc.c @@ -3302,3 +3302,55 @@ DO_VMOVN(VMOVN, gen_neon_narrow_u) DO_VMOVN(VQMOVUN, gen_helper_neon_unarrow_sat) DO_VMOVN(VQMOVN_S, gen_helper_neon_narrow_sat_s) DO_VMOVN(VQMOVN_U, gen_helper_neon_narrow_sat_u) + +static bool trans_VSHLL(DisasContext *s, arg_2misc *a) +{ + TCGv_i32 rm0, rm1; + TCGv_i64 rd; + static NeonGenWidenFn * const widenfns[] =3D { + gen_helper_neon_widen_u8, + gen_helper_neon_widen_u16, + tcg_gen_extu_i32_i64, + NULL, + }; + NeonGenWidenFn *widenfn =3D widenfns[a->size]; + + if (!arm_dc_feature(s, ARM_FEATURE_NEON)) { + return false; + } + + /* UNDEF accesses to D16-D31 if they don't exist. */ + if (!dc_isar_feature(aa32_simd_r32, s) && + ((a->vd | a->vm) & 0x10)) { + return false; + } + + if (a->vd & 1) { + return false; + } + + if (!widenfn) { + return false; + } + + if (!vfp_access_check(s)) { + return true; + } + + rd =3D tcg_temp_new_i64(); + + rm0 =3D neon_load_reg(a->vm, 0); + rm1 =3D neon_load_reg(a->vm, 1); + + widenfn(rd, rm0); + tcg_gen_shli_i64(rd, rd, 8 << a->size); + neon_store_reg64(rd, a->vd); + widenfn(rd, rm1); + tcg_gen_shli_i64(rd, rd, 8 << a->size); + neon_store_reg64(rd, a->vd + 1); + + tcg_temp_free_i64(rd); + tcg_temp_free_i32(rm0); + tcg_temp_free_i32(rm1); + return true; +} diff --git a/target/arm/translate.c b/target/arm/translate.c index 8ecae264e15..94d5e34fff4 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -2975,26 +2975,6 @@ static void gen_neon_trn_u16(TCGv_i32 t0, TCGv_i32 t= 1) tcg_temp_free_i32(rd); } =20 -static inline void gen_neon_widen(TCGv_i64 dest, TCGv_i32 src, int size, i= nt u) -{ - if (u) { - switch (size) { - case 0: gen_helper_neon_widen_u8(dest, src); break; - case 1: gen_helper_neon_widen_u16(dest, src); break; - case 2: tcg_gen_extu_i32_i64(dest, src); break; - default: abort(); - } - } else { - switch (size) { - case 0: gen_helper_neon_widen_s8(dest, src); break; - case 1: gen_helper_neon_widen_s16(dest, src); break; - case 2: tcg_gen_ext_i32_i64(dest, src); break; - default: abort(); - } - } - tcg_temp_free_i32(src); -} - /* Symbolic constants for op fields for Neon 2-register miscellaneous. * The values correspond to bits [17:16,10:7]; see the ARM ARM DDI0406B * table A7-13. @@ -4946,6 +4926,7 @@ static int disas_neon_data_insn(DisasContext *s, uint= 32_t insn) case NEON_2RM_VUZP: case NEON_2RM_VZIP: case NEON_2RM_VMOVN: case NEON_2RM_VQMOVN: + case NEON_2RM_VSHLL: /* handled by decodetree */ return 1; case NEON_2RM_VTRN: @@ -4961,20 +4942,6 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) goto elementwise; } break; - case NEON_2RM_VSHLL: - if (q || (rd & 1)) { - return 1; - } - tmp =3D neon_load_reg(rm, 0); - tmp2 =3D neon_load_reg(rm, 1); - for (pass =3D 0; pass < 2; pass++) { - if (pass =3D=3D 1) - tmp =3D tmp2; - gen_neon_widen(cpu_V0, tmp, size, 1); - tcg_gen_shli_i64(cpu_V0, cpu_V0, 8 << size); - neon_store_reg64(cpu_V0, rd + pass); - } - break; case NEON_2RM_VCVT_F16_F32: { TCGv_ptr fpst; --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592912691; cv=none; d=zohomail.com; s=zohoarc; b=QWHI7pdqHd9mdoNO8CnjCuJrKyRKgGu28e0MB9x6UT9TOduNwHOBKxAIUsUkmrB6Ra88Z3aLGieuNRo9KfTEm5pKNw5wRAepQErcWyPmNlaZqO38O8ocAFkPPz+mz7PgNLc+7hY6JoODJAbUzoCBLp/F6BzG4KvcROxEi/lyoio= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592912691; h=Content-Transfer-Encoding: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=hNxPLLU5YxcQYsL+b5Qc2K9m6PnR63Dpa+71JoqbIwc=; b=dBSufEFCurZbQUUpC8yf4sm+84aYBwW77Ajhd0fEuRt8L+sc7D75d7+TX84vQruPhPFyULN5Otp9wsPyLQCntLQ7ituf2nLJyZ6BMKRbYFwHtCCHFjxtf7A8sgJCNnM4mAViyM4Uxiy2F3gL9cuBWbb9EcoeUf8qHnGRN1mXk34= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592912691875422.10246728259483; Tue, 23 Jun 2020 04:44:51 -0700 (PDT) Received: from localhost ([::1]:47268 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhMA-000476-H9 for importer@patchew.org; Tue, 23 Jun 2020 07:44:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43930) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhGp-0002TQ-65 for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:19 -0400 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]:55815) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhGn-0003Aq-7o for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:18 -0400 Received: by mail-wm1-x332.google.com with SMTP id g75so2653908wme.5 for ; Tue, 23 Jun 2020 04:39:16 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.14 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:14 -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=hNxPLLU5YxcQYsL+b5Qc2K9m6PnR63Dpa+71JoqbIwc=; b=pROU2lrcjKSTJyYOClVTaf/t9cHq2HQqYjx/QyRx7Zg77kSz9bqDTeYzJKItd/s4ja BBKOLCef5mkBtx3rcmTTQVxHvejkGQE0+fIlFiH4c9xdDrPlldq572hQTKDhgEdHnHPb wAC8pHRi6msMhyHiIOl7q95BTPVIZP+zTdosuFkaMhRZuCFsyOl3WAP4E5jmibpMh1qn ZZXSRNQ2w4sqndzwb6B6K7Id93F/pa4c0iYXYAnJrJm+nTJnEW1E4oXWu88/8c4cl0+h VR3zCVTw6trhg/wSt9x6HKNfiWKitAw3iWY2hapxo+NNAzXMLaiQCfMoEzgCOri4J7Wv 8Otw== 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=hNxPLLU5YxcQYsL+b5Qc2K9m6PnR63Dpa+71JoqbIwc=; b=oWs3PFZk1Kudaonh2bQcLurU9kNzfurQe4ps/FtSPB6tWLs/XY0pRqJvqEjIZr5uu/ 2oBEg7t0ibmEir8umJNv+CCJSY4fz406dcBegTQ11wtYyFkpxTbKEbBaw6lsHC+lpa/L 8K1+1FkJLbDE/oNujMBfjFWrno2A+4moZlQm/bJUf4avDpJE/4wA4Q02fL2MDWsan7nN 4nMOJLhN/+UpkVxkQgJ/oZzy8ZDFq/IcCeiCc8/kMRa5p3WJHvFWKeZwSJOoctpMXsuM ffyPlLmdSfQMaGKUXAu/V2Bs9HRrQiPymeY7Vo4BZXvmLwzfsA8nmg5Y3DB21WpD5ZOZ iPYQ== X-Gm-Message-State: AOAM530Edf4S2AlsSq1qc5OJPZYMPNwgom0wgMGHbQtn31DNewPsZRlB M7bs8O9/6NjeKzZIKHqYisu/q5F1h0CAdA== X-Google-Smtp-Source: ABdhPJwtXl654NAvsNXz436kAdMMUV9SRpPQHPcuiMIvdPFxjw1msZCPXjYG/VuzS8GkG0Dn6dUWCA== X-Received: by 2002:a1c:154:: with SMTP id 81mr23325878wmb.23.1592912355376; Tue, 23 Jun 2020 04:39:15 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 08/42] target/arm: Convert Neon VCVT f16/f32 insns to decodetree Date: Tue, 23 Jun 2020 12:38:30 +0100 Message-Id: <20200623113904.28805-9-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::332; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x332.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Convert the Neon insns in the 2-reg-misc group which are VCVT between f32 and f16 to decodetree. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20200616170844.13318-7-peter.maydell@linaro.org --- target/arm/neon-dp.decode | 3 ++ target/arm/translate-neon.inc.c | 96 +++++++++++++++++++++++++++++++++ target/arm/translate.c | 65 ++-------------------- 3 files changed, 102 insertions(+), 62 deletions(-) diff --git a/target/arm/neon-dp.decode b/target/arm/neon-dp.decode index 0102aa7254b..8174f2f92f4 100644 --- a/target/arm/neon-dp.decode +++ b/target/arm/neon-dp.decode @@ -461,6 +461,9 @@ Vimm_1r 1111 001 . 1 . 000 ... .... cmode:4 0 = . op:1 1 .... @1reg_imm VQMOVN_U 1111 001 11 . 11 .. 10 .... 0 0101 1 . 0 .... @2misc_q0 =20 VSHLL 1111 001 11 . 11 .. 10 .... 0 0110 0 . 0 .... @2misc_q0 + + VCVT_F16_F32 1111 001 11 . 11 .. 10 .... 0 1100 0 . 0 .... @2misc_q0 + VCVT_F32_F16 1111 001 11 . 11 .. 10 .... 0 1110 0 . 0 .... @2misc_q0 ] =20 # Subgroup for size !=3D 0b11 diff --git a/target/arm/translate-neon.inc.c b/target/arm/translate-neon.in= c.c index 78239ec1c1b..d37be597cf4 100644 --- a/target/arm/translate-neon.inc.c +++ b/target/arm/translate-neon.inc.c @@ -3354,3 +3354,99 @@ static bool trans_VSHLL(DisasContext *s, arg_2misc *= a) tcg_temp_free_i32(rm1); return true; } + +static bool trans_VCVT_F16_F32(DisasContext *s, arg_2misc *a) +{ + TCGv_ptr fpst; + TCGv_i32 ahp, tmp, tmp2, tmp3; + + if (!arm_dc_feature(s, ARM_FEATURE_NEON) || + !dc_isar_feature(aa32_fp16_spconv, s)) { + return false; + } + + /* UNDEF accesses to D16-D31 if they don't exist. */ + if (!dc_isar_feature(aa32_simd_r32, s) && + ((a->vd | a->vm) & 0x10)) { + return false; + } + + if ((a->vm & 1) || (a->size !=3D 1)) { + return false; + } + + if (!vfp_access_check(s)) { + return true; + } + + fpst =3D get_fpstatus_ptr(true); + ahp =3D get_ahp_flag(); + tmp =3D neon_load_reg(a->vm, 0); + gen_helper_vfp_fcvt_f32_to_f16(tmp, tmp, fpst, ahp); + tmp2 =3D neon_load_reg(a->vm, 1); + gen_helper_vfp_fcvt_f32_to_f16(tmp2, tmp2, fpst, ahp); + tcg_gen_shli_i32(tmp2, tmp2, 16); + tcg_gen_or_i32(tmp2, tmp2, tmp); + tcg_temp_free_i32(tmp); + tmp =3D neon_load_reg(a->vm, 2); + gen_helper_vfp_fcvt_f32_to_f16(tmp, tmp, fpst, ahp); + tmp3 =3D neon_load_reg(a->vm, 3); + neon_store_reg(a->vd, 0, tmp2); + gen_helper_vfp_fcvt_f32_to_f16(tmp3, tmp3, fpst, ahp); + tcg_gen_shli_i32(tmp3, tmp3, 16); + tcg_gen_or_i32(tmp3, tmp3, tmp); + neon_store_reg(a->vd, 1, tmp3); + tcg_temp_free_i32(tmp); + tcg_temp_free_i32(ahp); + tcg_temp_free_ptr(fpst); + + return true; +} + +static bool trans_VCVT_F32_F16(DisasContext *s, arg_2misc *a) +{ + TCGv_ptr fpst; + TCGv_i32 ahp, tmp, tmp2, tmp3; + + if (!arm_dc_feature(s, ARM_FEATURE_NEON) || + !dc_isar_feature(aa32_fp16_spconv, s)) { + return false; + } + + /* UNDEF accesses to D16-D31 if they don't exist. */ + if (!dc_isar_feature(aa32_simd_r32, s) && + ((a->vd | a->vm) & 0x10)) { + return false; + } + + if ((a->vd & 1) || (a->size !=3D 1)) { + return false; + } + + if (!vfp_access_check(s)) { + return true; + } + + fpst =3D get_fpstatus_ptr(true); + ahp =3D get_ahp_flag(); + tmp3 =3D tcg_temp_new_i32(); + tmp =3D neon_load_reg(a->vm, 0); + tmp2 =3D neon_load_reg(a->vm, 1); + tcg_gen_ext16u_i32(tmp3, tmp); + gen_helper_vfp_fcvt_f16_to_f32(tmp3, tmp3, fpst, ahp); + neon_store_reg(a->vd, 0, tmp3); + tcg_gen_shri_i32(tmp, tmp, 16); + gen_helper_vfp_fcvt_f16_to_f32(tmp, tmp, fpst, ahp); + neon_store_reg(a->vd, 1, tmp); + tmp3 =3D tcg_temp_new_i32(); + tcg_gen_ext16u_i32(tmp3, tmp2); + gen_helper_vfp_fcvt_f16_to_f32(tmp3, tmp3, fpst, ahp); + neon_store_reg(a->vd, 2, tmp3); + tcg_gen_shri_i32(tmp2, tmp2, 16); + gen_helper_vfp_fcvt_f16_to_f32(tmp2, tmp2, fpst, ahp); + neon_store_reg(a->vd, 3, tmp2); + tcg_temp_free_i32(ahp); + tcg_temp_free_ptr(fpst); + + return true; +} diff --git a/target/arm/translate.c b/target/arm/translate.c index 94d5e34fff4..1ea09695546 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -4860,7 +4860,7 @@ static int disas_neon_data_insn(DisasContext *s, uint= 32_t insn) int pass; int u; int vec_size; - TCGv_i32 tmp, tmp2, tmp3; + TCGv_i32 tmp, tmp2; =20 if (!arm_dc_feature(s, ARM_FEATURE_NEON)) { return 1; @@ -4927,6 +4927,8 @@ static int disas_neon_data_insn(DisasContext *s, uint= 32_t insn) case NEON_2RM_VZIP: case NEON_2RM_VMOVN: case NEON_2RM_VQMOVN: case NEON_2RM_VSHLL: + case NEON_2RM_VCVT_F16_F32: + case NEON_2RM_VCVT_F32_F16: /* handled by decodetree */ return 1; case NEON_2RM_VTRN: @@ -4942,67 +4944,6 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) goto elementwise; } break; - case NEON_2RM_VCVT_F16_F32: - { - TCGv_ptr fpst; - TCGv_i32 ahp; - - if (!dc_isar_feature(aa32_fp16_spconv, s) || - q || (rm & 1)) { - return 1; - } - fpst =3D get_fpstatus_ptr(true); - ahp =3D get_ahp_flag(); - tmp =3D neon_load_reg(rm, 0); - gen_helper_vfp_fcvt_f32_to_f16(tmp, tmp, fpst, ahp); - tmp2 =3D neon_load_reg(rm, 1); - gen_helper_vfp_fcvt_f32_to_f16(tmp2, tmp2, fpst, ahp); - tcg_gen_shli_i32(tmp2, tmp2, 16); - tcg_gen_or_i32(tmp2, tmp2, tmp); - tcg_temp_free_i32(tmp); - tmp =3D neon_load_reg(rm, 2); - gen_helper_vfp_fcvt_f32_to_f16(tmp, tmp, fpst, ahp); - tmp3 =3D neon_load_reg(rm, 3); - neon_store_reg(rd, 0, tmp2); - gen_helper_vfp_fcvt_f32_to_f16(tmp3, tmp3, fpst, ahp); - tcg_gen_shli_i32(tmp3, tmp3, 16); - tcg_gen_or_i32(tmp3, tmp3, tmp); - neon_store_reg(rd, 1, tmp3); - tcg_temp_free_i32(tmp); - tcg_temp_free_i32(ahp); - tcg_temp_free_ptr(fpst); - break; - } - case NEON_2RM_VCVT_F32_F16: - { - TCGv_ptr fpst; - TCGv_i32 ahp; - if (!dc_isar_feature(aa32_fp16_spconv, s) || - q || (rd & 1)) { - return 1; - } - fpst =3D get_fpstatus_ptr(true); - ahp =3D get_ahp_flag(); - tmp3 =3D tcg_temp_new_i32(); - tmp =3D neon_load_reg(rm, 0); - tmp2 =3D neon_load_reg(rm, 1); - tcg_gen_ext16u_i32(tmp3, tmp); - gen_helper_vfp_fcvt_f16_to_f32(tmp3, tmp3, fpst, ahp); - neon_store_reg(rd, 0, tmp3); - tcg_gen_shri_i32(tmp, tmp, 16); - gen_helper_vfp_fcvt_f16_to_f32(tmp, tmp, fpst, ahp); - neon_store_reg(rd, 1, tmp); - tmp3 =3D tcg_temp_new_i32(); - tcg_gen_ext16u_i32(tmp3, tmp2); - gen_helper_vfp_fcvt_f16_to_f32(tmp3, tmp3, fpst, ahp); - neon_store_reg(rd, 2, tmp3); - tcg_gen_shri_i32(tmp2, tmp2, 16); - gen_helper_vfp_fcvt_f16_to_f32(tmp2, tmp2, fpst, ahp); - neon_store_reg(rd, 3, tmp2); - tcg_temp_free_i32(ahp); - tcg_temp_free_ptr(fpst); - break; - } case NEON_2RM_AESE: case NEON_2RM_AESMC: if (!dc_isar_feature(aa32_aes, s) || ((rm | rd) & 1)) { return 1; --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592912622; cv=none; d=zohomail.com; s=zohoarc; b=Q75i+chWz76Xh/XFmO7WDeaCKqOEH+w/UCduB6EeB4eQ47OLmQ85B3IOUauT4QLc2eufyQa/4izUgIuK95vDnOhtv3NSIEQ2DJQqwSDXR7sTTbtjaEJy4ipXsYyFpGMa0IUlNB1afycgRqlkCh+GXlA/ob7ARTrc9u2mUjeZzfg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592912622; h=Content-Transfer-Encoding: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=A7eYDgZAAs2KTvVuHcnbdKug1DdrwXimAuXS2ZcmzWk=; b=eAOOkecoD6Te7DuuN2Ttp8rqU8AM+S6InXBFB75Y8ItR9wHKc7FmhTtfYpwXd0BaSiS7Dy1rbEGKDBtecmifVyz+fMwKAOIEn81r/E98Iqmb0QRnKvpseBdfXrdoOk1cAtQ7Y26RxhgMDShnx8oVtfCAFaHwiBm2JDKx4EIJh/g= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592912622090809.377750597676; Tue, 23 Jun 2020 04:43:42 -0700 (PDT) Received: from localhost ([::1]:41102 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhL2-0001AT-Pp for importer@patchew.org; Tue, 23 Jun 2020 07:43:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43948) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhGq-0002WR-FG for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:20 -0400 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]:35952) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhGo-0003B6-D9 for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:20 -0400 Received: by mail-wm1-x342.google.com with SMTP id 17so2864652wmo.1 for ; Tue, 23 Jun 2020 04:39:17 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.15 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:15 -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=A7eYDgZAAs2KTvVuHcnbdKug1DdrwXimAuXS2ZcmzWk=; b=v5i5oU4AmIWEg5ruWpA5FA/GW9bnZCWd/r+YMw9aYgfGNrEz2n9b1N581tOUMe7i1l 1itDFZz+BtHuNB9LjzfmVu1fXKL3uNmWKw+ppeCPmKq38d8KrD+O0U8IVIBxPEiyt2oH bQj6KuylLlVjXuOjQJ072ajblBl/inRutHtCAKgzFNyW2fXD0pFbBSmvbzct8hHrjIqA wDRrONOrj/Aot42jVgMg9/0UnhnZBvQTMCfBNjP/HtAI3/zQij0SKRx3yHBPWRVnmmaq beTuZYS/qzSGXtWyREjJ4YhpKUO9bjEUr6wo8ho0TP2WiZnelkxOGAX+6blBDUwceEnp xoeA== 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=A7eYDgZAAs2KTvVuHcnbdKug1DdrwXimAuXS2ZcmzWk=; b=AaPcZofeiWRWq4+e//40GrDaihJQa5YOiHGlOQZmPPIwSeg3J6QMotj0yWT0TstVKv NgRr1kuMVOgzGieX/nrTCg9zZ2BR2toWNB2Ftpd9nwrjZb0HUAOWObD0cT56Hnje22aU Wprk0kFgggf6/e5SA2GsYjVJc+5FAN5CJQJpdxCPiWpHmcIbsXyilVbM7QXek+DgrBW7 DDdGdPNKUmodWd1MShfDWfZr4s/Qqlvg0B4+Bo5ksAP+Qlpuwa827eKaG0WyuTmctFjn kE87bGM5yn6mMZZo4zhI+7+us/jmItVfo2T8CRAwHxcAJdCaoCG2K3C4Va8QU+epN/Mg WFWg== X-Gm-Message-State: AOAM532F7Ob7xAL0NEn54P97TU982O9so+K3aJ1wy0X3Ahe+8zvLeSEm yPnlHTvEQeNrkjyofP2x51SdKCzD0WUFwg== X-Google-Smtp-Source: ABdhPJxch/abuKJgmFotdZV9zIXS/BoxOJpiH9VFW6rUS0fx27rhOLbvTNPWny1XSY6sdiR5h91L2g== X-Received: by 2002:a1c:44e:: with SMTP id 75mr4441074wme.139.1592912356440; Tue, 23 Jun 2020 04:39:16 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 09/42] target/arm: Convert vectorised 2-reg-misc Neon ops to decodetree Date: Tue, 23 Jun 2020 12:38:31 +0100 Message-Id: <20200623113904.28805-10-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::342; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x342.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Convert to decodetree the insns in the Neon 2-reg-misc grouping which we implement using gvec. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20200616170844.13318-8-peter.maydell@linaro.org --- target/arm/neon-dp.decode | 11 +++++++ target/arm/translate-neon.inc.c | 55 +++++++++++++++++++++++++++++++++ target/arm/translate.c | 35 +++++---------------- 3 files changed, 74 insertions(+), 27 deletions(-) diff --git a/target/arm/neon-dp.decode b/target/arm/neon-dp.decode index 8174f2f92f4..b5692070d62 100644 --- a/target/arm/neon-dp.decode +++ b/target/arm/neon-dp.decode @@ -447,9 +447,20 @@ Vimm_1r 1111 001 . 1 . 000 ... .... cmode:4 0= . op:1 1 .... @1reg_imm VPADDL_S 1111 001 11 . 11 .. 00 .... 0 0100 . . 0 .... @2misc VPADDL_U 1111 001 11 . 11 .. 00 .... 0 0101 . . 0 .... @2misc =20 + VMVN 1111 001 11 . 11 .. 00 .... 0 1011 . . 0 .... @2misc + VPADAL_S 1111 001 11 . 11 .. 00 .... 0 1100 . . 0 .... @2misc VPADAL_U 1111 001 11 . 11 .. 00 .... 0 1101 . . 0 .... @2misc =20 + VCGT0 1111 001 11 . 11 .. 01 .... 0 0000 . . 0 .... @2misc + VCGE0 1111 001 11 . 11 .. 01 .... 0 0001 . . 0 .... @2misc + VCEQ0 1111 001 11 . 11 .. 01 .... 0 0010 . . 0 .... @2misc + VCLE0 1111 001 11 . 11 .. 01 .... 0 0011 . . 0 .... @2misc + VCLT0 1111 001 11 . 11 .. 01 .... 0 0100 . . 0 .... @2misc + + VABS 1111 001 11 . 11 .. 01 .... 0 0110 . . 0 .... @2misc + VNEG 1111 001 11 . 11 .. 01 .... 0 0111 . . 0 .... @2misc + VUZP 1111 001 11 . 11 .. 10 .... 0 0010 . . 0 .... @2misc VZIP 1111 001 11 . 11 .. 10 .... 0 0011 . . 0 .... @2misc =20 diff --git a/target/arm/translate-neon.inc.c b/target/arm/translate-neon.in= c.c index d37be597cf4..d80123514c2 100644 --- a/target/arm/translate-neon.inc.c +++ b/target/arm/translate-neon.inc.c @@ -3450,3 +3450,58 @@ static bool trans_VCVT_F32_F16(DisasContext *s, arg_= 2misc *a) =20 return true; } + +static bool do_2misc_vec(DisasContext *s, arg_2misc *a, GVecGen2Fn *fn) +{ + int vec_size =3D a->q ? 16 : 8; + int rd_ofs =3D neon_reg_offset(a->vd, 0); + int rm_ofs =3D neon_reg_offset(a->vm, 0); + + if (!arm_dc_feature(s, ARM_FEATURE_NEON)) { + return false; + } + + /* UNDEF accesses to D16-D31 if they don't exist. */ + if (!dc_isar_feature(aa32_simd_r32, s) && + ((a->vd | a->vm) & 0x10)) { + return false; + } + + if (a->size =3D=3D 3) { + return false; + } + + if ((a->vd | a->vm) & a->q) { + return false; + } + + if (!vfp_access_check(s)) { + return true; + } + + fn(a->size, rd_ofs, rm_ofs, vec_size, vec_size); + + return true; +} + +#define DO_2MISC_VEC(INSN, FN) \ + static bool trans_##INSN(DisasContext *s, arg_2misc *a) \ + { \ + return do_2misc_vec(s, a, FN); \ + } + +DO_2MISC_VEC(VNEG, tcg_gen_gvec_neg) +DO_2MISC_VEC(VABS, tcg_gen_gvec_abs) +DO_2MISC_VEC(VCEQ0, gen_gvec_ceq0) +DO_2MISC_VEC(VCGT0, gen_gvec_cgt0) +DO_2MISC_VEC(VCLE0, gen_gvec_cle0) +DO_2MISC_VEC(VCGE0, gen_gvec_cge0) +DO_2MISC_VEC(VCLT0, gen_gvec_clt0) + +static bool trans_VMVN(DisasContext *s, arg_2misc *a) +{ + if (a->size !=3D 0) { + return false; + } + return do_2misc_vec(s, a, tcg_gen_gvec_not); +} diff --git a/target/arm/translate.c b/target/arm/translate.c index 1ea09695546..0f0741a37bc 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -4859,7 +4859,6 @@ static int disas_neon_data_insn(DisasContext *s, uint= 32_t insn) int size; int pass; int u; - int vec_size; TCGv_i32 tmp, tmp2; =20 if (!arm_dc_feature(s, ARM_FEATURE_NEON)) { @@ -4883,7 +4882,6 @@ static int disas_neon_data_insn(DisasContext *s, uint= 32_t insn) VFP_DREG_D(rd, insn); VFP_DREG_M(rm, insn); size =3D (insn >> 20) & 3; - vec_size =3D q ? 16 : 8; rd_ofs =3D neon_reg_offset(rd, 0); rm_ofs =3D neon_reg_offset(rm, 0); =20 @@ -4929,6 +4927,14 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) case NEON_2RM_VSHLL: case NEON_2RM_VCVT_F16_F32: case NEON_2RM_VCVT_F32_F16: + case NEON_2RM_VMVN: + case NEON_2RM_VNEG: + case NEON_2RM_VABS: + case NEON_2RM_VCEQ0: + case NEON_2RM_VCGT0: + case NEON_2RM_VCLE0: + case NEON_2RM_VCGE0: + case NEON_2RM_VCLT0: /* handled by decodetree */ return 1; case NEON_2RM_VTRN: @@ -4989,31 +4995,6 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) q ? gen_helper_crypto_sha256su0 : gen_helper_crypto_sha1su1); break; - case NEON_2RM_VMVN: - tcg_gen_gvec_not(0, rd_ofs, rm_ofs, vec_size, vec_size= ); - break; - case NEON_2RM_VNEG: - tcg_gen_gvec_neg(size, rd_ofs, rm_ofs, vec_size, vec_s= ize); - break; - case NEON_2RM_VABS: - tcg_gen_gvec_abs(size, rd_ofs, rm_ofs, vec_size, vec_s= ize); - break; - - case NEON_2RM_VCEQ0: - gen_gvec_ceq0(size, rd_ofs, rm_ofs, vec_size, vec_size= ); - break; - case NEON_2RM_VCGT0: - gen_gvec_cgt0(size, rd_ofs, rm_ofs, vec_size, vec_size= ); - break; - case NEON_2RM_VCLE0: - gen_gvec_cle0(size, rd_ofs, rm_ofs, vec_size, vec_size= ); - break; - case NEON_2RM_VCGE0: - gen_gvec_cge0(size, rd_ofs, rm_ofs, vec_size, vec_size= ); - break; - case NEON_2RM_VCLT0: - gen_gvec_clt0(size, rd_ofs, rm_ofs, vec_size, vec_size= ); - break; =20 default: elementwise: --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592912996; cv=none; d=zohomail.com; s=zohoarc; b=X+cRxkI3ddEWxxlhHOnRcyFQh90S7AfOahNKy3R6OAcVwjprSjbNa/N9pppr0gFR1UynQc1qtpo1C8QeO7mZbPvCYDsqb0Unkk7satRml8rByGtSRcSKUfRLlgIgTVowzYqJQQokdv7zgQe4ZwV6DyViCMOe/2iaTyJCmXlJgOY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592912996; h=Content-Transfer-Encoding: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=wHY2dRt/edaBgZCUqWFdVDocojehIOV1l3z6opvWx9Y=; b=LjXnl0MNCJ/xDALJ9NYYrjJkta6Zh+G4uwMFeeW04ZlSQPSaqV73mOZab2tqkkwDgzsCIPzpvLjyL0lRQjZR9qcWZxq+DV3Dk/3A5XIoA3wDMH/QQSe58ZjOuGJN4/E6n+YDzlugGw78HyjZ20TSV9rEJhrOz4m4RaPsIdI+HA4= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592912996213894.0950530752357; Tue, 23 Jun 2020 04:49:56 -0700 (PDT) Received: from localhost ([::1]:35586 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhR4-0003sY-Ti for importer@patchew.org; Tue, 23 Jun 2020 07:49:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43990) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhGs-0002ai-5M for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:22 -0400 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]:40397) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhGp-0003BM-Kx for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:21 -0400 Received: by mail-wm1-x342.google.com with SMTP id f139so1438335wmf.5 for ; Tue, 23 Jun 2020 04:39:19 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.16 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:16 -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=wHY2dRt/edaBgZCUqWFdVDocojehIOV1l3z6opvWx9Y=; b=CPGI7Tf3ps6NmzBtjrc+2TRiQm2zi6JArmkuP9s3WFD64lFbfYhveTiWBmpR60X2mX MSdcDSgyrWcytFMw5jKbFzZ+C4YaUcHOaypAVwqDF5ZMiVMib7+E7f0L8R4QB89BuhUe OcmLaF/x+I/Vh5x0Ivh3n8LnlNeERlz7kG+A1UyXrs8RX0lbwNIVNPbUIFC7lonHltbv R6tNzPmyPv2CmY1TO75V61kMgwo6qGFNBtBRnS90x817FP2hp8ft6D39JHMBeJjvXwbS 8rBRxadDJMDoim6qZv7bx0/X41ljCapbDgzfXM38/Jit/HcZl0K9R5H+CSGD4V8/MXk4 DVMA== 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=wHY2dRt/edaBgZCUqWFdVDocojehIOV1l3z6opvWx9Y=; b=XxYynsC3rwOJlYLYOlCefGT02t2dzt8njd3H3CScKPks+IAeky4HWkBTheio2aksQt FNxC8i5Ew+EH8amIXRrVkxrabHU/7xoj5yGwvx/mfON0hNLsrusRnewYzyc1nbBzwHXr 8zqpKnyNxi8Tw2l2a0Kw9uh1NNSisEQ1kWZaWo5DkEaeUIIiiINXvuW4m5zLvBv+WwKb TriZpIKD01twSIatmJhIdBXKDDnrARA6BVPJ6WtPHsKe/89qAh6o4KAaz+C6aMeTELuw rcJ3ExKDuB3bUzk9aXMI8YcVk9aX/tkPc/NfGoi4ZKFcrtEf1oA3ASJWK3Hyr3XnvuFl DKkg== X-Gm-Message-State: AOAM533KKlBIJb8dgCPySVngKXJ1qXfA8qt5lZeRp3ne5eBQ9J6sFD09 zdpUbhsKIsTA3n6e1nE4DcFonvRTb3Ijcg== X-Google-Smtp-Source: ABdhPJzSge0kAsfxkVJNlM3Wn0s94CBc/0NrpEM8AtF9VQ80RYxpCS/Unnrg9zdzs5tQ2CJRXHXZdg== X-Received: by 2002:a7b:cd90:: with SMTP id y16mr16342387wmj.20.1592912357795; Tue, 23 Jun 2020 04:39:17 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 10/42] target/arm: Convert Neon 2-reg-misc crypto operations to decodetree Date: Tue, 23 Jun 2020 12:38:32 +0100 Message-Id: <20200623113904.28805-11-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::342; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x342.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Convert the Neon-2-reg misc crypto ops (AESE, AESMC, SHA1H, SHA1SU1) to decodetree. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20200616170844.13318-9-peter.maydell@linaro.org --- target/arm/neon-dp.decode | 12 ++++++++ target/arm/translate-neon.inc.c | 42 ++++++++++++++++++++++++++ target/arm/translate.c | 52 +++------------------------------ 3 files changed, 58 insertions(+), 48 deletions(-) diff --git a/target/arm/neon-dp.decode b/target/arm/neon-dp.decode index b5692070d62..86b1b9e34bf 100644 --- a/target/arm/neon-dp.decode +++ b/target/arm/neon-dp.decode @@ -441,12 +441,19 @@ Vimm_1r 1111 001 . 1 . 000 ... .... cmode:4 = 0 . op:1 1 .... @1reg_imm &2misc vm=3D%vm_dp vd=3D%vd_dp @2misc_q0 .... ... .. . .. size:2 .. .... . .... . . . .... \ &2misc vm=3D%vm_dp vd=3D%vd_dp q=3D0 + @2misc_q1 .... ... .. . .. size:2 .. .... . .... . . . .... \ + &2misc vm=3D%vm_dp vd=3D%vd_dp q=3D1 =20 VREV64 1111 001 11 . 11 .. 00 .... 0 0000 . . 0 .... @2misc =20 VPADDL_S 1111 001 11 . 11 .. 00 .... 0 0100 . . 0 .... @2misc VPADDL_U 1111 001 11 . 11 .. 00 .... 0 0101 . . 0 .... @2misc =20 + AESE 1111 001 11 . 11 .. 00 .... 0 0110 0 . 0 .... @2misc_q1 + AESD 1111 001 11 . 11 .. 00 .... 0 0110 1 . 0 .... @2misc_q1 + AESMC 1111 001 11 . 11 .. 00 .... 0 0111 0 . 0 .... @2misc_q1 + AESIMC 1111 001 11 . 11 .. 00 .... 0 0111 1 . 0 .... @2misc_q1 + VMVN 1111 001 11 . 11 .. 00 .... 0 1011 . . 0 .... @2misc =20 VPADAL_S 1111 001 11 . 11 .. 00 .... 0 1100 . . 0 .... @2misc @@ -458,6 +465,8 @@ Vimm_1r 1111 001 . 1 . 000 ... .... cmode:4 0 = . op:1 1 .... @1reg_imm VCLE0 1111 001 11 . 11 .. 01 .... 0 0011 . . 0 .... @2misc VCLT0 1111 001 11 . 11 .. 01 .... 0 0100 . . 0 .... @2misc =20 + SHA1H 1111 001 11 . 11 .. 01 .... 0 0101 1 . 0 .... @2misc_q1 + VABS 1111 001 11 . 11 .. 01 .... 0 0110 . . 0 .... @2misc VNEG 1111 001 11 . 11 .. 01 .... 0 0111 . . 0 .... @2misc =20 @@ -473,6 +482,9 @@ Vimm_1r 1111 001 . 1 . 000 ... .... cmode:4 0 = . op:1 1 .... @1reg_imm =20 VSHLL 1111 001 11 . 11 .. 10 .... 0 0110 0 . 0 .... @2misc_q0 =20 + SHA1SU1 1111 001 11 . 11 .. 10 .... 0 0111 0 . 0 .... @2misc_q1 + SHA256SU0 1111 001 11 . 11 .. 10 .... 0 0111 1 . 0 .... @2misc_q1 + VCVT_F16_F32 1111 001 11 . 11 .. 10 .... 0 1100 0 . 0 .... @2misc_q0 VCVT_F32_F16 1111 001 11 . 11 .. 10 .... 0 1110 0 . 0 .... @2misc_q0 ] diff --git a/target/arm/translate-neon.inc.c b/target/arm/translate-neon.in= c.c index d80123514c2..5e2cd18bf71 100644 --- a/target/arm/translate-neon.inc.c +++ b/target/arm/translate-neon.inc.c @@ -3505,3 +3505,45 @@ static bool trans_VMVN(DisasContext *s, arg_2misc *a) } return do_2misc_vec(s, a, tcg_gen_gvec_not); } + +#define WRAP_2M_3_OOL_FN(WRAPNAME, FUNC, DATA) \ + static void WRAPNAME(unsigned vece, uint32_t rd_ofs, \ + uint32_t rm_ofs, uint32_t oprsz, \ + uint32_t maxsz) \ + { \ + tcg_gen_gvec_3_ool(rd_ofs, rd_ofs, rm_ofs, oprsz, maxsz, \ + DATA, FUNC); \ + } + +#define WRAP_2M_2_OOL_FN(WRAPNAME, FUNC, DATA) \ + static void WRAPNAME(unsigned vece, uint32_t rd_ofs, \ + uint32_t rm_ofs, uint32_t oprsz, \ + uint32_t maxsz) \ + { \ + tcg_gen_gvec_2_ool(rd_ofs, rm_ofs, oprsz, maxsz, DATA, FUNC); \ + } + +WRAP_2M_3_OOL_FN(gen_AESE, gen_helper_crypto_aese, 0) +WRAP_2M_3_OOL_FN(gen_AESD, gen_helper_crypto_aese, 1) +WRAP_2M_2_OOL_FN(gen_AESMC, gen_helper_crypto_aesmc, 0) +WRAP_2M_2_OOL_FN(gen_AESIMC, gen_helper_crypto_aesmc, 1) +WRAP_2M_2_OOL_FN(gen_SHA1H, gen_helper_crypto_sha1h, 0) +WRAP_2M_2_OOL_FN(gen_SHA1SU1, gen_helper_crypto_sha1su1, 0) +WRAP_2M_2_OOL_FN(gen_SHA256SU0, gen_helper_crypto_sha256su0, 0) + +#define DO_2M_CRYPTO(INSN, FEATURE, SIZE) \ + static bool trans_##INSN(DisasContext *s, arg_2misc *a) \ + { \ + if (!dc_isar_feature(FEATURE, s) || a->size !=3D SIZE) { \ + return false; \ + } \ + return do_2misc_vec(s, a, gen_##INSN); \ + } + +DO_2M_CRYPTO(AESE, aa32_aes, 0) +DO_2M_CRYPTO(AESD, aa32_aes, 0) +DO_2M_CRYPTO(AESMC, aa32_aes, 0) +DO_2M_CRYPTO(AESIMC, aa32_aes, 0) +DO_2M_CRYPTO(SHA1H, aa32_sha1, 2) +DO_2M_CRYPTO(SHA1SU1, aa32_sha1, 2) +DO_2M_CRYPTO(SHA256SU0, aa32_sha2, 2) diff --git a/target/arm/translate.c b/target/arm/translate.c index 0f0741a37bc..38644995ab2 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -4855,7 +4855,7 @@ static int disas_neon_data_insn(DisasContext *s, uint= 32_t insn) { int op; int q; - int rd, rm, rd_ofs, rm_ofs; + int rd, rm; int size; int pass; int u; @@ -4882,8 +4882,6 @@ static int disas_neon_data_insn(DisasContext *s, uint= 32_t insn) VFP_DREG_D(rd, insn); VFP_DREG_M(rm, insn); size =3D (insn >> 20) & 3; - rd_ofs =3D neon_reg_offset(rd, 0); - rm_ofs =3D neon_reg_offset(rm, 0); =20 if ((insn & (1 << 23)) =3D=3D 0) { /* Three register same length: handled by decodetree */ @@ -4935,6 +4933,9 @@ static int disas_neon_data_insn(DisasContext *s, uint= 32_t insn) case NEON_2RM_VCLE0: case NEON_2RM_VCGE0: case NEON_2RM_VCLT0: + case NEON_2RM_AESE: case NEON_2RM_AESMC: + case NEON_2RM_SHA1H: + case NEON_2RM_SHA1SU1: /* handled by decodetree */ return 1; case NEON_2RM_VTRN: @@ -4950,51 +4951,6 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) goto elementwise; } break; - case NEON_2RM_AESE: case NEON_2RM_AESMC: - if (!dc_isar_feature(aa32_aes, s) || ((rm | rd) & 1)) { - return 1; - } - /* - * Bit 6 is the lowest opcode bit; it distinguishes - * between encryption (AESE/AESMC) and decryption - * (AESD/AESIMC). - */ - if (op =3D=3D NEON_2RM_AESE) { - tcg_gen_gvec_3_ool(vfp_reg_offset(true, rd), - vfp_reg_offset(true, rd), - vfp_reg_offset(true, rm), - 16, 16, extract32(insn, 6, 1), - gen_helper_crypto_aese); - } else { - tcg_gen_gvec_2_ool(vfp_reg_offset(true, rd), - vfp_reg_offset(true, rm), - 16, 16, extract32(insn, 6, 1), - gen_helper_crypto_aesmc); - } - break; - case NEON_2RM_SHA1H: - if (!dc_isar_feature(aa32_sha1, s) || ((rm | rd) & 1))= { - return 1; - } - tcg_gen_gvec_2_ool(rd_ofs, rm_ofs, 16, 16, 0, - gen_helper_crypto_sha1h); - break; - case NEON_2RM_SHA1SU1: - if ((rm | rd) & 1) { - return 1; - } - /* bit 6 (q): set -> SHA256SU0, cleared -> SHA1SU1 */ - if (q) { - if (!dc_isar_feature(aa32_sha2, s)) { - return 1; - } - } else if (!dc_isar_feature(aa32_sha1, s)) { - return 1; - } - tcg_gen_gvec_2_ool(rd_ofs, rm_ofs, 16, 16, 0, - q ? gen_helper_crypto_sha256su0 - : gen_helper_crypto_sha1su1); - break; =20 default: elementwise: --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592912858; cv=none; d=zohomail.com; s=zohoarc; b=mJDSuDEbae1h+7lg3q/a+Tk3cflvNmt1/I1tp3uynRWcGVQRkm4kUeQieAoZzASgz8EOKVsKYM5TOmusQ6pPbQPjlBIpkgtROVisjgo4iAyjG/WA7CTyaqQc9X3S/LMDv/lTWtZuaTdwpIS9/5EUOoHydMINfHT35MzAyziz1OI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592912858; h=Content-Transfer-Encoding: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=E7h/ZKKdx5+TkX9rKVx9Je7du9LnXSOF20AgOzD56ZM=; b=bZLPBINPEgjY4lLCWaEr6U/Lg4ipBD8o6DD5JLfS4jMtYTMkflAjskUlLs2YRgPnIGJ5/Kyn3sk+oJItYJNinjDGnw1sjsZfU/gUkqVDbT9ulkXcjplPckQIzpir7FCjiZ5Dh/owh5uRdAZ8qZTOQFJE+jYK+Ogfr8xOyv0+d2E= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592912858819951.3489795327673; Tue, 23 Jun 2020 04:47:38 -0700 (PDT) Received: from localhost ([::1]:55882 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhOr-0000eT-GA for importer@patchew.org; Tue, 23 Jun 2020 07:47:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43996) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhGs-0002bq-H5 for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:22 -0400 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]:50941) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhGq-0003Bk-P0 for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:22 -0400 Received: by mail-wm1-x335.google.com with SMTP id l17so2683028wmj.0 for ; Tue, 23 Jun 2020 04:39:20 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.17 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:18 -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=E7h/ZKKdx5+TkX9rKVx9Je7du9LnXSOF20AgOzD56ZM=; b=L7fOpLLBLGJfQ7HeLwA4L0iAz7AfI8PXjNFo/QV4+I7dQvCZtx2Ocyd40fjnTL/3NG epyMLeePRPWZark/RVjX/l1L3dQeYN5SaGQH24Yp2myHdosk2h0fFCKHUY7T9GAiKKqx AmARc5Z3du3qu9FkTTtuteWf+judDp+zeazMTYdp3PlUo7rnmLZlDnKdONU71HczDul0 0KEG2nHIWvY4gXPyVUDVEWgTR0BLQcDpxelKAHXFIAlocD79Z7gvf2xebR5Jo4nXnGci maxsPFEkO6Cgx66PZT7v9eT4ZuWHCy+NGoJg2dq0kiCx52b+DV7tbjTjnmNwgwVMYK7v xBFw== 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=E7h/ZKKdx5+TkX9rKVx9Je7du9LnXSOF20AgOzD56ZM=; b=DrS+lrExfypitF/lr3zH+L2QMlmv8X/e6IDA74JTEPMByREdhqHORPZC/cAbMhi6a2 vMUqapiTcG5OFLQcyG3XUVDk6Xt4mQqfWfaZQ+6Hup7pCshRQb0lWkTbf3pSzS9VxvO0 tK3ddkHnt9e23o1tm2Zb0Oeeqj1wWLyuas8554rBX1DE1tAKnGSKvhnIl0vWr8ZPgJWP WtxVY7c9rD6cshCkGz3fwqetdoPXXd6CwD0bmf5B8KNljqOLMsjo+YCKjIpsFlGvI7b3 BoP0hqY7nq3HODxiM1GTUVoHyuQ7eARaJdgOiyg8ChYgytIroZR+o6cAjIZVleaArRQW 9y1A== X-Gm-Message-State: AOAM532WLU9/1KNEVqTxx0lSeZKoJy2MQsaZKOrwsmAST1wUDjzjBytI JXyGaJuDUtIVlPUUH/aqnUxnEyPZ+ZotjA== X-Google-Smtp-Source: ABdhPJwHllFlKnMS8cTbpRhrizJPcOvlClvyvFrqpDXHi6EcACDaJiRk8SiOTyBshRS4t8VjnlH7DA== X-Received: by 2002:a1c:e910:: with SMTP id q16mr10370829wmc.188.1592912358986; Tue, 23 Jun 2020 04:39:18 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 11/42] target/arm: Rename NeonGenOneOpFn to NeonGenOne64OpFn Date: Tue, 23 Jun 2020 12:38:33 +0100 Message-Id: <20200623113904.28805-12-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::335; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x335.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" The NeonGenOneOpFn typedef breaks with the pattern of the other NeonGen*Fn typedefs, because it is a TCGv_i64 -> TCGv_i64 operation but it does not have '64' in its name. Rename it to NeonGenOne64OpFn, so that the old name is available for a TCGv_i32 -> TCGv_i32 operation (which we will need in a subsequent commit). Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20200616170844.13318-10-peter.maydell@linaro.org --- target/arm/translate.h | 2 +- target/arm/translate-a64.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/target/arm/translate.h b/target/arm/translate.h index 62ed5c4780c..35218b3fdf1 100644 --- a/target/arm/translate.h +++ b/target/arm/translate.h @@ -374,7 +374,7 @@ typedef void NeonGenWidenFn(TCGv_i64, TCGv_i32); typedef void NeonGenTwoOpWidenFn(TCGv_i64, TCGv_i32, TCGv_i32); typedef void NeonGenTwoSingleOPFn(TCGv_i32, TCGv_i32, TCGv_i32, TCGv_ptr); typedef void NeonGenTwoDoubleOPFn(TCGv_i64, TCGv_i64, TCGv_i64, TCGv_ptr); -typedef void NeonGenOneOpFn(TCGv_i64, TCGv_i64); +typedef void NeonGenOne64OpFn(TCGv_i64, TCGv_i64); typedef void CryptoTwoOpFn(TCGv_ptr, TCGv_ptr); typedef void CryptoThreeOpIntFn(TCGv_ptr, TCGv_ptr, TCGv_i32); typedef void CryptoThreeOpFn(TCGv_ptr, TCGv_ptr, TCGv_ptr); diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index a0e72ad6942..7cb5fbfba80 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -11917,8 +11917,8 @@ static void handle_2misc_pairwise(DisasContext *s, = int opcode, bool u, } else { for (pass =3D 0; pass < maxpass; pass++) { TCGv_i64 tcg_op =3D tcg_temp_new_i64(); - NeonGenOneOpFn *genfn; - static NeonGenOneOpFn * const fns[2][2] =3D { + NeonGenOne64OpFn *genfn; + static NeonGenOne64OpFn * const fns[2][2] =3D { { gen_helper_neon_addlp_s8, gen_helper_neon_addlp_u8 }, { gen_helper_neon_addlp_s16, gen_helper_neon_addlp_u16 }, }; --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592913000; cv=none; d=zohomail.com; s=zohoarc; b=Q9EmMsACxT+4Yoo0MXe2hhAEVrKXIKnCJFkmFLMbaTikQzWH+Ev8EguiJfmk+5bGTSI9a7AlSaox8uGYzLXxWAN12Lgwn2WZwfko4ZEFGpa5ij24Ufpsa2bVppDst/J23+UE+9lk8c/Ks6ahLpmcvrwqUvegkevcOIKzKsfXG9Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592913000; h=Content-Transfer-Encoding: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=atbuaNCQdYY84+MOuxQ6o76AKw2wUTKV2kwqEbNgCzQ=; b=BY4WaupSKVAkPWzVpr+0URPOFF0X1+dL43mjnqbjDzyoVTrMjANsxLZy4cBMPSZDPaxyX6GTY2AitKnkvy9iS/Vok0UQ4qdEspkSbM/qwySxnUjDRIl6jZQTibpney3QnOS7ghVJB5GPT7+as8npU56pJonNqaFKUZeloxSkhv0= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592913000507289.0014071890953; Tue, 23 Jun 2020 04:50:00 -0700 (PDT) Received: from localhost ([::1]:36108 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhR9-00046G-8L for importer@patchew.org; Tue, 23 Jun 2020 07:49:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44012) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhGt-0002e0-GL for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:23 -0400 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]:38944) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhGr-0003CF-MB for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:23 -0400 Received: by mail-wr1-x430.google.com with SMTP id q5so7772664wru.6 for ; Tue, 23 Jun 2020 04:39:21 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:19 -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=atbuaNCQdYY84+MOuxQ6o76AKw2wUTKV2kwqEbNgCzQ=; b=chYVmqbe3T6vUaGNE3PUksF8A3j9SLTIP1MLiTf+GOAch10FN1KIPk4EMJ3sFXNLfF 8RYRcmo8h4kJ+RXkDo1q45VUBw5JxDgG1JllwSqsUmbTiysuqw16gNs4W+hfZAxoGWUO HN7P6MURtvPWJvYBolWY/gpxm/h4Skw71j0lJx0P2AiVy9QJLCShZRVhM+WykJnc5CSL j6Jat+febKc4iIFN1BCy9ceL5pnsRAITQoySxzSQIe36i5la8OULG47jQXcSiI8TFaTC yYypLvSLuMKCZB1lSqaVESnz9UlACfZJ+BjzdqEGmYU+cwGaQ229YtNtDUvpJyoCVC9w HHkQ== 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=atbuaNCQdYY84+MOuxQ6o76AKw2wUTKV2kwqEbNgCzQ=; b=sE8atJsz8CDho0WjPNidH6BWT1LDmNeGmWMWL9PYPMVciztc+zDJFGyrNdtLJ5Dq0Z BYfeCb4nlVhnyU/B6RMMctZL3bAW8C1rD0/4iSOa/DOVLH6jnnJ0Rfrpakh5+1EbLkFI qsg3wB4TSgg/piyrQxGbvpkoDYaqGoGFRW693yefDPfyQZSj2RgupbwR2f18Fct4vwtq ThNQybNPLhiOyLhiS+k2xuC0u7NtNdaSYxVKuMoqKwd2aVerf+SK3VHzp2twOMaGSt/R xW9LO58MGdubuHlmxpT/C6ZIvVUVn1i+uxFow8mCtmNLprGpXlNPRUo3yffptBG0CIZ/ KwTg== X-Gm-Message-State: AOAM532T8ahrIc/LWdAHmttoGPvhYi4u3sLofE+xH+RQNJmTnt14p0F9 5gTP4C+ZiZfxhFcI0DFtkdR1ER4ZWsQfjQ== X-Google-Smtp-Source: ABdhPJwGMupc3Rv91569St4ISblYlbxywAM+b2/yUrogNCK+YjuZWF7tAwv33iQ76+0zTzmBHaGsWQ== X-Received: by 2002:a5d:554b:: with SMTP id g11mr24881220wrw.260.1592912360080; Tue, 23 Jun 2020 04:39:20 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 12/42] target/arm: Fix capitalization in NeonGenTwo{Single, Double}OPFn typedefs Date: Tue, 23 Jun 2020 12:38:34 +0100 Message-Id: <20200623113904.28805-13-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::430; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x430.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" All the other typedefs like these spell "Op" with a lowercase 'p'; remane the NeonGenTwoSingleOPFn and NeonGenTwoDoubleOPFn typedefs to match. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20200616170844.13318-11-peter.maydell@linaro.org --- target/arm/translate.h | 4 ++-- target/arm/translate-a64.c | 4 ++-- target/arm/translate-neon.inc.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/target/arm/translate.h b/target/arm/translate.h index 35218b3fdf1..467c5291101 100644 --- a/target/arm/translate.h +++ b/target/arm/translate.h @@ -372,8 +372,8 @@ typedef void NeonGenNarrowFn(TCGv_i32, TCGv_i64); typedef void NeonGenNarrowEnvFn(TCGv_i32, TCGv_ptr, TCGv_i64); typedef void NeonGenWidenFn(TCGv_i64, TCGv_i32); typedef void NeonGenTwoOpWidenFn(TCGv_i64, TCGv_i32, TCGv_i32); -typedef void NeonGenTwoSingleOPFn(TCGv_i32, TCGv_i32, TCGv_i32, TCGv_ptr); -typedef void NeonGenTwoDoubleOPFn(TCGv_i64, TCGv_i64, TCGv_i64, TCGv_ptr); +typedef void NeonGenTwoSingleOpFn(TCGv_i32, TCGv_i32, TCGv_i32, TCGv_ptr); +typedef void NeonGenTwoDoubleOpFn(TCGv_i64, TCGv_i64, TCGv_i64, TCGv_ptr); typedef void NeonGenOne64OpFn(TCGv_i64, TCGv_i64); typedef void CryptoTwoOpFn(TCGv_ptr, TCGv_ptr); typedef void CryptoThreeOpIntFn(TCGv_ptr, TCGv_ptr, TCGv_i32); diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index 7cb5fbfba80..12040984981 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -9534,7 +9534,7 @@ static void handle_2misc_fcmp_zero(DisasContext *s, i= nt opcode, TCGv_i64 tcg_op =3D tcg_temp_new_i64(); TCGv_i64 tcg_zero =3D tcg_const_i64(0); TCGv_i64 tcg_res =3D tcg_temp_new_i64(); - NeonGenTwoDoubleOPFn *genfn; + NeonGenTwoDoubleOpFn *genfn; bool swap =3D false; int pass; =20 @@ -9576,7 +9576,7 @@ static void handle_2misc_fcmp_zero(DisasContext *s, i= nt opcode, TCGv_i32 tcg_op =3D tcg_temp_new_i32(); TCGv_i32 tcg_zero =3D tcg_const_i32(0); TCGv_i32 tcg_res =3D tcg_temp_new_i32(); - NeonGenTwoSingleOPFn *genfn; + NeonGenTwoSingleOpFn *genfn; bool swap =3D false; int pass, maxpasses; =20 diff --git a/target/arm/translate-neon.inc.c b/target/arm/translate-neon.in= c.c index 5e2cd18bf71..c39443c8cae 100644 --- a/target/arm/translate-neon.inc.c +++ b/target/arm/translate-neon.inc.c @@ -1664,7 +1664,7 @@ static bool trans_VSHLL_U_2sh(DisasContext *s, arg_2r= eg_shift *a) } =20 static bool do_fp_2sh(DisasContext *s, arg_2reg_shift *a, - NeonGenTwoSingleOPFn *fn) + NeonGenTwoSingleOpFn *fn) { /* FP operations in 2-reg-and-shift group */ TCGv_i32 tmp, shiftv; --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592913119; cv=none; d=zohomail.com; s=zohoarc; b=VdX9DhXevUGNbY1AhiVTcoVDieqSYrh8hiC+DjyY6SzHVXKZnZz+r89Sc2E36h2zGENmBCUqhZtc7chIXy2rw4XBz44xDqgPPMcfjLFhGOr6GqD71a5w7Cmn3n+QXPefmUrhqH2zMkXCJ1QkYPjcOEaLPDWJBx5Ws7QcjsMuwwk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592913119; h=Content-Transfer-Encoding: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=+2zDeEiCTHBTGs+Yj4qcOYD6SxZptA1+PpcqVpemOu4=; b=Iy0YHKCbyPVUHBUxhPz48KGw/2rWk82ZTLq1IzsS+FxrxC6dlZT+7dKNCMmPPZ6hBx5Eyyls2hdwKtluNstsYc1G0e0F5L8SXrrbCtm7F74EAAjupmXltU983xmdeYW4pk5elA6suPpS1G0iHXrkZ5S5cMohdA6xNbi4Yd2opcA= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592913119432832.7012994921798; Tue, 23 Jun 2020 04:51:59 -0700 (PDT) Received: from localhost ([::1]:44522 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhT4-0007YY-0x for importer@patchew.org; Tue, 23 Jun 2020 07:51:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44020) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhGu-0002gJ-EA for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:24 -0400 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]:55196) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhGs-0003CN-Mh for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:24 -0400 Received: by mail-wm1-x335.google.com with SMTP id o8so922773wmh.4 for ; Tue, 23 Jun 2020 04:39:22 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:20 -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=+2zDeEiCTHBTGs+Yj4qcOYD6SxZptA1+PpcqVpemOu4=; b=t1XHmtOavjRV1hx9LxkRQ6E1WIJ2h7ucu3BPdLf5ZJvjUAljM4fvL1QUracdqOuOWb Lla3WSEHp/5YFu/3d5DZ6F0e7JLTOuHpiKaOjjpjt3ULsq3q4nFJpd7T7Jj/Bu/QRIvJ Fmk1ORTnqQqhFWVCx0yPNZZtsoV05dkuOSqKULXd+GTlb9NJcKYxDVfkwxU3yjCAcQIn dk4yzEI+P2NOBYTwytgqQBzsugdxZKM2Ke7+ggIzw2jK3zIllAqWFbQ2BMaYQ0Ss2IJR QvrqW1cR6eIbSS7mpQY0wfFmEH57J3RryAOcSkpinDcDUJZxu08wfYSX/OitWdK5H83F MHWA== 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=+2zDeEiCTHBTGs+Yj4qcOYD6SxZptA1+PpcqVpemOu4=; b=WxNSphs/D3tTJib5Ur8WzSWKkQsY9D6V0ceZMwE8g46Wk2sVXGK6Kq7HINK7dXlfWy ZpX0SQ4unGgAi3sSB1QAnYjSSDqfkZ0q6xeZExYfL6k3qxYUd9y5JRBhjQN/SnmvVyce KqRcZuGhs22OIJ37KCBsgM1LgRk0txCAR5muEwg3TCHjMOR2GeTUTlGL9/4wArLjsn5X BhnK4kGThHTfJA3o4s3c9A4olDcS5yBaogCq4dNiU8PZggJ53g8CkRUif1H0AUa483iN vXREUKDLeecocbR9CubBfa/CFa70yFO9y6gkwIbIQ+xqCfxivYHxYYUCvk3DrW1LpOjE ZLBg== X-Gm-Message-State: AOAM530zjW1rHByKJ3nLJ3URTeh/QdG8LzXVuzenNorTYK9IMRWw3QUU aS/+9a+ufxfcRYE67BqlnKxGkIMnSvbjTg== X-Google-Smtp-Source: ABdhPJwP+MqLjXq64PEAe6U/gZHWUn8RqqXjMqBYImpx2IOn1HlN1M30PAQ5tNEQ6pQjqikqL/4ujA== X-Received: by 2002:a1c:5603:: with SMTP id k3mr24134196wmb.116.1592912361081; Tue, 23 Jun 2020 04:39:21 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 13/42] target/arm: Make gen_swap_half() take separate src and dest Date: Tue, 23 Jun 2020 12:38:35 +0100 Message-Id: <20200623113904.28805-14-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::335; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x335.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Make gen_swap_half() take a source and destination TCGv_i32 rather than modifying the input TCGv_i32; we're going to want to be able to use it with the more flexible function signature, and this also brings it into line with other functions like gen_rev16() and gen_revsh(). Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20200616170844.13318-12-peter.maydell@linaro.org --- target/arm/translate-neon.inc.c | 2 +- target/arm/translate.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/target/arm/translate-neon.inc.c b/target/arm/translate-neon.in= c.c index c39443c8cae..4967e974386 100644 --- a/target/arm/translate-neon.inc.c +++ b/target/arm/translate-neon.inc.c @@ -3007,7 +3007,7 @@ static bool trans_VREV64(DisasContext *s, arg_VREV64 = *a) tcg_gen_bswap32_i32(tmp[half], tmp[half]); break; case 1: - gen_swap_half(tmp[half]); + gen_swap_half(tmp[half], tmp[half]); break; case 2: break; diff --git a/target/arm/translate.c b/target/arm/translate.c index 38644995ab2..64b18a95b64 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -378,9 +378,9 @@ static void gen_revsh(TCGv_i32 dest, TCGv_i32 var) } =20 /* Swap low and high halfwords. */ -static void gen_swap_half(TCGv_i32 var) +static void gen_swap_half(TCGv_i32 dest, TCGv_i32 var) { - tcg_gen_rotri_i32(var, var, 16); + tcg_gen_rotri_i32(dest, var, 16); } =20 /* Dual 16-bit add. Result placed in t0 and t1 is marked as dead. @@ -4960,7 +4960,7 @@ static int disas_neon_data_insn(DisasContext *s, uint= 32_t insn) case NEON_2RM_VREV32: switch (size) { case 0: tcg_gen_bswap32_i32(tmp, tmp); break; - case 1: gen_swap_half(tmp); break; + case 1: gen_swap_half(tmp, tmp); break; default: abort(); } break; @@ -8046,7 +8046,7 @@ static bool op_smlad(DisasContext *s, arg_rrrr *a, bo= ol m_swap, bool sub) t1 =3D load_reg(s, a->rn); t2 =3D load_reg(s, a->rm); if (m_swap) { - gen_swap_half(t2); + gen_swap_half(t2, t2); } gen_smul_dual(t1, t2); =20 @@ -8104,7 +8104,7 @@ static bool op_smlald(DisasContext *s, arg_rrrr *a, b= ool m_swap, bool sub) t1 =3D load_reg(s, a->rn); t2 =3D load_reg(s, a->rm); if (m_swap) { - gen_swap_half(t2); + gen_swap_half(t2, t2); } gen_smul_dual(t1, t2); =20 --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592912740; cv=none; d=zohomail.com; s=zohoarc; b=Br7t3yMMY6wPmOYeRGkn3RBrfI3BKdnCg5WAOd5rmKcYUkxLyltGqcnbaoggxTPycXTQdGRaU2NxnjJUpUPvmE0Lf/igAUFWMgPkQhKiKDQRyq+WbWECLS2S+1V+xmHGMviEnOi0kuUPsUJUoHkoSQ7zpqHdnn/BMUDduDVe0XY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592912740; h=Content-Transfer-Encoding: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=XEz9aOiwlhiwYQ8HFwvN6jyP04S2sQhksx+qSIIGvQs=; b=Sn/RgiBgwJB4/z/NDyaKEYOnaw4iAtFFCWHdAD3yjTnILmFk+rSJI3Lfv5BrUD4aIC07XsTN7f4dmW/lsZ/Q8CN2ihddmV0bjU0i5BEKLN3d33jAXqaHdhMEWvW+YRcNWmQ4y5xx66cyCteoXvwblACe/BrIRENqAMYkI/J82OM= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592912740700330.8683907421582; Tue, 23 Jun 2020 04:45:40 -0700 (PDT) Received: from localhost ([::1]:49646 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhMx-0005dC-9V for importer@patchew.org; Tue, 23 Jun 2020 07:45:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44036) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhGw-0002kJ-2W for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:26 -0400 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]:35507) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhGu-0003Dj-2x for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:25 -0400 Received: by mail-wr1-x429.google.com with SMTP id g18so11114071wrm.2 for ; Tue, 23 Jun 2020 04:39:23 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:21 -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=XEz9aOiwlhiwYQ8HFwvN6jyP04S2sQhksx+qSIIGvQs=; b=xpTTNQEeIu+CwzIkSoyWeOQCnNMERKfnZJUuNe1JPB14qRZZIjmghfq2NywOpo6b0I 3jwrP1Ifz8n7OtgmKGOBJBJGYEyocF3HEF4HIwKnzW2KacBDgJkRFiprw+8E7wTr24dR nJEa3Hp9k6Q57kiIY+4LBY0KPeOaWKlBPJn498Pc28RIiaUBowQoIROM0PvggUUvkfo0 X388NQKwG6Vc1NZu23kf4Xun/Y8AqiQoWS++OvSt20WX2yDKz3sf8vveTmfsqrhqr9iV qSYpfuJ+EGQ1yp/ZjXe42eE+g27t+uxbv5JGTe6y6vmV9cwYg8ZbDuaEPN7zBkLgOLhw PnLw== 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=XEz9aOiwlhiwYQ8HFwvN6jyP04S2sQhksx+qSIIGvQs=; b=GWSNadnckkG0yYdWYfZjeipxFza2L0VZaKNE3emx4+elFm/sldFy3dbeTaNIi//XKr EgNiPNkxy8Whf7Ei8I/I+6dc/xy0Is5bgbW4E9rSFqcWn1JrQL8klJYqzkwVYgziQT73 RdEC+EgEHV1UMF2qnh67K06agZCeP1/DZTxVraphfDfFVk1TGmGBYsrs1tRtMxINQAD/ Baa6n2JCbSQsCyc6n/GyxbRLpNTG/mSIdIhuiPzsA6yawhk2OqD+sS2fpkJk+36yUF8C edieb1uChRCtnSN6lHUpkw2118RzpUitaWZ9nTIW1DEV0GGk+lKLEf3TNPGG2IDH3DIJ dWrA== X-Gm-Message-State: AOAM533Rz/JZ1FV2k20sfs7rj70jNUlh067iUjbZlTWfadTb8QEHFUHQ OIvq7/lj/U+856YNlcn5z5Fwgv0KNdqhZw== X-Google-Smtp-Source: ABdhPJzjkZPRnYpsiJ5XvP3qMqBcPBqk4zPSsWi26IeV3bbE0gHkkakA8f5Zv8zvl2hYlG38Xk3T1w== X-Received: by 2002:adf:fa81:: with SMTP id h1mr14668687wrr.266.1592912362243; Tue, 23 Jun 2020 04:39:22 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 14/42] target/arm: Convert Neon 2-reg-misc VREV32 and VREV16 to decodetree Date: Tue, 23 Jun 2020 12:38:36 +0100 Message-Id: <20200623113904.28805-15-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::429; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x429.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Convert the VREV32 and VREV16 insns in the Neon 2-reg-misc group to decodetree. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20200616170844.13318-13-peter.maydell@linaro.org --- target/arm/translate.h | 1 + target/arm/neon-dp.decode | 2 ++ target/arm/translate-neon.inc.c | 55 +++++++++++++++++++++++++++++++++ target/arm/translate.c | 12 ++----- 4 files changed, 60 insertions(+), 10 deletions(-) diff --git a/target/arm/translate.h b/target/arm/translate.h index 467c5291101..4dbeee4c89f 100644 --- a/target/arm/translate.h +++ b/target/arm/translate.h @@ -363,6 +363,7 @@ typedef void GVecGen4Fn(unsigned, uint32_t, uint32_t, u= int32_t, uint32_t, uint32_t, uint32_t); =20 /* Function prototype for gen_ functions for calling Neon helpers */ +typedef void NeonGenOneOpFn(TCGv_i32, TCGv_i32); typedef void NeonGenOneOpEnvFn(TCGv_i32, TCGv_ptr, TCGv_i32); typedef void NeonGenTwoOpFn(TCGv_i32, TCGv_i32, TCGv_i32); typedef void NeonGenTwoOpEnvFn(TCGv_i32, TCGv_ptr, TCGv_i32, TCGv_i32); diff --git a/target/arm/neon-dp.decode b/target/arm/neon-dp.decode index 86b1b9e34bf..0a791af46c8 100644 --- a/target/arm/neon-dp.decode +++ b/target/arm/neon-dp.decode @@ -445,6 +445,8 @@ Vimm_1r 1111 001 . 1 . 000 ... .... cmode:4 0 = . op:1 1 .... @1reg_imm &2misc vm=3D%vm_dp vd=3D%vd_dp q=3D1 =20 VREV64 1111 001 11 . 11 .. 00 .... 0 0000 . . 0 .... @2misc + VREV32 1111 001 11 . 11 .. 00 .... 0 0001 . . 0 .... @2misc + VREV16 1111 001 11 . 11 .. 00 .... 0 0010 . . 0 .... @2misc =20 VPADDL_S 1111 001 11 . 11 .. 00 .... 0 0100 . . 0 .... @2misc VPADDL_U 1111 001 11 . 11 .. 00 .... 0 0101 . . 0 .... @2misc diff --git a/target/arm/translate-neon.inc.c b/target/arm/translate-neon.in= c.c index 4967e974386..0a779980d01 100644 --- a/target/arm/translate-neon.inc.c +++ b/target/arm/translate-neon.inc.c @@ -3547,3 +3547,58 @@ DO_2M_CRYPTO(AESIMC, aa32_aes, 0) DO_2M_CRYPTO(SHA1H, aa32_sha1, 2) DO_2M_CRYPTO(SHA1SU1, aa32_sha1, 2) DO_2M_CRYPTO(SHA256SU0, aa32_sha2, 2) + +static bool do_2misc(DisasContext *s, arg_2misc *a, NeonGenOneOpFn *fn) +{ + int pass; + + /* Handle a 2-reg-misc operation by iterating 32 bits at a time */ + if (!arm_dc_feature(s, ARM_FEATURE_NEON)) { + return false; + } + + /* UNDEF accesses to D16-D31 if they don't exist. */ + if (!dc_isar_feature(aa32_simd_r32, s) && + ((a->vd | a->vm) & 0x10)) { + return false; + } + + if (!fn) { + return false; + } + + if ((a->vd | a->vm) & a->q) { + return false; + } + + if (!vfp_access_check(s)) { + return true; + } + + for (pass =3D 0; pass < (a->q ? 4 : 2); pass++) { + TCGv_i32 tmp =3D neon_load_reg(a->vm, pass); + fn(tmp, tmp); + neon_store_reg(a->vd, pass, tmp); + } + + return true; +} + +static bool trans_VREV32(DisasContext *s, arg_2misc *a) +{ + static NeonGenOneOpFn * const fn[] =3D { + tcg_gen_bswap32_i32, + gen_swap_half, + NULL, + NULL, + }; + return do_2misc(s, a, fn[a->size]); +} + +static bool trans_VREV16(DisasContext *s, arg_2misc *a) +{ + if (a->size !=3D 0) { + return false; + } + return do_2misc(s, a, gen_rev16); +} diff --git a/target/arm/translate.c b/target/arm/translate.c index 64b18a95b64..5b50eddd111 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -4936,6 +4936,8 @@ static int disas_neon_data_insn(DisasContext *s, uint= 32_t insn) case NEON_2RM_AESE: case NEON_2RM_AESMC: case NEON_2RM_SHA1H: case NEON_2RM_SHA1SU1: + case NEON_2RM_VREV32: + case NEON_2RM_VREV16: /* handled by decodetree */ return 1; case NEON_2RM_VTRN: @@ -4957,16 +4959,6 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) for (pass =3D 0; pass < (q ? 4 : 2); pass++) { tmp =3D neon_load_reg(rm, pass); switch (op) { - case NEON_2RM_VREV32: - switch (size) { - case 0: tcg_gen_bswap32_i32(tmp, tmp); break; - case 1: gen_swap_half(tmp, tmp); break; - default: abort(); - } - break; - case NEON_2RM_VREV16: - gen_rev16(tmp, tmp); - break; case NEON_2RM_VCLS: switch (size) { case 0: gen_helper_neon_cls_s8(tmp, tmp); brea= k; --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592912897; cv=none; d=zohomail.com; s=zohoarc; b=IKBaxieY5UhX00B3TmCa8KDW9x20RntcTXa1Sv30qCi8Wokncxcyyphefvz7ryzUOgatRNmAQdUDP98PKoiUkCVLlWl+4V74/O8CTHGEO4Inpyw4Dl9Rz/HlPnMFAy358rHr/wzX1z3Xjd5nLnVFq0uibWD42SX8/yRSG+gCIkU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592912897; h=Content-Transfer-Encoding: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=AxjodGUWZk9lDUmtxudebYIkF03zFpmA8wj6E+LbX0k=; b=cv6Dv7B9EKB1HY22kGCDh5/VJxG3pBNKpt0V+sixe8LdZUP1VbNyNH2hs9I/2Jyce2wfNpFK68br3XgvTsLSgL+8UthMmAX6/zhxrqhtjkktpvhfDC85ImRkeh1RTlWlTKF9XND+yN/xMMJQ+ltyJm5wcM51gMxahpOfsRaDpnM= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592912897600373.88729210710244; Tue, 23 Jun 2020 04:48:17 -0700 (PDT) Received: from localhost ([::1]:58262 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhPU-0001eX-9v for importer@patchew.org; Tue, 23 Jun 2020 07:48:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44056) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhGx-0002nX-FJ for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:27 -0400 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]:42330) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhGv-0003E2-ED for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:27 -0400 Received: by mail-wr1-x42a.google.com with SMTP id o11so12448520wrv.9 for ; Tue, 23 Jun 2020 04:39:24 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.22 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:22 -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=AxjodGUWZk9lDUmtxudebYIkF03zFpmA8wj6E+LbX0k=; b=qOr7PCggx7vUfl+tEMu7ujjbD4JYfa/bvg6JtwrpzSSzMiS86wqzIipXYNqVJnAJsY y84iJYRvg+3lW8ioyqNINxy4h9Y/GcP47RHBRXVJs7TQQomcJhMFEVELo8hA5f+bd2Rr eKUp4sf4dLYwQ71LFR6xLlWI6AyxciHWSA9yst5C5kL5wYNkKlu8f9hURYJZhbglAPsD 9dvi+l30RTL46SM02QZ9VzG4KTlKLXShdYy7Bn55ynfO0fmFlwApa7iM75kWmGJaFpXS dI3iRxa2QIjhmK1R/wb2fQwXhPq/J7bcKDLILsyxtkjWfk7kckBl+XzRsv47IOSnkmtk US7g== 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=AxjodGUWZk9lDUmtxudebYIkF03zFpmA8wj6E+LbX0k=; b=aBfgaO2ToYT8MI+3SsW4otlxE1pkUtPRwNKDqztsaxBCYZH7hUtwm4kUBlA5h5vpuE E9KA2McaoE5GGqD/2P55bO63i62LLq+L+Wx2GZQl15KtI9NveT34HvqPe5cdexwH4FA7 5VlGrpaEUvrhmHsc3nP2jDePECwE6K2KRAUpw+Vv6Rmyn9pB4iPfYvdpdWgVJ4ui58QZ XHFP/xM36ClmE5q7aEyJb/ck9/l1UbbPrBW1/naMCj7or3crNAgpqxo4IrbwtGjrPXN6 pk2ZDL2JyI3DLzGNqC8Wc5g+KbL9952tBsNUGs0GfJaAlOomJBPVpA207X6oZGvUyd0L Hr8w== X-Gm-Message-State: AOAM530wJudlX46QOerck7Mla+JXxJBtD3/jHug7EU/fUOQNidRtg9Rh EbZI2eqUq7s+wsPWT3ZHvEYLQ65GH9/rkA== X-Google-Smtp-Source: ABdhPJxvt9ndXZ93I7f5MBYmi3xAYveQuua1h0ggHt4xAI6HakNHlPCK9HjWVFuMwN9DEE0SDeTrMw== X-Received: by 2002:adf:fec8:: with SMTP id q8mr25762051wrs.2.1592912363589; Tue, 23 Jun 2020 04:39:23 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 15/42] target/arm: Convert remaining simple 2-reg-misc Neon ops Date: Tue, 23 Jun 2020 12:38:37 +0100 Message-Id: <20200623113904.28805-16-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::42a; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x42a.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Convert the remaining ops in the Neon 2-reg-misc group which can be implemented simply with our do_2misc() helper. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20200616170844.13318-14-peter.maydell@linaro.org --- target/arm/neon-dp.decode | 10 +++++ target/arm/translate-neon.inc.c | 69 +++++++++++++++++++++++++++++++++ target/arm/translate.c | 38 ++++-------------- 3 files changed, 86 insertions(+), 31 deletions(-) diff --git a/target/arm/neon-dp.decode b/target/arm/neon-dp.decode index 0a791af46c8..f947f7d09f0 100644 --- a/target/arm/neon-dp.decode +++ b/target/arm/neon-dp.decode @@ -456,6 +456,10 @@ Vimm_1r 1111 001 . 1 . 000 ... .... cmode:4 0= . op:1 1 .... @1reg_imm AESMC 1111 001 11 . 11 .. 00 .... 0 0111 0 . 0 .... @2misc_q1 AESIMC 1111 001 11 . 11 .. 00 .... 0 0111 1 . 0 .... @2misc_q1 =20 + VCLS 1111 001 11 . 11 .. 00 .... 0 1000 . . 0 .... @2misc + VCLZ 1111 001 11 . 11 .. 00 .... 0 1001 . . 0 .... @2misc + VCNT 1111 001 11 . 11 .. 00 .... 0 1010 . . 0 .... @2misc + VMVN 1111 001 11 . 11 .. 00 .... 0 1011 . . 0 .... @2misc =20 VPADAL_S 1111 001 11 . 11 .. 00 .... 0 1100 . . 0 .... @2misc @@ -472,6 +476,9 @@ Vimm_1r 1111 001 . 1 . 000 ... .... cmode:4 0 = . op:1 1 .... @1reg_imm VABS 1111 001 11 . 11 .. 01 .... 0 0110 . . 0 .... @2misc VNEG 1111 001 11 . 11 .. 01 .... 0 0111 . . 0 .... @2misc =20 + VABS_F 1111 001 11 . 11 .. 01 .... 0 1110 . . 0 .... @2misc + VNEG_F 1111 001 11 . 11 .. 01 .... 0 1111 . . 0 .... @2misc + VUZP 1111 001 11 . 11 .. 10 .... 0 0010 . . 0 .... @2misc VZIP 1111 001 11 . 11 .. 10 .... 0 0011 . . 0 .... @2misc =20 @@ -489,6 +496,9 @@ Vimm_1r 1111 001 . 1 . 000 ... .... cmode:4 0 = . op:1 1 .... @1reg_imm =20 VCVT_F16_F32 1111 001 11 . 11 .. 10 .... 0 1100 0 . 0 .... @2misc_q0 VCVT_F32_F16 1111 001 11 . 11 .. 10 .... 0 1110 0 . 0 .... @2misc_q0 + + VRECPE 1111 001 11 . 11 .. 11 .... 0 1000 . . 0 .... @2misc + VRSQRTE 1111 001 11 . 11 .. 11 .... 0 1001 . . 0 .... @2misc ] =20 # Subgroup for size !=3D 0b11 diff --git a/target/arm/translate-neon.inc.c b/target/arm/translate-neon.in= c.c index 0a779980d01..336c2b312eb 100644 --- a/target/arm/translate-neon.inc.c +++ b/target/arm/translate-neon.inc.c @@ -3602,3 +3602,72 @@ static bool trans_VREV16(DisasContext *s, arg_2misc = *a) } return do_2misc(s, a, gen_rev16); } + +static bool trans_VCLS(DisasContext *s, arg_2misc *a) +{ + static NeonGenOneOpFn * const fn[] =3D { + gen_helper_neon_cls_s8, + gen_helper_neon_cls_s16, + gen_helper_neon_cls_s32, + NULL, + }; + return do_2misc(s, a, fn[a->size]); +} + +static void do_VCLZ_32(TCGv_i32 rd, TCGv_i32 rm) +{ + tcg_gen_clzi_i32(rd, rm, 32); +} + +static bool trans_VCLZ(DisasContext *s, arg_2misc *a) +{ + static NeonGenOneOpFn * const fn[] =3D { + gen_helper_neon_clz_u8, + gen_helper_neon_clz_u16, + do_VCLZ_32, + NULL, + }; + return do_2misc(s, a, fn[a->size]); +} + +static bool trans_VCNT(DisasContext *s, arg_2misc *a) +{ + if (a->size !=3D 0) { + return false; + } + return do_2misc(s, a, gen_helper_neon_cnt_u8); +} + +static bool trans_VABS_F(DisasContext *s, arg_2misc *a) +{ + if (a->size !=3D 2) { + return false; + } + /* TODO: FP16 : size =3D=3D 1 */ + return do_2misc(s, a, gen_helper_vfp_abss); +} + +static bool trans_VNEG_F(DisasContext *s, arg_2misc *a) +{ + if (a->size !=3D 2) { + return false; + } + /* TODO: FP16 : size =3D=3D 1 */ + return do_2misc(s, a, gen_helper_vfp_negs); +} + +static bool trans_VRECPE(DisasContext *s, arg_2misc *a) +{ + if (a->size !=3D 2) { + return false; + } + return do_2misc(s, a, gen_helper_recpe_u32); +} + +static bool trans_VRSQRTE(DisasContext *s, arg_2misc *a) +{ + if (a->size !=3D 2) { + return false; + } + return do_2misc(s, a, gen_helper_rsqrte_u32); +} diff --git a/target/arm/translate.c b/target/arm/translate.c index 5b50eddd111..17373743889 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -4938,6 +4938,13 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) case NEON_2RM_SHA1SU1: case NEON_2RM_VREV32: case NEON_2RM_VREV16: + case NEON_2RM_VCLS: + case NEON_2RM_VCLZ: + case NEON_2RM_VCNT: + case NEON_2RM_VABS_F: + case NEON_2RM_VNEG_F: + case NEON_2RM_VRECPE: + case NEON_2RM_VRSQRTE: /* handled by decodetree */ return 1; case NEON_2RM_VTRN: @@ -4959,25 +4966,6 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) for (pass =3D 0; pass < (q ? 4 : 2); pass++) { tmp =3D neon_load_reg(rm, pass); switch (op) { - case NEON_2RM_VCLS: - switch (size) { - case 0: gen_helper_neon_cls_s8(tmp, tmp); brea= k; - case 1: gen_helper_neon_cls_s16(tmp, tmp); bre= ak; - case 2: gen_helper_neon_cls_s32(tmp, tmp); bre= ak; - default: abort(); - } - break; - case NEON_2RM_VCLZ: - switch (size) { - case 0: gen_helper_neon_clz_u8(tmp, tmp); brea= k; - case 1: gen_helper_neon_clz_u16(tmp, tmp); bre= ak; - case 2: tcg_gen_clzi_i32(tmp, tmp, 32); break; - default: abort(); - } - break; - case NEON_2RM_VCNT: - gen_helper_neon_cnt_u8(tmp, tmp); - break; case NEON_2RM_VQABS: switch (size) { case 0: @@ -5051,12 +5039,6 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) tcg_temp_free_ptr(fpstatus); break; } - case NEON_2RM_VABS_F: - gen_helper_vfp_abss(tmp, tmp); - break; - case NEON_2RM_VNEG_F: - gen_helper_vfp_negs(tmp, tmp); - break; case NEON_2RM_VSWP: tmp2 =3D neon_load_reg(rd, pass); neon_store_reg(rm, pass, tmp2); @@ -5137,12 +5119,6 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) tcg_temp_free_ptr(fpst); break; } - case NEON_2RM_VRECPE: - gen_helper_recpe_u32(tmp, tmp); - break; - case NEON_2RM_VRSQRTE: - gen_helper_rsqrte_u32(tmp, tmp); - break; case NEON_2RM_VRECPE_F: { TCGv_ptr fpstatus =3D get_fpstatus_ptr(1); --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592912572; cv=none; d=zohomail.com; s=zohoarc; b=Xla5JLOzob1N5d8Ih4J+oJ4nmZKPeE8961TvALAb2XKKR3xmrZvPFYTMXFaGupBvZ0qb2hgw1yHqSkVg8vkitmSlWPkbvFjRE8tyL47zfMIfO5e37IXHFzvqYr2fGxYv0vhZLtyDPEMsnv0/kkLO3/CLc6A7zJQ/IyGBvE+P/3s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592912572; h=Content-Transfer-Encoding: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=OVN9bOxyVp8gAMLTUZtV/zPnQlWaqxMdhBXvzBIHaD4=; b=EBa2v+JxspiUjGMroAJ0c8o7P8rzii4htNgdve9wPQn1LR5O7vRlG0bk328/yWwcrcgnYYgkd2g08aRNHdBjXI1LtSXrRP6hOlhmuEuzuN4CCvbplweAr9VylNjRNbCDV9taJDZaEMHBI9D4KSAwo4jkb+3YT0gIesFTpHZmBEI= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592912572725208.0400882101062; Tue, 23 Jun 2020 04:42:52 -0700 (PDT) Received: from localhost ([::1]:38182 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhKD-00087Q-UJ for importer@patchew.org; Tue, 23 Jun 2020 07:42:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44096) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhGz-0002r8-1c for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:29 -0400 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]:38432) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhGw-0003EK-Ip for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:28 -0400 Received: by mail-wr1-x42f.google.com with SMTP id z13so8403219wrw.5 for ; Tue, 23 Jun 2020 04:39:26 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.23 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:24 -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=OVN9bOxyVp8gAMLTUZtV/zPnQlWaqxMdhBXvzBIHaD4=; b=fUgbnJxFedP06RCO2/Muk6GRw0ED9NMRsdfNgTWzwvhArvLoyM2F4/lpQIfML/uQrE C+yEZyyXFkymgYzCUpQZVdcbUCqVSe3eaxQ5o8T210qJXY+g6zD0AwIPCj3ob3cjMtWi AimJXyaTw7whm9atgiFppdqNfc5lbVfSFFBN4NgSm8vDkDvZbv5Y7pLoWmbXL6yjIBUP qzwooczMP6BujRQp/MBVuyD9B1cn/ohC3qlaf9nM59m5aIpcpYzGKKYJcQ/A9oXVoKsj OyisacTj4noWTxamYDMP8E7/WYwAJUj08/Ok4vlsWwhCS9cJME4c84qlxiZkhFU2Pkjm JGFg== 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=OVN9bOxyVp8gAMLTUZtV/zPnQlWaqxMdhBXvzBIHaD4=; b=tEmSL6jzkNvnaZXHq+oigVEn/I6FjdujWr0v09t5sdycQZLxTLJLwBf0wjRw/mZq8Z Xi+4vHZrPGUmWDMUokc4nEnsvCDkkcZt2zipW8IvqyoX2n1kEAcY0TohJing0MUH5ZOa JhdNxgfNPsng6L9wg9cM6MRNvOq0Bh7bgj9ujrdlw9qJqEGSA5N5A1nK2Qiw+UkV1GSb nCEwBotB7gBd/zxdNvheAFY2p+qlD/mjGa7Me/SlgGbzUIDrm6BGX0dMihN0Bguz6iMA y/Ho1FeRwDEOijVRQvkPDZl+0cAjnDbKwE70s93hdPL33vAzhaMpe4x3gtYztOdaq2D+ cleQ== X-Gm-Message-State: AOAM531+YujWp0tSJulP/FWpOADL5Bywuj6t1X1FnDC/ESZGfmc2QGen SNFUqXQfP6S3iwdie2hvKfVaNPL7ni8S+A== X-Google-Smtp-Source: ABdhPJxNi5rByYWGCoSGzJWMCIOtuXeUXiB0BTsozuNi65xNYLacbVW7FdexYB93CvixQIe3cxslMA== X-Received: by 2002:a5d:5381:: with SMTP id d1mr7417495wrv.177.1592912364784; Tue, 23 Jun 2020 04:39:24 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 16/42] target/arm: Convert Neon VQABS, VQNEG to decodetree Date: Tue, 23 Jun 2020 12:38:38 +0100 Message-Id: <20200623113904.28805-17-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::42f; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x42f.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Convert the Neon VQABS and VQNEG insns to decodetree. Since these are the only ones which need cpu_env passing to the helper, we wrap the helper rather than creating a whole new do_2misc_env() function. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20200616170844.13318-15-peter.maydell@linaro.org --- target/arm/neon-dp.decode | 3 +++ target/arm/translate-neon.inc.c | 35 +++++++++++++++++++++++++++++++++ target/arm/translate.c | 30 ++-------------------------- 3 files changed, 40 insertions(+), 28 deletions(-) diff --git a/target/arm/neon-dp.decode b/target/arm/neon-dp.decode index f947f7d09f0..f0bb34a49eb 100644 --- a/target/arm/neon-dp.decode +++ b/target/arm/neon-dp.decode @@ -465,6 +465,9 @@ Vimm_1r 1111 001 . 1 . 000 ... .... cmode:4 0 = . op:1 1 .... @1reg_imm VPADAL_S 1111 001 11 . 11 .. 00 .... 0 1100 . . 0 .... @2misc VPADAL_U 1111 001 11 . 11 .. 00 .... 0 1101 . . 0 .... @2misc =20 + VQABS 1111 001 11 . 11 .. 00 .... 0 1110 . . 0 .... @2misc + VQNEG 1111 001 11 . 11 .. 00 .... 0 1111 . . 0 .... @2misc + VCGT0 1111 001 11 . 11 .. 01 .... 0 0000 . . 0 .... @2misc VCGE0 1111 001 11 . 11 .. 01 .... 0 0001 . . 0 .... @2misc VCEQ0 1111 001 11 . 11 .. 01 .... 0 0010 . . 0 .... @2misc diff --git a/target/arm/translate-neon.inc.c b/target/arm/translate-neon.in= c.c index 336c2b312eb..2b5dc86f628 100644 --- a/target/arm/translate-neon.inc.c +++ b/target/arm/translate-neon.inc.c @@ -3671,3 +3671,38 @@ static bool trans_VRSQRTE(DisasContext *s, arg_2misc= *a) } return do_2misc(s, a, gen_helper_rsqrte_u32); } + +#define WRAP_1OP_ENV_FN(WRAPNAME, FUNC) \ + static void WRAPNAME(TCGv_i32 d, TCGv_i32 m) \ + { \ + FUNC(d, cpu_env, m); \ + } + +WRAP_1OP_ENV_FN(gen_VQABS_s8, gen_helper_neon_qabs_s8) +WRAP_1OP_ENV_FN(gen_VQABS_s16, gen_helper_neon_qabs_s16) +WRAP_1OP_ENV_FN(gen_VQABS_s32, gen_helper_neon_qabs_s32) +WRAP_1OP_ENV_FN(gen_VQNEG_s8, gen_helper_neon_qneg_s8) +WRAP_1OP_ENV_FN(gen_VQNEG_s16, gen_helper_neon_qneg_s16) +WRAP_1OP_ENV_FN(gen_VQNEG_s32, gen_helper_neon_qneg_s32) + +static bool trans_VQABS(DisasContext *s, arg_2misc *a) +{ + static NeonGenOneOpFn * const fn[] =3D { + gen_VQABS_s8, + gen_VQABS_s16, + gen_VQABS_s32, + NULL, + }; + return do_2misc(s, a, fn[a->size]); +} + +static bool trans_VQNEG(DisasContext *s, arg_2misc *a) +{ + static NeonGenOneOpFn * const fn[] =3D { + gen_VQNEG_s8, + gen_VQNEG_s16, + gen_VQNEG_s32, + NULL, + }; + return do_2misc(s, a, fn[a->size]); +} diff --git a/target/arm/translate.c b/target/arm/translate.c index 17373743889..3cbd2ab0c96 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -4945,6 +4945,8 @@ static int disas_neon_data_insn(DisasContext *s, uint= 32_t insn) case NEON_2RM_VNEG_F: case NEON_2RM_VRECPE: case NEON_2RM_VRSQRTE: + case NEON_2RM_VQABS: + case NEON_2RM_VQNEG: /* handled by decodetree */ return 1; case NEON_2RM_VTRN: @@ -4966,34 +4968,6 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) for (pass =3D 0; pass < (q ? 4 : 2); pass++) { tmp =3D neon_load_reg(rm, pass); switch (op) { - case NEON_2RM_VQABS: - switch (size) { - case 0: - gen_helper_neon_qabs_s8(tmp, cpu_env, tmp); - break; - case 1: - gen_helper_neon_qabs_s16(tmp, cpu_env, tmp= ); - break; - case 2: - gen_helper_neon_qabs_s32(tmp, cpu_env, tmp= ); - break; - default: abort(); - } - break; - case NEON_2RM_VQNEG: - switch (size) { - case 0: - gen_helper_neon_qneg_s8(tmp, cpu_env, tmp); - break; - case 1: - gen_helper_neon_qneg_s16(tmp, cpu_env, tmp= ); - break; - case 2: - gen_helper_neon_qneg_s32(tmp, cpu_env, tmp= ); - break; - default: abort(); - } - break; case NEON_2RM_VCGT0_F: { TCGv_ptr fpstatus =3D get_fpstatus_ptr(1); --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592913047; cv=none; d=zohomail.com; s=zohoarc; b=P28hJAHw9gGAEKqeGePySaQb+dtPggBgSIEzZQFq0dNu+7gJsmDK5UiiIguK7jQRfu71z0zjKC7qJVo1a1L6oAVAf3+k7QMZaxmYuAUMhZJqr+TWAUSp6dbqfnzsk1Bi/773zyBVMKS9/bk7U2VfgabPSLVZr9nBXPytWdnESlw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592913047; h=Content-Transfer-Encoding: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=EbAMYnBR5x80vBOVUJf+lpOcPdDdY4fY3H9ve06NRgo=; b=DlNtc4L1qqMIoxs+lc+pZUqBr0gw0z5anvPJyd+jW0Igh0gOqbWNZcgqXaeqtL7RoOVP2j1e+8qFGFLYtNvljQs91zP/2DfTphi2w/Cf2snSUYToETbaLne3lnxj2M6pAKr/j13K36vXWSR2TXdk0ua9IxZrqYulqr3OYXHjqAA= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592913047053318.77497240282685; Tue, 23 Jun 2020 04:50:47 -0700 (PDT) Received: from localhost ([::1]:38578 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhRt-00054s-O9 for importer@patchew.org; Tue, 23 Jun 2020 07:50:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44102) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhH0-0002sr-0T for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:30 -0400 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]:52109) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhGx-0003Ea-Kw for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:29 -0400 Received: by mail-wm1-x335.google.com with SMTP id 22so1815527wmg.1 for ; Tue, 23 Jun 2020 04:39:27 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39: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=EbAMYnBR5x80vBOVUJf+lpOcPdDdY4fY3H9ve06NRgo=; b=LNAzZOVEG5bqGshKMuLm31N3ChkPN+xta16nZsWMbP3kzlepFFJeRxNQhkZR2kKPG3 Wvhv7BqJCA/e3CqmhWmYhZUwauA6n3y2jI9OOC+SXAdlNBfUjDriRJhUomrDFDM8lEia nBckp5MGXxtPj34Flp58vE1BDuOZ1gI/Z0gZhcx4lCac2MX4OEztdGBEdOfkdyfwog4C 71lfEmPpId2nxnN/VsY80VCJLefOGEgMssP2l823HvWZ5guUQfDolqwtgKhOmog9KB0j mTtm+QJyj0Q3il1y/GYYpSlYlOKGFcY8eLCgcl42WIr74rkeGvzB1/IYZ9uZvPxPxYX2 L97A== 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=EbAMYnBR5x80vBOVUJf+lpOcPdDdY4fY3H9ve06NRgo=; b=b3R6GMupWrv+LCASpweydmGrHFxjMMLrJKXMWDRoO5EukbPw5WZD+/Gj0/XrdIOvXS OkXLfF40oudi33CgLlHJrvQzT1QHdfTvadygvzDLl8HrGavLCkoG9gfwA5EZKNtnzqQX PGvI3oOfToiV82+xqNdJAW1UQVEdHbL5Ghx3noFIlSh6wh/HjRbcHxvMh1U1fxCabO0J ECQjFvF8zHAS283L0Kzg5LMuDFcQ26zhNEsbXaNVOxe+V02O2ZCKqtaTBS9k2tHeLtS+ VcgYVBH35sJTrh2gcDLInAIF70lBqBX4KMHBRkvlQlejilZevDTFIDRghVgtDr0G9UAu O7mQ== X-Gm-Message-State: AOAM530kWi8MT4g8kip5xpuPvcH2NmtWmElARhNqUGwIfVGFgH9Qxtaj RWuqHcdrJvfdZoSeGj6ZvcHMiRcfPobV6Q== X-Google-Smtp-Source: ABdhPJxY6gBqL2kyxhmgzspqkFOqMDVLPRMxCht2Fv+IGimrywG3zJaz5n61znfLSyZ1CqGzRHpeAQ== X-Received: by 2002:a1c:4343:: with SMTP id q64mr12172536wma.20.1592912365912; Tue, 23 Jun 2020 04:39:25 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 17/42] target/arm: Convert simple fp Neon 2-reg-misc insns Date: Tue, 23 Jun 2020 12:38:39 +0100 Message-Id: <20200623113904.28805-18-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::335; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x335.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Convert the Neon 2-reg-misc insns which are implemented with simple calls to functions that take the input, output and fpstatus pointer. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20200616170844.13318-16-peter.maydell@linaro.org --- target/arm/translate.h | 1 + target/arm/neon-dp.decode | 8 +++++ target/arm/translate-neon.inc.c | 62 +++++++++++++++++++++++++++++++++ target/arm/translate.c | 56 ++++------------------------- 4 files changed, 78 insertions(+), 49 deletions(-) diff --git a/target/arm/translate.h b/target/arm/translate.h index 4dbeee4c89f..19650a9e2d7 100644 --- a/target/arm/translate.h +++ b/target/arm/translate.h @@ -373,6 +373,7 @@ typedef void NeonGenNarrowFn(TCGv_i32, TCGv_i64); typedef void NeonGenNarrowEnvFn(TCGv_i32, TCGv_ptr, TCGv_i64); typedef void NeonGenWidenFn(TCGv_i64, TCGv_i32); typedef void NeonGenTwoOpWidenFn(TCGv_i64, TCGv_i32, TCGv_i32); +typedef void NeonGenOneSingleOpFn(TCGv_i32, TCGv_i32, TCGv_ptr); typedef void NeonGenTwoSingleOpFn(TCGv_i32, TCGv_i32, TCGv_i32, TCGv_ptr); typedef void NeonGenTwoDoubleOpFn(TCGv_i64, TCGv_i64, TCGv_i64, TCGv_ptr); typedef void NeonGenOne64OpFn(TCGv_i64, TCGv_i64); diff --git a/target/arm/neon-dp.decode b/target/arm/neon-dp.decode index f0bb34a49eb..ea8d5fd99c3 100644 --- a/target/arm/neon-dp.decode +++ b/target/arm/neon-dp.decode @@ -497,11 +497,19 @@ Vimm_1r 1111 001 . 1 . 000 ... .... cmode:4 = 0 . op:1 1 .... @1reg_imm SHA1SU1 1111 001 11 . 11 .. 10 .... 0 0111 0 . 0 .... @2misc_q1 SHA256SU0 1111 001 11 . 11 .. 10 .... 0 0111 1 . 0 .... @2misc_q1 =20 + VRINTX 1111 001 11 . 11 .. 10 .... 0 1001 . . 0 .... @2misc + VCVT_F16_F32 1111 001 11 . 11 .. 10 .... 0 1100 0 . 0 .... @2misc_q0 VCVT_F32_F16 1111 001 11 . 11 .. 10 .... 0 1110 0 . 0 .... @2misc_q0 =20 VRECPE 1111 001 11 . 11 .. 11 .... 0 1000 . . 0 .... @2misc VRSQRTE 1111 001 11 . 11 .. 11 .... 0 1001 . . 0 .... @2misc + VRECPE_F 1111 001 11 . 11 .. 11 .... 0 1010 . . 0 .... @2misc + VRSQRTE_F 1111 001 11 . 11 .. 11 .... 0 1011 . . 0 .... @2misc + VCVT_FS 1111 001 11 . 11 .. 11 .... 0 1100 . . 0 .... @2misc + VCVT_FU 1111 001 11 . 11 .. 11 .... 0 1101 . . 0 .... @2misc + VCVT_SF 1111 001 11 . 11 .. 11 .... 0 1110 . . 0 .... @2misc + VCVT_UF 1111 001 11 . 11 .. 11 .... 0 1111 . . 0 .... @2misc ] =20 # Subgroup for size !=3D 0b11 diff --git a/target/arm/translate-neon.inc.c b/target/arm/translate-neon.in= c.c index 2b5dc86f628..ab183e47d7d 100644 --- a/target/arm/translate-neon.inc.c +++ b/target/arm/translate-neon.inc.c @@ -3706,3 +3706,65 @@ static bool trans_VQNEG(DisasContext *s, arg_2misc *= a) }; return do_2misc(s, a, fn[a->size]); } + +static bool do_2misc_fp(DisasContext *s, arg_2misc *a, + NeonGenOneSingleOpFn *fn) +{ + int pass; + TCGv_ptr fpst; + + /* Handle a 2-reg-misc operation by iterating 32 bits at a time */ + if (!arm_dc_feature(s, ARM_FEATURE_NEON)) { + return false; + } + + /* UNDEF accesses to D16-D31 if they don't exist. */ + if (!dc_isar_feature(aa32_simd_r32, s) && + ((a->vd | a->vm) & 0x10)) { + return false; + } + + if (a->size !=3D 2) { + /* TODO: FP16 will be the size =3D=3D 1 case */ + return false; + } + + if ((a->vd | a->vm) & a->q) { + return false; + } + + if (!vfp_access_check(s)) { + return true; + } + + fpst =3D get_fpstatus_ptr(1); + for (pass =3D 0; pass < (a->q ? 4 : 2); pass++) { + TCGv_i32 tmp =3D neon_load_reg(a->vm, pass); + fn(tmp, tmp, fpst); + neon_store_reg(a->vd, pass, tmp); + } + tcg_temp_free_ptr(fpst); + + return true; +} + +#define DO_2MISC_FP(INSN, FUNC) \ + static bool trans_##INSN(DisasContext *s, arg_2misc *a) \ + { \ + return do_2misc_fp(s, a, FUNC); \ + } + +DO_2MISC_FP(VRECPE_F, gen_helper_recpe_f32) +DO_2MISC_FP(VRSQRTE_F, gen_helper_rsqrte_f32) +DO_2MISC_FP(VCVT_FS, gen_helper_vfp_sitos) +DO_2MISC_FP(VCVT_FU, gen_helper_vfp_uitos) +DO_2MISC_FP(VCVT_SF, gen_helper_vfp_tosizs) +DO_2MISC_FP(VCVT_UF, gen_helper_vfp_touizs) + +static bool trans_VRINTX(DisasContext *s, arg_2misc *a) +{ + if (!arm_dc_feature(s, ARM_FEATURE_V8)) { + return false; + } + return do_2misc_fp(s, a, gen_helper_rints_exact); +} diff --git a/target/arm/translate.c b/target/arm/translate.c index 3cbd2ab0c96..48377860c75 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -4947,6 +4947,13 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) case NEON_2RM_VRSQRTE: case NEON_2RM_VQABS: case NEON_2RM_VQNEG: + case NEON_2RM_VRECPE_F: + case NEON_2RM_VRSQRTE_F: + case NEON_2RM_VCVT_FS: + case NEON_2RM_VCVT_FU: + case NEON_2RM_VCVT_SF: + case NEON_2RM_VCVT_UF: + case NEON_2RM_VRINTX: /* handled by decodetree */ return 1; case NEON_2RM_VTRN: @@ -5052,13 +5059,6 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) tcg_temp_free_i32(tcg_rmode); break; } - case NEON_2RM_VRINTX: - { - TCGv_ptr fpstatus =3D get_fpstatus_ptr(1); - gen_helper_rints_exact(tmp, tmp, fpstatus); - tcg_temp_free_ptr(fpstatus); - break; - } case NEON_2RM_VCVTAU: case NEON_2RM_VCVTAS: case NEON_2RM_VCVTNU: @@ -5093,48 +5093,6 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) tcg_temp_free_ptr(fpst); break; } - case NEON_2RM_VRECPE_F: - { - TCGv_ptr fpstatus =3D get_fpstatus_ptr(1); - gen_helper_recpe_f32(tmp, tmp, fpstatus); - tcg_temp_free_ptr(fpstatus); - break; - } - case NEON_2RM_VRSQRTE_F: - { - TCGv_ptr fpstatus =3D get_fpstatus_ptr(1); - gen_helper_rsqrte_f32(tmp, tmp, fpstatus); - tcg_temp_free_ptr(fpstatus); - break; - } - case NEON_2RM_VCVT_FS: /* VCVT.F32.S32 */ - { - TCGv_ptr fpstatus =3D get_fpstatus_ptr(1); - gen_helper_vfp_sitos(tmp, tmp, fpstatus); - tcg_temp_free_ptr(fpstatus); - break; - } - case NEON_2RM_VCVT_FU: /* VCVT.F32.U32 */ - { - TCGv_ptr fpstatus =3D get_fpstatus_ptr(1); - gen_helper_vfp_uitos(tmp, tmp, fpstatus); - tcg_temp_free_ptr(fpstatus); - break; - } - case NEON_2RM_VCVT_SF: /* VCVT.S32.F32 */ - { - TCGv_ptr fpstatus =3D get_fpstatus_ptr(1); - gen_helper_vfp_tosizs(tmp, tmp, fpstatus); - tcg_temp_free_ptr(fpstatus); - break; - } - case NEON_2RM_VCVT_UF: /* VCVT.U32.F32 */ - { - TCGv_ptr fpstatus =3D get_fpstatus_ptr(1); - gen_helper_vfp_touizs(tmp, tmp, fpstatus); - tcg_temp_free_ptr(fpstatus); - break; - } default: /* Reserved op values were caught by the * neon_2rm_sizes[] check earlier. --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592913343; cv=none; d=zohomail.com; s=zohoarc; b=JvuBeXA3eYEDqWBLcdNbQMZlRuFSWN3k4s6AJGQQNfoydms2pJS7YTX12Zwnr6yH1bBImXgxT7Ul+zFtUdXvlVOfmnnNZ1HUdFCuSs09u1wY4vcsWfJUJYWdqFr86sGklWcV2z4Oh6EIYv8ekfpNab2OUJ0bDhUJWxL/9fQfmdU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592913343; h=Content-Transfer-Encoding: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=7ABA729UVkpFOfH4LLy6vk4NgixPmbR3i5MHSNOuZUk=; b=fxW4OwUK6I79ZBrYPrQjrocnkfDPngYMd0ZeIvzyKbFh/tY9n8ayhV+GHUs5E7rQTwZ2VvvPZQZRJYAb2Xzkolh2k3WYw70Pt+uAE/8X9ZH0NQHidtnp79Tl3SmLLOMkJ9PuIZs1GARyyarOUV+Vg0KwZYOhx8egJNIfxmhkNH0= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592913343527513.2755826262838; Tue, 23 Jun 2020 04:55:43 -0700 (PDT) Received: from localhost ([::1]:56170 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhWg-0005Ou-7z for importer@patchew.org; Tue, 23 Jun 2020 07:55:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44110) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhH1-0002vT-GQ for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:31 -0400 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]:44681) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhGy-0003Ep-QC for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:30 -0400 Received: by mail-wr1-x42e.google.com with SMTP id b6so20155035wrs.11 for ; Tue, 23 Jun 2020 04:39:28 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.26 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:26 -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=7ABA729UVkpFOfH4LLy6vk4NgixPmbR3i5MHSNOuZUk=; b=TwBVHhUNeNHeBVExzduvB76aSjvylzK0ZQfhj6uwN+/oBK0Ih0uyoDSDZ6aBD0/Qer T0ybRjB5xn2fHpxkXigNuf/Ew4aX8iquATdaCx335rvSJ19oq7d4Q+LOZjIA/PNxiOVG FBNL5NkhlEHcCdjyjiCXkHNbZNj101F7iMTQgLLuphST674EDu7cFKF9meqDVYnFWBTv OyuBW7SrLCCA4pGiwKcmyEJ+8g6OmeKlMFssiYyujwDvoOWokJfxPikLLopwZhZOZQjH cfYUZok01chLGksB1GbicX1k1US8AZXXyTfeHqd+4S8+OsP578nmuPPeiuCtdNZXyrzx xvWg== 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=7ABA729UVkpFOfH4LLy6vk4NgixPmbR3i5MHSNOuZUk=; b=SqIZR3CG6hyKr27Qbgv+1wHz6VWoR5MRjSTiYmr2/Fe+aydQ2tqBEw8FYV98LyIl/S EHltijNx9T5tFOCQeQCAlnBF78BcffqqmZTgRWzY+MN4UEbh8BI3aJhTzqPgbnSpKqG5 tAM449UbQJvQ2VoyBwVGiSlNQvDWE1u8npIvNY8E8cT+OYT5WO5lSEZoobuJTTPHk2Vl Sj2eNfz9sRf7R2n08bdP90qYNurQA39Dsj82QMZ5B4UeWXA2IjPnU6Gm21cjtNn9HPjP jGBOjxHiXpI/3u/2Pi8Ncdhpm3vhKjWGDNz8FDqf6kna+MUVu6l4GCRQTwffaYmDKq3g KAYw== X-Gm-Message-State: AOAM530OGVaw9yLzQMTb/LnpomoBVCOohVZynQMQVikfOMqPNJsC0j2+ ZenbXUF6UeqhWMU0/80yLm/UzoeEOOoYqw== X-Google-Smtp-Source: ABdhPJzLCLU6/Aumf9YwWZOCb6Wsmjr2k626/PSkCgLXb5xFXhaPsQ6IEkr5tGZqannf7wp6ecJxng== X-Received: by 2002:adf:e2ce:: with SMTP id d14mr25090255wrj.415.1592912367049; Tue, 23 Jun 2020 04:39:27 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 18/42] target/arm: Convert Neon 2-reg-misc fp-compare-with-zero insns to decodetree Date: Tue, 23 Jun 2020 12:38:40 +0100 Message-Id: <20200623113904.28805-19-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::42e; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x42e.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Convert the fp-compare-with-zero insns in the Neon 2-reg-misc group to decodetree. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20200616170844.13318-17-peter.maydell@linaro.org --- target/arm/neon-dp.decode | 6 ++++ target/arm/translate-neon.inc.c | 28 ++++++++++++++++++ target/arm/translate.c | 50 ++++----------------------------- 3 files changed, 39 insertions(+), 45 deletions(-) diff --git a/target/arm/neon-dp.decode b/target/arm/neon-dp.decode index ea8d5fd99c3..c9acd00f1e8 100644 --- a/target/arm/neon-dp.decode +++ b/target/arm/neon-dp.decode @@ -479,6 +479,12 @@ Vimm_1r 1111 001 . 1 . 000 ... .... cmode:4 0= . op:1 1 .... @1reg_imm VABS 1111 001 11 . 11 .. 01 .... 0 0110 . . 0 .... @2misc VNEG 1111 001 11 . 11 .. 01 .... 0 0111 . . 0 .... @2misc =20 + VCGT0_F 1111 001 11 . 11 .. 01 .... 0 1000 . . 0 .... @2misc + VCGE0_F 1111 001 11 . 11 .. 01 .... 0 1001 . . 0 .... @2misc + VCEQ0_F 1111 001 11 . 11 .. 01 .... 0 1010 . . 0 .... @2misc + VCLE0_F 1111 001 11 . 11 .. 01 .... 0 1011 . . 0 .... @2misc + VCLT0_F 1111 001 11 . 11 .. 01 .... 0 1100 . . 0 .... @2misc + VABS_F 1111 001 11 . 11 .. 01 .... 0 1110 . . 0 .... @2misc VNEG_F 1111 001 11 . 11 .. 01 .... 0 1111 . . 0 .... @2misc =20 diff --git a/target/arm/translate-neon.inc.c b/target/arm/translate-neon.in= c.c index ab183e47d7d..a62da21b152 100644 --- a/target/arm/translate-neon.inc.c +++ b/target/arm/translate-neon.inc.c @@ -3768,3 +3768,31 @@ static bool trans_VRINTX(DisasContext *s, arg_2misc = *a) } return do_2misc_fp(s, a, gen_helper_rints_exact); } + +#define WRAP_FP_CMP0_FWD(WRAPNAME, FUNC) \ + static void WRAPNAME(TCGv_i32 d, TCGv_i32 m, TCGv_ptr fpst) \ + { \ + TCGv_i32 zero =3D tcg_const_i32(0); \ + FUNC(d, m, zero, fpst); \ + tcg_temp_free_i32(zero); \ + } +#define WRAP_FP_CMP0_REV(WRAPNAME, FUNC) \ + static void WRAPNAME(TCGv_i32 d, TCGv_i32 m, TCGv_ptr fpst) \ + { \ + TCGv_i32 zero =3D tcg_const_i32(0); \ + FUNC(d, zero, m, fpst); \ + tcg_temp_free_i32(zero); \ + } + +#define DO_FP_CMP0(INSN, FUNC, REV) \ + WRAP_FP_CMP0_##REV(gen_##INSN, FUNC) \ + static bool trans_##INSN(DisasContext *s, arg_2misc *a) \ + { \ + return do_2misc_fp(s, a, gen_##INSN); \ + } + +DO_FP_CMP0(VCGT0_F, gen_helper_neon_cgt_f32, FWD) +DO_FP_CMP0(VCGE0_F, gen_helper_neon_cge_f32, FWD) +DO_FP_CMP0(VCEQ0_F, gen_helper_neon_ceq_f32, FWD) +DO_FP_CMP0(VCLE0_F, gen_helper_neon_cge_f32, REV) +DO_FP_CMP0(VCLT0_F, gen_helper_neon_cgt_f32, REV) diff --git a/target/arm/translate.c b/target/arm/translate.c index 48377860c75..dc98928856d 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -4954,6 +4954,11 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) case NEON_2RM_VCVT_SF: case NEON_2RM_VCVT_UF: case NEON_2RM_VRINTX: + case NEON_2RM_VCGT0_F: + case NEON_2RM_VCGE0_F: + case NEON_2RM_VCEQ0_F: + case NEON_2RM_VCLE0_F: + case NEON_2RM_VCLT0_F: /* handled by decodetree */ return 1; case NEON_2RM_VTRN: @@ -4975,51 +4980,6 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) for (pass =3D 0; pass < (q ? 4 : 2); pass++) { tmp =3D neon_load_reg(rm, pass); switch (op) { - case NEON_2RM_VCGT0_F: - { - TCGv_ptr fpstatus =3D get_fpstatus_ptr(1); - tmp2 =3D tcg_const_i32(0); - gen_helper_neon_cgt_f32(tmp, tmp, tmp2, fpstat= us); - tcg_temp_free_i32(tmp2); - tcg_temp_free_ptr(fpstatus); - break; - } - case NEON_2RM_VCGE0_F: - { - TCGv_ptr fpstatus =3D get_fpstatus_ptr(1); - tmp2 =3D tcg_const_i32(0); - gen_helper_neon_cge_f32(tmp, tmp, tmp2, fpstat= us); - tcg_temp_free_i32(tmp2); - tcg_temp_free_ptr(fpstatus); - break; - } - case NEON_2RM_VCEQ0_F: - { - TCGv_ptr fpstatus =3D get_fpstatus_ptr(1); - tmp2 =3D tcg_const_i32(0); - gen_helper_neon_ceq_f32(tmp, tmp, tmp2, fpstat= us); - tcg_temp_free_i32(tmp2); - tcg_temp_free_ptr(fpstatus); - break; - } - case NEON_2RM_VCLE0_F: - { - TCGv_ptr fpstatus =3D get_fpstatus_ptr(1); - tmp2 =3D tcg_const_i32(0); - gen_helper_neon_cge_f32(tmp, tmp2, tmp, fpstat= us); - tcg_temp_free_i32(tmp2); - tcg_temp_free_ptr(fpstatus); - break; - } - case NEON_2RM_VCLT0_F: - { - TCGv_ptr fpstatus =3D get_fpstatus_ptr(1); - tmp2 =3D tcg_const_i32(0); - gen_helper_neon_cgt_f32(tmp, tmp2, tmp, fpstat= us); - tcg_temp_free_i32(tmp2); - tcg_temp_free_ptr(fpstatus); - break; - } case NEON_2RM_VSWP: tmp2 =3D neon_load_reg(rd, pass); neon_store_reg(rm, pass, tmp2); --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592912686; cv=none; d=zohomail.com; s=zohoarc; b=Yciz7k195n2IhNpl3ybXQRMH7RcOvevyhg+ZPT7FDxKq/wwgozSMJKZd43+G8vBCe1y4CnJOfwoQ7vsnzviTh3wCiRldnm13AYshkfUqZHo7EkXgvvWd8QRFn9irlO8e+NrWBmrLIDifr3emrFtpaO+bAbGZ28oW0IXEseaDCPY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592912686; h=Content-Transfer-Encoding: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=qXjJvtW1Cc7ICBcUFbiKQwi/3qdYjZRksSHBdYctsCI=; b=LmLz12H8hPWCHDcsG63wnj9WtRx1YMGIxIgSv86wfXwJf4CknG4nbXjk7ODmP2IEwQXZi9SwBVaYvRCasqVgAkxGwMmdylAsEm15HNjji1mGYPjK2wbKwkg9zSXmNbsGHh/zBrp8iZOX4kDX7WyXInIvbh4KvVwtOCzZmXdCkME= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592912686353730.5264183056535; Tue, 23 Jun 2020 04:44:46 -0700 (PDT) Received: from localhost ([::1]:46728 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhM5-0003lM-38 for importer@patchew.org; Tue, 23 Jun 2020 07:44:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44140) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhH3-00030n-NO for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:33 -0400 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]:34341) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhH0-0003F1-LK for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:33 -0400 Received: by mail-wr1-x42a.google.com with SMTP id v3so12682629wrc.1 for ; Tue, 23 Jun 2020 04:39:29 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:27 -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=qXjJvtW1Cc7ICBcUFbiKQwi/3qdYjZRksSHBdYctsCI=; b=IlBkcGvyJec6ueYdp3hHjDbijTxJzIfVfmvq1pAE0MgVx6dmzXKSPAp1ZyqZ6TD2yD xH0te5i0mE4UBP0+sAlNAjkW3DDUzcfSgwU3udypsYiIUa4hk261nDXNocOvqvNAfRSj J993tUn0StIXy3WR1Q8rF+4kmH+iuuI9H/o88clmFDn9Q45kM8scA1k89wA8Zz25lh8u SxA1OQSo608wDF2IMcPf36mIWKIvpoUDv57o3olPNIWTuPEXi+/pltiKDQ1etMZqxz50 Tj/GAusFKD7iDI0wFVH4BSIXrnabmVTrMg8oioK5y/utfu3aPI5pdhTUG9uu9GflDzxz 20Kw== 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=qXjJvtW1Cc7ICBcUFbiKQwi/3qdYjZRksSHBdYctsCI=; b=a2QSlvCTLPNy0TGdp65obl37oK6l/G2MSvgDveCL7pDIUPOp2iKbDwkTsfQ4j2vjZb nNCWIK9I5olijuqxu1+opeFlf2+qMUGvMt8iMFO6uRV+v2CE1CEJJONzl2yXZikqPh6M xe7nYScTMmc23XaaKGvlEu93fMzzY/x51qOwyZI5XHL+nVqtC8ANmsCSUDuT63704S6R nuL5lVXKOCCsobo9I+TQc6bHuduNstYPICtDSFuLOuPDXEeQXODn/OBfboPSZiD/Bknk OfphdR1739A2B3jLUZq0ACxTSPGG9XAtey9jsF+30vo6JzDCBE8uoyfzj022K9SPFNwy 1c7w== X-Gm-Message-State: AOAM531q+43gR0WAAQpapNPLdd4WwDMYPJE2ZDT6bWFqfWaMcmUpdsxn fdIX9p5TlOl6ckZJ8UMiPkb0C/3bb78hxg== X-Google-Smtp-Source: ABdhPJwze32qbTHG8v+PfuqXdHNhGpPaNES+tZw2nm61SQtzEx55jeQR/BIPrUHwRcJkA0D1cYpxWQ== X-Received: by 2002:a5d:56d0:: with SMTP id m16mr23899486wrw.194.1592912368295; Tue, 23 Jun 2020 04:39:28 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 19/42] target/arm: Convert Neon 2-reg-misc VRINT insns to decodetree Date: Tue, 23 Jun 2020 12:38:41 +0100 Message-Id: <20200623113904.28805-20-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::42a; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x42a.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Convert the Neon 2-reg-misc VRINT insns to decodetree. Giving these insns their own do_vrint() function allows us to change the rounding mode just once at the start and end rather than doing it for every element in the vector. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20200616170844.13318-18-peter.maydell@linaro.org --- target/arm/neon-dp.decode | 8 +++++ target/arm/translate-neon.inc.c | 61 +++++++++++++++++++++++++++++++++ target/arm/translate.c | 31 +++-------------- 3 files changed, 74 insertions(+), 26 deletions(-) diff --git a/target/arm/neon-dp.decode b/target/arm/neon-dp.decode index c9acd00f1e8..e0717c7e4a6 100644 --- a/target/arm/neon-dp.decode +++ b/target/arm/neon-dp.decode @@ -503,11 +503,19 @@ Vimm_1r 1111 001 . 1 . 000 ... .... cmode:4 = 0 . op:1 1 .... @1reg_imm SHA1SU1 1111 001 11 . 11 .. 10 .... 0 0111 0 . 0 .... @2misc_q1 SHA256SU0 1111 001 11 . 11 .. 10 .... 0 0111 1 . 0 .... @2misc_q1 =20 + VRINTN 1111 001 11 . 11 .. 10 .... 0 1000 . . 0 .... @2misc VRINTX 1111 001 11 . 11 .. 10 .... 0 1001 . . 0 .... @2misc + VRINTA 1111 001 11 . 11 .. 10 .... 0 1010 . . 0 .... @2misc + VRINTZ 1111 001 11 . 11 .. 10 .... 0 1011 . . 0 .... @2misc =20 VCVT_F16_F32 1111 001 11 . 11 .. 10 .... 0 1100 0 . 0 .... @2misc_q0 + + VRINTM 1111 001 11 . 11 .. 10 .... 0 1101 . . 0 .... @2misc + VCVT_F32_F16 1111 001 11 . 11 .. 10 .... 0 1110 0 . 0 .... @2misc_q0 =20 + VRINTP 1111 001 11 . 11 .. 10 .... 0 1111 . . 0 .... @2misc + VRECPE 1111 001 11 . 11 .. 11 .... 0 1000 . . 0 .... @2misc VRSQRTE 1111 001 11 . 11 .. 11 .... 0 1001 . . 0 .... @2misc VRECPE_F 1111 001 11 . 11 .. 11 .... 0 1010 . . 0 .... @2misc diff --git a/target/arm/translate-neon.inc.c b/target/arm/translate-neon.in= c.c index a62da21b152..0e7f86ad156 100644 --- a/target/arm/translate-neon.inc.c +++ b/target/arm/translate-neon.inc.c @@ -3796,3 +3796,64 @@ DO_FP_CMP0(VCGE0_F, gen_helper_neon_cge_f32, FWD) DO_FP_CMP0(VCEQ0_F, gen_helper_neon_ceq_f32, FWD) DO_FP_CMP0(VCLE0_F, gen_helper_neon_cge_f32, REV) DO_FP_CMP0(VCLT0_F, gen_helper_neon_cgt_f32, REV) + +static bool do_vrint(DisasContext *s, arg_2misc *a, int rmode) +{ + /* + * Handle a VRINT* operation by iterating 32 bits at a time, + * with a specified rounding mode in operation. + */ + int pass; + TCGv_ptr fpst; + TCGv_i32 tcg_rmode; + + if (!arm_dc_feature(s, ARM_FEATURE_NEON) || + !arm_dc_feature(s, ARM_FEATURE_V8)) { + return false; + } + + /* UNDEF accesses to D16-D31 if they don't exist. */ + if (!dc_isar_feature(aa32_simd_r32, s) && + ((a->vd | a->vm) & 0x10)) { + return false; + } + + if (a->size !=3D 2) { + /* TODO: FP16 will be the size =3D=3D 1 case */ + return false; + } + + if ((a->vd | a->vm) & a->q) { + return false; + } + + if (!vfp_access_check(s)) { + return true; + } + + fpst =3D get_fpstatus_ptr(1); + tcg_rmode =3D tcg_const_i32(arm_rmode_to_sf(rmode)); + gen_helper_set_neon_rmode(tcg_rmode, tcg_rmode, cpu_env); + for (pass =3D 0; pass < (a->q ? 4 : 2); pass++) { + TCGv_i32 tmp =3D neon_load_reg(a->vm, pass); + gen_helper_rints(tmp, tmp, fpst); + neon_store_reg(a->vd, pass, tmp); + } + gen_helper_set_neon_rmode(tcg_rmode, tcg_rmode, cpu_env); + tcg_temp_free_i32(tcg_rmode); + tcg_temp_free_ptr(fpst); + + return true; +} + +#define DO_VRINT(INSN, RMODE) \ + static bool trans_##INSN(DisasContext *s, arg_2misc *a) \ + { \ + return do_vrint(s, a, RMODE); \ + } + +DO_VRINT(VRINTN, FPROUNDING_TIEEVEN) +DO_VRINT(VRINTA, FPROUNDING_TIEAWAY) +DO_VRINT(VRINTZ, FPROUNDING_ZERO) +DO_VRINT(VRINTM, FPROUNDING_NEGINF) +DO_VRINT(VRINTP, FPROUNDING_POSINF) diff --git a/target/arm/translate.c b/target/arm/translate.c index dc98928856d..61dfc3ae7af 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -4959,6 +4959,11 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) case NEON_2RM_VCEQ0_F: case NEON_2RM_VCLE0_F: case NEON_2RM_VCLT0_F: + case NEON_2RM_VRINTN: + case NEON_2RM_VRINTA: + case NEON_2RM_VRINTM: + case NEON_2RM_VRINTP: + case NEON_2RM_VRINTZ: /* handled by decodetree */ return 1; case NEON_2RM_VTRN: @@ -4993,32 +4998,6 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) } neon_store_reg(rm, pass, tmp2); break; - case NEON_2RM_VRINTN: - case NEON_2RM_VRINTA: - case NEON_2RM_VRINTM: - case NEON_2RM_VRINTP: - case NEON_2RM_VRINTZ: - { - TCGv_i32 tcg_rmode; - TCGv_ptr fpstatus =3D get_fpstatus_ptr(1); - int rmode; - - if (op =3D=3D NEON_2RM_VRINTZ) { - rmode =3D FPROUNDING_ZERO; - } else { - rmode =3D fp_decode_rm[((op & 0x6) >> 1) ^= 1]; - } - - tcg_rmode =3D tcg_const_i32(arm_rmode_to_sf(rm= ode)); - gen_helper_set_neon_rmode(tcg_rmode, tcg_rmode, - cpu_env); - gen_helper_rints(tmp, tmp, fpstatus); - gen_helper_set_neon_rmode(tcg_rmode, tcg_rmode, - cpu_env); - tcg_temp_free_ptr(fpstatus); - tcg_temp_free_i32(tcg_rmode); - break; - } case NEON_2RM_VCVTAU: case NEON_2RM_VCVTAS: case NEON_2RM_VCVTNU: --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592913439; cv=none; d=zohomail.com; s=zohoarc; b=h3Uvo3jDwe8S4NBzYlC4HsiVd4+ixAXSBOVnfxrdyEiCq43qNgLCTb7QrZ+8IKv80gG9BLQlTCHy+9+ByCMehNLRqAb7XlWkMzVikWFlY7S7mrSIF3nk93vbuCSTymJX9m4UP3GP5Q/vx028sbt2oeDOG3QaLvsosb3bz+pDv4c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592913439; h=Content-Transfer-Encoding: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=0/e8tX0uOXBo9D63Bjooc66KZbzN4/gDa4yVcnCjX4o=; b=ZPONTYXCsn9+1KhJlS/bJcSL7+Qyphfin6oC/vZOzPphEnlCzMINXeCYAxqOCPnZ3rN9y5NJN/Q4GTXreJOXTmm9a1sqmuzhfhxfIrxXtS+cDYL3tdI1lVO15ZtlCdoyfxM+QobPm9i7c1Z7mRxTMeFFC/LUwFGBEj9LgLnNTaw= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592913439525631.7544954366319; Tue, 23 Jun 2020 04:57:19 -0700 (PDT) Received: from localhost ([::1]:36398 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhYD-0000S6-Vo for importer@patchew.org; Tue, 23 Jun 2020 07:57:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44162) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhH4-00033d-L6 for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:34 -0400 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]:53405) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhH2-0003FA-4u for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:34 -0400 Received: by mail-wm1-x32a.google.com with SMTP id j18so2672968wmi.3 for ; Tue, 23 Jun 2020 04:39:30 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:28 -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=0/e8tX0uOXBo9D63Bjooc66KZbzN4/gDa4yVcnCjX4o=; b=HRa3pShF6NKrk0vreTw8DEGYW7A6u0gvrv3F8psM+f/sHPxQTQB6s1W+aNM+qxlS45 E3044scBfyfSGfsFZUKdhZEG/6zpnyGoKTdAGgDRpvm9ipWzvC5lzwjHKwYD5qKc7v0D qrPuc+huXD8HudoDOf02L65q71LDyZPMrQezQF+WYoMhuRnzoP0tjG2MeHRQa1rii/lR Fz//F5+uZ3AjxDjgxlkSN8PNc1AK9Y65ubRQsj8wUQWkxVN8h3HNReWb/+K3otKi8700 Uqi3ISQXSdEDjsTr7w8uH/JzlhWe+hwJHNEChD51+gLDnbnJW+fFsmPpiqaGCaslLk6Z X/Sg== 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=0/e8tX0uOXBo9D63Bjooc66KZbzN4/gDa4yVcnCjX4o=; b=F9Ll9OBSip8LA/ob+J/jYoOEwu3QhCDjeVEHJ3URYoZgHfB2rVX5rvRV0XSJnShHga bWRV4blPPcFEVIQMRuOwBx3qy1hW/0IAHcNJZko27SlbwD+vHQnyoUx6XaHQxe/jdVfT raE5jNXiljzsKH1HXkkEzAB/p+w74IPiTUwiW5M6aDvKOrZkPnPXdOMWmzxJkYC5q4mD R2JngNuP1oAx3Y513KJqX8WdIalvxBuBxRxi4fe9mRLRVW+o2Xn7TPQunvh7QyTcxTFB Zve9vU4McSvT9x69zdARFgprLiN36rTmlJJH9IcRS8rvM2iDd/7h/G6iTisdH7PKl0re hcUQ== X-Gm-Message-State: AOAM533evSJ3FyFarKa2Ga+kzNH0oRBdVoH83oM/7mcelpoDhXnq5TwR RqU0tJv15pVCT/UAXlVOTI08iyJyp/L3eg== X-Google-Smtp-Source: ABdhPJw8qCLCd23d03KAop1QVc2DMvojRP57qlTGnR+PQ6s4rZ41cWcJAIIDK+rSnrBLhTEc1W7o6g== X-Received: by 2002:a05:600c:410f:: with SMTP id j15mr534475wmi.128.1592912369283; Tue, 23 Jun 2020 04:39:29 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 20/42] target/arm: Convert Neon 2-reg-misc VCVT insns to decodetree Date: Tue, 23 Jun 2020 12:38:42 +0100 Message-Id: <20200623113904.28805-21-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32a; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32a.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Convert the VCVT instructions in the 2-reg-misc grouping to decodetree. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20200616170844.13318-19-peter.maydell@linaro.org --- target/arm/neon-dp.decode | 9 +++++ target/arm/translate-neon.inc.c | 70 +++++++++++++++++++++++++++++++++ target/arm/translate.c | 70 ++++----------------------------- 3 files changed, 87 insertions(+), 62 deletions(-) diff --git a/target/arm/neon-dp.decode b/target/arm/neon-dp.decode index e0717c7e4a6..5507c3e4623 100644 --- a/target/arm/neon-dp.decode +++ b/target/arm/neon-dp.decode @@ -516,6 +516,15 @@ Vimm_1r 1111 001 . 1 . 000 ... .... cmode:4 0= . op:1 1 .... @1reg_imm =20 VRINTP 1111 001 11 . 11 .. 10 .... 0 1111 . . 0 .... @2misc =20 + VCVTAS 1111 001 11 . 11 .. 11 .... 0 0000 . . 0 .... @2misc + VCVTAU 1111 001 11 . 11 .. 11 .... 0 0001 . . 0 .... @2misc + VCVTNS 1111 001 11 . 11 .. 11 .... 0 0010 . . 0 .... @2misc + VCVTNU 1111 001 11 . 11 .. 11 .... 0 0011 . . 0 .... @2misc + VCVTPS 1111 001 11 . 11 .. 11 .... 0 0100 . . 0 .... @2misc + VCVTPU 1111 001 11 . 11 .. 11 .... 0 0101 . . 0 .... @2misc + VCVTMS 1111 001 11 . 11 .. 11 .... 0 0110 . . 0 .... @2misc + VCVTMU 1111 001 11 . 11 .. 11 .... 0 0111 . . 0 .... @2misc + VRECPE 1111 001 11 . 11 .. 11 .... 0 1000 . . 0 .... @2misc VRSQRTE 1111 001 11 . 11 .. 11 .... 0 1001 . . 0 .... @2misc VRECPE_F 1111 001 11 . 11 .. 11 .... 0 1010 . . 0 .... @2misc diff --git a/target/arm/translate-neon.inc.c b/target/arm/translate-neon.in= c.c index 0e7f86ad156..29bc161f36a 100644 --- a/target/arm/translate-neon.inc.c +++ b/target/arm/translate-neon.inc.c @@ -3857,3 +3857,73 @@ DO_VRINT(VRINTA, FPROUNDING_TIEAWAY) DO_VRINT(VRINTZ, FPROUNDING_ZERO) DO_VRINT(VRINTM, FPROUNDING_NEGINF) DO_VRINT(VRINTP, FPROUNDING_POSINF) + +static bool do_vcvt(DisasContext *s, arg_2misc *a, int rmode, bool is_sign= ed) +{ + /* + * Handle a VCVT* operation by iterating 32 bits at a time, + * with a specified rounding mode in operation. + */ + int pass; + TCGv_ptr fpst; + TCGv_i32 tcg_rmode, tcg_shift; + + if (!arm_dc_feature(s, ARM_FEATURE_NEON) || + !arm_dc_feature(s, ARM_FEATURE_V8)) { + return false; + } + + /* UNDEF accesses to D16-D31 if they don't exist. */ + if (!dc_isar_feature(aa32_simd_r32, s) && + ((a->vd | a->vm) & 0x10)) { + return false; + } + + if (a->size !=3D 2) { + /* TODO: FP16 will be the size =3D=3D 1 case */ + return false; + } + + if ((a->vd | a->vm) & a->q) { + return false; + } + + if (!vfp_access_check(s)) { + return true; + } + + fpst =3D get_fpstatus_ptr(1); + tcg_shift =3D tcg_const_i32(0); + tcg_rmode =3D tcg_const_i32(arm_rmode_to_sf(rmode)); + gen_helper_set_neon_rmode(tcg_rmode, tcg_rmode, cpu_env); + for (pass =3D 0; pass < (a->q ? 4 : 2); pass++) { + TCGv_i32 tmp =3D neon_load_reg(a->vm, pass); + if (is_signed) { + gen_helper_vfp_tosls(tmp, tmp, tcg_shift, fpst); + } else { + gen_helper_vfp_touls(tmp, tmp, tcg_shift, fpst); + } + neon_store_reg(a->vd, pass, tmp); + } + gen_helper_set_neon_rmode(tcg_rmode, tcg_rmode, cpu_env); + tcg_temp_free_i32(tcg_rmode); + tcg_temp_free_i32(tcg_shift); + tcg_temp_free_ptr(fpst); + + return true; +} + +#define DO_VCVT(INSN, RMODE, SIGNED) \ + static bool trans_##INSN(DisasContext *s, arg_2misc *a) \ + { \ + return do_vcvt(s, a, RMODE, SIGNED); \ + } + +DO_VCVT(VCVTAU, FPROUNDING_TIEAWAY, false) +DO_VCVT(VCVTAS, FPROUNDING_TIEAWAY, true) +DO_VCVT(VCVTNU, FPROUNDING_TIEEVEN, false) +DO_VCVT(VCVTNS, FPROUNDING_TIEEVEN, true) +DO_VCVT(VCVTPU, FPROUNDING_POSINF, false) +DO_VCVT(VCVTPS, FPROUNDING_POSINF, true) +DO_VCVT(VCVTMU, FPROUNDING_NEGINF, false) +DO_VCVT(VCVTMS, FPROUNDING_NEGINF, true) diff --git a/target/arm/translate.c b/target/arm/translate.c index 61dfc3ae7af..b0181062020 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -3042,30 +3042,6 @@ static void gen_neon_trn_u16(TCGv_i32 t0, TCGv_i32 t= 1) #define NEON_2RM_VCVT_SF 62 #define NEON_2RM_VCVT_UF 63 =20 -static bool neon_2rm_is_v8_op(int op) -{ - /* Return true if this neon 2reg-misc op is ARMv8 and up */ - switch (op) { - case NEON_2RM_VRINTN: - case NEON_2RM_VRINTA: - case NEON_2RM_VRINTM: - case NEON_2RM_VRINTP: - case NEON_2RM_VRINTZ: - case NEON_2RM_VRINTX: - case NEON_2RM_VCVTAU: - case NEON_2RM_VCVTAS: - case NEON_2RM_VCVTNU: - case NEON_2RM_VCVTNS: - case NEON_2RM_VCVTPU: - case NEON_2RM_VCVTPS: - case NEON_2RM_VCVTMU: - case NEON_2RM_VCVTMS: - return true; - default: - return false; - } -} - /* Each entry in this array has bit n set if the insn allows * size value n (otherwise it will UNDEF). Since unallocated * op values will have no bits set they always UNDEF. @@ -4908,10 +4884,6 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) if ((neon_2rm_sizes[op] & (1 << size)) =3D=3D 0) { return 1; } - if (neon_2rm_is_v8_op(op) && - !arm_dc_feature(s, ARM_FEATURE_V8)) { - return 1; - } if (q && ((rm | rd) & 1)) { return 1; } @@ -4964,6 +4936,14 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) case NEON_2RM_VRINTM: case NEON_2RM_VRINTP: case NEON_2RM_VRINTZ: + case NEON_2RM_VCVTAU: + case NEON_2RM_VCVTAS: + case NEON_2RM_VCVTNU: + case NEON_2RM_VCVTNS: + case NEON_2RM_VCVTPU: + case NEON_2RM_VCVTPS: + case NEON_2RM_VCVTMU: + case NEON_2RM_VCVTMS: /* handled by decodetree */ return 1; case NEON_2RM_VTRN: @@ -4998,40 +4978,6 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) } neon_store_reg(rm, pass, tmp2); break; - case NEON_2RM_VCVTAU: - case NEON_2RM_VCVTAS: - case NEON_2RM_VCVTNU: - case NEON_2RM_VCVTNS: - case NEON_2RM_VCVTPU: - case NEON_2RM_VCVTPS: - case NEON_2RM_VCVTMU: - case NEON_2RM_VCVTMS: - { - bool is_signed =3D !extract32(insn, 7, 1); - TCGv_ptr fpst =3D get_fpstatus_ptr(1); - TCGv_i32 tcg_rmode, tcg_shift; - int rmode =3D fp_decode_rm[extract32(insn, 8, = 2)]; - - tcg_shift =3D tcg_const_i32(0); - tcg_rmode =3D tcg_const_i32(arm_rmode_to_sf(rm= ode)); - gen_helper_set_neon_rmode(tcg_rmode, tcg_rmode, - cpu_env); - - if (is_signed) { - gen_helper_vfp_tosls(tmp, tmp, - tcg_shift, fpst); - } else { - gen_helper_vfp_touls(tmp, tmp, - tcg_shift, fpst); - } - - gen_helper_set_neon_rmode(tcg_rmode, tcg_rmode, - cpu_env); - tcg_temp_free_i32(tcg_rmode); - tcg_temp_free_i32(tcg_shift); - tcg_temp_free_ptr(fpst); - break; - } default: /* Reserved op values were caught by the * neon_2rm_sizes[] check earlier. --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592912848; cv=none; d=zohomail.com; s=zohoarc; b=HHXRQX8GYHGOs44tbzxzNsRf83AKNteGhqv6BoW9GcFFts5IIalajkxjlyoUn5yhRaYrHnraMxeIgZqCZxEpE5ZbSxpbTRfxsWqoIyJLXeFCfQIKO32MeeuYYVyJ72jxCikJJLBKeJScpiHZSCX63d5lBEOUC57Wqb6yNE0yKeI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592912848; h=Content-Transfer-Encoding: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=CRcL1zHmlF4QDBbu4+fZlTNeuC5DJJerfTa5V4msvfk=; b=ZssPw55oPWfftJzhqnxqmQSgvxgHFZY8TIbG2nBNfeg/rxmnCi9U2t1+HNxpFg1OAh3NVZ/4QC9V7y4o1mm1wJt+SJ1GhFlYIlY+/fxYoEIqEuqdOOzYBeCp7ElHv1KMiL7/PDtmSqd9PjP3Pxm9foEq1anlSotT46zaKNxZ2cI= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592912848027848.100132022157; Tue, 23 Jun 2020 04:47:28 -0700 (PDT) Received: from localhost ([::1]:55302 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhOf-0000Pj-FY for importer@patchew.org; Tue, 23 Jun 2020 07:47:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44172) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhH5-00035j-IO for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:35 -0400 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]:33073) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhH2-0003FX-Vb for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:35 -0400 Received: by mail-wr1-x432.google.com with SMTP id l11so20186839wru.0 for ; Tue, 23 Jun 2020 04:39:32 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:29 -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=CRcL1zHmlF4QDBbu4+fZlTNeuC5DJJerfTa5V4msvfk=; b=sEYvR9c3ihh3VtLC6UjuVopFhD7z6UBmez1utthz2VMQOCoE6YTOcfettfesOjrRc9 uVnJzqOL0I9kvAb5sJm8vuMjKNlUk2ZCRRDUUeEVkGg7wn+iyU4FjSNUgUB9XhLY7pHd PTFfyXO0+vm6cK65Xf8flVPf+wT7JOEv1PN5SdQqyEzdRbJeys7iSbjGBfNK/y63ixFl XnskdunOLQYOUoL5rcsHGlBtG2fcdbzYg33CeZvXkV1ec4cVBrWmxrYgQekOPoS95vwc +oCJncauXgIACIjHHOIbz0oRHIaEAGv0x9MrOdGKg20AFMdMW2hK1etevyK5I7mUmQZg tvSA== 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=CRcL1zHmlF4QDBbu4+fZlTNeuC5DJJerfTa5V4msvfk=; b=GKqgOyfdEKef6pqV6z4UhkypJTQVP/net4vHpN29HJKunGwLD5lVbTPhR1OmwDmjB7 jx3qPuLXX4tYE/L6XmEEPNh5yf8vbU7DAU7+su4dEjdud9gBEe7qL+NW0dvVxrpzE/gc iaRLZd9SuE8YiryvUAHl6c0Lchk9sjpfIQ/o9VPdSPj7LzVVOhQVqWm/tuJj/2eJPqtt 7Ale2QdjNSU3j/GWH0ORfyPeC/i3+ADUHSqSOVabdCCnMzhet1wxHjP9Rz/aDub03zma i5OGq8Mvms3lBJzoUNC2ZG2k77go5NzINRZIwLNHcNr4ajljuYhMoAAeQyONxIGjmk+N Gz6w== X-Gm-Message-State: AOAM531lsY1swi95PhCNhgHtssO2Fq+AFyTjMR2KcmV3zOSQaseWp5lM IthmpFsiXtVZH856ITMMELap+lZqUquOzg== X-Google-Smtp-Source: ABdhPJws9f6AS8H28KKW9MLs+qeRsjLJH5rGnLkGiayQAp8ll1HNQrYuo+bt5Ye7Hwigfo0eV71R9w== X-Received: by 2002:adf:e590:: with SMTP id l16mr23620728wrm.383.1592912370497; Tue, 23 Jun 2020 04:39:30 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 21/42] target/arm: Convert Neon VSWP to decodetree Date: Tue, 23 Jun 2020 12:38:43 +0100 Message-Id: <20200623113904.28805-22-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::432; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x432.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Convert the Neon VSWP insn to decodetree. Since the new implementation doesn't have to share a pass-loop with the other 2-reg-misc operations we can implement the swap with 64-bit accesses rather than 32-bits (which brings us into line with the pseudocode and is more efficient). Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20200616170844.13318-20-peter.maydell@linaro.org --- target/arm/neon-dp.decode | 2 ++ target/arm/translate-neon.inc.c | 41 +++++++++++++++++++++++++++++++++ target/arm/translate.c | 5 +--- 3 files changed, 44 insertions(+), 4 deletions(-) diff --git a/target/arm/neon-dp.decode b/target/arm/neon-dp.decode index 5507c3e4623..2f64841de52 100644 --- a/target/arm/neon-dp.decode +++ b/target/arm/neon-dp.decode @@ -488,6 +488,8 @@ Vimm_1r 1111 001 . 1 . 000 ... .... cmode:4 0 = . op:1 1 .... @1reg_imm VABS_F 1111 001 11 . 11 .. 01 .... 0 1110 . . 0 .... @2misc VNEG_F 1111 001 11 . 11 .. 01 .... 0 1111 . . 0 .... @2misc =20 + VSWP 1111 001 11 . 11 .. 10 .... 0 0000 . . 0 .... @2misc + VUZP 1111 001 11 . 11 .. 10 .... 0 0010 . . 0 .... @2misc VZIP 1111 001 11 . 11 .. 10 .... 0 0011 . . 0 .... @2misc =20 diff --git a/target/arm/translate-neon.inc.c b/target/arm/translate-neon.in= c.c index 29bc161f36a..01da7fad462 100644 --- a/target/arm/translate-neon.inc.c +++ b/target/arm/translate-neon.inc.c @@ -3927,3 +3927,44 @@ DO_VCVT(VCVTPU, FPROUNDING_POSINF, false) DO_VCVT(VCVTPS, FPROUNDING_POSINF, true) DO_VCVT(VCVTMU, FPROUNDING_NEGINF, false) DO_VCVT(VCVTMS, FPROUNDING_NEGINF, true) + +static bool trans_VSWP(DisasContext *s, arg_2misc *a) +{ + TCGv_i64 rm, rd; + int pass; + + if (!arm_dc_feature(s, ARM_FEATURE_NEON)) { + return false; + } + + /* UNDEF accesses to D16-D31 if they don't exist. */ + if (!dc_isar_feature(aa32_simd_r32, s) && + ((a->vd | a->vm) & 0x10)) { + return false; + } + + if (a->size !=3D 0) { + return false; + } + + if ((a->vd | a->vm) & a->q) { + return false; + } + + if (!vfp_access_check(s)) { + return true; + } + + rm =3D tcg_temp_new_i64(); + rd =3D tcg_temp_new_i64(); + for (pass =3D 0; pass < (a->q ? 2 : 1); pass++) { + neon_load_reg64(rm, a->vm + pass); + neon_load_reg64(rd, a->vd + pass); + neon_store_reg64(rm, a->vd + pass); + neon_store_reg64(rd, a->vm + pass); + } + tcg_temp_free_i64(rm); + tcg_temp_free_i64(rd); + + return true; +} diff --git a/target/arm/translate.c b/target/arm/translate.c index b0181062020..e8cd4a9c61f 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -4944,6 +4944,7 @@ static int disas_neon_data_insn(DisasContext *s, uint= 32_t insn) case NEON_2RM_VCVTPS: case NEON_2RM_VCVTMU: case NEON_2RM_VCVTMS: + case NEON_2RM_VSWP: /* handled by decodetree */ return 1; case NEON_2RM_VTRN: @@ -4965,10 +4966,6 @@ static int disas_neon_data_insn(DisasContext *s, uin= t32_t insn) for (pass =3D 0; pass < (q ? 4 : 2); pass++) { tmp =3D neon_load_reg(rm, pass); switch (op) { - case NEON_2RM_VSWP: - tmp2 =3D neon_load_reg(rd, pass); - neon_store_reg(rm, pass, tmp2); - break; case NEON_2RM_VTRN: tmp2 =3D neon_load_reg(rd, pass); switch (size) { --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592913576; cv=none; d=zohomail.com; s=zohoarc; b=B9ne5KsUNeGkzywrDtk0yq4t+Ie4/i4rea5wwr8C9o1pRFa+D+C+qLFgQKbnvEweiqgV+LCBX+NVUbPh6xDdbU1spJAajVCUJYIinmQNnValQJ9h5SiOeRe25scYLBcbahv2v2pOUW2Qm7/NTh/i/OQ4dhVsMVso9UdOJExnbYk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592913576; h=Content-Transfer-Encoding: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=XYJnJhsfNkBjNMzEagCmZKjIwuvte2O1OY+cJshdwKU=; b=LkGA1JQWr4D1lTseMe8hF3dA53eRmZ0XMwfCbLzWyzYbG7vFdTxt2Bwufb/HZsJDKmRTxNS7KgLt4rXFY9KhIs8MYcNbCgohyfJSwtKaA9UZNHkCsiRlL0fV0gv2RzoNpIlAYUKVZBfRR4lTncNwjA2OqD5jLz+kXmJhgrxqILE= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 159291357697440.09206483758783; Tue, 23 Jun 2020 04:59:36 -0700 (PDT) Received: from localhost ([::1]:45034 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhaR-0004AB-K7 for importer@patchew.org; Tue, 23 Jun 2020 07:59:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44234) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhH8-0003DE-Uc for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:38 -0400 Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b]:36690) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhH4-0003G9-Bh for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:38 -0400 Received: by mail-wm1-x32b.google.com with SMTP id 17so2865441wmo.1 for ; Tue, 23 Jun 2020 04:39:33 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.30 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:31 -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=XYJnJhsfNkBjNMzEagCmZKjIwuvte2O1OY+cJshdwKU=; b=aCOtXyE+m9zMk3UkTah13X6HwCkvPAqQtv8YL/KPGh31uS0FszyfpyTlJEeRjNGebE OwL/LkR0VP4lh2qJjSnP4o4Ix69KxJGYcwaPwdJV/8SkoC6Q0PHOYWBPItLFVtYyBONW v2Cj7CyB0tRzadCy8JJJAOhHtyo3T4G85kEKRbRnPEv0OqX+fXqvA/IMuuzeJqnZBqrR k58gW0jzMkremp2JTN2od8Q6JT2/sqlxMamD2Ip4Ej2ThIiLEbblrYKOT7xt1FLeUtpP MhmJttYn+CNEd7Mc5y0OY+5izQwhF3KymKPGcVQZFVWr59C8B+KzjGg8aVovplkJQxWT Qh5g== 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=XYJnJhsfNkBjNMzEagCmZKjIwuvte2O1OY+cJshdwKU=; b=uLs75w3kGTHN+iP9M4n5TOpBDY2PaklpXvZXah/fas8CPAAHqOnRQ2cOqSchQ0ZdYC cORTPhnbhzpaCWW3cGnJQnpszEHCxlKV8pFT0blk8GdkxG1ysRDttywXXH41/5y3UChT kcbEnV7ehxJYoWMAxhM6b32BRRtT7x0kXFCofYvEcOm/5tCsg6q3Wp9FiTo/NigkoSKv AvhQKdJ4T/S1th4IBVOf6eCfM83wnBTjmP9yVuEWzpgCE1sg2Ztu3hipGwPjbBnfl6Mp 2va3kMwgrx+9xlygXGHANlvpGcf30mj90WI7mSCZdJbPDViFlOK95vNXxrJ/9YRQvcC+ IrEg== X-Gm-Message-State: AOAM5303uW9W1T4go1Y+T+s5AGV7m/VVdpEi3YaL48hLurD2hK09KHMP BfNPQaEg0RnOhojatPFPWETPBbycNUVJ7g== X-Google-Smtp-Source: ABdhPJxuDW1bKcHeFjYL/n1Yq/jm0hz94O9fpen0TKq/PnUO5ul8vemnplIUwkLOYTFxCJHXy8nhOg== X-Received: by 2002:a1c:a557:: with SMTP id o84mr14878604wme.42.1592912372010; Tue, 23 Jun 2020 04:39:32 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 22/42] target/arm: Convert Neon VTRN to decodetree Date: Tue, 23 Jun 2020 12:38:44 +0100 Message-Id: <20200623113904.28805-23-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32b; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32b.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" Convert the Neon VTRN insn to decodetree. This is the last insn in the Neon data-processing group, so we can remove all the now-unused old decoder framework. It's possible that there's a more efficient implementation of VTRN, but for this conversion we just copy the existing approach. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20200616170844.13318-21-peter.maydell@linaro.org --- target/arm/neon-dp.decode | 2 +- target/arm/translate-neon.inc.c | 90 ++++++++ target/arm/translate.c | 363 +------------------------------- 3 files changed, 93 insertions(+), 362 deletions(-) diff --git a/target/arm/neon-dp.decode b/target/arm/neon-dp.decode index 2f64841de52..686f9fbf46a 100644 --- a/target/arm/neon-dp.decode +++ b/target/arm/neon-dp.decode @@ -489,7 +489,7 @@ Vimm_1r 1111 001 . 1 . 000 ... .... cmode:4 0 = . op:1 1 .... @1reg_imm VNEG_F 1111 001 11 . 11 .. 01 .... 0 1111 . . 0 .... @2misc =20 VSWP 1111 001 11 . 11 .. 10 .... 0 0000 . . 0 .... @2misc - + VTRN 1111 001 11 . 11 .. 10 .... 0 0001 . . 0 .... @2misc VUZP 1111 001 11 . 11 .. 10 .... 0 0010 . . 0 .... @2misc VZIP 1111 001 11 . 11 .. 10 .... 0 0011 . . 0 .... @2misc =20 diff --git a/target/arm/translate-neon.inc.c b/target/arm/translate-neon.in= c.c index 01da7fad462..8cc7f5db544 100644 --- a/target/arm/translate-neon.inc.c +++ b/target/arm/translate-neon.inc.c @@ -3968,3 +3968,93 @@ static bool trans_VSWP(DisasContext *s, arg_2misc *a) =20 return true; } +static void gen_neon_trn_u8(TCGv_i32 t0, TCGv_i32 t1) +{ + TCGv_i32 rd, tmp; + + rd =3D tcg_temp_new_i32(); + tmp =3D tcg_temp_new_i32(); + + tcg_gen_shli_i32(rd, t0, 8); + tcg_gen_andi_i32(rd, rd, 0xff00ff00); + tcg_gen_andi_i32(tmp, t1, 0x00ff00ff); + tcg_gen_or_i32(rd, rd, tmp); + + tcg_gen_shri_i32(t1, t1, 8); + tcg_gen_andi_i32(t1, t1, 0x00ff00ff); + tcg_gen_andi_i32(tmp, t0, 0xff00ff00); + tcg_gen_or_i32(t1, t1, tmp); + tcg_gen_mov_i32(t0, rd); + + tcg_temp_free_i32(tmp); + tcg_temp_free_i32(rd); +} + +static void gen_neon_trn_u16(TCGv_i32 t0, TCGv_i32 t1) +{ + TCGv_i32 rd, tmp; + + rd =3D tcg_temp_new_i32(); + tmp =3D tcg_temp_new_i32(); + + tcg_gen_shli_i32(rd, t0, 16); + tcg_gen_andi_i32(tmp, t1, 0xffff); + tcg_gen_or_i32(rd, rd, tmp); + tcg_gen_shri_i32(t1, t1, 16); + tcg_gen_andi_i32(tmp, t0, 0xffff0000); + tcg_gen_or_i32(t1, t1, tmp); + tcg_gen_mov_i32(t0, rd); + + tcg_temp_free_i32(tmp); + tcg_temp_free_i32(rd); +} + +static bool trans_VTRN(DisasContext *s, arg_2misc *a) +{ + TCGv_i32 tmp, tmp2; + int pass; + + if (!arm_dc_feature(s, ARM_FEATURE_NEON)) { + return false; + } + + /* UNDEF accesses to D16-D31 if they don't exist. */ + if (!dc_isar_feature(aa32_simd_r32, s) && + ((a->vd | a->vm) & 0x10)) { + return false; + } + + if ((a->vd | a->vm) & a->q) { + return false; + } + + if (a->size =3D=3D 3) { + return false; + } + + if (!vfp_access_check(s)) { + return true; + } + + if (a->size =3D=3D 2) { + for (pass =3D 0; pass < (a->q ? 4 : 2); pass +=3D 2) { + tmp =3D neon_load_reg(a->vm, pass); + tmp2 =3D neon_load_reg(a->vd, pass + 1); + neon_store_reg(a->vm, pass, tmp2); + neon_store_reg(a->vd, pass + 1, tmp); + } + } else { + for (pass =3D 0; pass < (a->q ? 4 : 2); pass++) { + tmp =3D neon_load_reg(a->vm, pass); + tmp2 =3D neon_load_reg(a->vd, pass); + if (a->size =3D=3D 0) { + gen_neon_trn_u8(tmp, tmp2); + } else { + gen_neon_trn_u16(tmp, tmp2); + } + neon_store_reg(a->vm, pass, tmp2); + neon_store_reg(a->vd, pass, tmp); + } + } + return true; +} diff --git a/target/arm/translate.c b/target/arm/translate.c index e8cd4a9c61f..581b0b5cde4 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -2934,183 +2934,6 @@ static void gen_exception_return(DisasContext *s, T= CGv_i32 pc) gen_rfe(s, pc, load_cpu_field(spsr)); } =20 -static void gen_neon_trn_u8(TCGv_i32 t0, TCGv_i32 t1) -{ - TCGv_i32 rd, tmp; - - rd =3D tcg_temp_new_i32(); - tmp =3D tcg_temp_new_i32(); - - tcg_gen_shli_i32(rd, t0, 8); - tcg_gen_andi_i32(rd, rd, 0xff00ff00); - tcg_gen_andi_i32(tmp, t1, 0x00ff00ff); - tcg_gen_or_i32(rd, rd, tmp); - - tcg_gen_shri_i32(t1, t1, 8); - tcg_gen_andi_i32(t1, t1, 0x00ff00ff); - tcg_gen_andi_i32(tmp, t0, 0xff00ff00); - tcg_gen_or_i32(t1, t1, tmp); - tcg_gen_mov_i32(t0, rd); - - tcg_temp_free_i32(tmp); - tcg_temp_free_i32(rd); -} - -static void gen_neon_trn_u16(TCGv_i32 t0, TCGv_i32 t1) -{ - TCGv_i32 rd, tmp; - - rd =3D tcg_temp_new_i32(); - tmp =3D tcg_temp_new_i32(); - - tcg_gen_shli_i32(rd, t0, 16); - tcg_gen_andi_i32(tmp, t1, 0xffff); - tcg_gen_or_i32(rd, rd, tmp); - tcg_gen_shri_i32(t1, t1, 16); - tcg_gen_andi_i32(tmp, t0, 0xffff0000); - tcg_gen_or_i32(t1, t1, tmp); - tcg_gen_mov_i32(t0, rd); - - tcg_temp_free_i32(tmp); - tcg_temp_free_i32(rd); -} - -/* Symbolic constants for op fields for Neon 2-register miscellaneous. - * The values correspond to bits [17:16,10:7]; see the ARM ARM DDI0406B - * table A7-13. - */ -#define NEON_2RM_VREV64 0 -#define NEON_2RM_VREV32 1 -#define NEON_2RM_VREV16 2 -#define NEON_2RM_VPADDL 4 -#define NEON_2RM_VPADDL_U 5 -#define NEON_2RM_AESE 6 /* Includes AESD */ -#define NEON_2RM_AESMC 7 /* Includes AESIMC */ -#define NEON_2RM_VCLS 8 -#define NEON_2RM_VCLZ 9 -#define NEON_2RM_VCNT 10 -#define NEON_2RM_VMVN 11 -#define NEON_2RM_VPADAL 12 -#define NEON_2RM_VPADAL_U 13 -#define NEON_2RM_VQABS 14 -#define NEON_2RM_VQNEG 15 -#define NEON_2RM_VCGT0 16 -#define NEON_2RM_VCGE0 17 -#define NEON_2RM_VCEQ0 18 -#define NEON_2RM_VCLE0 19 -#define NEON_2RM_VCLT0 20 -#define NEON_2RM_SHA1H 21 -#define NEON_2RM_VABS 22 -#define NEON_2RM_VNEG 23 -#define NEON_2RM_VCGT0_F 24 -#define NEON_2RM_VCGE0_F 25 -#define NEON_2RM_VCEQ0_F 26 -#define NEON_2RM_VCLE0_F 27 -#define NEON_2RM_VCLT0_F 28 -#define NEON_2RM_VABS_F 30 -#define NEON_2RM_VNEG_F 31 -#define NEON_2RM_VSWP 32 -#define NEON_2RM_VTRN 33 -#define NEON_2RM_VUZP 34 -#define NEON_2RM_VZIP 35 -#define NEON_2RM_VMOVN 36 /* Includes VQMOVN, VQMOVUN */ -#define NEON_2RM_VQMOVN 37 /* Includes VQMOVUN */ -#define NEON_2RM_VSHLL 38 -#define NEON_2RM_SHA1SU1 39 /* Includes SHA256SU0 */ -#define NEON_2RM_VRINTN 40 -#define NEON_2RM_VRINTX 41 -#define NEON_2RM_VRINTA 42 -#define NEON_2RM_VRINTZ 43 -#define NEON_2RM_VCVT_F16_F32 44 -#define NEON_2RM_VRINTM 45 -#define NEON_2RM_VCVT_F32_F16 46 -#define NEON_2RM_VRINTP 47 -#define NEON_2RM_VCVTAU 48 -#define NEON_2RM_VCVTAS 49 -#define NEON_2RM_VCVTNU 50 -#define NEON_2RM_VCVTNS 51 -#define NEON_2RM_VCVTPU 52 -#define NEON_2RM_VCVTPS 53 -#define NEON_2RM_VCVTMU 54 -#define NEON_2RM_VCVTMS 55 -#define NEON_2RM_VRECPE 56 -#define NEON_2RM_VRSQRTE 57 -#define NEON_2RM_VRECPE_F 58 -#define NEON_2RM_VRSQRTE_F 59 -#define NEON_2RM_VCVT_FS 60 -#define NEON_2RM_VCVT_FU 61 -#define NEON_2RM_VCVT_SF 62 -#define NEON_2RM_VCVT_UF 63 - -/* Each entry in this array has bit n set if the insn allows - * size value n (otherwise it will UNDEF). Since unallocated - * op values will have no bits set they always UNDEF. - */ -static const uint8_t neon_2rm_sizes[] =3D { - [NEON_2RM_VREV64] =3D 0x7, - [NEON_2RM_VREV32] =3D 0x3, - [NEON_2RM_VREV16] =3D 0x1, - [NEON_2RM_VPADDL] =3D 0x7, - [NEON_2RM_VPADDL_U] =3D 0x7, - [NEON_2RM_AESE] =3D 0x1, - [NEON_2RM_AESMC] =3D 0x1, - [NEON_2RM_VCLS] =3D 0x7, - [NEON_2RM_VCLZ] =3D 0x7, - [NEON_2RM_VCNT] =3D 0x1, - [NEON_2RM_VMVN] =3D 0x1, - [NEON_2RM_VPADAL] =3D 0x7, - [NEON_2RM_VPADAL_U] =3D 0x7, - [NEON_2RM_VQABS] =3D 0x7, - [NEON_2RM_VQNEG] =3D 0x7, - [NEON_2RM_VCGT0] =3D 0x7, - [NEON_2RM_VCGE0] =3D 0x7, - [NEON_2RM_VCEQ0] =3D 0x7, - [NEON_2RM_VCLE0] =3D 0x7, - [NEON_2RM_VCLT0] =3D 0x7, - [NEON_2RM_SHA1H] =3D 0x4, - [NEON_2RM_VABS] =3D 0x7, - [NEON_2RM_VNEG] =3D 0x7, - [NEON_2RM_VCGT0_F] =3D 0x4, - [NEON_2RM_VCGE0_F] =3D 0x4, - [NEON_2RM_VCEQ0_F] =3D 0x4, - [NEON_2RM_VCLE0_F] =3D 0x4, - [NEON_2RM_VCLT0_F] =3D 0x4, - [NEON_2RM_VABS_F] =3D 0x4, - [NEON_2RM_VNEG_F] =3D 0x4, - [NEON_2RM_VSWP] =3D 0x1, - [NEON_2RM_VTRN] =3D 0x7, - [NEON_2RM_VUZP] =3D 0x7, - [NEON_2RM_VZIP] =3D 0x7, - [NEON_2RM_VMOVN] =3D 0x7, - [NEON_2RM_VQMOVN] =3D 0x7, - [NEON_2RM_VSHLL] =3D 0x7, - [NEON_2RM_SHA1SU1] =3D 0x4, - [NEON_2RM_VRINTN] =3D 0x4, - [NEON_2RM_VRINTX] =3D 0x4, - [NEON_2RM_VRINTA] =3D 0x4, - [NEON_2RM_VRINTZ] =3D 0x4, - [NEON_2RM_VCVT_F16_F32] =3D 0x2, - [NEON_2RM_VRINTM] =3D 0x4, - [NEON_2RM_VCVT_F32_F16] =3D 0x2, - [NEON_2RM_VRINTP] =3D 0x4, - [NEON_2RM_VCVTAU] =3D 0x4, - [NEON_2RM_VCVTAS] =3D 0x4, - [NEON_2RM_VCVTNU] =3D 0x4, - [NEON_2RM_VCVTNS] =3D 0x4, - [NEON_2RM_VCVTPU] =3D 0x4, - [NEON_2RM_VCVTPS] =3D 0x4, - [NEON_2RM_VCVTMU] =3D 0x4, - [NEON_2RM_VCVTMS] =3D 0x4, - [NEON_2RM_VRECPE] =3D 0x4, - [NEON_2RM_VRSQRTE] =3D 0x4, - [NEON_2RM_VRECPE_F] =3D 0x4, - [NEON_2RM_VRSQRTE_F] =3D 0x4, - [NEON_2RM_VCVT_FS] =3D 0x4, - [NEON_2RM_VCVT_FU] =3D 0x4, - [NEON_2RM_VCVT_SF] =3D 0x4, - [NEON_2RM_VCVT_UF] =3D 0x4, -}; - static void gen_gvec_fn3_qc(uint32_t rd_ofs, uint32_t rn_ofs, uint32_t rm_= ofs, uint32_t opr_sz, uint32_t max_sz, gen_helper_gvec_3_ptr *fn) @@ -4822,178 +4645,6 @@ void gen_gvec_uaba(unsigned vece, uint32_t rd_ofs, = uint32_t rn_ofs, tcg_gen_gvec_3(rd_ofs, rn_ofs, rm_ofs, opr_sz, max_sz, &ops[vece]); } =20 -/* Translate a NEON data processing instruction. Return nonzero if the - instruction is invalid. - We process data in a mixture of 32-bit and 64-bit chunks. - Mostly we use 32-bit chunks so we can use normal scalar instructions. = */ - -static int disas_neon_data_insn(DisasContext *s, uint32_t insn) -{ - int op; - int q; - int rd, rm; - int size; - int pass; - int u; - TCGv_i32 tmp, tmp2; - - if (!arm_dc_feature(s, ARM_FEATURE_NEON)) { - return 1; - } - - /* FIXME: this access check should not take precedence over UNDEF - * for invalid encodings; we will generate incorrect syndrome informat= ion - * for attempts to execute invalid vfp/neon encodings with FP disabled. - */ - if (s->fp_excp_el) { - gen_exception_insn(s, s->pc_curr, EXCP_UDEF, - syn_simd_access_trap(1, 0xe, false), s->fp_excp= _el); - return 0; - } - - if (!s->vfp_enabled) - return 1; - q =3D (insn & (1 << 6)) !=3D 0; - u =3D (insn >> 24) & 1; - VFP_DREG_D(rd, insn); - VFP_DREG_M(rm, insn); - size =3D (insn >> 20) & 3; - - if ((insn & (1 << 23)) =3D=3D 0) { - /* Three register same length: handled by decodetree */ - return 1; - } else if (insn & (1 << 4)) { - /* Two registers and shift or reg and imm: handled by decodetree */ - return 1; - } else { /* (insn & 0x00800010 =3D=3D 0x00800000) */ - if (size !=3D 3) { - /* - * Three registers of different lengths, or two registers and - * a scalar: handled by decodetree - */ - return 1; - } else { /* size =3D=3D 3 */ - if (!u) { - /* Extract: handled by decodetree */ - return 1; - } else if ((insn & (1 << 11)) =3D=3D 0) { - /* Two register misc. */ - op =3D ((insn >> 12) & 0x30) | ((insn >> 7) & 0xf); - size =3D (insn >> 18) & 3; - /* UNDEF for unknown op values and bad op-size combination= s */ - if ((neon_2rm_sizes[op] & (1 << size)) =3D=3D 0) { - return 1; - } - if (q && ((rm | rd) & 1)) { - return 1; - } - switch (op) { - case NEON_2RM_VREV64: - case NEON_2RM_VPADDL: case NEON_2RM_VPADDL_U: - case NEON_2RM_VPADAL: case NEON_2RM_VPADAL_U: - case NEON_2RM_VUZP: - case NEON_2RM_VZIP: - case NEON_2RM_VMOVN: case NEON_2RM_VQMOVN: - case NEON_2RM_VSHLL: - case NEON_2RM_VCVT_F16_F32: - case NEON_2RM_VCVT_F32_F16: - case NEON_2RM_VMVN: - case NEON_2RM_VNEG: - case NEON_2RM_VABS: - case NEON_2RM_VCEQ0: - case NEON_2RM_VCGT0: - case NEON_2RM_VCLE0: - case NEON_2RM_VCGE0: - case NEON_2RM_VCLT0: - case NEON_2RM_AESE: case NEON_2RM_AESMC: - case NEON_2RM_SHA1H: - case NEON_2RM_SHA1SU1: - case NEON_2RM_VREV32: - case NEON_2RM_VREV16: - case NEON_2RM_VCLS: - case NEON_2RM_VCLZ: - case NEON_2RM_VCNT: - case NEON_2RM_VABS_F: - case NEON_2RM_VNEG_F: - case NEON_2RM_VRECPE: - case NEON_2RM_VRSQRTE: - case NEON_2RM_VQABS: - case NEON_2RM_VQNEG: - case NEON_2RM_VRECPE_F: - case NEON_2RM_VRSQRTE_F: - case NEON_2RM_VCVT_FS: - case NEON_2RM_VCVT_FU: - case NEON_2RM_VCVT_SF: - case NEON_2RM_VCVT_UF: - case NEON_2RM_VRINTX: - case NEON_2RM_VCGT0_F: - case NEON_2RM_VCGE0_F: - case NEON_2RM_VCEQ0_F: - case NEON_2RM_VCLE0_F: - case NEON_2RM_VCLT0_F: - case NEON_2RM_VRINTN: - case NEON_2RM_VRINTA: - case NEON_2RM_VRINTM: - case NEON_2RM_VRINTP: - case NEON_2RM_VRINTZ: - case NEON_2RM_VCVTAU: - case NEON_2RM_VCVTAS: - case NEON_2RM_VCVTNU: - case NEON_2RM_VCVTNS: - case NEON_2RM_VCVTPU: - case NEON_2RM_VCVTPS: - case NEON_2RM_VCVTMU: - case NEON_2RM_VCVTMS: - case NEON_2RM_VSWP: - /* handled by decodetree */ - return 1; - case NEON_2RM_VTRN: - if (size =3D=3D 2) { - int n; - for (n =3D 0; n < (q ? 4 : 2); n +=3D 2) { - tmp =3D neon_load_reg(rm, n); - tmp2 =3D neon_load_reg(rd, n + 1); - neon_store_reg(rm, n, tmp2); - neon_store_reg(rd, n + 1, tmp); - } - } else { - goto elementwise; - } - break; - - default: - elementwise: - for (pass =3D 0; pass < (q ? 4 : 2); pass++) { - tmp =3D neon_load_reg(rm, pass); - switch (op) { - case NEON_2RM_VTRN: - tmp2 =3D neon_load_reg(rd, pass); - switch (size) { - case 0: gen_neon_trn_u8(tmp, tmp2); break; - case 1: gen_neon_trn_u16(tmp, tmp2); break; - default: abort(); - } - neon_store_reg(rm, pass, tmp2); - break; - default: - /* Reserved op values were caught by the - * neon_2rm_sizes[] check earlier. - */ - abort(); - } - neon_store_reg(rd, pass, tmp); - } - break; - } - } else { - /* VTBL, VTBX, VDUP: handled by decodetree */ - return 1; - } - } - } - return 0; -} - static int disas_coproc_insn(DisasContext *s, uint32_t insn) { int cpnum, is64, crn, crm, opc1, opc2, isread, rt, rt2; @@ -8694,13 +8345,6 @@ static void disas_arm_insn(DisasContext *s, unsigned= int insn) } /* fall back to legacy decoder */ =20 - if (((insn >> 25) & 7) =3D=3D 1) { - /* NEON Data processing. */ - if (disas_neon_data_insn(s, insn)) { - goto illegal_op; - } - return; - } if ((insn & 0x0e000f00) =3D=3D 0x0c000100) { if (arm_dc_feature(s, ARM_FEATURE_IWMMXT)) { /* iWMMXt register transfer. */ @@ -8888,11 +8532,8 @@ static void disas_thumb2_insn(DisasContext *s, uint3= 2_t insn) break; } if (((insn >> 24) & 3) =3D=3D 3) { - /* Translate into the equivalent ARM encoding. */ - insn =3D (insn & 0xe2ffffff) | ((insn & (1 << 28)) >> 4) | (1 = << 28); - if (disas_neon_data_insn(s, insn)) { - goto illegal_op; - } + /* Neon DP, but failed disas_neon_dp() */ + goto illegal_op; } else if (((insn >> 8) & 0xe) =3D=3D 10) { /* VFP, but failed disas_vfp. */ goto illegal_op; --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592913116; cv=none; d=zohomail.com; s=zohoarc; b=dUy/CH0n8GPXDn6I3ZhhdFII4izWmG3ZXTxVNvAPg4EUSPBsY72aQrPY9FcXz/aTDl3+sFOJ4r4uvnEVePvrggqhYmLuDKGQ1lvD/cxrkJjlpWkjoSRKgXUt1GNS9sHW/7yPCw8gkOG3ZkNnJ5t1PVct9X+eKW1NsVX3H6FChFM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592913116; h=Content-Transfer-Encoding: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=serUU+stSVb0s2dZ0+f6UcWAvuzmjUORUaAEIVE/G2M=; b=QM6dgg+BB/HlaGpfdN1PeDxamndAdiQnyB0lA4dN9vlQpzkadO8uECwYK8UU7OBJ3h96r69GssDfroVtCxpJIagN1+jn8kTtuW3CccvxLR9jmYaqie/blLkJLlzd6sX8MW+keG3IImO/bqCqnPMbkxJjEKGG+6MVxI3V/AqbjVo= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592913116566770.1454898220429; Tue, 23 Jun 2020 04:51:56 -0700 (PDT) Received: from localhost ([::1]:44132 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhT1-0007OJ-8J for importer@patchew.org; Tue, 23 Jun 2020 07:51:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44208) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhH7-00039Z-9m for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:37 -0400 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]:34845) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhH4-0003GG-Qy for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:36 -0400 Received: by mail-wm1-x334.google.com with SMTP id g21so2876935wmg.0 for ; Tue, 23 Jun 2020 04:39:34 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:32 -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=serUU+stSVb0s2dZ0+f6UcWAvuzmjUORUaAEIVE/G2M=; b=xM5vUo/oM9jTK2LMW+soOKodF8o8N839b5CKXBM/cgrUuAcsMnHH3uWosL7A4Qbge5 +6Tv2DhRj0/yOBXLljKJ1wCc8acio2uAbT+CwI7S645i79Y4g5JE5QaNiWwfJSSYLmBT C8WArZMRy4htK8LAfLP7jG2jCsGRnnaNY7lLLHKQuMAeH/Dc5iJx0smUWh8VNxL6/yGE 8Hr8WPA1F3ia0HdS0srzJvr6WOKkKF9oEHKzHPPswstPquhpMQo4W3WhHthIYSjMu5WT S9csqRurocRFEp1KTSrKGcLvq1S6OkFGzMqIQvX5cOgdeHf6zS/0h/59tvQlkcV6PxXR lHMg== 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=serUU+stSVb0s2dZ0+f6UcWAvuzmjUORUaAEIVE/G2M=; b=Qw+rOKprcSKSjw6kmldieQt1A60qqkPR0YlqUnGdF8u/N0UiTbhFMQUDDqiO5dlFje HKV/qTVYvKrWYFzWHxCpZuq9/JOUsvAfyEVrnLaKnjcBfOtnSCa329ptQy9RiVf78RqQ 6Blr9xrrwp+bQe5lMW3ZO9R+6vWSjHLBKUrpsHXeCDrprpZeR+YlmH25/0w88mQoV+Vh 8TVEZVF2eFQscoUBMxdZ86S3M3siV/nu0rM/bOVpjziL4J/uBgL92UMbSjgP64WLuVSr Tnnk/8fT71/HVxegtzCt6yCiKiQveMkdETK0kkHnhb3soHn/sgjFtoWAuRvD97F0v5PJ yliw== X-Gm-Message-State: AOAM533zAxpzsLH9GubgrRfsj9CtZUQq+NHnoWG1WWDoNYWMdVp3uNFq 27Ho6s+2gz3u3Wd3hZwpbl+cp2vpEcKmBQ== X-Google-Smtp-Source: ABdhPJxKAmxvZOU70DCDgep1attlRs5Sxyq8OSPc2ZFhGK3PFcnKD+4qp5lfbIYi2DnFzLXHlqxJBg== X-Received: by 2002:a1c:4d05:: with SMTP id o5mr3286849wmh.130.1592912373007; Tue, 23 Jun 2020 04:39:33 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 23/42] target/arm: Move some functions used only in translate-neon.inc.c to that file Date: Tue, 23 Jun 2020 12:38:45 +0100 Message-Id: <20200623113904.28805-24-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::334; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x334.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" The functions neon_element_offset(), neon_load_element(), neon_load_element64(), neon_store_element() and neon_store_element64() are used only in the translate-neon.inc.c file, so move their definitions there. Since the .inc.c file is #included in translate.c this doesn't make much difference currently, but it's a more logical place to put the functions and it might be helpful if we ever decide to try to make the .inc.c files genuinely separate compilation units. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20200616170844.13318-22-peter.maydell@linaro.org --- target/arm/translate-neon.inc.c | 101 ++++++++++++++++++++++++++++++++ target/arm/translate.c | 101 -------------------------------- 2 files changed, 101 insertions(+), 101 deletions(-) diff --git a/target/arm/translate-neon.inc.c b/target/arm/translate-neon.in= c.c index 8cc7f5db544..f6cb9215739 100644 --- a/target/arm/translate-neon.inc.c +++ b/target/arm/translate-neon.inc.c @@ -54,6 +54,107 @@ static inline int rsub_8(DisasContext *s, int x) #include "decode-neon-ls.inc.c" #include "decode-neon-shared.inc.c" =20 +/* Return the offset of a 2**SIZE piece of a NEON register, at index ELE, + * where 0 is the least significant end of the register. + */ +static inline long +neon_element_offset(int reg, int element, MemOp size) +{ + int element_size =3D 1 << size; + int ofs =3D element * element_size; +#ifdef HOST_WORDS_BIGENDIAN + /* Calculate the offset assuming fully little-endian, + * then XOR to account for the order of the 8-byte units. + */ + if (element_size < 8) { + ofs ^=3D 8 - element_size; + } +#endif + return neon_reg_offset(reg, 0) + ofs; +} + +static void neon_load_element(TCGv_i32 var, int reg, int ele, MemOp mop) +{ + long offset =3D neon_element_offset(reg, ele, mop & MO_SIZE); + + switch (mop) { + case MO_UB: + tcg_gen_ld8u_i32(var, cpu_env, offset); + break; + case MO_UW: + tcg_gen_ld16u_i32(var, cpu_env, offset); + break; + case MO_UL: + tcg_gen_ld_i32(var, cpu_env, offset); + break; + default: + g_assert_not_reached(); + } +} + +static void neon_load_element64(TCGv_i64 var, int reg, int ele, MemOp mop) +{ + long offset =3D neon_element_offset(reg, ele, mop & MO_SIZE); + + switch (mop) { + case MO_UB: + tcg_gen_ld8u_i64(var, cpu_env, offset); + break; + case MO_UW: + tcg_gen_ld16u_i64(var, cpu_env, offset); + break; + case MO_UL: + tcg_gen_ld32u_i64(var, cpu_env, offset); + break; + case MO_Q: + tcg_gen_ld_i64(var, cpu_env, offset); + break; + default: + g_assert_not_reached(); + } +} + +static void neon_store_element(int reg, int ele, MemOp size, TCGv_i32 var) +{ + long offset =3D neon_element_offset(reg, ele, size); + + switch (size) { + case MO_8: + tcg_gen_st8_i32(var, cpu_env, offset); + break; + case MO_16: + tcg_gen_st16_i32(var, cpu_env, offset); + break; + case MO_32: + tcg_gen_st_i32(var, cpu_env, offset); + break; + default: + g_assert_not_reached(); + } +} + +static void neon_store_element64(int reg, int ele, MemOp size, TCGv_i64 va= r) +{ + long offset =3D neon_element_offset(reg, ele, size); + + switch (size) { + case MO_8: + tcg_gen_st8_i64(var, cpu_env, offset); + break; + case MO_16: + tcg_gen_st16_i64(var, cpu_env, offset); + break; + case MO_32: + tcg_gen_st32_i64(var, cpu_env, offset); + break; + case MO_64: + tcg_gen_st_i64(var, cpu_env, offset); + break; + default: + g_assert_not_reached(); + } +} + static bool trans_VCMLA(DisasContext *s, arg_VCMLA *a) { int opr_sz; diff --git a/target/arm/translate.c b/target/arm/translate.c index 581b0b5cde4..408fb7a492f 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -1133,25 +1133,6 @@ neon_reg_offset (int reg, int n) return vfp_reg_offset(0, sreg); } =20 -/* Return the offset of a 2**SIZE piece of a NEON register, at index ELE, - * where 0 is the least significant end of the register. - */ -static inline long -neon_element_offset(int reg, int element, MemOp size) -{ - int element_size =3D 1 << size; - int ofs =3D element * element_size; -#ifdef HOST_WORDS_BIGENDIAN - /* Calculate the offset assuming fully little-endian, - * then XOR to account for the order of the 8-byte units. - */ - if (element_size < 8) { - ofs ^=3D 8 - element_size; - } -#endif - return neon_reg_offset(reg, 0) + ofs; -} - static TCGv_i32 neon_load_reg(int reg, int pass) { TCGv_i32 tmp =3D tcg_temp_new_i32(); @@ -1159,94 +1140,12 @@ static TCGv_i32 neon_load_reg(int reg, int pass) return tmp; } =20 -static void neon_load_element(TCGv_i32 var, int reg, int ele, MemOp mop) -{ - long offset =3D neon_element_offset(reg, ele, mop & MO_SIZE); - - switch (mop) { - case MO_UB: - tcg_gen_ld8u_i32(var, cpu_env, offset); - break; - case MO_UW: - tcg_gen_ld16u_i32(var, cpu_env, offset); - break; - case MO_UL: - tcg_gen_ld_i32(var, cpu_env, offset); - break; - default: - g_assert_not_reached(); - } -} - -static void neon_load_element64(TCGv_i64 var, int reg, int ele, MemOp mop) -{ - long offset =3D neon_element_offset(reg, ele, mop & MO_SIZE); - - switch (mop) { - case MO_UB: - tcg_gen_ld8u_i64(var, cpu_env, offset); - break; - case MO_UW: - tcg_gen_ld16u_i64(var, cpu_env, offset); - break; - case MO_UL: - tcg_gen_ld32u_i64(var, cpu_env, offset); - break; - case MO_Q: - tcg_gen_ld_i64(var, cpu_env, offset); - break; - default: - g_assert_not_reached(); - } -} - static void neon_store_reg(int reg, int pass, TCGv_i32 var) { tcg_gen_st_i32(var, cpu_env, neon_reg_offset(reg, pass)); tcg_temp_free_i32(var); } =20 -static void neon_store_element(int reg, int ele, MemOp size, TCGv_i32 var) -{ - long offset =3D neon_element_offset(reg, ele, size); - - switch (size) { - case MO_8: - tcg_gen_st8_i32(var, cpu_env, offset); - break; - case MO_16: - tcg_gen_st16_i32(var, cpu_env, offset); - break; - case MO_32: - tcg_gen_st_i32(var, cpu_env, offset); - break; - default: - g_assert_not_reached(); - } -} - -static void neon_store_element64(int reg, int ele, MemOp size, TCGv_i64 va= r) -{ - long offset =3D neon_element_offset(reg, ele, size); - - switch (size) { - case MO_8: - tcg_gen_st8_i64(var, cpu_env, offset); - break; - case MO_16: - tcg_gen_st16_i64(var, cpu_env, offset); - break; - case MO_32: - tcg_gen_st32_i64(var, cpu_env, offset); - break; - case MO_64: - tcg_gen_st_i64(var, cpu_env, offset); - break; - default: - g_assert_not_reached(); - } -} - static inline void neon_load_reg64(TCGv_i64 var, int reg) { tcg_gen_ld_i64(var, cpu_env, vfp_reg_offset(1, reg)); --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592913286; cv=none; d=zohomail.com; s=zohoarc; b=S6fxbrWyXNlFwvm5xTP1eYnglLMDaLdsdWcLvJfKMZ14rIVpiAyPwItSDwBwMXKx+uSz2yRZT63SR7RSvD9/wU/RcXe1t+xGjaBwRnvcwQYFsLQ93nRmwpvr/h6dIvBEiuB4NlyAUuSBb5oqJfA5TB0YEtr6/PSwhoOHjgCHxrI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592913286; h=Content-Type:Content-Transfer-Encoding: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=TIdOwUcKS8Gkz5ItNSYHwPJjx8yUuXeef+8VZHen8tM=; b=Kp7r0FHCdEmvq/fxsaNpk0gWpR1/HCbfH/+c3qKY94k/IGbaWbZwVageoIu1uc+YRLOinieYlUW6D9sxkSDJYz7/RgLDSQ0PBSjm6Nc3Qh1CsWlwkti4wDI6HjiN/PNDqH+dlgS3obP00+Z9Q19vob/AlkWuPQvILGi/PcU6z64= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592913286010177.2349217540375; Tue, 23 Jun 2020 04:54:46 -0700 (PDT) Received: from localhost ([::1]:52712 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhVk-0003sD-PQ for importer@patchew.org; Tue, 23 Jun 2020 07:54:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44220) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhH8-0003BV-58 for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:38 -0400 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]:34836) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhH6-0003Ie-28 for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:37 -0400 Received: by mail-wm1-x32a.google.com with SMTP id g21so2877004wmg.0 for ; Tue, 23 Jun 2020 04:39:35 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.33 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:33 -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=TIdOwUcKS8Gkz5ItNSYHwPJjx8yUuXeef+8VZHen8tM=; b=imy4i4Co6UtuJzDk0F1E4i7QeE36rYb+vtDSf+yrjRXTXfX7DHXgRtccBP4X3kZNmJ u55HjgLJ24gZNThHiPesfWAbEURzl3JZLcFkikMeqrfA3mQxPSOoq5m5aMlBoZeDeASY h3C+OV+Mo8ZBAfkQY30V5YsBUjmnkbmY8vIFB9BfLItbxDOpkkIpqAga94aHVelGfzaP zx+kTFN/MT+H1WLZsv0yAFLkzyVKTNO4scYEFplY+EF5bxYaUwkjGfAT/Z53bxRn7YaD WkBsIHStssp7IzMurUv72IQhleIwvIUtx1aqa0nvfNiCzn9PekWdgEIQBWJvuJFriy07 SmCw== 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=TIdOwUcKS8Gkz5ItNSYHwPJjx8yUuXeef+8VZHen8tM=; b=qtBYXQ8ERt0IwTT/b1Jeo5DRoiQ1evLJX0s2O/a7pp/O1h1XJVvo6gXRZdGbq2eagR QesoKTyoKmWdP+b5GVyyPmREhDgyK2CIqRv2sHl/eprOlE7Ix/mgxSdV9nvzHlSe1Ave xludtMA73sVnBoEsCBTFQ4MjKuBLztqEg24zKEx3I72vHRKDhHaHwvmjrwKr9SN4ZiBr 8I0qHE5SRO3L7CC3d6MOmP6Iwyr7sHzxw6ynDa3qi938Xvl0aNskVXrtuQdX4mhLDdnd GNwROV+AHpk1TQNzIXkowqjCSnZ/nJSkCNhioBycpmIolcgjtCouyZokq/6Aoj+syVTe 5QeA== X-Gm-Message-State: AOAM532lMkTUS2KJLgumzpgdEqGgJZV1nRTOy4dq10Jg650PmT/txyze VtR81C/ObMDha8D4lpJdVIgSHuPIuYE+KQ== X-Google-Smtp-Source: ABdhPJzpkT4+445FBBC0kusfDrJseOsuVV2JdKdBNiUqdZ58dvfBhYnR97yGU8wa1EaNv0m7nLuw2Q== X-Received: by 2002:a1c:e910:: with SMTP id q16mr10371833wmc.188.1592912374300; Tue, 23 Jun 2020 04:39:34 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 24/42] target/arm: Remove unnecessary gen_io_end() calls Date: Tue, 23 Jun 2020 12:38:46 +0100 Message-Id: <20200623113904.28805-25-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32a; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32a.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Since commit ba3e7926691ed3 it has been unnecessary for target code to call gen_io_end() after an IO instruction in icount mode; it is sufficient to call gen_io_start() before it and to force the end of the TB. Many now-unnecessary calls to gen_io_end() were removed in commit 9e9b10c6491153b, but some were missed or accidentally added later. Remove unneeded calls from the arm target: * the call in the handling of exception-return-via-LDM is unnecessary, and the code is already forcing end-of-TB * the call in the VFP access check code is more complicated: we weren't ending the TB, so we need to add the code to force that by setting DISAS_UPDATE * the doc comment for ARM_CP_IO doesn't need to mention gen_io_end() any more Signed-off-by: Peter Maydell Reviewed-by: Alex Benn=C3=A9e Reviewed-by: Richard Henderson Reviewed-by: Pavel Dovgalyuk Message-id: 20200619170324.12093-1-peter.maydell@linaro.org --- target/arm/cpu.h | 2 +- target/arm/translate-vfp.inc.c | 7 +++---- target/arm/translate.c | 3 --- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index 677584e5da0..cf66b8c7fb0 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -2334,7 +2334,7 @@ static inline uint64_t cpreg_to_kvm_id(uint32_t cpreg= id) * migration or KVM state synchronization. (Typically this is for "registe= rs" * which are actually used as instructions for cache maintenance and so on= .) * IO indicates that this register does I/O and therefore its accesses - * need to be surrounded by gen_io_start()/gen_io_end(). In particular, + * need to be marked with gen_io_start() and also end the TB. In particula= r, * registers which implement clocks or timers require this. * RAISES_EXC is for when the read or write hook might raise an exception; * the generated code will synchronize the CPU state before calling the ho= ok diff --git a/target/arm/translate-vfp.inc.c b/target/arm/translate-vfp.inc.c index e1a90175983..bf31b186578 100644 --- a/target/arm/translate-vfp.inc.c +++ b/target/arm/translate-vfp.inc.c @@ -119,15 +119,14 @@ static bool full_vfp_access_check(DisasContext *s, bo= ol ignore_vfp_enabled) if (s->v7m_lspact) { /* * Lazy state saving affects external memory and also the NVIC, - * so we must mark it as an IO operation for icount. + * so we must mark it as an IO operation for icount (and cause + * this to be the last insn in the TB). */ if (tb_cflags(s->base.tb) & CF_USE_ICOUNT) { + s->base.is_jmp =3D DISAS_UPDATE; gen_io_start(); } gen_helper_v7m_preserve_fp_state(cpu_env); - if (tb_cflags(s->base.tb) & CF_USE_ICOUNT) { - gen_io_end(); - } /* * If the preserve_fp_state helper doesn't throw an exception * then it will clear LSPACT; we don't need to repeat this for diff --git a/target/arm/translate.c b/target/arm/translate.c index 408fb7a492f..795964da1f1 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -7785,9 +7785,6 @@ static bool do_ldm(DisasContext *s, arg_ldst_block *a= , int min_n) gen_io_start(); } gen_helper_cpsr_write_eret(cpu_env, tmp); - if (tb_cflags(s->base.tb) & CF_USE_ICOUNT) { - gen_io_end(); - } tcg_temp_free_i32(tmp); /* Must exit loop to check un-masked IRQs */ s->base.is_jmp =3D DISAS_EXIT; --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592913180; cv=none; d=zohomail.com; s=zohoarc; b=KxtOx+8q9sUp7lux63xOXy6CVSOEWA0qECHdrGgboXQNxfh1Os8xsosbacMHHisQFOpl+mJFlmUopZrkQqW3wPquWNaNP0XRko41G4ycKS2FPSW+jv2PKgRE5gx5/uxA+4YT1DiStAV5kYrN6K1pXkz1NdW5vzfML7iBjxK2MX0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592913180; h=Content-Type:Content-Transfer-Encoding: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=vCRlIZ7cqAXG2v+VfE7BrmBrtfArLobRZmrL/chqA/A=; b=it4LMKhH1Jo1N9G/0ohumLPmbpTSUQemuWs7R33DM6HeVTYVpfhQ7SpbDHnIEqBlv4P81w/cSXOrGd8tDJOcxiaf1hXsEeUXxpb4OIuS8tmIr6LXO4XbBGnX/c7Wlflr+FDCqyHbyvkHb8lo27NS7+MyZEOP4nAUzGugr9CfY/w= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592913180565988.8064721706282; Tue, 23 Jun 2020 04:53:00 -0700 (PDT) Received: from localhost ([::1]:47084 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhU3-0000Gv-0k for importer@patchew.org; Tue, 23 Jun 2020 07:52:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44272) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhHB-0003IX-7H for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:41 -0400 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]:34349) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhH7-0003JP-97 for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:40 -0400 Received: by mail-wr1-x431.google.com with SMTP id v3so12682975wrc.1 for ; Tue, 23 Jun 2020 04:39:36 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:34 -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=vCRlIZ7cqAXG2v+VfE7BrmBrtfArLobRZmrL/chqA/A=; b=gS96TwDWMAs8e1l1VaynySl7FRjOlMFCHHP1HcP4ugKcY3GHtxzFFJU25RCeE4z5Ts v+rnKMiP9kzMad9sqgN2dEHFwoN7egAxl8K3gcVzfpu+y/vBm4LNk+xQ0Kc14Txc2cAe 3lG7WpiH2OksaF0CNFbnQabJtGDpyke60TSv+2PIEW69LucqxEDTea3FzDHnzREW92uM rLOnWCmwlo32EyH6S4NHcO1Tnhc5GNwCv3oBRrtgt41rrR/GJFuHTei+nys1Y6/Wc09D LhS8ViCaBIQWA4wFKzc9sDO+ucyb5lRM1vujl3I0IF09p6JXi4kDoX9u4gs4RME8DlGJ ROvQ== 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=vCRlIZ7cqAXG2v+VfE7BrmBrtfArLobRZmrL/chqA/A=; b=tJ7bfdJUGOqZmbNJodnQCJlF/fN8fIffApPp1upRw65m8d7jNB59MYJnKbbPMACjaf s5Lp/m7GuoXdaKdVqE9YxXAScXIJcqvFnVh0R3cRibFeZ+AhMVPgEq6Y1Gwtia2sG6ym wr7sbGNfKknFvdoBq2rcEOLu9D8iw/KsZU7CKoIgymqIdUqTxM30qxWw57DNnqpdVgAD bGlG1k3k9gcdUgtL3C8sAal7C0BUx7/Uqp50s0t2VrkTlZlyoH2SU/Ir1T3/e85LX2B+ /JR5dB/S4UQn6oTV2S/dJ9cWhqGaTVJfO5+dzso9qiHQ+1urk+0E7WjCccTsnUnfu57v t+aw== X-Gm-Message-State: AOAM530ZyJewlRlqDXEZ2gire3KFyWJaMlVg2HFp3kRiMW6IpL+znBv9 QkXAL04Hs9nz8VhcUoIj5FWGUzLaDGqepg== X-Google-Smtp-Source: ABdhPJxjB3+ZE4tz/B9jtbVnpFwGFbtH1qXmO/VZgP5ebGn1KhyvgT6LukfQmYdXzZql9gIHwIGepQ== X-Received: by 2002:adf:ff83:: with SMTP id j3mr24873176wrr.264.1592912375626; Tue, 23 Jun 2020 04:39:35 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 25/42] target/arm: Remove dead code relating to SABA and UABA Date: Tue, 23 Jun 2020 12:38:47 +0100 Message-Id: <20200623113904.28805-26-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::431; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x431.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) In commit cfdb2c0c95ae9205b0 ("target/arm: Vectorize SABA/UABA") we replaced the old handling of SABA/UABA with a vectorized implementation which returns early rather than falling into the loop-ever-elements code. We forgot to delete the part of the old looping code that did the accumulate step, and Coverity correctly warns (CID 1428955) that this code is now dead. Delete it. Fixes: cfdb2c0c95ae9205b0 Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-id: 20200619171547.29780-1-peter.maydell@linaro.org --- target/arm/translate-a64.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index 12040984981..4cef862c415 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -11370,18 +11370,6 @@ static void disas_simd_3same_int(DisasContext *s, = uint32_t insn) genfn(tcg_res, tcg_op1, tcg_op2); } =20 - if (opcode =3D=3D 0xf) { - /* SABA, UABA: accumulating ops */ - static NeonGenTwoOpFn * const fns[3] =3D { - gen_helper_neon_add_u8, - gen_helper_neon_add_u16, - tcg_gen_add_i32, - }; - - read_vec_element_i32(s, tcg_op1, rd, pass, MO_32); - fns[size](tcg_res, tcg_op1, tcg_res); - } - write_vec_element_i32(s, tcg_res, rd, pass, MO_32); =20 tcg_temp_free_i32(tcg_res); --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592913336; cv=none; d=zohomail.com; s=zohoarc; b=euaihgxiMzU8dUP8HJlMivuHxikHbEYRep0BK1GWDUOD5mz2O5ejuGXV41s8W3apj1AbUDT4XtAWwDal/WWDpVOyVVe6K4/fsIzSi/+3wtlU6MdQCJ1j5ipRA+oKQHnKJwBsqC/6pwdVG8+wmUmAcbk23fPVyYAlSWLNgQ0yJrg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592913336; h=Content-Type:Content-Transfer-Encoding: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=evNmXaMAc+WETlIBriOddwBkHq02IBzTdOsbeZtXxH0=; b=P1TkPP2ukimiVpoDwDZblervlYo6eLkDe+N8JzXZXsLke112h1q/c7bd4TSkxD4A0tMeVyqDQMhmTF3E9twqjF2DvdH0t4tRpSlzlBaP6b+qLW43Lf773pg7hkidHxic9/tiA218xnWiOwqZK+MwAmxKgycEXb47nh19umMe2gg= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592913336557547.0227891403258; Tue, 23 Jun 2020 04:55:36 -0700 (PDT) Received: from localhost ([::1]:55570 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhWZ-00059j-C7 for importer@patchew.org; Tue, 23 Jun 2020 07:55:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44282) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhHB-0003JM-II for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:41 -0400 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]:36689) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhH8-0003KA-Af for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:41 -0400 Received: by mail-wm1-x329.google.com with SMTP id 17so2865672wmo.1 for ; Tue, 23 Jun 2020 04:39:37 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.35 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:36 -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=evNmXaMAc+WETlIBriOddwBkHq02IBzTdOsbeZtXxH0=; b=V1i0e5AftduDNvxoxWYqBZHXZmxvk88QGzGVDJ/waLg36jQRM/IbMkINbierncjWc3 Eayp5Vg8DH6J+M5PfsHxa/w7gzEfkWMhMBdeMHiNsHueA1avbOGM4ctonOrWNm3BT4aX iYaLoe2Er5cJ9dybxIAVzKZxqVii60+AFaepXlfuv4kWkP+Fq6WOdIe87rIjMkpyLda3 Uw3GG5i0+o+sYHmJbgTUbudiafloYcLzh8jNrkz1g+pLtlXlBdffYR9ihGW1XhnGTC1s FRXycClLwJ5OAX9gPSgPfemZrbAWvtkyvrfRn2m1amC+1+DvLEr12zYdG94ZzD5RaDHb VUSA== 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=evNmXaMAc+WETlIBriOddwBkHq02IBzTdOsbeZtXxH0=; b=q9hhcBHGJdv1y5r34oe4XQPW1s2NevZf7qIMsnpbr9fxLIreDjYdOKwDEhT4N28YFf nA5zCLZZe3NPr7+pEEdIwrUncQ99xYWSk4WAyGbshyQDvcPg2kclMZGZANaGup/HoEqd P6USXj/kkuTL0dOKv3rm+S9elxt0jqCouM8BuAQph4TarTq36iH8n0utIlELQE0+oVSG OrkeD+DWB34smZeexCbhJ2g+uf/mMmoDk0wnSL1NyWU0+DH/k9liT+RF4PldBMeDrvTx Y+MLh/FqZeHDLXNAt5+DneeK/1af82fYptwJQ1V8eOs2882ZhaGso1N9psgyXvYM5Lci VTXw== X-Gm-Message-State: AOAM532uPJGB0LeRJf/TXxBPtQZ9ePfrXjkvHwmHoFRFKZF8iFYzy9y0 1NXct9Flmhz8HQ21sdCNA0PMpi8WUy3o/w== X-Google-Smtp-Source: ABdhPJwCwqg/y288Drs+f4M02kOAwxq9jdAVf9KfGmACG8w/fQeGpf7ggDeZA0hFA05A8fBHyDVRXw== X-Received: by 2002:a1c:1b90:: with SMTP id b138mr13305102wmb.21.1592912376598; Tue, 23 Jun 2020 04:39:36 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 26/42] hw/watchdog/cmsdk-apb-watchdog: Add trace event for lock status Date: Tue, 23 Jun 2020 12:38:48 +0100 Message-Id: <20200623113904.28805-27-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::329; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x329.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) From: Philippe Mathieu-Daud=C3=A9 Add a trace event to see when a guest disable/enable the watchdog. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20200617072539.32686-2-f4bug@amsat.org Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- hw/watchdog/cmsdk-apb-watchdog.c | 1 + hw/watchdog/trace-events | 1 + 2 files changed, 2 insertions(+) diff --git a/hw/watchdog/cmsdk-apb-watchdog.c b/hw/watchdog/cmsdk-apb-watch= dog.c index 1541365914e..5bbadadfa68 100644 --- a/hw/watchdog/cmsdk-apb-watchdog.c +++ b/hw/watchdog/cmsdk-apb-watchdog.c @@ -225,6 +225,7 @@ static void cmsdk_apb_watchdog_write(void *opaque, hwad= dr offset, break; case A_WDOGLOCK: s->lock =3D (value !=3D WDOG_UNLOCK_VALUE); + trace_cmsdk_apb_watchdog_lock(s->lock); break; case A_WDOGITCR: if (s->is_luminary) { diff --git a/hw/watchdog/trace-events b/hw/watchdog/trace-events index ab94d7df502..3124ca1f1b6 100644 --- a/hw/watchdog/trace-events +++ b/hw/watchdog/trace-events @@ -4,3 +4,4 @@ cmsdk_apb_watchdog_read(uint64_t offset, uint64_t data, unsigned size) "CM= SDK APB watchdog read: offset 0x%" PRIx64 " data 0x%" PRIx64 " size %u" cmsdk_apb_watchdog_write(uint64_t offset, uint64_t data, unsigned size) "C= MSDK APB watchdog write: offset 0x%" PRIx64 " data 0x%" PRIx64 " size %u" cmsdk_apb_watchdog_reset(void) "CMSDK APB watchdog: reset" +cmsdk_apb_watchdog_lock(uint32_t lock) "CMSDK APB watchdog: lock %" PRIu32 --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592913740; cv=none; d=zohomail.com; s=zohoarc; b=fiOmcQ807fxxQFG4zjnzTtPHAUnpeula0Tlx63SXeUfV8dAU55f9Swi0Bpc9pE2oURXh1DGQyeiBOTpYN9HpwDtDs2oBRXWy0dX2nUADYNmZZOWUrjSvQ1wvCMkXkyQTQob6t4XMvgepE4qz2BbtvBjIlHiLuckemRcIbkQVFGA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592913740; h=Content-Type:Content-Transfer-Encoding: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=uHtXjv+DNeh42TRXwhtc/t5t5RE6Yero04gixho+blI=; b=LSOf4SRbNIExmwI1WKpngfN3I9Z7DekvlDeKavO6uVsEkJK2apV1fH1PzYVxNv4aJtjcEVC/bIuHvOSt+rHKjfs5tWFCrc1ck3SDKCpMKlvNdXkt1KIdJfeeRAUYRf+iFJ3huAgdHQXWEBssqBzrw8/nwmnurxSLdhAkLZTYH5M= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592913740430395.6546105100034; Tue, 23 Jun 2020 05:02:20 -0700 (PDT) Received: from localhost ([::1]:53800 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhd4-00089D-Ta for importer@patchew.org; Tue, 23 Jun 2020 08:02:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44300) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhHB-0003K3-Sp for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:41 -0400 Received: from mail-wr1-x433.google.com ([2a00:1450:4864:20::433]:38950) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhHA-0003LV-25 for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:41 -0400 Received: by mail-wr1-x433.google.com with SMTP id q5so7773626wru.6 for ; Tue, 23 Jun 2020 04:39:39 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:36 -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=uHtXjv+DNeh42TRXwhtc/t5t5RE6Yero04gixho+blI=; b=D5aYj2liYVTMkUUGmFHa9RHDRqjeW/gJUoGiI2dXQaZaM6KR78m3HPnnBk0ZJo01HE vyu5yF/LV8pcbkSh8qfuf0dKaA6XHN1tfwTo5jJjUc5Sv2lxwNEcO0CBTcyeP/z/8q05 8NVVu2pbZoV7pPJLCUzfc9VxXC7bCpnHmxvqG027MJQHBdIfrAiXo64J0KeVT6ImOBGv 1v31YYnhd1YhSIWrjPUC6P7LlVcsOCdk3IKL/OMCt2BJ6PCO2huSgDH4fGr8zYSCQrQa pTdkCq4zMib+5X5rVozBfnisXPiUj2rLt/ReR70dMi/AG/THeEU7ZQZP5QkNluoIi3Kx +KCg== 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=uHtXjv+DNeh42TRXwhtc/t5t5RE6Yero04gixho+blI=; b=uRXfvKURXex9Cx5sfcwy1ncixqvE+A4a8DY4VEh+cSzkotvREbDvMs8ai9sdAABFjk zTbiRtimn3lQ+WFh5cWE4+6TEBTgRo0P2X5rueKDdmmXV8OkXM/XhTJZnYoV4n240A6c +pqnb0vIEx6s9URecMbg74j/ugEbDxTAdQAAZR36/FMqH5qAWq1/U+sDnc24xasqYrzF qrXs1QFKIDZ8fSkFQp3NSpKaXiyhHpgFvMNWbqNbVaUOqEHArnjUIGSR/h2dxi2ciA0M 8zrAl6b7QKPH1dhZg0fxHL5HnkAFFQLgc0NqixTuXmlL6AcDZDa3KWchua/uwm+r1jVd r+wA== X-Gm-Message-State: AOAM530HLQwxQYtCR10frm3XShtg6/MLM6FC2aBDTIl/S8b8XXuPXK/P VjbZwBF3HUxKmt0Txa5SMNU0JKmo/icTzg== X-Google-Smtp-Source: ABdhPJyl69uk8JV4Qfl7i+Hbu47NJpl4kgU5QmkZ05DsW5r9+K5Atp6HRdY7zHyBuDjojZ/g5+xMfw== X-Received: by 2002:a5d:40cb:: with SMTP id b11mr13050892wrq.263.1592912378495; Tue, 23 Jun 2020 04:39:38 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 27/42] hw/i2c/versatile_i2c: Add definitions for register addresses Date: Tue, 23 Jun 2020 12:38:49 +0100 Message-Id: <20200623113904.28805-28-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::433; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x433.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) From: Philippe Mathieu-Daud=C3=A9 Use self-explicit definitions instead of magic values. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20200617072539.32686-3-f4bug@amsat.org Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- hw/i2c/versatile_i2c.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/hw/i2c/versatile_i2c.c b/hw/i2c/versatile_i2c.c index 1ac2a6f59a0..040139d701b 100644 --- a/hw/i2c/versatile_i2c.c +++ b/hw/i2c/versatile_i2c.c @@ -24,6 +24,7 @@ #include "qemu/osdep.h" #include "hw/sysbus.h" #include "hw/i2c/bitbang_i2c.h" +#include "hw/registerfields.h" #include "qemu/log.h" #include "qemu/module.h" =20 @@ -40,14 +41,19 @@ typedef struct VersatileI2CState { int in; } VersatileI2CState; =20 +REG32(CONTROL_GET, 0) +REG32(CONTROL_SET, 0) +REG32(CONTROL_CLR, 4) + static uint64_t versatile_i2c_read(void *opaque, hwaddr offset, unsigned size) { VersatileI2CState *s =3D (VersatileI2CState *)opaque; =20 - if (offset =3D=3D 0) { + switch (offset) { + case A_CONTROL_SET: return (s->out & 1) | (s->in << 1); - } else { + default: qemu_log_mask(LOG_GUEST_ERROR, "%s: Bad offset 0x%x\n", __func__, (int)offset); return -1; @@ -60,10 +66,10 @@ static void versatile_i2c_write(void *opaque, hwaddr of= fset, VersatileI2CState *s =3D (VersatileI2CState *)opaque; =20 switch (offset) { - case 0: + case A_CONTROL_SET: s->out |=3D value & 3; break; - case 4: + case A_CONTROL_CLR: s->out &=3D ~value; break; default: --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592912994; cv=none; d=zohomail.com; s=zohoarc; b=Z3CpHrBjpehR0Fzf1dS8s8AWR50a/P+acO1/2s811QMwrK63tk0VcZX6ydtZbGwe9KmCQHG210oiVALBICaHL5otQRqpkErSjWXomLq9CEELVIETIl4Zvu00dAZDmO7c2Z7r4mmf1+7QOrJJuliuKDiC1fV5vl06E6/iXGWRBz4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592912994; h=Content-Type:Content-Transfer-Encoding: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=mmdsLUjFh7ohZWxR1J/P4GhrVs/dAJ8di+ouWpFUciU=; b=E5CgdFjEoRNPm6LBt+ASafx8WPS0lagGlfGJ8t527Qx+B1ttUa03eWAkD1Bkap3g+3cnx0IUaBjS1uoM/Q0zvlIaPCiuAeiCKAV3XzSa9Sw4AWKiuXsHOYkxstSLiWnSK4bAg5ze4V560PPmDY9bvCe2SHq6V+KaMBn50+ruLj8= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592912994367776.7383862712445; Tue, 23 Jun 2020 04:49:54 -0700 (PDT) Received: from localhost ([::1]:35514 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhR2-0003qs-Vq for importer@patchew.org; Tue, 23 Jun 2020 07:49:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44320) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhHD-0003Mc-04 for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:43 -0400 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]:46058) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhHB-0003MN-6T for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:42 -0400 Received: by mail-wr1-x430.google.com with SMTP id s10so210599wrw.12 for ; Tue, 23 Jun 2020 04:39:40 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:38 -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=mmdsLUjFh7ohZWxR1J/P4GhrVs/dAJ8di+ouWpFUciU=; b=T0ypwWmRk24gC3ZDBC25X0HhIN5Jxx9PX0sO+rezghTlT6JuI8E0W77x4iHYuTyN4w sMfugxxeigTtUmpjvzbQYA3BBh4zVAJzawwMXOIxv7MZAEJGhD/Xn4bSRR1UgRx6VSKy s6+YjePxDLWQbMTRlw3p0uZdfKb/itjVvex7vSpozNgId1OPU8v4oMBLBNNYsoE4spLc Mb7cdwm8ev37N4+Ele5r2JbJhSeomGo/YhfZxNhE7Denvk5tj9eOLdbR7sS+ePlv2aAx zH+B/X6cwyL1s/JpZ4pXbcr757XdeCcVcYLpLXOm7p4gDXo6tknh9CyQzqudVzUIu6UL cFuA== 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=mmdsLUjFh7ohZWxR1J/P4GhrVs/dAJ8di+ouWpFUciU=; b=X1jmn6pbaKbpg/pvxD66+a9mBpqBTQG91qSH8IrKQ+sdxOsg2gESH+utHtCTMSDIUr ClqUbFij97ukT19fcrMc2DIt3ExxijvUod86Bs6/hjHIt3nJAN+iaHa247gMgp5jwbcr Zw3se906O3cX78sBkNqR8GU3tIA8pbQpOhphfzUR3b5nZWRt7HvWBpGfk5kPgT0Zr9vd QgJ5bEXIJojbXKu3ACnPYyF0tZQtt5xK2GmawRutNbe6mEJa2RPjDh5+FepVEhI4PE3u HdrepOxH3D8/xIS7oalbvGRv1Wh/DeqXXYCdHG/S+Ihc8qMWAvSyP5biSUtoXFZyp8/1 FzWg== X-Gm-Message-State: AOAM533HZYkzvrm4udBDXfGaMNLpu6ox7Ks+E/AYMpaP7i+wXFWcc8GF DqehUarDH2TaSkQ2s9ZX2e+F7mEyffnHow== X-Google-Smtp-Source: ABdhPJxxI1Y4SbbD6SenTw8tMgCZZFRAX0qLUOQ6qpWuwZ70CKDPVW0xCljwh0/aLWV9KNlT6LPcBA== X-Received: by 2002:adf:db4d:: with SMTP id f13mr20905928wrj.336.1592912379587; Tue, 23 Jun 2020 04:39:39 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 28/42] hw/i2c/versatile_i2c: Add SCL/SDA definitions Date: Tue, 23 Jun 2020 12:38:50 +0100 Message-Id: <20200623113904.28805-29-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::430; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x430.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) From: Philippe Mathieu-Daud=C3=A9 Use self-explicit definitions instead of magic values. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20200617072539.32686-4-f4bug@amsat.org Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- hw/i2c/versatile_i2c.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/hw/i2c/versatile_i2c.c b/hw/i2c/versatile_i2c.c index 040139d701b..0ce10a1bcc0 100644 --- a/hw/i2c/versatile_i2c.c +++ b/hw/i2c/versatile_i2c.c @@ -45,6 +45,9 @@ REG32(CONTROL_GET, 0) REG32(CONTROL_SET, 0) REG32(CONTROL_CLR, 4) =20 +#define SCL BIT(0) +#define SDA BIT(1) + static uint64_t versatile_i2c_read(void *opaque, hwaddr offset, unsigned size) { @@ -76,8 +79,8 @@ static void versatile_i2c_write(void *opaque, hwaddr offs= et, qemu_log_mask(LOG_GUEST_ERROR, "%s: Bad offset 0x%x\n", __func__, (int)offset); } - bitbang_i2c_set(&s->bitbang, BITBANG_I2C_SCL, (s->out & 1) !=3D 0); - s->in =3D bitbang_i2c_set(&s->bitbang, BITBANG_I2C_SDA, (s->out & 2) != =3D 0); + bitbang_i2c_set(&s->bitbang, BITBANG_I2C_SCL, (s->out & SCL) !=3D 0); + s->in =3D bitbang_i2c_set(&s->bitbang, BITBANG_I2C_SDA, (s->out & SDA)= !=3D 0); } =20 static const MemoryRegionOps versatile_i2c_ops =3D { --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592913894; cv=none; d=zohomail.com; s=zohoarc; b=fXRWcAZI6P4/yE21bJNm+dx4hfmzQ5+6LxOltVf6NhnXTPbh6QmfVCBYtiSoQ78X64evgygds+8IggCy1Nyu2H7HS/k1p4HhPycwo2HG/SRRnx1FfSr7DpDM6MQeLvL+br5T9lMfOAbVS6ueIGlExehLb2Q8sdLWeQ/8b1xmTU8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592913894; h=Content-Type:Content-Transfer-Encoding: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=8i5mWLDYm92VN12vLJvLbPoNaenvMWjlwAjnUllix3o=; b=YXV71qe4g99GYDnIofR4i8uDjPyGQxrgeLJheZRSydzD8V/mDDdAWZVVh6RIDLl+Fxmo5p7u4/VrwoOWc00Fn+uWDpRFXUdXik8ResRk4aR7EO6GsQBCEMgiHjzpHx6Yoljp1UNHAJvoxbew7Tak/9vosuFqEp1ADnKqGVyiPMw= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592913894488147.2880239175048; Tue, 23 Jun 2020 05:04:54 -0700 (PDT) Received: from localhost ([::1]:34166 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhfZ-0003mf-1p for importer@patchew.org; Tue, 23 Jun 2020 08:04:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44340) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhHE-0003PI-5G for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:44 -0400 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]:50939) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhHC-0003NC-5m for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:43 -0400 Received: by mail-wm1-x32f.google.com with SMTP id l17so2683972wmj.0 for ; Tue, 23 Jun 2020 04:39:41 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:40 -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=8i5mWLDYm92VN12vLJvLbPoNaenvMWjlwAjnUllix3o=; b=YDKObtXFwXMCIzdepmoAfM7zWem9h+MIjd44q/zTHfaQQPBjMw8wTpK0ZaEh0ZqT6s Ox5GSYkostcLV4TCk7o46S7pHnUDOB5e6JuQdVgqusBKCPf+MzabHuZMsQgM3wW32QW8 y+6uzqKwnz878Xrg1BXPdpu3zoDFbEQ8ozXiOvfeXP2RxaAz7+TWXzZDGkBj+VlFJCNL o3BSbr1msQ39LAkD3NlUHTE0VVMufc5uqS1vMmchJd8FbvEWm3ySvfbJHansu7MS26Rh Ekw4kPMiMahahKOs7MiRrB4JbShoTQMKKpHxwZNMInHeayGiN0+LCcBJ7R4U5/Z+AV8d 1Mkw== 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=8i5mWLDYm92VN12vLJvLbPoNaenvMWjlwAjnUllix3o=; b=X/+ZXNpaUAufEgxIRPwY8SAw+Se82OguLGhQ+vDC5dy0M5u9z4lPKl+00aVZMDmIL0 ya/jLbXJn40Rt9tcTp22AOwB/YT0gqgoEAyJdNv/EbAhTZS5Opx1sdAP0rkF9uWmiAQY 56edzCjKxATLeIb/76MSxF6O+gDA9jDH2h2CewOiI/cDpr+RX+Z6UT5UNVIXEYHDw3Au 10BmkqVsoJZbTAVHWQ6daUYfzYWwNe4D17d8OKCOtktPdsj/MK9u7mLEvhM2cOD6wQF9 f8vnYsTNLYkUA4nE+LbRXawNcxboBsbuVsqnxbslIQhnABTnf/C81v1i/gCytq1hQB2Y Jgog== X-Gm-Message-State: AOAM533HgBSPKKtT1gowLjhL4CYPmk1fQ4410B4rLygyPrJOxFGhx8D0 oHaXcJ5cNlfPR7aMXbktJNDDIW4nwWb4OQ== X-Google-Smtp-Source: ABdhPJzGBdvwuJ5WS2Z5YVaT9VWnJrJb9tnSBpcEoIO0MJhFpOTYJ2kprycMohFoL2fEzS+Q7JrIuQ== X-Received: by 2002:a1c:4343:: with SMTP id q64mr12173523wma.20.1592912380492; Tue, 23 Jun 2020 04:39:40 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 29/42] hw/i2c: Add header for ARM SBCon two-wire serial bus interface Date: Tue, 23 Jun 2020 12:38:51 +0100 Message-Id: <20200623113904.28805-30-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32f; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32f.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) From: Philippe Mathieu-Daud=C3=A9 'ARM SBCon two-wire serial bus interface' is the official name describing the pair of registers used to bitbanging I2C in the Versatile boards. Make the private VersatileI2CState structure as public ArmSbconI2CState. Add the TYPE_ARM_SBCON_I2C, alias to our current TYPE_VERSATILE_I2C model. Rename the memory region description as 'arm_sbcon_i2c'. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20200617072539.32686-5-f4bug@amsat.org Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- include/hw/i2c/arm_sbcon_i2c.h | 35 ++++++++++++++++++++++++++++++++++ hw/i2c/versatile_i2c.c | 17 +++++------------ MAINTAINERS | 1 + 3 files changed, 41 insertions(+), 12 deletions(-) create mode 100644 include/hw/i2c/arm_sbcon_i2c.h diff --git a/include/hw/i2c/arm_sbcon_i2c.h b/include/hw/i2c/arm_sbcon_i2c.h new file mode 100644 index 00000000000..5d96507ab6e --- /dev/null +++ b/include/hw/i2c/arm_sbcon_i2c.h @@ -0,0 +1,35 @@ +/* + * ARM SBCon two-wire serial bus interface (I2C bitbang) + * a.k.a. + * ARM Versatile I2C controller + * + * Copyright (c) 2006-2007 CodeSourcery. + * Copyright (c) 2012 Oskar Andero + * Copyright (C) 2020 Philippe Mathieu-Daud=C3=A9 + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ +#ifndef HW_I2C_ARM_SBCON_H +#define HW_I2C_ARM_SBCON_H + +#include "hw/sysbus.h" +#include "hw/i2c/bitbang_i2c.h" + +#define TYPE_VERSATILE_I2C "versatile_i2c" +#define TYPE_ARM_SBCON_I2C TYPE_VERSATILE_I2C + +#define ARM_SBCON_I2C(obj) \ + OBJECT_CHECK(ArmSbconI2CState, (obj), TYPE_ARM_SBCON_I2C) + +typedef struct ArmSbconI2CState { + /*< private >*/ + SysBusDevice parent_obj; + /*< public >*/ + + MemoryRegion iomem; + bitbang_i2c_interface bitbang; + int out; + int in; +} ArmSbconI2CState; + +#endif /* HW_I2C_ARM_SBCON_H */ diff --git a/hw/i2c/versatile_i2c.c b/hw/i2c/versatile_i2c.c index 0ce10a1bcc0..da8cda2ec1c 100644 --- a/hw/i2c/versatile_i2c.c +++ b/hw/i2c/versatile_i2c.c @@ -1,5 +1,6 @@ /* - * ARM Versatile I2C controller + * ARM SBCon two-wire serial bus interface (I2C bitbang) + * a.k.a. ARM Versatile I2C controller * * Copyright (c) 2006-2007 CodeSourcery. * Copyright (c) 2012 Oskar Andero @@ -22,24 +23,16 @@ */ =20 #include "qemu/osdep.h" -#include "hw/sysbus.h" -#include "hw/i2c/bitbang_i2c.h" +#include "hw/i2c/arm_sbcon_i2c.h" #include "hw/registerfields.h" #include "qemu/log.h" #include "qemu/module.h" =20 -#define TYPE_VERSATILE_I2C "versatile_i2c" #define VERSATILE_I2C(obj) \ OBJECT_CHECK(VersatileI2CState, (obj), TYPE_VERSATILE_I2C) =20 -typedef struct VersatileI2CState { - SysBusDevice parent_obj; +typedef ArmSbconI2CState VersatileI2CState; =20 - MemoryRegion iomem; - bitbang_i2c_interface bitbang; - int out; - int in; -} VersatileI2CState; =20 REG32(CONTROL_GET, 0) REG32(CONTROL_SET, 0) @@ -99,7 +92,7 @@ static void versatile_i2c_init(Object *obj) bus =3D i2c_init_bus(dev, "i2c"); bitbang_i2c_init(&s->bitbang, bus); memory_region_init_io(&s->iomem, obj, &versatile_i2c_ops, s, - "versatile_i2c", 0x1000); + "arm_sbcon_i2c", 0x1000); sysbus_init_mmio(sbd, &s->iomem); } =20 diff --git a/MAINTAINERS b/MAINTAINERS index f0cb1fd3371..f1a74b1dfe6 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -842,6 +842,7 @@ M: Peter Maydell L: qemu-arm@nongnu.org S: Maintained F: hw/*/versatile* +F: include/hw/i2c/arm_sbcon_i2c.h F: hw/misc/arm_sysctl.c F: docs/system/arm/versatile.rst =20 --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592913572; cv=none; d=zohomail.com; s=zohoarc; b=Xj4sw1vVjJBDe6RWCm6+1lwuQlwCiVrEfr+qrklG3wB7U/n/WqXzusmqw8udYX3xnKA+4jHGgDNLlS6uAoLaFjW51xmJWToPvySn9NKnF9auTBXaKwaIvCHakjj0OHSbtyj9wzaa19RiXp3La8rTONUsnVydQaweDCLgBecZAB4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592913572; h=Content-Type:Content-Transfer-Encoding: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=MBKYbSiXN65dT2RVlfq1Jpp2c5vfU6vQcHV1D6oFaoA=; b=J9I2axYaNqfRWKDJpj+s8LBgXLKNAReb00RTf+vKjE+nORyNOrGbJ23ubexuz2vQfCSoT4QZhlJ2TAlNS+2S5+MTLeYgQ3bXXir9MmB4g7laLpTLZniDomYpNVExe/dEmRCfnG+xhSYQeCJS3OcipPp9l3JXti6IIzBHQhAnYgY= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592913572581102.92205670799206; Tue, 23 Jun 2020 04:59:32 -0700 (PDT) Received: from localhost ([::1]:44798 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhaM-00042f-SS for importer@patchew.org; Tue, 23 Jun 2020 07:59:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44352) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhHF-0003R7-2p for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:45 -0400 Received: from mail-wr1-x441.google.com ([2a00:1450:4864:20::441]:35444) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhHD-0003Nf-AT for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:44 -0400 Received: by mail-wr1-x441.google.com with SMTP id g18so11115058wrm.2 for ; Tue, 23 Jun 2020 04:39:42 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:40 -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=MBKYbSiXN65dT2RVlfq1Jpp2c5vfU6vQcHV1D6oFaoA=; b=vFKLlZUX6uRZP0irqipsg6uEeRN5XOZbQ0Bpr+2Jw54FB1wxs7RQbhXSf6XwLxLl5e LoSyMqcAiFV3VGHylsT3CG4EjYWQI8IFrDNHnWsADnwqZElruiBtxlofSQ5GCq4P1YW8 t2qhqBoRKSl4Gmn/1+Vn0XvJj40djmDG55mXGgma4PlT3PdlbU+26mY9oj64/7UkECfz ndagV42m3kGoHHxnWipn2OPBK1lViX6+dDOK0WdPJwRqO/ZUeh669ftvwB9tQ7e2Woc0 H/CE3WTLUr84vjEtLn4GzkViFVZrEysV4DP3FmB0But2/HbgC7IqNixm3YTT3iICAPgd 2uDg== 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=MBKYbSiXN65dT2RVlfq1Jpp2c5vfU6vQcHV1D6oFaoA=; b=i70E1XD9BZ8Pa/sfUDkgcqNeUmCGZw1Qwjn8xttUISIQ96V4uWTigLHVOX45dShdva 10E2m//SUitrNfSWO/Iamq1ECI0Ng7e9nFdMs2K3NndpUwSSsTiiLWYt1PCexRPEdFjX yy05HK7y3YvX0sN5Ek4q9WZxr09L9PN2Q6K9ZHH9z9rdqD9yheHNXxLSfIvxZshoyIF4 bCAQPJcwQkk12/AsemNqmG31y5NgQV+GpcL2lOf5QGJvCF3QLdp1EAbtK3Gf8BfCMMUS szvnVNeDN3rxWplHOiyZ/PSoApHpB0zJxkwT/WLv+DhSNXoU4dswepJhEjYTvyvwqfbf +BUA== X-Gm-Message-State: AOAM530fjUYYxbOI/uGS0JMf/RQ1HSt1UNCt5EJMhW8936fubIYKpbfy WiT0jm1eGqTNyVHDyhD6731L19YkgPq6PA== X-Google-Smtp-Source: ABdhPJyxiOqVu4JJS7ZA10w0jmk5MYJ6HxHAvtCnHlHzvxuhaQPECi99sYMO/g96pOXKcfWoblo/DQ== X-Received: by 2002:a5d:4dc2:: with SMTP id f2mr25089905wru.399.1592912381507; Tue, 23 Jun 2020 04:39:41 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 30/42] hw/arm: Use TYPE_VERSATILE_I2C instead of hardcoded string Date: Tue, 23 Jun 2020 12:38:52 +0100 Message-Id: <20200623113904.28805-31-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::441; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x441.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) From: Philippe Mathieu-Daud=C3=A9 By using the TYPE_* definitions for devices, we can: - quickly find where devices are used with 'git-grep' - easily rename a device (one-line change). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20200617072539.32686-6-f4bug@amsat.org Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- hw/arm/realview.c | 3 ++- hw/arm/versatilepb.c | 3 ++- hw/arm/vexpress.c | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/hw/arm/realview.c b/hw/arm/realview.c index f3c00fe00cf..b6c0a1adb98 100644 --- a/hw/arm/realview.c +++ b/hw/arm/realview.c @@ -26,6 +26,7 @@ #include "hw/cpu/a9mpcore.h" #include "hw/intc/realview_gic.h" #include "hw/irq.h" +#include "hw/i2c/arm_sbcon_i2c.h" =20 #define SMP_BOOT_ADDR 0xe0000000 #define SMP_BOOTREG_ADDR 0x10000030 @@ -282,7 +283,7 @@ static void realview_init(MachineState *machine, } } =20 - dev =3D sysbus_create_simple("versatile_i2c", 0x10002000, NULL); + dev =3D sysbus_create_simple(TYPE_VERSATILE_I2C, 0x10002000, NULL); i2c =3D (I2CBus *)qdev_get_child_bus(dev, "i2c"); i2c_create_slave(i2c, "ds1338", 0x68); =20 diff --git a/hw/arm/versatilepb.c b/hw/arm/versatilepb.c index 2ebdcbd8ac3..e596b8170f4 100644 --- a/hw/arm/versatilepb.c +++ b/hw/arm/versatilepb.c @@ -18,6 +18,7 @@ #include "sysemu/sysemu.h" #include "hw/pci/pci.h" #include "hw/i2c/i2c.h" +#include "hw/i2c/arm_sbcon_i2c.h" #include "hw/irq.h" #include "hw/boards.h" #include "exec/address-spaces.h" @@ -314,7 +315,7 @@ static void versatile_init(MachineState *machine, int b= oard_id) /* Add PL031 Real Time Clock. */ sysbus_create_simple("pl031", 0x101e8000, pic[10]); =20 - dev =3D sysbus_create_simple("versatile_i2c", 0x10002000, NULL); + dev =3D sysbus_create_simple(TYPE_VERSATILE_I2C, 0x10002000, NULL); i2c =3D (I2CBus *)qdev_get_child_bus(dev, "i2c"); i2c_create_slave(i2c, "ds1338", 0x68); =20 diff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c index 7ca5d523a4c..24d656e6537 100644 --- a/hw/arm/vexpress.c +++ b/hw/arm/vexpress.c @@ -42,6 +42,7 @@ #include "hw/char/pl011.h" #include "hw/cpu/a9mpcore.h" #include "hw/cpu/a15mpcore.h" +#include "hw/i2c/arm_sbcon_i2c.h" =20 #define VEXPRESS_BOARD_ID 0x8e0 #define VEXPRESS_FLASH_SIZE (64 * 1024 * 1024) @@ -640,7 +641,7 @@ static void vexpress_common_init(MachineState *machine) sysbus_create_simple("sp804", map[VE_TIMER01], pic[2]); sysbus_create_simple("sp804", map[VE_TIMER23], pic[3]); =20 - dev =3D sysbus_create_simple("versatile_i2c", map[VE_SERIALDVI], NULL); + dev =3D sysbus_create_simple(TYPE_VERSATILE_I2C, map[VE_SERIALDVI], NU= LL); i2c =3D (I2CBus *)qdev_get_child_bus(dev, "i2c"); i2c_create_slave(i2c, "sii9022", 0x39); =20 --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592913397; cv=none; d=zohomail.com; s=zohoarc; b=GS/vyze4sS8TBASwaGQKGVnQezDhcR0K8M6oF+cIjQEYZv6Hqya9+cg1DdGdOjKo1X2I2irQOaCKpuqyOJDKibvbFxPLqa6/D+G+LEZyj3Cait5GlB37Hzoe6r78O9ZGOAYdKunb5Or9LnjWEJGR9us793z6VlaXf3nF5w65sU0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592913397; h=Content-Type:Content-Transfer-Encoding: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=+w15e9ooi+Fid4NWJLS9FC7iSLoBvgjk5tCxJ/erKho=; b=djww7zYQKFZvghf213uAma0YFfMInjE9XBzuFN39LaapxtlrXW//QYws9M/+uQGc03ABRSGzdy/n0UQBcAVsKHcaYMd7lwj+PlPFKbTb/j1P69PupWO8lhourZipCI83WpJ7FYyK3gkFMyNS9zcCpu5P3o2Y268R2IGC05B8gVQ= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592913397356403.57014208709643; Tue, 23 Jun 2020 04:56:37 -0700 (PDT) Received: from localhost ([::1]:32902 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhXY-0007Si-41 for importer@patchew.org; Tue, 23 Jun 2020 07:56:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44368) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhHG-0003TS-1u for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:46 -0400 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]:46052) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhHE-0003OW-BD for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:45 -0400 Received: by mail-wr1-x429.google.com with SMTP id s10so210768wrw.12 for ; Tue, 23 Jun 2020 04:39:43 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:42 -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=+w15e9ooi+Fid4NWJLS9FC7iSLoBvgjk5tCxJ/erKho=; b=fGFhPP2AyvH3Zjh2rmupUiWzREw7ID+AuhRPpFGsgue7H37/iapTfBjPS2P88enupZ qCDMvrEQu28mhHWecS70AtSgNT8nP32G+EcmS91lsndrh6r0Wie4YYxuwdkldexTEmj3 yL+uzfOI8XQOzQKxJlgKAtSfl5k3wmxt+WJnZWILxBX45Wakbe4q7ERidm6e8ZXN1ezy I/egzJzWiXAFxP0doJ13xayRsio5HQeTK4BK3rH6l/PR0hoMX7J8galFgPyo9ggs1Ldc I2hE+zcgTSREdOGFCtW7kPevM77FiwLJVJnPd8BY4Bdi/u3fxJiPl1z+pRkg3qRTbtne 5h+g== 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=+w15e9ooi+Fid4NWJLS9FC7iSLoBvgjk5tCxJ/erKho=; b=c8ThKoSxAmI3ehsbeyErpWyJXvcLpenaPx0eWsvlvqbjSb2cEf2JGbcgF1SDSFyjQx 6QcpQ772vMNynhpSFx5sahDK7er+/RQRpb8jBAJEbpeCofsttUkPhOZiSW07wd9hR6v0 uuiwzmGUIjBX2MGTWNaDRaqITO2n5WzkgP9i0o4JETqY/OI33HTS1Bso3NamDas1Tsqj ClGegWM/a77FmD7x7hF8i1aQCNPpjDsaz+0b9cURRYW9MW7mks4CHad3OM7Hk9oxblS/ CxyNJGu3o3RuTIeJocBm05ppukKF0sxaOYG9Ka+UWzMspJcQ+fpI5DgAL+D5TVxEuAKh CuHQ== X-Gm-Message-State: AOAM5304MEB3sAkwEDwooKQoYpTgqoc20pZIkfnJwwn6fSEpaQDsEfbY K8LtqhroevuMB0emuvzIBHpm8C3oM6jGIg== X-Google-Smtp-Source: ABdhPJy+jhUnmp+63XPKsthxJeUaQYS4TqHuM6pqdc/xQQ6elZaogmyADNK7gTfIzwg8xYibO01IKQ== X-Received: by 2002:adf:c44d:: with SMTP id a13mr3319154wrg.205.1592912382721; Tue, 23 Jun 2020 04:39:42 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 31/42] hw/arm/mps2: Document CMSDK/FPGA APB subsystem sections Date: Tue, 23 Jun 2020 12:38:53 +0100 Message-Id: <20200623113904.28805-32-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::429; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x429.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) From: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20200617072539.32686-7-f4bug@amsat.org Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- hw/arm/mps2.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hw/arm/mps2.c b/hw/arm/mps2.c index daa55f730b1..ee555f919de 100644 --- a/hw/arm/mps2.c +++ b/hw/arm/mps2.c @@ -65,7 +65,9 @@ typedef struct { MemoryRegion blockram_m2; MemoryRegion blockram_m3; MemoryRegion sram; + /* FPGA APB subsystem */ MPS2SCC scc; + /* CMSDK APB subsystem */ CMSDKAPBDualTimer dualtimer; } MPS2MachineState; =20 @@ -299,9 +301,9 @@ static void mps2_common_init(MachineState *machine) g_assert_not_reached(); } =20 + /* CMSDK APB subsystem */ cmsdk_apb_timer_create(0x40000000, qdev_get_gpio_in(armv7m, 8), SYSCLK= _FRQ); cmsdk_apb_timer_create(0x40001000, qdev_get_gpio_in(armv7m, 9), SYSCLK= _FRQ); - object_initialize_child(OBJECT(mms), "dualtimer", &mms->dualtimer, TYPE_CMSDK_APB_DUALTIMER); qdev_prop_set_uint32(DEVICE(&mms->dualtimer), "pclk-frq", SYSCLK_FRQ); @@ -310,6 +312,7 @@ static void mps2_common_init(MachineState *machine) qdev_get_gpio_in(armv7m, 10)); sysbus_mmio_map(SYS_BUS_DEVICE(&mms->dualtimer), 0, 0x40002000); =20 + /* FPGA APB subsystem */ object_initialize_child(OBJECT(mms), "scc", &mms->scc, TYPE_MPS2_SCC); sccdev =3D DEVICE(&mms->scc); qdev_prop_set_uint32(sccdev, "scc-cfg4", 0x2); --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592913721; cv=none; d=zohomail.com; s=zohoarc; b=FsWYTMFBEoarqioWu2OPA8ZK4JNNjluU/4uRd2IXXWh+YfOubmhZOI+JpduQW3G2E7R+z0T08BVFXk5SjIyLZColLHeWqyFLWpNW0kkc8Ihl0rIthXwMa8F2B8LQWerDDAsh9et0P9eB19XOesrpTcBY8Si2jB2ufcV7jil/4Bw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592913721; h=Content-Type:Content-Transfer-Encoding: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=SI0UuaYn0LhrgnH6JJza5nCoeq6PoqqyPFPSDuwFopc=; b=hURwvTD3lTPcwcPIUEHWpHee5a6s6+34kddZcYqnzxJEOxD8aJox/39aTog7mBCppASw8UrTw1vALocEvG8uNq7jKZsmH6zgV7jFbeO+WqE6lzEKAGM6cGZ0CAj+qOFOpGCMpy0017xmyu7ufx9WiDA5EsKJgax7uOUMWxnfeEQ= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592913720988449.2825830080001; Tue, 23 Jun 2020 05:02:00 -0700 (PDT) Received: from localhost ([::1]:53478 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhcl-00081Y-Kv for importer@patchew.org; Tue, 23 Jun 2020 08:01:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44378) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhHG-0003VJ-Qf for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:46 -0400 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:42643) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhHF-0003Or-5X for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:46 -0400 Received: by mail-wr1-x442.google.com with SMTP id o11so12449557wrv.9 for ; Tue, 23 Jun 2020 04:39:44 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:43 -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=SI0UuaYn0LhrgnH6JJza5nCoeq6PoqqyPFPSDuwFopc=; b=L4n6WaKjnTeSm0Jxq6WbowY1X3LmIW5sUu3GadFqIli6aDuffMh4u7jJpFaMsaoutN bZjNx1DiVKiVr+B9nEl7OKMGz4g5RZxEhd8bvQ8llVLvhVWyIFCDRgmWR8BR3WCw696p W0u29LQ56sKu0aF9WHBQjLdzmI4/wc+nC2fgYK7z0UGxOdMz81DDkb6tlbK9pkqf8Nm0 bqYCJ5xa79BUDClvWuBcQ8mZuGlHeBJ3wrJQiUHSl1nS3xy8gD5Lmq4Wb6r9cR6IIYBj Lvyt+31RslVDuzrb6HKDLz9pnf3zNcqwDyYzJAcjNAhKkhKQmJy4SoiZVdR4sIZrFD0Z wTxA== 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=SI0UuaYn0LhrgnH6JJza5nCoeq6PoqqyPFPSDuwFopc=; b=d8LcqpDNv0FrnxiX5MTdi97jdlolJvTgT0redciLcxg/8XYhuKBX5NzZno7p2JIbvq b9cNqIiUSwqMnuHO6smrDNwm+pYv2kxWEikYbxLt90593CLnk1u5u8g4YidAIxHebGuI 3oKU4w9U8jsKqoh8yXVtel0+TlpF0G+RwJB4MT7Zrnl9Fsc0qfDvbLABZbGYDif0PeSW Wvqkmmhcu+N/hTT9OLL921DcVBkZO4He/bx3UrZQdyNZGxpjiyIkJ4hGSvRCkvJSitkH +U3AL1bCL2liPs/TBdKNwgjYx+5zc2fsyUpG/QvcTPldFnaui8Fu/+5S8tlzeXTjbVm7 bm4g== X-Gm-Message-State: AOAM532GYuKjrvNqFzQ6qhwSGWaCb4r7kKQBN0w0xoGJpKLz1RfXCOxD f3l0HkHAO54oai32JcGJd0yWsG/3MhjGTg== X-Google-Smtp-Source: ABdhPJw+K8zcNWdkInPj0drZXSSwDG4JPuvYaOweHgzPiQTWKabs9nbsx76d+yO1TKWCiEOYwHseAw== X-Received: by 2002:a5d:5642:: with SMTP id j2mr17589023wrw.19.1592912383658; Tue, 23 Jun 2020 04:39:43 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 32/42] hw/arm/mps2: Rename CMSDK AHB peripheral region Date: Tue, 23 Jun 2020 12:38:54 +0100 Message-Id: <20200623113904.28805-33-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::442; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x442.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) From: Philippe Mathieu-Daud=C3=A9 To differenciate with the CMSDK APB peripheral region, rename this region 'CMSDK AHB peripheral region'. Reviewed-by: Peter Maydell Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20200617072539.32686-8-f4bug@amsat.org Signed-off-by: Peter Maydell --- hw/arm/mps2.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/arm/mps2.c b/hw/arm/mps2.c index ee555f919de..4fe5cc8622f 100644 --- a/hw/arm/mps2.c +++ b/hw/arm/mps2.c @@ -212,10 +212,11 @@ static void mps2_common_init(MachineState *machine) */ create_unimplemented_device("CMSDK APB peripheral region @0x40000000", 0x40000000, 0x00010000); - create_unimplemented_device("CMSDK peripheral region @0x40010000", + create_unimplemented_device("CMSDK AHB peripheral region @0x40010000", 0x40010000, 0x00010000); create_unimplemented_device("Extra peripheral region @0x40020000", 0x40020000, 0x00010000); + create_unimplemented_device("RESERVED 4", 0x40030000, 0x001D0000); create_unimplemented_device("VGA", 0x41000000, 0x0200000); =20 --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592913889; cv=none; d=zohomail.com; s=zohoarc; b=dbLEzJACKOh+fOT4nD++V8pvZVCfhnDwXnDn5Zy8gIllauYQfTdYS26wKJDW/eKl01j+09zUeV7PRsbDV9cnMmOd2Hi7dLYw6/28NoZiBBjdnUrS+uK3XtbSMVlvqcLksb4t5MVCbOqB8JY4mm0ZoDHSJAAlz1ObeMNoUV2QwFU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592913889; h=Content-Type:Content-Transfer-Encoding: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=/vPwTiNjsUuSz4xxL6SaRORcPSapebKMLMVKI6DJOgo=; b=Z/RK0rzwyVbhX1XR2sT//H5i7tDVV2s+UJxS/ldK9VUfCGY6AklNTICT8FoIfyMy2o3QT7UoYgQntuxI4EUlG/17P0XpI4s5A0jLOy9lZ/4cbL5sh9+wcuF/Zdi/7EbuCV1SzYr3V5CYRN/yaQzkVA6lY3GhKp70vVvnQDqCvvA= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592913889914869.0719105378687; Tue, 23 Jun 2020 05:04:49 -0700 (PDT) Received: from localhost ([::1]:33930 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhfU-0003fM-HL for importer@patchew.org; Tue, 23 Jun 2020 08:04:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44394) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhHH-0003Xs-V5 for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:47 -0400 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]:43800) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhHG-0003P8-AQ for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:47 -0400 Received: by mail-wr1-x434.google.com with SMTP id l10so20171743wrr.10 for ; Tue, 23 Jun 2020 04:39:45 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:44 -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=/vPwTiNjsUuSz4xxL6SaRORcPSapebKMLMVKI6DJOgo=; b=S7cgaYV7JfVKEMdrUCz9dL8U//ENhEze6PdXWT7DuyWTKe7KXHWeNNPoM4kmqKLqD9 NvCO7IgotPlxkwFUvRUl2nJ9BS7veAtmWqA1b/a939kLfxrsT7LADc3zYO7BUkPfEMUv dH73fwqjuq346OjCn9HwFktYxVAW0bELWt/L7csMTi244AFOTSdfFY6mEJ1qc77IkjEq Kotob/neEfEZNCVRERnin8mI1LJjzCRs6VRyyd9rB+viLCxPceet/Pf/PQqKW7/C6bSP bCekpLs6oA+NAgnmiLv46VrKtrcHGIPlhdyONdmm/HmRZcdj9nbxlnydmEFYtLP0cQ2a qjnQ== 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=/vPwTiNjsUuSz4xxL6SaRORcPSapebKMLMVKI6DJOgo=; b=HI0VnwUqwkBU9iK/MA9xwJBbZAvsuGQg2xTMfQ6KYspmM60B8zEMqARibwg3VytBcc SDke8Xs51Hs5Pc9pMcqwdYEMfoYIOJagsOiqG1jhjoCmkbg94+Aw34s1AYDJXGewDepi N5UcIst8JOLHZbRLHcv3DQ5pdqoCaxxRHl+k17GF0UQn32D5tPuVHBM6c1oPh+o79e1J RWnYr9xNccFVmd0hWPU3BsIKHTYo5kZvh4FVprw3+wgbeMId/4xjpYhNMLGpespPrDBd Bjro0Ehhsp8FRMMOmVLl6Sy3Lxy/L5czWrOOcbhm4Tet7htLDQUg6AIBxlMbsfYCkq5a EHRg== X-Gm-Message-State: AOAM5304KaK4iTt7oJqPVsa4nKE8m4Bz9Kbl50kO2vjClYavpm4jQj6n kMNe6LcwgW4xOT6mnlNrURNa60fSmUya4w== X-Google-Smtp-Source: ABdhPJwd/dWcX0+dq9yu0WXDpIo5KIfFytG0rxXOY4vo/oKOU7FIIbpsnlAyI6707CNKFBDY6yteEw== X-Received: by 2002:a5d:554b:: with SMTP id g11mr24882992wrw.260.1592912384633; Tue, 23 Jun 2020 04:39:44 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 33/42] hw/arm/mps2: Add CMSDK APB watchdog device Date: Tue, 23 Jun 2020 12:38:55 +0100 Message-Id: <20200623113904.28805-34-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::434; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x434.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) From: Philippe Mathieu-Daud=C3=A9 We already model the CMSDK APB watchdog device, let's use it! Suggested-by: Peter Maydell Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20200617072539.32686-9-f4bug@amsat.org Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- hw/arm/mps2.c | 7 +++++++ hw/arm/Kconfig | 1 + 2 files changed, 8 insertions(+) diff --git a/hw/arm/mps2.c b/hw/arm/mps2.c index 4fe5cc8622f..f7bef20b405 100644 --- a/hw/arm/mps2.c +++ b/hw/arm/mps2.c @@ -312,6 +312,13 @@ static void mps2_common_init(MachineState *machine) sysbus_connect_irq(SYS_BUS_DEVICE(&mms->dualtimer), 0, qdev_get_gpio_in(armv7m, 10)); sysbus_mmio_map(SYS_BUS_DEVICE(&mms->dualtimer), 0, 0x40002000); + object_initialize_child(OBJECT(mms), "watchdog", &mms->watchdog, + TYPE_CMSDK_APB_WATCHDOG); + qdev_prop_set_uint32(DEVICE(&mms->watchdog), "wdogclk-frq", SYSCLK_FRQ= ); + sysbus_realize(SYS_BUS_DEVICE(&mms->watchdog), &error_fatal); + sysbus_connect_irq(SYS_BUS_DEVICE(&mms->watchdog), 0, + qdev_get_gpio_in_named(armv7m, "NMI", 0)); + sysbus_mmio_map(SYS_BUS_DEVICE(&mms->watchdog), 0, 0x40008000); =20 /* FPGA APB subsystem */ object_initialize_child(OBJECT(mms), "scc", &mms->scc, TYPE_MPS2_SCC); diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig index 9afa6eee799..5c8f689b3dd 100644 --- a/hw/arm/Kconfig +++ b/hw/arm/Kconfig @@ -405,6 +405,7 @@ config MPS2 select PL080 # DMA controller select SPLIT_IRQ select UNIMP + select CMSDK_APB_WATCHDOG =20 config FSL_IMX7 bool --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592913116; cv=none; d=zohomail.com; s=zohoarc; b=JPLalFpb0CErWiGaqGpJWorqdFP1H/4psTf3vSjPTQwpMIhXQ7FjzsmTpVmov204gXrptbjLhBqopVbegMgYktmoA2ahbUCO05RCPbJqNYH5CjE8mR4JBUzvgW3S2aKzdpSZlbpIUwbuMTppWL0aD6pj7iTDwC4dXUaJyeY370I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592913116; h=Content-Type:Content-Transfer-Encoding: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=vtipZwHLE7FZd0SmRZa3h9Pvrs5XAJQH6LUFGM7RN2g=; b=HUq/50LUmY7BmQnxQsR8X8M6PFcVGwQOKnVoT1wYTVPh6y/W9hsMhJJHvPKaz3hVeq8OA/Yo3dL3n2VEfb2qECAVP8z1tweaZHPEQnXmFWYEwX0cD6dLUa8MEbmqlu8NmsFcJD/qCdz6D5DQgBktjdoHBMITIPhkv+6l5ryX50g= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592913115964638.5040427953778; Tue, 23 Jun 2020 04:51:55 -0700 (PDT) Received: from localhost ([::1]:43954 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhSz-0007JX-8x for importer@patchew.org; Tue, 23 Jun 2020 07:51:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44416) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhHJ-0003Z6-IF for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:49 -0400 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]:37602) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhHH-0003Pn-76 for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:49 -0400 Received: by mail-wm1-x333.google.com with SMTP id y20so2860209wmi.2 for ; Tue, 23 Jun 2020 04:39:46 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:45 -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=vtipZwHLE7FZd0SmRZa3h9Pvrs5XAJQH6LUFGM7RN2g=; b=gnDF13pVM9olTGEY7FFJxtl1/R1yG9p7FIWHaYBcppvjyFEK7ectebjyoSvAm0agvQ Utd4xLcyhp4SOMI/h5KbO62NujccSQ1fzDZacWNCCb9g3bRI3soYig8ZBphi9TPKleEt dgHwDMSTSLbxYeTGrn2KmcwNtrgWScZInRdnWVatsogElyCHdxKhQC3qSGT+qJ8qQvfO fTiEtlfOajCw5YvulxevcynCvlNpAz3UqHrnjnbE5tNQnOq8mUXeiTZTh5qqksMxvO6j L747oOPp5uo0eyFSFMRjJvYDI8x0MZDJbS0OWDbIlMbrBbt1/Y4VKmiyImt2lAEjUyIP XwIA== 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=vtipZwHLE7FZd0SmRZa3h9Pvrs5XAJQH6LUFGM7RN2g=; b=DnV0GZrIlBIsgo4Ens3CkC5Y7W9pfzFVJKuONwUZc3uj1Idxzix2+wCNgNexA8KxrD opV+TZDINVd6EfPob0iWRDPigPGYhm5r8zUxu2hFZUkp4qt2Yl6Sjg4742Fq522H+S23 0+XpW3P/SUk3HWyEF0IzrgMiLbBfDIWvSeC3+bqBK/2Z0MLTZH+HwcwYHHthJ3CNmFMI 1IPZKfCShFdvtT9v0nrOE+52e/BTXGpbLJ5t6hrBRZj0Pi0cakCkf4hvKV2y6nw4dHm6 CnEIjBtRJ0yvSLgWwn1xXERb5E2dOwh5KWB84KN/7M+Rs1Z4hOlfUqJnJwaHPEveH/c0 VBxw== X-Gm-Message-State: AOAM533i3UP+3y6GFsW0eOzj1UdJg08pwD19s+li2iY/eHpw+hJkNZNP 0DoHUQmJ/+m+5HyY+YLd6uT0+pW9UZzKLw== X-Google-Smtp-Source: ABdhPJz/HDX8mu9eMm5hG2RttNJH1qBQOYEHGkTn27Uv5sD2bNpTOhhh51mA1gxwd+U0QRGN0rGaQQ== X-Received: by 2002:a1c:de07:: with SMTP id v7mr69213wmg.56.1592912385595; Tue, 23 Jun 2020 04:39:45 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 34/42] hw/arm/mps2: Add CMSDK AHB GPIO peripherals as unimplemented devices Date: Tue, 23 Jun 2020 12:38:56 +0100 Message-Id: <20200623113904.28805-35-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::333; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x333.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) From: Philippe Mathieu-Daud=C3=A9 Register the GPIO peripherals as unimplemented to better follow their accesses, for example booting Zephyr: ---------------- IN: arm_mps2_pinmux_init 0x00001160: f64f 0231 movw r2, #0xf831 0x00001164: 4b06 ldr r3, [pc, #0x18] 0x00001166: 2000 movs r0, #0 0x00001168: 619a str r2, [r3, #0x18] 0x0000116a: f24c 426f movw r2, #0xc46f 0x0000116e: f503 5380 add.w r3, r3, #0x1000 0x00001172: 619a str r2, [r3, #0x18] 0x00001174: f44f 529e mov.w r2, #0x13c0 0x00001178: f503 5380 add.w r3, r3, #0x1000 0x0000117c: 619a str r2, [r3, #0x18] 0x0000117e: 4770 bx lr cmsdk-ahb-gpio: unimplemented device write (size 4, value 0xf831, offset = 0x18) cmsdk-ahb-gpio: unimplemented device write (size 4, value 0xc46f, offset = 0x18) cmsdk-ahb-gpio: unimplemented device write (size 4, value 0x13c0, offset = 0x18) Reviewed-by: Peter Maydell Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20200617072539.32686-10-f4bug@amsat.org Signed-off-by: Peter Maydell --- hw/arm/mps2.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/hw/arm/mps2.c b/hw/arm/mps2.c index f7bef20b405..c66c595d4a0 100644 --- a/hw/arm/mps2.c +++ b/hw/arm/mps2.c @@ -113,6 +113,7 @@ static void mps2_common_init(MachineState *machine) MemoryRegion *system_memory =3D get_system_memory(); MachineClass *mc =3D MACHINE_GET_CLASS(machine); DeviceState *armv7m, *sccdev; + int i; =20 if (strcmp(machine->cpu_type, mc->default_cpu_type) !=3D 0) { error_report("This board can only be used with CPU %s", @@ -228,7 +229,6 @@ static void mps2_common_init(MachineState *machine) */ Object *orgate; DeviceState *orgate_dev; - int i; =20 orgate =3D object_new(TYPE_OR_IRQ); object_property_set_int(orgate, 6, "num-lines", &error_fatal); @@ -265,7 +265,6 @@ static void mps2_common_init(MachineState *machine) */ Object *orgate; DeviceState *orgate_dev; - int i; =20 orgate =3D object_new(TYPE_OR_IRQ); object_property_set_int(orgate, 10, "num-lines", &error_fatal); @@ -301,6 +300,11 @@ static void mps2_common_init(MachineState *machine) default: g_assert_not_reached(); } + for (i =3D 0; i < 4; i++) { + static const hwaddr gpiobase[] =3D {0x40010000, 0x40011000, + 0x40012000, 0x40013000}; + create_unimplemented_device("cmsdk-ahb-gpio", gpiobase[i], 0x1000); + } =20 /* CMSDK APB subsystem */ cmsdk_apb_timer_create(0x40000000, qdev_get_gpio_in(armv7m, 8), SYSCLK= _FRQ); --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592914113; cv=none; d=zohomail.com; s=zohoarc; b=J0mJiL0h50wldBROK6EL3D7qjCUncqqb3T56z23vG07k48sMXWYP26EoRtKV4zKa07a6lMh9fsZ4ItacVNrsTeTMr4i/4m+DebPmgjn7mY/jg/D85SnWZZRstEvyv8DkweY4edQiQ+59iezDVtPLQLDeIU7BvnE/QnYEr38tmmk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592914113; h=Content-Type:Content-Transfer-Encoding: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=93DPZhJ1c1kkfDUxuVzeumq5Pucl+HwBkMTUco5Vv4s=; b=nUTJK0dKP4JT6ig9FI4JCG58s08JzYvplyAl6C8s/y6TjG66HEaSHJf/jrP8hzBeTFEem2PNv5dOV7T7IWv01NnB7HzqSPgGqxfEoN0ZUWIPetC3164R+zZivEgNR2KeMfyFCbDcnwkEV/8zMUW5OOW1TyUUaAfwWELKUa2v4dE= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 159291411304726.907398828437067; Tue, 23 Jun 2020 05:08:33 -0700 (PDT) Received: from localhost ([::1]:42502 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhj5-0007tr-T8 for importer@patchew.org; Tue, 23 Jun 2020 08:08:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44422) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhHK-0003Zk-1U for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:51 -0400 Received: from mail-wr1-x443.google.com ([2a00:1450:4864:20::443]:35446) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhHI-0003QK-6W for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:49 -0400 Received: by mail-wr1-x443.google.com with SMTP id g18so11115320wrm.2 for ; Tue, 23 Jun 2020 04:39:47 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:45 -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=93DPZhJ1c1kkfDUxuVzeumq5Pucl+HwBkMTUco5Vv4s=; b=sEOZ/GDyjhvVCbIlCJvzcF5VFWIEdBoz72F2afWiErqUcTUpLc1jOZiLTuP1/klN1j RVAtgBU3Bdu47Jn/1u1oSui6D9gNkolO/c81o4wyJRzennyLaeYpGx/xLarrUbE5E8QK SFrCGEjonIA3i3AJpvgrRHryoAep+bvV2jfIUEdqcI7Eie2gmrM+VCnJ/RzxFquJmVKq CCdbcW7+y3H2qrtXF+rg4wlXm6EPaipExOblzTNX+FNnnvGiUJN2bNl6wV0w+bUWaXwK U7CLCALM3/3/xsHN5T6Db3pmDOjx6tuicoABlqbbh2UtvPNidYGKQ4UPsccZoySgBfr1 QMnA== 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=93DPZhJ1c1kkfDUxuVzeumq5Pucl+HwBkMTUco5Vv4s=; b=h22Id99MM+/GrHfixAZvNXoBnKrIKg4iyY+DCSSTLwqWP3pvsd/9y0fwBVQWDWrnf9 y1xeaGA975uwsDf1PKvgZlY51i7I91icYwxfFF9dJLRnEyrg43P4FA1Jas00HQytZhh2 sS9TTDu2BbLWr6aXU+r6K+UZWKNkubLpJqZL1c6z9IOeNM2gwDeT0CvuIa+BrJcPuJGX vykjUwKgtpn78djXcDBKZqSUvpsEqpdaorpTvFVLlRkYPF/mwNK0FdoCgjPW+cXH+q9U nsxigeO1o7PEnXVM/fMEIpEPBpPHYrrMqx5Mcxtsrg5XKoaQgKlcLuJc+broOdrPS4mv 6wsQ== X-Gm-Message-State: AOAM530/lYCrNgkJSqtx+g7xHm2APXJ7iDmMZfG1JCEfjMEc2VIClj/K qRXQw4R/mWxCCwJ5HKAEp5y9SCCJC7uNYg== X-Google-Smtp-Source: ABdhPJxPycm0Ikd8zT3zc99AWXQxkI8AN51v/lDK9OociMTo4wmZC2Pz5emckJjutVidFplvWIAU5A== X-Received: by 2002:adf:c382:: with SMTP id p2mr24322388wrf.283.1592912386516; Tue, 23 Jun 2020 04:39:46 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 35/42] hw/arm/mps2: Map the FPGA I/O block Date: Tue, 23 Jun 2020 12:38:57 +0100 Message-Id: <20200623113904.28805-36-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::443; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x443.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) From: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20200617072539.32686-11-f4bug@amsat.org Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- hw/arm/mps2.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/hw/arm/mps2.c b/hw/arm/mps2.c index c66c595d4a0..e1061232254 100644 --- a/hw/arm/mps2.c +++ b/hw/arm/mps2.c @@ -38,8 +38,10 @@ #include "hw/timer/cmsdk-apb-timer.h" #include "hw/timer/cmsdk-apb-dualtimer.h" #include "hw/misc/mps2-scc.h" +#include "hw/misc/mps2-fpgaio.h" #include "hw/net/lan9118.h" #include "net/net.h" +#include "hw/watchdog/cmsdk-apb-watchdog.h" =20 typedef enum MPS2FPGAType { FPGA_AN385, @@ -67,8 +69,10 @@ typedef struct { MemoryRegion sram; /* FPGA APB subsystem */ MPS2SCC scc; + MPS2FPGAIO fpgaio; /* CMSDK APB subsystem */ CMSDKAPBDualTimer dualtimer; + CMSDKAPBWatchdog watchdog; } MPS2MachineState; =20 #define TYPE_MPS2_MACHINE "mps2" @@ -332,6 +336,11 @@ static void mps2_common_init(MachineState *machine) qdev_prop_set_uint32(sccdev, "scc-id", mmc->scc_id); sysbus_realize(SYS_BUS_DEVICE(&mms->scc), &error_fatal); sysbus_mmio_map(SYS_BUS_DEVICE(sccdev), 0, 0x4002f000); + object_initialize_child(OBJECT(mms), "fpgaio", + &mms->fpgaio, TYPE_MPS2_FPGAIO); + qdev_prop_set_uint32(DEVICE(&mms->fpgaio), "prescale-clk", 25000000); + sysbus_realize(SYS_BUS_DEVICE(&mms->fpgaio), &error_fatal); + sysbus_mmio_map(SYS_BUS_DEVICE(&mms->fpgaio), 0, 0x40028000); =20 /* In hardware this is a LAN9220; the LAN9118 is software compatible * except that it doesn't support the checksum-offload feature. --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592914244; cv=none; d=zohomail.com; s=zohoarc; b=cmgIhuDA7IgoydtQs5apKIw4jID38Ddc1Lf/4hRSUECsSeidb7RX0YceEWTjc052vbLRSIgHIDdqOA/wJsG4PAyORcJ0cri9DSAW69wEncQjl5Sgg+f51UiyX4WTokzanz9GcHJUFpvZ7Xe5u8NmU/7UDppm/NdS41GfQ98Hj74= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592914244; h=Content-Type:Content-Transfer-Encoding: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=tymhxqXyDEbTmZSCGO7IT18a7NBET9izMcg9/EiMo9E=; b=CoXbSG7GuB6sYqieVptluHToUh/dGoC2Dtn0QWBoYudf4RbTxtOsEm8G5CA6xBDjY86HH2hv7V5gZvMm7a70SRq7v2QTV2MZ/yNqjjNjE3K92U1TXduyhUqJtx/bzD1c3a0LioftSDKfMdd0y4+a6gDDWGZb0MXJ6u7XNKMIcD0= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592914244074847.3983803339885; Tue, 23 Jun 2020 05:10:44 -0700 (PDT) Received: from localhost ([::1]:51214 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhlC-0003Vd-Ob for importer@patchew.org; Tue, 23 Jun 2020 08:10:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44444) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhHL-0003bG-Uo for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:53 -0400 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]:37593) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhHJ-0003Ri-QL for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:51 -0400 Received: by mail-wm1-x329.google.com with SMTP id y20so2860316wmi.2 for ; Tue, 23 Jun 2020 04:39:49 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:46 -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=tymhxqXyDEbTmZSCGO7IT18a7NBET9izMcg9/EiMo9E=; b=t2hG5wLJmwiFTv1+8/9HxuTVTuSw4TFMViTVZsuP3FQ06IV/GQMnfku0xpeQFhKcv3 KePEoPpMx8BXp9LkOnGeGP5tI85KBAFgxTq2uoxg8XHNIOtbFjnzC1/XoIxozuDNb42/ LEWE+DjFh7AlJycaG3rGxG3FRijbCgDck9JInmyfsh+fGs43DhLqwtZZhMFzgJviZgcw 1DuTgaXbnm+LWPI2rEPieTqkbaNIUEi85wVrkvuFvOzGO3bUe9SMnuz+gBjVLree6jHX Sq1SOplAwJl54KBZxkNrZOmeZG5+ahxs+D898RAJWS+lB/JqCfDFebm1hzcH17lmEq1Q uqNg== 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=tymhxqXyDEbTmZSCGO7IT18a7NBET9izMcg9/EiMo9E=; b=YjqJgFc6hbwQfB9IDrVAJY7CoacotVmHNUz7VrQIbaAANiS/qqcXtKG2WxzvVPovqQ QZ8sHR3Apa3LTCBc+Hbc+Ij3oT++nYNcIfcJs7NSGlXI/6PeLWrwdM4vlVn+mTT9DZe3 stiLybN613My9tHAePFA8hAhNGkNx8XjxQdV5fv3O9vDZMwq7YmW/muaLaTe7BqxYj3A lRgKg5/dEuO7ndqWA34U0tsDuqV2rjKov52xoKh7DhJKWWPviaAIt/HGD0iNSwo9wkMI mA+eGC/bfK0TsPczW37NBGyVzc9QI6scBR+9xOGfzwOSzPauZgVHgRUvT3UbG4GiQJtw SdjQ== X-Gm-Message-State: AOAM531RqNp2EKtJkRpkDfHVJA/JgT2rg/080ZVcQCJawLhrVK3wraOg EPl160YeaRd3WlSzoUmUB7EvaUUudBDPgw== X-Google-Smtp-Source: ABdhPJxzlJjKAbo6zi/DzFBbfcdCVbcBltvlY//tPm/iANFqS/zlz2/9hqhs8LOTRTueeJLpPAzUOw== X-Received: by 2002:a05:600c:410f:: with SMTP id j15mr535731wmi.128.1592912387885; Tue, 23 Jun 2020 04:39:47 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 36/42] hw/arm/mps2: Add SPI devices Date: Tue, 23 Jun 2020 12:38:58 +0100 Message-Id: <20200623113904.28805-37-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::329; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x329.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) From: Philippe Mathieu-Daud=C3=A9 From 'Application Note AN385', chapter 3.9, SPI: The SMM implements five PL022 SPI modules. Two pairs of modules share the same OR-gated IRQ. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20200617072539.32686-12-f4bug@amsat.org Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- hw/arm/mps2.c | 24 ++++++++++++++++++++++++ hw/arm/Kconfig | 6 +++--- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/hw/arm/mps2.c b/hw/arm/mps2.c index e1061232254..daa26f68d79 100644 --- a/hw/arm/mps2.c +++ b/hw/arm/mps2.c @@ -39,6 +39,7 @@ #include "hw/timer/cmsdk-apb-dualtimer.h" #include "hw/misc/mps2-scc.h" #include "hw/misc/mps2-fpgaio.h" +#include "hw/ssi/pl022.h" #include "hw/net/lan9118.h" #include "net/net.h" #include "hw/watchdog/cmsdk-apb-watchdog.h" @@ -341,6 +342,29 @@ static void mps2_common_init(MachineState *machine) qdev_prop_set_uint32(DEVICE(&mms->fpgaio), "prescale-clk", 25000000); sysbus_realize(SYS_BUS_DEVICE(&mms->fpgaio), &error_fatal); sysbus_mmio_map(SYS_BUS_DEVICE(&mms->fpgaio), 0, 0x40028000); + sysbus_create_simple(TYPE_PL022, 0x40025000, /* External ADC */ + qdev_get_gpio_in(armv7m, 22)); + for (i =3D 0; i < 2; i++) { + static const int spi_irqno[] =3D {11, 24}; + static const hwaddr spibase[] =3D {0x40020000, /* APB */ + 0x40021000, /* LCD */ + 0x40026000, /* Shield0 */ + 0x40027000}; /* Shield1 */ + DeviceState *orgate_dev; + Object *orgate; + int j; + + orgate =3D object_new(TYPE_OR_IRQ); + object_property_set_int(orgate, 2, "num-lines", &error_fatal); + orgate_dev =3D DEVICE(orgate); + qdev_realize(orgate_dev, NULL, &error_fatal); + qdev_connect_gpio_out(orgate_dev, 0, + qdev_get_gpio_in(armv7m, spi_irqno[i])); + for (j =3D 0; j < 2; j++) { + sysbus_create_simple(TYPE_PL022, spibase[2 * i + j], + qdev_get_gpio_in(orgate_dev, j)); + } + } =20 /* In hardware this is a LAN9220; the LAN9118 is software compatible * except that it doesn't support the checksum-offload feature. diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig index 5c8f689b3dd..90ed584e7ac 100644 --- a/hw/arm/Kconfig +++ b/hw/arm/Kconfig @@ -59,7 +59,7 @@ config HIGHBANK select ARM_TIMER # sp804 select ARM_V7M select PL011 # UART - select PL022 # Serial port + select PL022 # SPI select PL031 # RTC select PL061 # GPIO select PL310 # cache controller @@ -222,7 +222,7 @@ config STELLARIS select CMSDK_APB_WATCHDOG select I2C select PL011 # UART - select PL022 # Serial port + select PL022 # SPI select PL061 # GPIO select SSD0303 # OLED display select SSD0323 # OLED display @@ -401,7 +401,7 @@ config MPS2 select MPS2_FPGAIO select MPS2_SCC select OR_IRQ - select PL022 # Serial port + select PL022 # SPI select PL080 # DMA controller select SPLIT_IRQ select UNIMP --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592914485; cv=none; d=zohomail.com; s=zohoarc; b=cGfyZaqxrwqBNix6YKRspnlzwF1E0TCEfiUPSzY7zZcIjgY6O6Zv6ROYfVhK3HH4ZGoTtE+w9ahvNxA7vrwXUhgT6gN/YZN3odb6eGBmC7LrQqxHfopyvIl0Fjf9e93oBfkVJDLDP249FnWH5iYoa0Sc9EYy3u12Nu1rvFIq3Fs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592914485; h=Content-Type:Content-Transfer-Encoding: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=swhhCaK6kxauy4YGZJwdC+yBpgGMM2M8opxL74decBA=; b=c/1twAXCM3TH31eWUlxHNte4aCb6zOYoBb9ob7kmfTUAHKrnURh7ofbkvp6YUXwb84+puJvhneEA1Naq+z3zuJet+bcBKgkt6UNpmVX5zJQjpuDBu6J7uxpYQgKhHkd+scT7dDtVWavqQSOZYSy7s7WDQoh4aVgAWm+WBfOU6kg= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592914485209434.5754049985874; Tue, 23 Jun 2020 05:14:45 -0700 (PDT) Received: from localhost ([::1]:36222 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhp5-0002NU-J3 for importer@patchew.org; Tue, 23 Jun 2020 08:14:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44492) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhHP-0003cn-NX for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:55 -0400 Received: from mail-wr1-x441.google.com ([2a00:1450:4864:20::441]:44535) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhHL-0003Ry-KL for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:55 -0400 Received: by mail-wr1-x441.google.com with SMTP id b6so20156126wrs.11 for ; Tue, 23 Jun 2020 04:39:50 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.48 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:48 -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=swhhCaK6kxauy4YGZJwdC+yBpgGMM2M8opxL74decBA=; b=l7x1X+3uGkmgX2K8X8/wowcoZQvLw6kPgmNMncTL6L0yFisptKqfpoXFLqNKMRVdPV NAUTbD9lgmDzdMp5Jqiceny4p0td90ntmO8mBUr411V5S4R+gGWzLFAtF+/CcOpEY6wC qr3+bOVtFdwER0Xm8A6uhnhwh8MREwuALP6+gmRHlCBKY4QJgvcrc4RSwOjRmfSiq4zg 35xp8Hz0z9Szx+EnValLVk7rEMTJ4tGh5J/f+FNvyu/JHumyTxfX1174mdaFE/tjpiIH NTF50QVpObOtKPC5NBSbcrJ/RG72sZFg8Z5c7ndx9OmGZhjbO+5s3ifyXSUFSmdD0MnH HElg== 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=swhhCaK6kxauy4YGZJwdC+yBpgGMM2M8opxL74decBA=; b=VjMuXNNchIf/uOaE5/VWLrWlQlo2Aq9HjAk86ux+jj4rQpYa2A0qsCnhj6AOFrF5TM oTczv7l64UqAKqp0B5Wa4+dkbU4PeC+HF9obKCg3u+pEWIXx6KOce1MKw30cZOKUTZeu zJcVQEfxouLRo0JXEZa8z5P14fo+8d7CdxGSi3bOXxAjZFJtcyI8pGd78LrwKlNqa/06 0vSgtosMqVMXoJrpHxDQTpjA52KnONRoLiAnH0A/LWEtekDHgIkgYVoS7QgDfAigTtNW Y80fmnsNdfLraP2kH4qeHXm+Ev14R1Rtc+BTQsxt6SnFXt3lb44OH/N2yel2gVTlZACb I0Kg== X-Gm-Message-State: AOAM530L37NhjjMaw3UXBhqgxxkajnoazDEpJai2HQH63F4LXCw/8g2e ciNlld5PpNvEm2mKRZS+W+sGnwORC2exhw== X-Google-Smtp-Source: ABdhPJy5SJZooIZhlw0sRND4Sf1pwmy8dPT/dTvw3xehuAoGdLGgheOAfCC+ZW+tg5wGtzurPGVNXg== X-Received: by 2002:a5d:4c8a:: with SMTP id z10mr8616783wrs.384.1592912389127; Tue, 23 Jun 2020 04:39:49 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 37/42] hw/arm/mps2: Add I2C devices Date: Tue, 23 Jun 2020 12:38:59 +0100 Message-Id: <20200623113904.28805-38-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::441; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x441.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) From: Philippe Mathieu-Daud=C3=A9 From 'Application Note AN385', chapter 3.14: The SMM implements a simple SBCon interface based on I2C. There are 4 SBCon interfaces on the FPGA APB subsystem. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20200617072539.32686-13-f4bug@amsat.org Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- hw/arm/mps2.c | 8 ++++++++ hw/arm/Kconfig | 1 + 2 files changed, 9 insertions(+) diff --git a/hw/arm/mps2.c b/hw/arm/mps2.c index daa26f68d79..2f6acbf2c21 100644 --- a/hw/arm/mps2.c +++ b/hw/arm/mps2.c @@ -40,6 +40,7 @@ #include "hw/misc/mps2-scc.h" #include "hw/misc/mps2-fpgaio.h" #include "hw/ssi/pl022.h" +#include "hw/i2c/arm_sbcon_i2c.h" #include "hw/net/lan9118.h" #include "net/net.h" #include "hw/watchdog/cmsdk-apb-watchdog.h" @@ -365,6 +366,13 @@ static void mps2_common_init(MachineState *machine) qdev_get_gpio_in(orgate_dev, j)); } } + for (i =3D 0; i < 4; i++) { + static const hwaddr i2cbase[] =3D {0x40022000, /* Touch */ + 0x40023000, /* Audio */ + 0x40029000, /* Shield0 */ + 0x4002a000}; /* Shield1 */ + sysbus_create_simple(TYPE_ARM_SBCON_I2C, i2cbase[i], NULL); + } =20 /* In hardware this is a LAN9220; the LAN9118 is software compatible * except that it doesn't support the checksum-offload feature. diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig index 90ed584e7ac..4a224a6351a 100644 --- a/hw/arm/Kconfig +++ b/hw/arm/Kconfig @@ -406,6 +406,7 @@ config MPS2 select SPLIT_IRQ select UNIMP select CMSDK_APB_WATCHDOG + select VERSATILE_I2C =20 config FSL_IMX7 bool --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592914380; cv=none; d=zohomail.com; s=zohoarc; b=SepfnvEwY0FVnWWlUp7wHPEMhshArmwy77202IgwGaXAVn/0a/W2z1Gk8hW9qvz30T6Vqiho+g+PBBNB0UVmsqDgSLHu27RiDa4Rz97BynDqplQqtehuRB5wdT6s/RISSGzvDraEnFqEKFXIBDoLpzRg8rpk2jxLSENRlzAMEdc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592914380; h=Content-Type:Content-Transfer-Encoding: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=FB/XSNfEglwQujNh4/r/UnyGLSTn6jc+2Sa/lfWdHtY=; b=JSrU1yhGN2TFwr8yO1N3v6RtHSzKZW8v340/i0CCwZQQu7Jb4XYFqn47FXBYuu2ede6WR+/AgQ+hT6LmsfeJplWLQ9I90jWaesqL2GlKb+CBBNBa8e3ui5uT9Dj7c7B6EkdfTvMu3JXLhF0vpGUB0ZpS8Z24eLabW6BcXx9Vu0o= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592914380527625.8467782817987; Tue, 23 Jun 2020 05:13:00 -0700 (PDT) Received: from localhost ([::1]:59844 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhnP-0007mG-9E for importer@patchew.org; Tue, 23 Jun 2020 08:12:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44470) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhHO-0003cB-0L for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:55 -0400 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]:46060) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhHL-0003SZ-KX for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:53 -0400 Received: by mail-wr1-x430.google.com with SMTP id s10so211156wrw.12 for ; Tue, 23 Jun 2020 04:39:51 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:49 -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=FB/XSNfEglwQujNh4/r/UnyGLSTn6jc+2Sa/lfWdHtY=; b=U5f+RYOaSDCEnt9B3Xm7U7V0X0hPql0Pup6RxMCMSKg3NMPVYdo4sEK2QD2bOxebdv NQIJTHYmT2oGGh120V1WgmpaMjPOp3u9nw3c2p+52gTDNbFsbdAGWh31pEZ1lrxd9CX/ NWImlwsWAOmTFxHXzcLQccwLQ9CnPvCLwwP7aAehlIfDgJxScSD71GaJ63bF8gnRXol+ ucK/+uHDzQPycYZ/iM3vp1/VV1vUNdSYFuwa+faxMXaFHgYhRHJ5UQrEzf0mguhzJDZT IP8D6rKSFsmBDYsAgswG1V5EARMKLYShyDw5oVLJWKyxrft5nFDUPxIzCQdZ0lt4bSQ/ jIOw== 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=FB/XSNfEglwQujNh4/r/UnyGLSTn6jc+2Sa/lfWdHtY=; b=lHL0NBsY3ImQG7gkUG2eByhDe7BDBBm3U4066Yfj0cbkfDuLMicJrjz9CAGhWdQ6cC 07KmFQxhZe1Qx60kZ8bWlj4rJv3P3bLh0zpFMpfAsGFjFgT11GhfXnhvPgAIbzzzBfOl fq4FpFcefHr1vnEKBYSoBAvey+7jgTeauRQkjNbGUFXYu3H3wHmeono3zx0bachwsCvt b6UJU8MobL8mNlLijMZHbi3eRaTEY4Twtv2QPVnfeanxo7vD54F9TlGk8rFWCVsKQBLM hiNBhtcDfvkNTwSFMV0GmlOFqyYnkMJX0ZEcCoonVBU1LavkpBoiz4N1QktTS63qGNdP /PVQ== X-Gm-Message-State: AOAM530pHrnKA2QCY1HnWGvmEdbG/u9L/AS1UXWqvPXKmlA78KKeeSdQ F+vK95bM79OJN/XXMeHRGqF3l5Wd0SnhJQ== X-Google-Smtp-Source: ABdhPJzjthd4o19XqpTtpFJTdd4sw4G1srCCEtcuBzo9gCbXU79itUYaNJq/SdB9ZPCPVSqiNpZVPA== X-Received: by 2002:adf:db4d:: with SMTP id f13mr20906719wrj.336.1592912390110; Tue, 23 Jun 2020 04:39:50 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 38/42] hw/arm/mps2: Add audio I2S interface as unimplemented device Date: Tue, 23 Jun 2020 12:39:00 +0100 Message-Id: <20200623113904.28805-39-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::430; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x430.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) From: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20200617072539.32686-14-f4bug@amsat.org Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- hw/arm/mps2.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/arm/mps2.c b/hw/arm/mps2.c index 2f6acbf2c21..d1653a7e6e7 100644 --- a/hw/arm/mps2.c +++ b/hw/arm/mps2.c @@ -373,6 +373,7 @@ static void mps2_common_init(MachineState *machine) 0x4002a000}; /* Shield1 */ sysbus_create_simple(TYPE_ARM_SBCON_I2C, i2cbase[i], NULL); } + create_unimplemented_device("i2s", 0x40024000, 0x400); =20 /* In hardware this is a LAN9220; the LAN9118 is software compatible * except that it doesn't support the checksum-offload feature. --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592914627; cv=none; d=zohomail.com; s=zohoarc; b=c+vfmynbaW4WMB4999H6wFejd7XHWi5uR19GCLViN8nvT49gztxhetIkc2Wr4PI9LYDd27umW9CEcVJCajnyhwOXg7bXkGKJvaAPGWxrqpoWla772osq+5eV+DJ9N70PWeMWsSQl/7/PfOJYyivDGXC8Z/rrWw4RHpMHZ45/k3c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592914627; h=Content-Type:Content-Transfer-Encoding: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=32ydQvoqd2RGUyvJM88qaq2rPeJ++f/3bS2LA96loH4=; b=GnXF9E+7ene4ZofJT6sJr2C/npPhjZReSjsQMLpp8BxTCR5SOwMGUBlls+Pg6jI942ZWu20900nxcTOYxE+6c25wzuRumLaEfWL2jIhi3EHd34jDeUWj2AxUMnqwMIh1Hw+arefB8/ZUvAHKdPL95PmqsJ8/Vmn9/+G1FU6TNi0= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592914627198320.69255819404896; Tue, 23 Jun 2020 05:17:07 -0700 (PDT) Received: from localhost ([::1]:43062 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhrN-0005UV-Ti for importer@patchew.org; Tue, 23 Jun 2020 08:17:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44518) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhHU-0003de-RI for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:40:01 -0400 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]:37987) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhHN-0003TU-Kg for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:39:58 -0400 Received: by mail-wm1-x330.google.com with SMTP id f18so2854103wml.3 for ; Tue, 23 Jun 2020 04:39:52 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.50 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:50 -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=32ydQvoqd2RGUyvJM88qaq2rPeJ++f/3bS2LA96loH4=; b=a6q5G+4wTLzlZu3yG8SB9vJ4picfdgn0b8gLUzybHTshXFZ+0PExe2yoVlRhg2bF7v o4Kc/pmKTsWENEY6KDkj10PTqtqXzwgGC0nMHwTARIzZptm84FGOghou2TaqdY39vP/s 8yPeSb6C0Uq0ifE+x4lPZGn9kFfH0PBB8uAbP58i9CWR3006qIjDoBqKQIIuIygzGR6M 2dgkW//Hy+z5ZVHPYg/lwlKidjoaZNusAF+aLMT9AClbjSCyFSMT/nYYhMdc+L0j7r5u uX9Myrb0fzH+8f8Sf962tQ/TGkftwgE9cMHXTh6jqU5PdX8dDtOHHHPXeBkXh1ByJOdI lEBQ== 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=32ydQvoqd2RGUyvJM88qaq2rPeJ++f/3bS2LA96loH4=; b=cjcIibXxPVGBM7nv6ySnxK6wQ0BNTJOPCr/MfJ6R3SX0AXHTZLwY3Sx4kHak7PJV0T KfT88xPvQGFat8k40XbwI6UdNQR1k3vZpt2AoK0Jcl+GM6lQwJyvhqVU1DmLwJhqGJtJ zbPyXW7gPbHYZOyaOr8CesJLlA1g4Bl4tm6/vtfUGeDbo2aDexlPyu1PHkqfMUA1Ff01 dGvHl57ryiePhAd+kzUoOSkcfkCgRIcsOt3l/2/1UOhadMqbLSBcU6tfDziuEpbua0Md m3D06fIM5dOHWnWsnyizHYv9MLv1NdBN7aiYZBgZQS7hksokp1TqmTwlfuDJAuSXW0/s 6XkA== X-Gm-Message-State: AOAM533i7YKE8mkRpjtMoJohjaPEdkmZubYY17ZbBdbFIxqRUiU4bRde UHEEs9yugIOc1l7cf+EWdBomYYzC3AMJTw== X-Google-Smtp-Source: ABdhPJw74bFjM4ZfPsUnXpidLKhbskLZqlmlwtY38ZAkmaSdjeFgSkgRP/uDX+1F/53Iy0UTp/dKoQ== X-Received: by 2002:a1c:e910:: with SMTP id q16mr10373014wmc.188.1592912391245; Tue, 23 Jun 2020 04:39:51 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 39/42] hw/arm/mps2-tz: Use the ARM SBCon two-wire serial bus interface Date: Tue, 23 Jun 2020 12:39:01 +0100 Message-Id: <20200623113904.28805-40-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::330; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x330.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) From: Philippe Mathieu-Daud=C3=A9 From 'Application Note AN521', chapter 4.7: The SMM implements four SBCon serial modules: One SBCon module for use by the Color LCD touch interface. One SBCon module to configure the audio controller. Two general purpose SBCon modules, that connect to the Expansion headers J7 and J8, are intended for use with the V2C-Shield1 which provide an I2C interface on the headers. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20200617072539.32686-15-f4bug@amsat.org Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- hw/arm/mps2-tz.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/hw/arm/mps2-tz.c b/hw/arm/mps2-tz.c index 8155c35418d..a4fd5ddede7 100644 --- a/hw/arm/mps2-tz.c +++ b/hw/arm/mps2-tz.c @@ -58,6 +58,7 @@ #include "hw/arm/armsse.h" #include "hw/dma/pl080.h" #include "hw/ssi/pl022.h" +#include "hw/i2c/arm_sbcon_i2c.h" #include "hw/net/lan9118.h" #include "net/net.h" #include "hw/core/split-irq.h" @@ -87,7 +88,7 @@ typedef struct { TZPPC ppc[5]; TZMPC ssram_mpc[3]; PL022State spi[5]; - UnimplementedDeviceState i2c[4]; + ArmSbconI2CState i2c[4]; UnimplementedDeviceState i2s_audio; UnimplementedDeviceState gpio[4]; UnimplementedDeviceState gfx; @@ -365,6 +366,18 @@ static MemoryRegion *make_spi(MPS2TZMachineState *mms,= void *opaque, return sysbus_mmio_get_region(s, 0); } =20 +static MemoryRegion *make_i2c(MPS2TZMachineState *mms, void *opaque, + const char *name, hwaddr size) +{ + ArmSbconI2CState *i2c =3D opaque; + SysBusDevice *s; + + object_initialize_child(OBJECT(mms), name, i2c, TYPE_ARM_SBCON_I2C); + s =3D SYS_BUS_DEVICE(i2c); + sysbus_realize(s, &error_fatal); + return sysbus_mmio_get_region(s, 0); +} + static void mps2tz_common_init(MachineState *machine) { MPS2TZMachineState *mms =3D MPS2TZ_MACHINE(machine); @@ -499,10 +512,10 @@ static void mps2tz_common_init(MachineState *machine) { "uart2", make_uart, &mms->uart[2], 0x40202000, 0x1000 }, { "uart3", make_uart, &mms->uart[3], 0x40203000, 0x1000 }, { "uart4", make_uart, &mms->uart[4], 0x40204000, 0x1000 }, - { "i2c0", make_unimp_dev, &mms->i2c[0], 0x40207000, 0x1000= }, - { "i2c1", make_unimp_dev, &mms->i2c[1], 0x40208000, 0x1000= }, - { "i2c2", make_unimp_dev, &mms->i2c[2], 0x4020c000, 0x1000= }, - { "i2c3", make_unimp_dev, &mms->i2c[3], 0x4020d000, 0x1000= }, + { "i2c0", make_i2c, &mms->i2c[0], 0x40207000, 0x1000 }, + { "i2c1", make_i2c, &mms->i2c[1], 0x40208000, 0x1000 }, + { "i2c2", make_i2c, &mms->i2c[2], 0x4020c000, 0x1000 }, + { "i2c3", make_i2c, &mms->i2c[3], 0x4020d000, 0x1000 }, }, }, { .name =3D "apb_ppcexp2", --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592913283; cv=none; d=zohomail.com; s=zohoarc; b=MlFJnBttQbkCITV9eZARQdjz2R5tE6DH+FA3Ygd2+ch4IizYunYsSqjrdUwiCsAPw834oiJPReAqeilKvozX2dM5I9CEWzTcDzLpHQNW8EM10gIV4zsq40scpE5DHzpgWwFR6a/CEl5IGnykB6poiexQZp6dmxsgbsIoYQzAyrU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592913283; h=Content-Type:Content-Transfer-Encoding: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=tzG6H3dx3q2JVxVlZDbfro7dUJHnE2QjtMtXPZaJA+0=; b=KFVRyp5K+SsEpouMCXZhlbnXPNJeC0CnTB5uJnltej+UGOaWG3ct6fyNRXVFZO9r1gBs1LqUgwv6TSnoaoG+BgmZ1j96ncUbzJyJo/TVz7WDs8PQo460/e+SM3uawd5CRMbOkwiHzG/aZ3FD/S801U6lbtKHNaX5W7Oznnhr4Z0= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592913283776610.8598329908888; Tue, 23 Jun 2020 04:54:43 -0700 (PDT) Received: from localhost ([::1]:52426 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhVi-0003ff-Cy for importer@patchew.org; Tue, 23 Jun 2020 07:54:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44566) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhHW-0003eU-9z for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:40:02 -0400 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]:40405) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhHP-0003Te-G8 for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:40:01 -0400 Received: by mail-wm1-x342.google.com with SMTP id f139so1439855wmf.5 for ; Tue, 23 Jun 2020 04:39:53 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.51 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:51 -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=tzG6H3dx3q2JVxVlZDbfro7dUJHnE2QjtMtXPZaJA+0=; b=CCja5DE2ZECh2W8PuEL9w6oURea8cnznEHL4ArLGM1RCcgCsroHs352FrubyPuCboY 3IU5WIoj26Zae/rALGUynzYGWz9+fsE9rQM5Jl+BWxDWpwmQ7mvF5VhV0kehkiRjJBWP G8yvSMLsNrrGks3DJMKUd9r98728oAlOQEckxUd55ESh73qaEbabIb9RMkEri2BnISiU 2Gv8ppju3wAe5V5BEIre5fJ3U6ydcS1QPwybAjh/Oy4pm/kftTR1sq0ObVSZqihLp47Q 9KNw5clcT0rJgT0Mnj1JYiFAeZfZ+l+ccoWofq/dJP87Paj4+HrFcIk/k0cfzyXhyzD7 7Vyg== 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=tzG6H3dx3q2JVxVlZDbfro7dUJHnE2QjtMtXPZaJA+0=; b=mxo43njKsaosxd9eLhWcmQ2EHPMoxfZhHBjTUf68Mzz/bCMxAxhIXER/ssF9e6n8Ow yPCI5d0JGYwJWm9n87TsoJ5i/Ya4B0SvyWewqWU9+e3W4iqjL/ydJl94XjAIqIig19ST o57PcjaiCfkGFyEi91lz9oUHX2jtZXsLxyO6rWInG9S1OLhkYSNbLzhS5UorhPE3xpqv bkKFTISlAGKyKnP9izhd0de2JUlCH4c58q/phjWRV9d5oSnEOTIHPIuFYCvPCmYWkY/l pjXgPwRWIxMrnTPSFzafk1lP4QbPb+XW7UObOlezWHthQyMQ1KM0KpzCwoiUVJK1RjKE DHFA== X-Gm-Message-State: AOAM531DPxub6+BVHZpl++eA9BA9tUYAH7t9Yh7jo4jj75BBvQy8+one kaUPTBrUuELU8Zadt2i/iQrDhnV4wYJSzg== X-Google-Smtp-Source: ABdhPJyZoI5ZrVoGwYF8/c/WCxfeLiL5H2obw1zn3Mwi8Y8zrokUD9gI9k9jm4Q0SwkiTSoew/TMLg== X-Received: by 2002:a1c:4e1a:: with SMTP id g26mr23189153wmh.148.1592912392295; Tue, 23 Jun 2020 04:39:52 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 40/42] target/arm: Check supported KVM features globally (not per vCPU) Date: Tue, 23 Jun 2020 12:39:02 +0100 Message-Id: <20200623113904.28805-41-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::342; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x342.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) From: Philippe Mathieu-Daud=C3=A9 Since commit d70c996df23f, when enabling the PMU we get: $ qemu-system-aarch64 -cpu host,pmu=3Don -M virt,accel=3Dkvm,gic-version= =3D3 Segmentation fault (core dumped) Thread 1 "qemu-system-aar" received signal SIGSEGV, Segmentation fault. 0x0000aaaaaae356d0 in kvm_ioctl (s=3D0x0, type=3D44547) at accel/kvm/kvm-= all.c:2588 2588 ret =3D ioctl(s->fd, type, arg); (gdb) bt #0 0x0000aaaaaae356d0 in kvm_ioctl (s=3D0x0, type=3D44547) at accel/kvm/= kvm-all.c:2588 #1 0x0000aaaaaae31568 in kvm_check_extension (s=3D0x0, extension=3D126) = at accel/kvm/kvm-all.c:916 #2 0x0000aaaaaafce254 in kvm_arm_pmu_supported (cpu=3D0xaaaaac214ab0) at= target/arm/kvm.c:213 #3 0x0000aaaaaafc0f94 in arm_set_pmu (obj=3D0xaaaaac214ab0, value=3Dtrue= , errp=3D0xffffffffe438) at target/arm/cpu.c:1111 #4 0x0000aaaaab5533ac in property_set_bool (obj=3D0xaaaaac214ab0, v=3D0x= aaaaac223a80, name=3D0xaaaaac11a970 "pmu", opaque=3D0xaaaaac222730, errp=3D= 0xffffffffe438) at qom/object.c:2170 #5 0x0000aaaaab5512f0 in object_property_set (obj=3D0xaaaaac214ab0, v=3D= 0xaaaaac223a80, name=3D0xaaaaac11a970 "pmu", errp=3D0xffffffffe438) at qom/= object.c:1328 #6 0x0000aaaaab551e10 in object_property_parse (obj=3D0xaaaaac214ab0, st= ring=3D0xaaaaac11b4c0 "on", name=3D0xaaaaac11a970 "pmu", errp=3D0xffffffffe= 438) at qom/object.c:1561 #7 0x0000aaaaab54ee8c in object_apply_global_props (obj=3D0xaaaaac214ab0= , props=3D0xaaaaac018e20, errp=3D0xaaaaabd6fd88 ) at qom/objec= t.c:407 #8 0x0000aaaaab1dd5a4 in qdev_prop_set_globals (dev=3D0xaaaaac214ab0) at= hw/core/qdev-properties.c:1218 #9 0x0000aaaaab1d9fac in device_post_init (obj=3D0xaaaaac214ab0) at hw/c= ore/qdev.c:1050 ... #15 0x0000aaaaab54f310 in object_initialize_with_type (obj=3D0xaaaaac214a= b0, size=3D52208, type=3D0xaaaaabe237f0) at qom/object.c:512 #16 0x0000aaaaab54fa24 in object_new_with_type (type=3D0xaaaaabe237f0) at= qom/object.c:687 #17 0x0000aaaaab54fa80 in object_new (typename=3D0xaaaaabe23970 "host-arm= -cpu") at qom/object.c:702 #18 0x0000aaaaaaf04a74 in machvirt_init (machine=3D0xaaaaac0a8550) at hw/= arm/virt.c:1770 #19 0x0000aaaaab1e8720 in machine_run_board_init (machine=3D0xaaaaac0a855= 0) at hw/core/machine.c:1138 #20 0x0000aaaaaaf95394 in qemu_init (argc=3D5, argv=3D0xffffffffea58, env= p=3D0xffffffffea88) at softmmu/vl.c:4348 #21 0x0000aaaaaada3f74 in main (argc=3D, argv=3D, envp=3D) at softmmu/main.c:48 This is because in frame #2, cpu->kvm_state is still NULL (the vCPU is not yet realized). KVM has a hard requirement of all cores supporting the same feature set. We only need to check if the accelerator supports a feature, not each vCPU individually. Fix by removing the 'CPUState *cpu' argument from the kvm_arm__supported() functions. Fixes: d70c996df23f ('Use CPUState::kvm_state in kvm_arm_pmu_supported') Reported-by: Haibo Xu Reviewed-by: Andrew Jones Acked-by: Paolo Bonzini Signed-off-by: Philippe Mathieu-Daud=C3=A9 Suggested-by: Paolo Bonzini Signed-off-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Peter Maydell --- target/arm/kvm_arm.h | 21 +++++++++------------ target/arm/cpu.c | 2 +- target/arm/cpu64.c | 10 +++++----- target/arm/kvm.c | 4 ++-- target/arm/kvm64.c | 14 +++++--------- 5 files changed, 22 insertions(+), 29 deletions(-) diff --git a/target/arm/kvm_arm.h b/target/arm/kvm_arm.h index 48bf5e16d58..a4ce4fd93db 100644 --- a/target/arm/kvm_arm.h +++ b/target/arm/kvm_arm.h @@ -269,29 +269,26 @@ void kvm_arm_add_vcpu_properties(Object *obj); =20 /** * kvm_arm_aarch32_supported: - * @cs: CPUState * - * Returns: true if the KVM VCPU can enable AArch32 mode + * Returns: true if KVM can enable AArch32 mode * and false otherwise. */ -bool kvm_arm_aarch32_supported(CPUState *cs); +bool kvm_arm_aarch32_supported(void); =20 /** * kvm_arm_pmu_supported: - * @cs: CPUState * - * Returns: true if the KVM VCPU can enable its PMU + * Returns: true if KVM can enable the PMU * and false otherwise. */ -bool kvm_arm_pmu_supported(CPUState *cs); +bool kvm_arm_pmu_supported(void); =20 /** * kvm_arm_sve_supported: - * @cs: CPUState * - * Returns true if the KVM VCPU can enable SVE and false otherwise. + * Returns true if KVM can enable SVE and false otherwise. */ -bool kvm_arm_sve_supported(CPUState *cs); +bool kvm_arm_sve_supported(void); =20 /** * kvm_arm_get_max_vm_ipa_size: @@ -359,17 +356,17 @@ static inline void kvm_arm_set_cpu_features_from_host= (ARMCPU *cpu) =20 static inline void kvm_arm_add_vcpu_properties(Object *obj) {} =20 -static inline bool kvm_arm_aarch32_supported(CPUState *cs) +static inline bool kvm_arm_aarch32_supported(void) { return false; } =20 -static inline bool kvm_arm_pmu_supported(CPUState *cs) +static inline bool kvm_arm_pmu_supported(void) { return false; } =20 -static inline bool kvm_arm_sve_supported(CPUState *cs) +static inline bool kvm_arm_sve_supported(void) { return false; } diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 5b7a36b5d7e..e44e18062cf 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -1108,7 +1108,7 @@ static void arm_set_pmu(Object *obj, bool value, Erro= r **errp) ARMCPU *cpu =3D ARM_CPU(obj); =20 if (value) { - if (kvm_enabled() && !kvm_arm_pmu_supported(CPU(cpu))) { + if (kvm_enabled() && !kvm_arm_pmu_supported()) { error_setg(errp, "'pmu' feature not supported by KVM on this h= ost"); return; } diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c index 778cecc2e6c..a0c1d8894b7 100644 --- a/target/arm/cpu64.c +++ b/target/arm/cpu64.c @@ -266,7 +266,7 @@ void arm_cpu_sve_finalize(ARMCPU *cpu, Error **errp) =20 /* Collect the set of vector lengths supported by KVM. */ bitmap_zero(kvm_supported, ARM_MAX_VQ); - if (kvm_enabled() && kvm_arm_sve_supported(CPU(cpu))) { + if (kvm_enabled() && kvm_arm_sve_supported()) { kvm_arm_sve_get_vls(CPU(cpu), kvm_supported); } else if (kvm_enabled()) { assert(!cpu_isar_feature(aa64_sve, cpu)); @@ -473,7 +473,7 @@ static void cpu_max_set_sve_max_vq(Object *obj, Visitor= *v, const char *name, return; } =20 - if (kvm_enabled() && !kvm_arm_sve_supported(CPU(cpu))) { + if (kvm_enabled() && !kvm_arm_sve_supported()) { error_setg(errp, "cannot set sve-max-vq"); error_append_hint(errp, "SVE not supported by KVM on this host\n"); return; @@ -519,7 +519,7 @@ static void cpu_arm_set_sve_vq(Object *obj, Visitor *v,= const char *name, return; } =20 - if (value && kvm_enabled() && !kvm_arm_sve_supported(CPU(cpu))) { + if (value && kvm_enabled() && !kvm_arm_sve_supported()) { error_setg(errp, "cannot enable %s", name); error_append_hint(errp, "SVE not supported by KVM on this host\n"); return; @@ -556,7 +556,7 @@ static void cpu_arm_set_sve(Object *obj, Visitor *v, co= nst char *name, return; } =20 - if (value && kvm_enabled() && !kvm_arm_sve_supported(CPU(cpu))) { + if (value && kvm_enabled() && !kvm_arm_sve_supported()) { error_setg(errp, "'sve' feature not supported by KVM on this host"= ); return; } @@ -751,7 +751,7 @@ static void aarch64_cpu_set_aarch64(Object *obj, bool v= alue, Error **errp) * uniform execution state like do_interrupt. */ if (value =3D=3D false) { - if (!kvm_enabled() || !kvm_arm_aarch32_supported(CPU(cpu))) { + if (!kvm_enabled() || !kvm_arm_aarch32_supported()) { error_setg(errp, "'aarch64' feature cannot be disabled " "unless KVM is enabled and 32-bit EL1 " "is supported"); diff --git a/target/arm/kvm.c b/target/arm/kvm.c index eef3bbd1cc2..7c672c78b88 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -208,9 +208,9 @@ void kvm_arm_add_vcpu_properties(Object *obj) } } =20 -bool kvm_arm_pmu_supported(CPUState *cpu) +bool kvm_arm_pmu_supported(void) { - return kvm_check_extension(cpu->kvm_state, KVM_CAP_ARM_PMU_V3); + return kvm_check_extension(kvm_state, KVM_CAP_ARM_PMU_V3); } =20 int kvm_arm_get_max_vm_ipa_size(MachineState *ms) diff --git a/target/arm/kvm64.c b/target/arm/kvm64.c index f09ed9f4df3..3dc494aaa7e 100644 --- a/target/arm/kvm64.c +++ b/target/arm/kvm64.c @@ -652,18 +652,14 @@ bool kvm_arm_get_host_cpu_features(ARMHostCPUFeatures= *ahcf) return true; } =20 -bool kvm_arm_aarch32_supported(CPUState *cpu) +bool kvm_arm_aarch32_supported(void) { - KVMState *s =3D KVM_STATE(current_accel()); - - return kvm_check_extension(s, KVM_CAP_ARM_EL1_32BIT); + return kvm_check_extension(kvm_state, KVM_CAP_ARM_EL1_32BIT); } =20 -bool kvm_arm_sve_supported(CPUState *cpu) +bool kvm_arm_sve_supported(void) { - KVMState *s =3D KVM_STATE(current_accel()); - - return kvm_check_extension(s, KVM_CAP_ARM_SVE); + return kvm_check_extension(kvm_state, KVM_CAP_ARM_SVE); } =20 QEMU_BUILD_BUG_ON(KVM_ARM64_SVE_VQ_MIN !=3D 1); @@ -798,7 +794,7 @@ int kvm_arch_init_vcpu(CPUState *cs) env->features &=3D ~(1ULL << ARM_FEATURE_PMU); } if (cpu_isar_feature(aa64_sve, cpu)) { - assert(kvm_arm_sve_supported(cs)); + assert(kvm_arm_sve_supported()); cpu->kvm_init_features[0] |=3D 1 << KVM_ARM_VCPU_SVE; } =20 --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592914784; cv=none; d=zohomail.com; s=zohoarc; b=NyAPo1GYl1hzMfTs5zXmYwKSKcIVKF4jwV4U5aFEadMA81pjrzBOX2fPXEFOKSYInywI7t2xEZPpV0HxPaymeABejfxMwLgefXwuAruUWosS/eB4KfUQyyhb/tyPC5Erd0KQdw22SGF2moWqp0yTojag8ROInD2d0id18pQct8o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592914784; h=Content-Type:Content-Transfer-Encoding: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=n6zJE0yRFKX8qUS2j9Gbp90DG/pGEs6Utl5blOSwKkE=; b=Tltoc89z7FlATU0Hrzs1OT9VN7kUxhxGS6LhlbdIG4If460RWlONNRFKVULpe+LRMbbpxxDJJqKBzdY07SLAdm/BISdArKC/KocjxcXTCxjVUKDSTQfE67DoqU2CPS4C6ehj95A47vS26ThF73aNeEUce2gUMKrBavzpmAqLXDY= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592914784698713.8933402312468; Tue, 23 Jun 2020 05:19:44 -0700 (PDT) Received: from localhost ([::1]:48468 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhtu-0007tH-QC for importer@patchew.org; Tue, 23 Jun 2020 08:19:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44528) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhHV-0003dg-0k for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:40:01 -0400 Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]:42345) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhHP-0003U9-Dm for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:40:00 -0400 Received: by mail-wr1-x435.google.com with SMTP id o11so12450054wrv.9 for ; Tue, 23 Jun 2020 04:39:54 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.52 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:52 -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=n6zJE0yRFKX8qUS2j9Gbp90DG/pGEs6Utl5blOSwKkE=; b=KxSkZ4CxYJYh0vSGxFXyjuv1LH+k8DwHeLKMrr4FRJN2mX2MX/pqkD0cZZCifihqtI woXWscOYu7SOUUmXxILNgY5Vz+3pHpFnDy+7BcncLFg8MIEk0mdlLO7lmy5DwaicepjA EqcuHxNxaj+uFb0MieYayoAM8ZtgCALXu4SeL3H1oSjbNWOGZHfAiZjZNlpOW1pWPYTS GWg/NnJdwDs0oOMs8MhJ87Pzra+NDUIMjCAem9DY3zqRur3BJklNRXkSbvwcvMN2V5am j5DWjJkB5K8LM6k/n17eu5hf1pNVGt/j7f7rT2BalAcnG2beJOpE/kwQ9KL5pX2mLFU5 jkKw== 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=n6zJE0yRFKX8qUS2j9Gbp90DG/pGEs6Utl5blOSwKkE=; b=qNTJMx84CmKJia6N6EP3ipT2PUIC6LptLEScCqh81lQEfk02N2yZZVqCJHBCI8L2pA 12E6oscHX/DIwsVZPsqgDLqzFdh8namicRcrzef2I9pnWbifMQEeVn7w5MBwZBeAiHWV b3byTgaTz0GcY6volWRHrrsyYQqtrXOsSJysjlWlkE+l6GFIaDVCZeYaFrk3/ssRLeHx wl5EG9sqALYMPj1p+MkxSD7HOqrsDTqsvZidQTdN79o4b7ERCDlAlf71FfsE0YDZFmvm BbLXwyivDy/SwxD70JTKo75ScdjhuiNUA9f9PD/zC67XUd2AwsDkbTRHU0T+a90Nf1D1 gO0g== X-Gm-Message-State: AOAM5331210/DvCk088Ok5rR7rzlXpUJ+8Kz7BA6OV/dSIxnUcKORIrE Ia6cPCXU1tdK2pTwpFEZADyqpA6Pk+GeVw== X-Google-Smtp-Source: ABdhPJxsS/kvwA25vSYO0t3MBLnO2e6iVLujEakx+4/Nt3nVSwHk5n1bAoJ3kaZjAg2WrFfMN0wUQA== X-Received: by 2002:a5d:458a:: with SMTP id p10mr19518630wrq.184.1592912393453; Tue, 23 Jun 2020 04:39:53 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 41/42] tests/qtest/arm-cpu-features: Add feature setting tests Date: Tue, 23 Jun 2020 12:39:03 +0100 Message-Id: <20200623113904.28805-42-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::435; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x435.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) From: Andrew Jones Some cpu features may be enabled and disabled for all configurations that support the feature. Let's test that. A recent regression[*] inspired adding these tests. [*] '-cpu host,pmu=3Don' caused a segfault Signed-off-by: Andrew Jones Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20200623090622.30365-2-philmd@redhat.com Message-Id: <20200623082310.17577-1-drjones@redhat.com> Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- tests/qtest/arm-cpu-features.c | 38 ++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/tests/qtest/arm-cpu-features.c b/tests/qtest/arm-cpu-features.c index 46921736766..f7e062c1891 100644 --- a/tests/qtest/arm-cpu-features.c +++ b/tests/qtest/arm-cpu-features.c @@ -159,16 +159,35 @@ static bool resp_get_feature(QDict *resp, const char = *feature) qobject_unref(_resp); \ }) =20 -#define assert_feature(qts, cpu_type, feature, expected_value) \ +#define resp_assert_feature(resp, feature, expected_value) \ ({ \ - QDict *_resp, *_props; \ + QDict *_props; \ \ - _resp =3D do_query_no_props(qts, cpu_type); \ g_assert(_resp); \ g_assert(resp_has_props(_resp)); \ _props =3D resp_get_props(_resp); \ g_assert(qdict_get(_props, feature)); \ g_assert(qdict_get_bool(_props, feature) =3D=3D (expected_value)); = \ +}) + +#define assert_feature(qts, cpu_type, feature, expected_value) \ +({ \ + QDict *_resp; \ + \ + _resp =3D do_query_no_props(qts, cpu_type); \ + g_assert(_resp); \ + resp_assert_feature(_resp, feature, expected_value); \ + qobject_unref(_resp); \ +}) + +#define assert_set_feature(qts, cpu_type, feature, value) \ +({ \ + const char *_fmt =3D (value) ? "{ %s: true }" : "{ %s: false }"; \ + QDict *_resp; \ + \ + _resp =3D do_query(qts, cpu_type, _fmt, feature); \ + g_assert(_resp); \ + resp_assert_feature(_resp, feature, value); \ qobject_unref(_resp); \ }) =20 @@ -424,10 +443,14 @@ static void test_query_cpu_model_expansion(const void= *data) assert_error(qts, "host", "The CPU type 'host' requires KVM", NULL); =20 /* Test expected feature presence/absence for some cpu types */ - assert_has_feature_enabled(qts, "max", "pmu"); assert_has_feature_enabled(qts, "cortex-a15", "pmu"); assert_has_not_feature(qts, "cortex-a15", "aarch64"); =20 + /* Enabling and disabling pmu should always work. */ + assert_has_feature_enabled(qts, "max", "pmu"); + assert_set_feature(qts, "max", "pmu", false); + assert_set_feature(qts, "max", "pmu", true); + assert_has_not_feature(qts, "max", "kvm-no-adjvtime"); =20 if (g_str_equal(qtest_get_arch(), "aarch64")) { @@ -464,7 +487,10 @@ static void test_query_cpu_model_expansion_kvm(const v= oid *data) return; } =20 + /* Enabling and disabling kvm-no-adjvtime should always work. */ assert_has_feature_disabled(qts, "host", "kvm-no-adjvtime"); + assert_set_feature(qts, "host", "kvm-no-adjvtime", true); + assert_set_feature(qts, "host", "kvm-no-adjvtime", false); =20 if (g_str_equal(qtest_get_arch(), "aarch64")) { bool kvm_supports_sve; @@ -475,7 +501,11 @@ static void test_query_cpu_model_expansion_kvm(const v= oid *data) char *error; =20 assert_has_feature_enabled(qts, "host", "aarch64"); + + /* Enabling and disabling pmu should always work. */ assert_has_feature_enabled(qts, "host", "pmu"); + assert_set_feature(qts, "host", "pmu", false); + assert_set_feature(qts, "host", "pmu", true); =20 assert_error(qts, "cortex-a15", "We cannot guarantee the CPU type 'cortex-a15' works " --=20 2.20.1 From nobody Mon Apr 29 05:52:15 2024 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=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1592914866; cv=none; d=zohomail.com; s=zohoarc; b=ONnrXLg2DudnxQMOGSrQDiBl3ULgpr1lPldc0QsIm067Wx02xJ05kksZtN6leu8C0MluWRjKSkOYXDzGyZLNVxKLGdzJAjsw6rLRA8WQeGI2VgH7+hWViXnBHJcD9tK8AHprWuLfR440gErVzhFQ0+z3g5cNvv4lLwSo7onkVu4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1592914866; h=Content-Transfer-Encoding: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=V8OF0cHLNo6v+d5wet1KycbqJypFZ6qY8AQTtLvyqGE=; b=RNaX9Y6kz+1aAp//TBhpRQrkI5qB6F4zuaGNnonscnQayMsObARxg/GjZf2CDP7lRWfuYwHOFKMhVvjh9aFoCYmb6PWAtzv83qLoUOoE93sYgVMYoiVqTvWHrGd4WbwBppuqvQd5x0iTlG3QbY2sCvVMFjv3QYFtdDFy9SeoycI= 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=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1592914866121151.96168165812105; Tue, 23 Jun 2020 05:21:06 -0700 (PDT) Received: from localhost ([::1]:52728 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnhvE-0001Jc-Tg for importer@patchew.org; Tue, 23 Jun 2020 08:21:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44588) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnhHX-0003ec-4u for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:40:03 -0400 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]:52107) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jnhHU-0003UK-PH for qemu-devel@nongnu.org; Tue, 23 Jun 2020 07:40:02 -0400 Received: by mail-wm1-x32e.google.com with SMTP id 22so1816751wmg.1 for ; Tue, 23 Jun 2020 04:39:55 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id m10sm4022177wru.4.2020.06.23.04.39.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 04:39:53 -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=V8OF0cHLNo6v+d5wet1KycbqJypFZ6qY8AQTtLvyqGE=; b=V6jEi13xqR8p1EuCjDGVsVeGEDPGEWnAvja33iY4z6waozIck5bb12+tnDnS5tyeiQ aOpKKr7/ieTEzs07rRKuU3uGcVIjqDQO8AJ+IKNXi2vUtRG72AH6oTnavu7HLRFQ8j9q tA1746CcPnxkn+xU4xXDvt0q4fPFADUOqydtheSZg3SXuPNJb7gowZIYqKU/a/HmjE/K ILyJeL8QgyyPijjX9m0mHA7gFPi0/H9OvFr7cE0gl1SXTkDrx6MS5mjkfId5qGEEuHS0 p0P8OEDmBxwbSil0V+IlC/oCCBkwrkZvUCcTxhracznHnuCUzl3UgFMQtJWpJybhpceB O3+w== 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=V8OF0cHLNo6v+d5wet1KycbqJypFZ6qY8AQTtLvyqGE=; b=N6e8vWWsT8/qjErvu5Thg2rQ4hulFmkHUZSBshs2VEASCtGP9WBwci4UIJz4bWrUeo stfSslnJWWuVO2OxT06TORKfBn9gAUKsLvJPQVnIiDB0tJRZVH1rYhZZjkbFvZpI4NpB 81u13aQILwLZx6BY1bG7XfaS7OQrLRJyewnHhExPzeOje8j9imLvDLqqRoYLHoPZKhSl 7THvX7tBvGAg9LJChDvCVMyDQn70n4rvjwRjBwttN9Pq+sdZTy3RadJ8vt+bJjLhvqb4 +z9WEKcjfVaumx9bjvtxxCT1/1k8MuKgO1gv6XicK7XLT1lKo7aV8TX5f2AVTr+p8PfM WiRg== X-Gm-Message-State: AOAM533f0ywCBkGa+bi2FGDcRX4uMMMoDfy65eJ/2Bb0U1iLhh2KuSpc nHNwS6qT0Xhp7uUn5dYtRCOUxttoOCDcRA== X-Google-Smtp-Source: ABdhPJzhsYIOiBbM7JL2TK+Ra99d8M16U4g16bCJZi+xgUTKme9t+ismjnTkZOZ9dIDKkjw8nABXhw== X-Received: by 2002:a1c:2e58:: with SMTP id u85mr23308430wmu.123.1592912394557; Tue, 23 Jun 2020 04:39:54 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 42/42] arm/virt: Add memory hot remove support Date: Tue, 23 Jun 2020 12:39:04 +0100 Message-Id: <20200623113904.28805-43-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623113904.28805-1-peter.maydell@linaro.org> References: <20200623113904.28805-1-peter.maydell@linaro.org> 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=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32e; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32e.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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=_AUTOLEARN 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" From: Shameer Kolothum This adds support for memory(pc-dimm) hot remove on arm/virt that uses acpi ged device. NVDIMM hot removal is not yet supported. Signed-off-by: Shameer Kolothum Message-id: 20200622124157.20360-1-shameerali.kolothum.thodi@huawei.com Reviewed-by: Eric Auger Tested-by: Eric Auger Signed-off-by: Peter Maydell --- hw/acpi/generic_event_device.c | 29 ++++++++++++++++ hw/arm/virt.c | 62 ++++++++++++++++++++++++++++++++-- 2 files changed, 89 insertions(+), 2 deletions(-) diff --git a/hw/acpi/generic_event_device.c b/hw/acpi/generic_event_device.c index 1cb34111e59..b8abdefa1c7 100644 --- a/hw/acpi/generic_event_device.c +++ b/hw/acpi/generic_event_device.c @@ -193,6 +193,33 @@ static void acpi_ged_device_plug_cb(HotplugHandler *ho= tplug_dev, } } =20 +static void acpi_ged_unplug_request_cb(HotplugHandler *hotplug_dev, + DeviceState *dev, Error **errp) +{ + AcpiGedState *s =3D ACPI_GED(hotplug_dev); + + if ((object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM) && + !(object_dynamic_cast(OBJECT(dev), TYPE_NVDIMM)))) { + acpi_memory_unplug_request_cb(hotplug_dev, &s->memhp_state, dev, e= rrp); + } else { + error_setg(errp, "acpi: device unplug request for unsupported devi= ce" + " type: %s", object_get_typename(OBJECT(dev))); + } +} + +static void acpi_ged_unplug_cb(HotplugHandler *hotplug_dev, + DeviceState *dev, Error **errp) +{ + AcpiGedState *s =3D ACPI_GED(hotplug_dev); + + if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) { + acpi_memory_unplug_cb(&s->memhp_state, dev, errp); + } else { + error_setg(errp, "acpi: device unplug for unsupported device" + " type: %s", object_get_typename(OBJECT(dev))); + } +} + static void acpi_ged_send_event(AcpiDeviceIf *adev, AcpiEventStatusBits ev) { AcpiGedState *s =3D ACPI_GED(adev); @@ -318,6 +345,8 @@ static void acpi_ged_class_init(ObjectClass *class, voi= d *data) dc->vmsd =3D &vmstate_acpi_ged; =20 hc->plug =3D acpi_ged_device_plug_cb; + hc->unplug_request =3D acpi_ged_unplug_request_cb; + hc->unplug =3D acpi_ged_unplug_cb; =20 adevc->send_event =3D acpi_ged_send_event; } diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 8b6e6aa7b13..402c362c144 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -2177,11 +2177,68 @@ static void virt_machine_device_plug_cb(HotplugHand= ler *hotplug_dev, } } =20 +static void virt_dimm_unplug_request(HotplugHandler *hotplug_dev, + DeviceState *dev, Error **errp) +{ + VirtMachineState *vms =3D VIRT_MACHINE(hotplug_dev); + Error *local_err =3D NULL; + + if (!vms->acpi_dev) { + error_setg(&local_err, + "memory hotplug is not enabled: missing acpi-ged device= "); + goto out; + } + + if (object_dynamic_cast(OBJECT(dev), TYPE_NVDIMM)) { + error_setg(&local_err, + "nvdimm device hot unplug is not supported yet."); + goto out; + } + + hotplug_handler_unplug_request(HOTPLUG_HANDLER(vms->acpi_dev), dev, + &local_err); +out: + error_propagate(errp, local_err); +} + +static void virt_dimm_unplug(HotplugHandler *hotplug_dev, + DeviceState *dev, Error **errp) +{ + VirtMachineState *vms =3D VIRT_MACHINE(hotplug_dev); + Error *local_err =3D NULL; + + hotplug_handler_unplug(HOTPLUG_HANDLER(vms->acpi_dev), dev, &local_err= ); + if (local_err) { + goto out; + } + + pc_dimm_unplug(PC_DIMM(dev), MACHINE(vms)); + qdev_unrealize(dev); + +out: + error_propagate(errp, local_err); +} + static void virt_machine_device_unplug_request_cb(HotplugHandler *hotplug_= dev, DeviceState *dev, Error **errp) { - error_setg(errp, "device unplug request for unsupported device" - " type: %s", object_get_typename(OBJECT(dev))); + if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) { + virt_dimm_unplug_request(hotplug_dev, dev, errp); + } else { + error_setg(errp, "device unplug request for unsupported device" + " type: %s", object_get_typename(OBJECT(dev))); + } +} + +static void virt_machine_device_unplug_cb(HotplugHandler *hotplug_dev, + DeviceState *dev, Error **errp) +{ + if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) { + virt_dimm_unplug(hotplug_dev, dev, errp); + } else { + error_setg(errp, "virt: device unplug for unsupported device" + " type: %s", object_get_typename(OBJECT(dev))); + } } =20 static HotplugHandler *virt_machine_get_hotplug_handler(MachineState *mach= ine, @@ -2262,6 +2319,7 @@ static void virt_machine_class_init(ObjectClass *oc, = void *data) hc->pre_plug =3D virt_machine_device_pre_plug_cb; hc->plug =3D virt_machine_device_plug_cb; hc->unplug_request =3D virt_machine_device_unplug_request_cb; + hc->unplug =3D virt_machine_device_unplug_cb; mc->numa_mem_supported =3D true; mc->nvdimm_supported =3D true; mc->auto_enable_numa_with_memhp =3D true; --=20 2.20.1