From nobody Fri Apr 19 22:44:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1528894873861269.52677586627067; Wed, 13 Jun 2018 06:01:13 -0700 (PDT) Received: from localhost ([::1]:34017 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5Og-0006T7-Ux for importer@patchew.org; Wed, 13 Jun 2018 09:01:11 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50301) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5Jn-0002Zs-UZ for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fT5Jk-0004yG-Cf for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:07 -0400 Received: from mail-wm0-x241.google.com ([2a00:1450:400c:c09::241]:39920) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fT5Jk-0004wn-6Y for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:04 -0400 Received: by mail-wm0-x241.google.com with SMTP id p11-v6so5195700wmc.4 for ; Wed, 13 Jun 2018 05:56:04 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id t124-v6sm1888164wmt.29.2018.06.13.05.56.01 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 13 Jun 2018 05:56:01 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 3F4D03E107F; Wed, 13 Jun 2018 13:56:01 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=lfDeWWNhynT+bHfVx2iVFfKzFPZddNw3Q5EtpZmHVP0=; b=YQ0M72cLRn3t+iJyloeU6WPY4vWLIox9TMYYZANGnPW3zaUu+b/QLvFXzPePnjzYEB aXk3DvakdGuuVvy7kh5GdAwmF4rleQu0hA+uxCQAg0YJ+F1U9wIEJC95l+F2H4cIWaf/ 63LPMI1sEzyKmXw7YXabdEoO52nVK6l+pvEV0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=lfDeWWNhynT+bHfVx2iVFfKzFPZddNw3Q5EtpZmHVP0=; b=P0Awmjr819aKgh258w7veLoynmqivjKjyEjV9yqtiU17B7IW6atGl1diJ6N16ZFLXi cgIbBtfctwtcdrXwCveg3JJwosUQPF+QnOdvsrkhiM9TAirKxbWdUtN/nTURUA6juwhY LUMFr+CaDEc99ahJ6GDPhODT4e0vcTycM+/l+A9BJ8yPEGjzuETYD+Gw0/GiYiDb8/0t zWx86ipuWqzZypnY+I851uTCKqIjSpCVl6uT6nB+IpWibA8YEOup36T67yTz+OKPKkkZ sqfS/TITJNLXp9pRdHXVXNPdccPbVTTw+3c9AdswZEGgy7psi2FFjy6MQz+cjwFadKbe nKKQ== X-Gm-Message-State: APt69E1CJeS1UZKW4nemBCDq+nu2oL6muYl/q33etUUju0t888G7eGmU 5s9d8m3V5Kz0Eh/ZKq5U1qLQzg== X-Google-Smtp-Source: ADUXVKKWcXogzqKSC6X3MCUpOvWJfbE5H8A7Zvy98YXsj1jTo/ZyeT6D/nPW6YINetCEK8BveSuoOw== X-Received: by 2002:a1c:9a51:: with SMTP id c78-v6mr3340519wme.118.1528894563065; Wed, 13 Jun 2018 05:56:03 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Wed, 13 Jun 2018 13:55:40 +0100 Message-Id: <20180613125601.14371-2-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180613125601.14371-1-alex.bennee@linaro.org> References: <20180613125601.14371-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::241 Subject: [Qemu-devel] [RISU PATCH v3 01/22] risu_reginfo_aarch64: include signal.h for FPSIMD_MAGIC X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-arm@nongnu.org, richard.henderson@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Building with the Bionic Beaver cross compilers fails which probably means we were getting this as a side effect before. Include the correct header to get at these bits. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Richard Henderson --- risu_reginfo_aarch64.c | 1 + 1 file changed, 1 insertion(+) diff --git a/risu_reginfo_aarch64.c b/risu_reginfo_aarch64.c index e3fadde..3bb4339 100644 --- a/risu_reginfo_aarch64.c +++ b/risu_reginfo_aarch64.c @@ -13,6 +13,7 @@ #include #include #include +#include /* for FPSIMD_MAGIC */ =20 #include "risu.h" #include "risu_reginfo_aarch64.h" --=20 2.17.1 From nobody Fri Apr 19 22:44:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1528894699897734.1618637467237; Wed, 13 Jun 2018 05:58:19 -0700 (PDT) Received: from localhost ([::1]:33994 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5Lm-0003qi-CG for importer@patchew.org; Wed, 13 Jun 2018 08:58:10 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50296) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5Jn-0002Zp-Ty for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fT5Jl-0004za-AE for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:07 -0400 Received: from mail-wr0-x243.google.com ([2a00:1450:400c:c0c::243]:36603) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fT5Jl-0004yD-3y for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:05 -0400 Received: by mail-wr0-x243.google.com with SMTP id f16-v6so2665836wrm.3 for ; Wed, 13 Jun 2018 05:56:04 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id z3-v6sm2875392wrn.42.2018.06.13.05.56.01 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 13 Jun 2018 05:56:02 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 4B5963E10A4; Wed, 13 Jun 2018 13:56:01 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=uPJGhUZMN9OICgRHF4EF6gY4Qz617Mu28M40KL4BiT8=; b=Au3urgvR5gf3zpgwJd15PFd69YJirza1P4TWgh+fChxorG+IGPUcXOrL7uaLgWfJ05 EuTb86l0CRaTSx5zvUcPDV37/vFN2QKXDNUzhKADkgb83C8o5YV5tZ67Nhas7x6bmNrr HgFNnn/U+XsrtCdB29NddqnfBn3unnbNOHpz0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=uPJGhUZMN9OICgRHF4EF6gY4Qz617Mu28M40KL4BiT8=; b=TH70S4a/8z3vBGtsfa/WzaW2ro67hIj5G5Zpvf6pGbsSMLwhhqM5KAsLsEEGmShaKk qMmnghD9BQ8P5U6eQKlqIQfwNweBFj+XIIgjoOtOqd0ohtK6ZyexqHP2OwjyeBp2i3bx okwoz3P/i4z+NM5KtHphB8eeod9/hvUg5hUzKRviBJ00DDmowNSB8AoRxwHE1hmZUMCl d8z2mQYpZSqOb1JPTrpwGDXpe2yBYxplsyO8ZN9gB3RdFUF8eozG/zkZzrsYHD2spFJh tMek9nPWP0MD4ojhz6qrc53yIccdyt6PkJgXGPNSkCScEEiZzcRRfuzYrEVxkZxNOjBK vZtQ== X-Gm-Message-State: APt69E2I/Smpvqo8RJRezg8w8YPAkNPpDL/U+rYc98Zi/yO9WkAjXC18 qXOQCIaGoD4YKOzQAeNVmd6nOg== X-Google-Smtp-Source: ADUXVKLCiwMcj1DUJJZ24PJCNJP3Iq3iIqHUFmKGj4SsSMu2hQ7DDsFyqee7SqPYMAA0gdWklPMyIw== X-Received: by 2002:adf:81a6:: with SMTP id 35-v6mr4249189wra.60.1528894563847; Wed, 13 Jun 2018 05:56:03 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Wed, 13 Jun 2018 13:55:41 +0100 Message-Id: <20180613125601.14371-3-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180613125601.14371-1-alex.bennee@linaro.org> References: <20180613125601.14371-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::243 Subject: [Qemu-devel] [RISU PATCH v3 02/22] comms: include header for writev X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-arm@nongnu.org, richard.henderson@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 The compiler complains about implicit declarations otherwise. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Richard Henderson --- comms.c | 1 + 1 file changed, 1 insertion(+) diff --git a/comms.c b/comms.c index 2900c33..6946fd9 100644 --- a/comms.c +++ b/comms.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include =20 --=20 2.17.1 From nobody Fri Apr 19 22:44:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1528894698995832.5868756475563; Wed, 13 Jun 2018 05:58:18 -0700 (PDT) Received: from localhost ([::1]:33995 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5Lp-0003tO-LH for importer@patchew.org; Wed, 13 Jun 2018 08:58:13 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50294) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5Jn-0002Zo-TY for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fT5Jm-00050m-14 for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:07 -0400 Received: from mail-wm0-x229.google.com ([2a00:1450:400c:c09::229]:54230) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fT5Jl-0004zM-RM for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:05 -0400 Received: by mail-wm0-x229.google.com with SMTP id x6-v6so4524485wmc.3 for ; Wed, 13 Jun 2018 05:56:05 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id v14-v6sm2988414wro.33.2018.06.13.05.56.01 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 13 Jun 2018 05:56:03 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 56A2B3E10B4; Wed, 13 Jun 2018 13:56:01 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=KPEpDniC/v0/LmqxJpn4p9Ffr05ugc4zTNV+MFf4kuI=; b=AUHW86asdgx1KVYhlh7euGwZpJkmoLHRuKDVLzlMMB7AfVjBMneg6zYL8kRZfvLH8W ndvFlhltmgViewR+6wZhDZPmr7Pi4P19+LKYauH+ipaRnpVmDkUWbn9ZngDo5VnoBG9x NsGAexmAmNe2O/slYXK+LNxyJRmuVCrN689+8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=KPEpDniC/v0/LmqxJpn4p9Ffr05ugc4zTNV+MFf4kuI=; b=dQQY9eSe5Mz/gucb4AWyrjtoJLaycfA9orQYRvOU2dCHsyF22il7GCSkMJD3lfo5Rz VJesItUm6T6BIr51Ik7XSYfnwyymnzbZ+gzek4bOzrQPRjmHV3JX9qQRa6UxluJC7OsS U0alL4jteO2pUIs+X84X1GueOkXfulaeOi41kCkT7EqZMKjhjNxVnRC0ZiomTp5V+fEs HjLsts6UsbsxZpfnS5YwZ9JWKGqpuCjzf6S4dW+a/1/d53RFBIbjGVXDFHsOrv5/VZ5U m8QPSES+iMmaVzsTgjreLxdU03HHkRECgMkKJ+y+rIcTzbaSx1w8zfxxSgeVjFTbMVKz qOCQ== X-Gm-Message-State: APt69E0x2pPwlFLsJfvixssx+oWr0JA6Crsidaga65N77ngwVWrkG8lx qPbKnfS0dE46zT8EejmPKIRQOw== X-Google-Smtp-Source: ADUXVKK2AEcBBxls5E36CFMueso6h//RQmCrhqnJvUqrNb+yltH3oiCn9ob0RmVXKtOCzEAuFdjUfA== X-Received: by 2002:a1c:cfc2:: with SMTP id f185-v6mr3387125wmg.101.1528894564648; Wed, 13 Jun 2018 05:56:04 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Wed, 13 Jun 2018 13:55:42 +0100 Message-Id: <20180613125601.14371-4-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180613125601.14371-1-alex.bennee@linaro.org> References: <20180613125601.14371-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::229 Subject: [Qemu-devel] [RISU PATCH v3 03/22] build-all-arches: expand the range of docker images X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-arm@nongnu.org, richard.henderson@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 We won't actually want power, we want ppc64el for the 64 bit version. Also we will soon have m68k so include that as well. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Richard Henderson --- build-all-archs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-all-archs b/build-all-archs index fa2ac90..a2f5cff 100755 --- a/build-all-archs +++ b/build-all-archs @@ -39,7 +39,7 @@ while [[ "$1" =3D -* ]]; do ;; --use-docker) if [ -z "$arg" ]; then - default_tags=3D$(docker images qemu --format "{{.Repositor= y}}:{{.Tag}}" | grep "\(arm\|power\).*cross$") + default_tags=3D$(docker images qemu --format "{{.Repositor= y}}:{{.Tag}}" | grep "\(arm\|ppc64el\|m68k\).*cross$") docker_tags=3D$(echo $default_tags | sed 's/\n/\s/g' ) else docker_tags=3D"$arg" --=20 2.17.1 From nobody Fri Apr 19 22:44:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1528894894189801.8587578539119; Wed, 13 Jun 2018 06:01:34 -0700 (PDT) Received: from localhost ([::1]:34020 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5P3-0006jD-B2 for importer@patchew.org; Wed, 13 Jun 2018 09:01:33 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50348) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5Jp-0002aa-C2 for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fT5Jm-00051z-MC for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:09 -0400 Received: from mail-wm0-x243.google.com ([2a00:1450:400c:c09::243]:56059) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fT5Jm-00050b-F9 for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:06 -0400 Received: by mail-wm0-x243.google.com with SMTP id v16-v6so4521524wmh.5 for ; Wed, 13 Jun 2018 05:56:06 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id l15-v6sm2754700wrs.95.2018.06.13.05.56.01 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 13 Jun 2018 05:56:03 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 634113E1124; Wed, 13 Jun 2018 13:56:01 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=KCKIq+8OEady2Byjj4NMgletq2g04qOhocFOf1HWHBA=; b=b9Y0L1YhKkexSWaHhONAu5baePgADIu0RVtm/yWGHUvfxYjFhx1wEwnJzi6Y8jqZkF jBVtj00mJX3WKFF4Ojw8qB9E2QtUTKR49l3W+MCqytSmOFtQish98qInVCoD9zvnQDKE pbyBtHcYFDb/DRY0+9YtU3vAj1/JSD/uuaykw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=KCKIq+8OEady2Byjj4NMgletq2g04qOhocFOf1HWHBA=; b=R3eruhGyY9FbgqF4V17V9CQ9lQkIRc0iiAqLf5pX2rD7AJqqUspyRo82Y7bUbncOZK ZtxzGU9UmjjN+PKTNxnk3Cg3Vxqsr3626UaTrxx5sH+0/BuHXGIaFiQDbMdTf3CEXuQg 1tj3XAoEqEpGEage/x1RyLXuLMqhj2/Y0Kp/A/juHnxU3CBymoAxdVlGtlgXo9WAT3iQ dDTpIaQJPBc+hs1ArPaJCKafQqZSFt8vU5obdYdrrH5llsZoLNoSa8Ceq+TB7oYqYIpB dbPiAv4WH3G6+I4nXqdhDdajYOFLEwhWnUb8ru4H6048cXzYuiyXxwQF8pjd0vqPI0bE N+5w== X-Gm-Message-State: APt69E3972llsCN4uMpiM4eMUI1e1OO2n2CYB8mD/U7yN+z8sk8pgKvB 7bQlGF8g2NflqVntjm+CcqUEgQ== X-Google-Smtp-Source: ADUXVKJxHjA3+BgclsMoYZZ8mISnKQtOW7At7qACRm3e4fW/1RxnGMHtEYGkuCHeKBxTCwCo7ivWbw== X-Received: by 2002:a1c:14cc:: with SMTP id 195-v6mr3317266wmu.48.1528894565395; Wed, 13 Jun 2018 05:56:05 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Wed, 13 Jun 2018 13:55:43 +0100 Message-Id: <20180613125601.14371-5-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180613125601.14371-1-alex.bennee@linaro.org> References: <20180613125601.14371-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::243 Subject: [Qemu-devel] [RISU PATCH v3 04/22] build-all-arches: do a distclean $(SRC) configured X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-arm@nongnu.org, richard.henderson@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 This can cause much confusion when you have been building in your source tree. I've added a distclean so we don't unexpectedly drop the config for normal make clean invocations. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Richard Henderson --- Makefile | 3 +++ build-all-archs | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/Makefile b/Makefile index ca80eef..16e48a0 100644 --- a/Makefile +++ b/Makefile @@ -51,3 +51,6 @@ $(PROG): $(OBJS) =20 clean: rm -f $(PROG) $(OBJS) $(BINS) + +distclean: clean + rm -f config.h Makefile.in diff --git a/build-all-archs b/build-all-archs index a2f5cff..a7cd7c2 100755 --- a/build-all-archs +++ b/build-all-archs @@ -54,6 +54,16 @@ while [[ "$1" =3D -* ]]; do esac done =20 +# +# If you are developing your primary architecture directly out of the +# source tree you can confuse any out-of-tree builds thanks to random +# crap in your VPATH. Let's detect that and save some hair pulling. +# +if [ -e Makefile.in ]; then + echo "Cleaning in-src-tree build" + make distclean +fi + # Debian stretch and Ubuntu Xenial have cross compiler packages for # all of these: # gcc-arm-linux-gnueabihf gcc-aarch64-linux-gnu gcc-m68k-linux-gnu --=20 2.17.1 From nobody Fri Apr 19 22:44:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1528895121159881.8733495893881; Wed, 13 Jun 2018 06:05:21 -0700 (PDT) Received: from localhost ([::1]:34038 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5Si-0001Fy-8x for importer@patchew.org; Wed, 13 Jun 2018 09:05:20 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50372) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5Jq-0002cM-AW for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fT5Jo-00055g-Pe for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:10 -0400 Received: from mail-wm0-x22a.google.com ([2a00:1450:400c:c09::22a]:40903) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fT5Jo-00053X-Ff for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:08 -0400 Received: by mail-wm0-x22a.google.com with SMTP id n5-v6so5182924wmc.5 for ; Wed, 13 Jun 2018 05:56:08 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id f24-v6sm1927940wmc.0.2018.06.13.05.56.02 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 13 Jun 2018 05:56:03 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 6EF5D3E1154; Wed, 13 Jun 2018 13:56:01 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wxcfGsS86kcfjLCdS7LsJfrKrVdL+ITWHRqzI4GxmL0=; b=e3Xgh41ZZ3OEpjMcU6ji6DoazTLiB/0uAwzslUdXJHkHFJKaALBw1ufYm8O0p1yR0H YjwF3RM1H8JPZtO8FW43jCZe+HRSvHhDa0NQJOXLrpq2VwDHOtIx/MgSgRoHJBlpA83v nHrVGOwN7TsRy9z8PT3QeQvCVcQoRlvEWvHGo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=wxcfGsS86kcfjLCdS7LsJfrKrVdL+ITWHRqzI4GxmL0=; b=rLpQgwwbxcEd4spfrsojfg8EHhzOjkRSPuO/RQL2HX5ifMYK1QPD4jtlnUwh5vpYZ9 FWJlw4srgaHbzh7SnEshNn8dbpsPR1Nxa//fO7gA07Rm0SH5YGa0cvCRFJZ2PefgR8pA qju0x5z6xIZtS7JKhTa2c2OCbZY/NtgT4TXhbyHG3p/2NHIR7Awr2VX+hgXQB6TDJ5Fx /OIXLPlyY7827od3AFXxAjKv+wrin6DV7HxX5st7AUtT2tlDXgjAVsM8kfMGuGKBUa72 2nZK68qtIfY5CpshhfRbJK0w/fRwwAqhNpOv3gxYRcBQZohoP6625BUV3jJAA61b7vWK qexQ== X-Gm-Message-State: APt69E0UQ4v05Q2AnwVLWDSQTXpFED9g/Vhk0q43dncBC+oEI3xw0tpS 2gleoBSWLqtnJ0oaDwk1SMedWA== X-Google-Smtp-Source: ADUXVKKXHiaQ8JxWZ+ONGF3UtuzH/M1Xuwk/CffAld2eNxZL+K+FtQvTDop3GRgDvJ76+RiYmSquCQ== X-Received: by 2002:a1c:ed0d:: with SMTP id l13-v6mr3579834wmh.73.1528894567320; Wed, 13 Jun 2018 05:56:07 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Wed, 13 Jun 2018 13:55:44 +0100 Message-Id: <20180613125601.14371-6-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180613125601.14371-1-alex.bennee@linaro.org> References: <20180613125601.14371-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::22a Subject: [Qemu-devel] [RISU PATCH v3 05/22] risu: add zlib indication to help text X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-arm@nongnu.org, richard.henderson@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 This is a simple aide-memoir as it can be tricky to determine this with a simple statically compiled binary. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Richard Henderson --- risu.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/risu.c b/risu.c index 616fc33..c684c90 100644 --- a/risu.c +++ b/risu.c @@ -39,6 +39,9 @@ size_t signal_count; #ifdef HAVE_ZLIB #include gzFile gz_trace_file; +#define TRACE_TYPE "compressed" +#else +#define TRACE_TYPE "uncompressed" #endif =20 sigjmp_buf jmpbuf; @@ -273,7 +276,7 @@ void usage(void) fprintf(stderr, "between master and apprentice risu processes.\n\n"); fprintf(stderr, "Options:\n"); fprintf(stderr, " --master Be the master (server)\n"); - fprintf(stderr, " -t, --trace=3DFILE Record/playback trace file\n"); + fprintf(stderr, " -t, --trace=3DFILE Record/playback " TRACE_TYPE " = trace file\n"); fprintf(stderr, " -h, --host=3DHOST Specify master host machine (apprentice= only)" "\n"); --=20 2.17.1 From nobody Fri Apr 19 22:44:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 152889510311829.552857009848253; Wed, 13 Jun 2018 06:05:03 -0700 (PDT) Received: from localhost ([::1]:34037 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5SQ-0000rx-9A for importer@patchew.org; Wed, 13 Jun 2018 09:05:02 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50343) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5Jp-0002a2-7e for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fT5Jn-00053e-Vt for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:09 -0400 Received: from mail-wr0-x244.google.com ([2a00:1450:400c:c0c::244]:35152) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fT5Jn-00052X-ND for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:07 -0400 Received: by mail-wr0-x244.google.com with SMTP id l10-v6so2673568wrn.2 for ; Wed, 13 Jun 2018 05:56:07 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id b80-v6sm4407729wmf.2.2018.06.13.05.56.02 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 13 Jun 2018 05:56:03 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 7ABF53E116B; Wed, 13 Jun 2018 13:56:01 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=OMhZ8+l3oFZGLTz6NEd67UuqOdw7Hr+2pHEWznqZjqY=; b=IB9XvymXYrVtNCHy/D5rzOIJ7p0LpeN2j277GAKNmg661GhmTFqlk2sZSTcmpTNihf j64wbdaG58ajb/+hje6GgFDTKxFPl7PlYmsygK9WqheACHEbm7rutk/UsF+kfk6CTYwE ogInOrPTttKXxvcF+U3ASTOho87t0l7a7tDXE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=OMhZ8+l3oFZGLTz6NEd67UuqOdw7Hr+2pHEWznqZjqY=; b=ZmjDoVvHgw5evtflZ6WZvb5Z11WegPVWHBnowJ63bIm6oqN6hJbmyNsKgeh5mGnKQl 2S2j5GoBVsld1d+RRuGQ5B44Zo7FQiZ2Zbq14VZzyGupmIM3qGzYCstMh9TMWVHjWgyu fUJpnbxbzo58cZESH/+56M1+VOZWKJNM0MAdAbo/KOi/DycolJrPlFMrZ0uX09kcT48j FqA2FJuJgTIz4IwalK5WZgDNqZSnRF21VUKy4mr27QigtiicJhjLvg4ozl9kEzJqJVJf 53VrQaenmuM5xTJxfd9gp/RGjzml57kexNglhrvuHTMvoDcSELEQgUg+9W6+dwZFFgog fNkQ== X-Gm-Message-State: APt69E136YnH4z5KZ9PhQdiHhLnfdI+IVjlInfxvivk+HjnAaV7vfOXH 8JCA2WJ8zyZWAic8EzV3JDk/62xl+iw= X-Google-Smtp-Source: ADUXVKLRbfVZr7AcTbdVriQ9sROV0UDYBsKZLFfRb1V5VlzdeHp3hAOocaP5YAdqGYP4BAOvRu5zfg== X-Received: by 2002:adf:de82:: with SMTP id w2-v6mr4359408wrl.88.1528894566613; Wed, 13 Jun 2018 05:56:06 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Wed, 13 Jun 2018 13:55:45 +0100 Message-Id: <20180613125601.14371-7-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180613125601.14371-1-alex.bennee@linaro.org> References: <20180613125601.14371-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::244 Subject: [Qemu-devel] [RISU PATCH v3 06/22] Makefile: include risu_reginfo_$(ARCH) in HDRS X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-arm@nongnu.org, richard.henderson@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Otherwise changes to reginfo don't cause the whole thing to be re-built causing much confusion when bisecting. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Richard Henderson --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 16e48a0..4aad448 100644 --- a/Makefile +++ b/Makefile @@ -21,7 +21,7 @@ ALL_CFLAGS =3D -Wall -D_GNU_SOURCE -DARCH=3D$(ARCH) $(BUI= LD_INC) $(CFLAGS) $(EXTRA_C =20 PROG=3Drisu SRCS=3Drisu.c comms.c reginfo.c risu_$(ARCH).c risu_reginfo_$(ARCH).c -HDRS=3Drisu.h +HDRS=3Drisu.h risu_reginfo_$(ARCH).h BINS=3Dtest_$(ARCH).bin =20 # For dumping test patterns --=20 2.17.1 From nobody Fri Apr 19 22:44:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1528894699946220.4133192648768; Wed, 13 Jun 2018 05:58:19 -0700 (PDT) Received: from localhost ([::1]:33996 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5Ls-0003wK-Gv for importer@patchew.org; Wed, 13 Jun 2018 08:58:16 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50419) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5Jr-0002dA-Dc for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fT5Jp-00058g-WD for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:11 -0400 Received: from mail-wr0-x244.google.com ([2a00:1450:400c:c0c::244]:38846) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fT5Jp-00056B-It for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:09 -0400 Received: by mail-wr0-x244.google.com with SMTP id e18-v6so2661432wrs.5 for ; Wed, 13 Jun 2018 05:56:09 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id n23-v6sm2705505wmh.6.2018.06.13.05.56.03 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 13 Jun 2018 05:56:05 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 875D53E119C; Wed, 13 Jun 2018 13:56:01 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=IEGZXFnFNMOWMxKC/DUaSek0uOvs3FGzAO/YFETY3Ak=; b=DN5YSijroUHvacyh/WvkV3e+goPsvFNQlpmYyNFXNzmnBf7XiPDWvsd/vjXwfHp8qc JeZNR4CxJjcrJyQ1b1vR4fqa9r9ZzIYqLG0hDAYnfQ4dXj0OeuvIxUhPafygBFqxJXje smUfAQJCxiarxMr2OfyDcVgdatwStNF9HcU+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:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=IEGZXFnFNMOWMxKC/DUaSek0uOvs3FGzAO/YFETY3Ak=; b=KDIEXqygWxMx9An+3zoKc/sYOUsnnNcn4d9Ay3WchInBpJFh7LAtcvBRjQPnWzwZHI mqkv3JCkwp0D+g4t4mlf3d4/we6xsNSAe+3GU+iJ8aRl9zTxcnTKYFjS5i+2BW10Pq+b FaNwQs0/9n1QJWqM6ZTxJ3K9R5UVdOgovSQq4hPbca/kjDDBdv61Gl8ybn8FYpfZbKor uVd+GejUpALXhrgvqCPiOahw5PvW6xFrOmO6qu+yQBsEBIKHgmCb2Arly5gwFXZ1GfMg ctOg/as4azbCDXlGMts5I4Jr5YghxWMyrUTMi4ALJKXzOaczvPXa/KKtOpf8vXE88wN6 wtEA== X-Gm-Message-State: APt69E2ksAqQsOh3wjpvjQQXy18/bbpvjSfQpoaZ7UUZ2hHrc5QxTA3w 6gI4NMrLjvu7ucbBDRMghC1+Jw== X-Google-Smtp-Source: ADUXVKLacyi7szK+jI0JyUyEq1V9j+vYrUdNZKXUGwEK9PY+9SeW6PWscqgELO+qcu99UEyug0Yepg== X-Received: by 2002:adf:a982:: with SMTP id b2-v6mr4106040wrd.122.1528894568415; Wed, 13 Jun 2018 05:56:08 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Wed, 13 Jun 2018 13:55:46 +0100 Message-Id: <20180613125601.14371-8-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180613125601.14371-1-alex.bennee@linaro.org> References: <20180613125601.14371-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::244 Subject: [Qemu-devel] [RISU PATCH v3 07/22] risugen: add --sve support X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-arm@nongnu.org, richard.henderson@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 This is similar to the approach used by the FP/simd data in so far as we generate a block of random data and then load into it. The loading is actually done by the current vector length but that is implicit in the run anyway. Signed-off-by: Alex Benn=C3=A9e --- v2 - only one SIMD/FP/SVE block as they alias - move efficient loading as suggested by Dave --- risugen | 3 +++ risugen_arm.pm | 56 ++++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 50 insertions(+), 9 deletions(-) diff --git a/risugen b/risugen index 488d804..de3f5ea 100755 --- a/risugen +++ b/risugen @@ -319,6 +319,7 @@ sub main() my $condprob =3D 0; my $fpscr =3D 0; my $fp_enabled =3D 1; + my $sve_enabled =3D 1; my $big_endian =3D 0; my ($infile, $outfile); =20 @@ -336,6 +337,7 @@ sub main() }, "be" =3D> sub { $big_endian =3D 1; }, "no-fp" =3D> sub { $fp_enabled =3D 0; }, + "sve" =3D> sub { $sve_enabled =3D 1; }, ) or return 1; # allow "--pattern re,re" and "--pattern re --pattern re" @pattern_re =3D split(/,/,join(',',@pattern_re)); @@ -363,6 +365,7 @@ sub main() 'fpscr' =3D> $fpscr, 'numinsns' =3D> $numinsns, 'fp_enabled' =3D> $fp_enabled, + 'sve_enabled' =3D> $sve_enabled, 'outfile' =3D> $outfile, 'details' =3D> \%insn_details, 'keys' =3D> \@insn_keys, diff --git a/risugen_arm.pm b/risugen_arm.pm index 2f10d58..bb3ee90 100644 --- a/risugen_arm.pm +++ b/risugen_arm.pm @@ -472,14 +472,51 @@ sub write_random_aarch64_fpdata() } } =20 -sub write_random_aarch64_regdata($) +sub write_random_aarch64_svedata() { - my ($fp_enabled) =3D @_; + # Load SVE registers + my $align =3D 16; + my $vq =3D 16; # quadwords per vector + my $datalen =3D (32 * $vq * 16) + $align; + + write_pc_adr(0, (3 * 4) + ($align - 1)); # insn 1 + write_align_reg(0, $align); # insn 2 + write_jump_fwd($datalen); # insn 3 + + # align safety + for (my $i =3D 0; $i < ($align / 4); $i++) { + # align with nops + insn32(0xd503201f); + }; + + for (my $rt =3D 0; $rt <=3D 31; $rt++) { + for (my $q =3D 0; $q < $vq; $q++) { + write_random_fpreg_var(4); # quad + } + } + + # Reset all the predicate registers to all true + for (my $p =3D 0; $p < 16; $p++) { + insn32(0x2518e3e0 | $p); + } + + for (my $rt =3D 0; $rt <=3D 31; $rt++) { + # ldr z$rt, [x0, #$rt, mul vl] + insn32(0x85804000 + $rt + (($rt & 7) << 10) + (($rt & 0x18) << 13)= ); + } +} + +sub write_random_aarch64_regdata($$) +{ + my ($fp_enabled, $sve_enabled) =3D @_; # clear flags insn32(0xd51b421f); # msr nzcv, xzr =20 - if ($fp_enabled) { - # load floating point / SIMD registers + # Load floating point / SIMD registers + # (one or the other as they overlap) + if ($sve_enabled) { + write_random_aarch64_svedata(); + } elsif ($fp_enabled) { write_random_aarch64_fpdata(); } =20 @@ -490,12 +527,12 @@ sub write_random_aarch64_regdata($) } } =20 -sub write_random_register_data($) +sub write_random_register_data($$) { - my ($fp_enabled) =3D @_; + my ($fp_enabled, $sve_enabled) =3D @_; =20 if ($is_aarch64) { - write_random_aarch64_regdata($fp_enabled); + write_random_aarch64_regdata($fp_enabled, $sve_enabled); } else { write_random_arm_regdata($fp_enabled); } @@ -893,6 +930,7 @@ sub write_test_code($$$$$$$$) my $fpscr =3D $params->{ 'fpscr' }; my $numinsns =3D $params->{ 'numinsns' }; my $fp_enabled =3D $params->{ 'fp_enabled' }; + my $sve_enabled =3D $params->{ 'sve_enabled' }; my $outfile =3D $params->{ 'outfile' }; =20 my %insn_details =3D %{ $params->{ 'details' } }; @@ -918,7 +956,7 @@ sub write_test_code($$$$$$$$) write_memblock_setup(); } # memblock setup doesn't clean its registers, so this must come afterw= ards. - write_random_register_data($fp_enabled); + write_random_register_data($fp_enabled, $sve_enabled); write_switch_to_test_mode(); =20 for my $i (1..$numinsns) { @@ -930,7 +968,7 @@ sub write_test_code($$$$$$$$) # Rewrite the registers periodically. This avoids the tendency # for the VFP registers to decay to NaNs and zeroes. if ($periodic_reg_random && ($i % 100) =3D=3D 0) { - write_random_register_data($fp_enabled); + write_random_register_data($fp_enabled, $sve_enabled); write_switch_to_test_mode(); } progress_update($i); --=20 2.17.1 From nobody Fri Apr 19 22:44:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1528894883091470.38499328489013; Wed, 13 Jun 2018 06:01:23 -0700 (PDT) Received: from localhost ([::1]:34018 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5Os-0006bp-8r for importer@patchew.org; Wed, 13 Jun 2018 09:01:22 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50431) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5Jr-0002dW-OT for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fT5Jq-0005A2-Ht for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:11 -0400 Received: from mail-wr0-x241.google.com ([2a00:1450:400c:c0c::241]:38844) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fT5Jq-00057n-9O for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:10 -0400 Received: by mail-wr0-x241.google.com with SMTP id e18-v6so2661475wrs.5 for ; Wed, 13 Jun 2018 05:56:10 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id b204-v6sm3108925wmh.22.2018.06.13.05.56.03 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 13 Jun 2018 05:56:05 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 943663E11E6; Wed, 13 Jun 2018 13:56:01 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=0Xm+ER24biXy+jhU0foOUmeppdyuMIuvTildhLQkYKo=; b=LyOaFe9VojoiVafCfiIhYCEM3mkcXtseVIOSVTq9HUxYmcbebbjQygB8NDLgYqV+EJ eXE4GVNjngH9CglsEkDphAbp+IUOphfM0kdCwQL/xwmvneQQtHGuPNZcB16j5XIB3ztG rB5FFfHIEkLoW2DwJMZlMz6N3GQ6MIz6OsaYQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=0Xm+ER24biXy+jhU0foOUmeppdyuMIuvTildhLQkYKo=; b=sT1ifg0i2IBUK058ZE174/uhXKxBUBzlo/9/ZfhXdC1X1cuL78ho+IETJ+08d2fLHV 11Z3XuEz0bQL7941Ch7enhMWUNTYjkSwKNA8DugLAEKIS+AuSaQqTETygacpeNGrjqAa +BJvehb9/ZFVi7HYQ6ZjHtiN5x5B/M3GarcRbX4S71qS3/jDyYjsLjQ7gAwebiogYA1V G0UD1dr+QRZN8/0b35WnFGPaVeNVxbkVUhqDsN7icc27ejFCAi5v6WTj1RUAmlQiL1VP JjMIluUDcTAsmD8EnOJrkTmYgjnrCcDJpWvolW1jrHdT6k/LBUEqFGyDx7B7nn/vshsS dq9w== X-Gm-Message-State: APt69E33DSco+bobNVuE72mpbF64RIPoFekGPsTlBLeDNaeiOlBiQb99 N+8EoSwHzsUPjYi67CvGHuUQ4Q== X-Google-Smtp-Source: ADUXVKIIGWhDIbLvGzb0J8wB/pxIMMYlzFigpf51d6rnZ3Zv99cczdmB/Us9p4Um/VxSymyDBH2FHg== X-Received: by 2002:a5d:4407:: with SMTP id z7-v6mr4321763wrq.227.1528894569165; Wed, 13 Jun 2018 05:56:09 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Wed, 13 Jun 2018 13:55:47 +0100 Message-Id: <20180613125601.14371-9-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180613125601.14371-1-alex.bennee@linaro.org> References: <20180613125601.14371-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::241 Subject: [Qemu-devel] [RISU PATCH v3 08/22] risugen: Initialize sve predicates with random data X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-arm@nongnu.org, richard.henderson@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 From: Richard Henderson Using ptrue makes most of the uses of predicates trivial. Therefore, initialize them to something interesting. Signed-off-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- risugen_arm.pm | 48 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 34 insertions(+), 14 deletions(-) diff --git a/risugen_arm.pm b/risugen_arm.pm index bb3ee90..83e521d 100644 --- a/risugen_arm.pm +++ b/risugen_arm.pm @@ -174,6 +174,24 @@ sub write_sxt32($$) insn32(0x93407c00 | $rn << 5 | $rd); } =20 +sub write_add_rri($$$) +{ + my ($rd, $rn, $i) =3D @_; + my $sh; + + die "write_add_rri: invalid operation for this arch.\n" if (!$is_aarch= 64); + + if ($i >=3D 0 && $i < 0x1000) { + $sh =3D 0; + } elsif (($i & 0xfff) || $i >=3D 0x1000000) { + die "invalid immediate for this arch,\n"; + } else { + $sh =3D 1; + $i >>=3D 12; + } + insn32(0x91000000 | ($rd << 0) | ($rn << 5) | ($i << 10) | ($sh << 22)= ); +} + sub write_sub_rrr($$$) { my ($rd, $rn, $rm) =3D @_; @@ -477,33 +495,35 @@ sub write_random_aarch64_svedata() # Load SVE registers my $align =3D 16; my $vq =3D 16; # quadwords per vector - my $datalen =3D (32 * $vq * 16) + $align; - - write_pc_adr(0, (3 * 4) + ($align - 1)); # insn 1 - write_align_reg(0, $align); # insn 2 - write_jump_fwd($datalen); # insn 3 + my $veclen =3D 32 * $vq * 16; + my $predlen =3D 16 * $vq * 2; + my $datalen =3D $veclen + $predlen; =20 - # align safety - for (my $i =3D 0; $i < ($align / 4); $i++) { - # align with nops - insn32(0xd503201f); - }; + write_pc_adr(0, 2 * 4); # insn 1 + write_jump_fwd($datalen); # insn 2 =20 for (my $rt =3D 0; $rt <=3D 31; $rt++) { for (my $q =3D 0; $q < $vq; $q++) { write_random_fpreg_var(4); # quad } } - - # Reset all the predicate registers to all true - for (my $p =3D 0; $p < 16; $p++) { - insn32(0x2518e3e0 | $p); + for (my $rt =3D 0; $rt <=3D 15; $rt++) { + for (my $q =3D 0; $q < $vq; $q++) { + insn16(rand(0xffff)); + } } =20 for (my $rt =3D 0; $rt <=3D 31; $rt++) { # ldr z$rt, [x0, #$rt, mul vl] insn32(0x85804000 + $rt + (($rt & 7) << 10) + (($rt & 0x18) << 13)= ); } + + write_add_rri(0, 0, $veclen); + + for (my $rt =3D 0; $rt <=3D 15; $rt++) { + # ldr p$rt, [x0, #$pt, mul vl] + insn32(0x85800000 + $rt + (($rt & 7) << 10) + (($rt & 0x18) << 13)= ); + } } =20 sub write_random_aarch64_regdata($$) --=20 2.17.1 From nobody Fri Apr 19 22:44:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1528894951282593.7956546393324; Wed, 13 Jun 2018 06:02:31 -0700 (PDT) Received: from localhost ([::1]:34024 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5Py-0007U4-Gf for importer@patchew.org; Wed, 13 Jun 2018 09:02:30 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50470) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5Jt-0002fd-7E for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fT5Js-0005DK-D5 for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:13 -0400 Received: from mail-wr0-x234.google.com ([2a00:1450:400c:c0c::234]:35117) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fT5Js-0005CY-6I for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:12 -0400 Received: by mail-wr0-x234.google.com with SMTP id l10-v6so2673820wrn.2 for ; Wed, 13 Jun 2018 05:56:11 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id h8-v6sm1776348wmb.32.2018.06.13.05.56.04 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 13 Jun 2018 05:56:07 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id A10ED3E121A; Wed, 13 Jun 2018 13:56:01 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=yGIXH0KQMm00dKEL2Etwd2IPZwUNEDVV+bNKLpa67ZE=; b=e8GmGeWVF0Sg5hV1iNY0UVSJJxqeK7ITd2BbFCZ7BnP/DK/KCJ7SUvmNzo2sXMXydk jRz39SeFBIg99/8dTQ/8v14SiqyKemTw7jzE2N/JZ0x9MB06M/G2HFAtRYunN2pFCmex jvO/QUaoQ5cs47A/Q+aCFUbxpLBBsCiBCMdeg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=yGIXH0KQMm00dKEL2Etwd2IPZwUNEDVV+bNKLpa67ZE=; b=V7O60hLBkhtpPT7Websv24tPNT5ZmweYnPxhDZ/wFxVqljPg5dUXdPmPt90mtTN51p rGMe5ZXpzQK8jZIPfelgmSo9OmGa8a0EEziN8nteho/AtGRyAz0ox76AdbrU3LD6p6lE cUjdMk9OfdG9Yog8SuU/QABsQESYxpsWWmPYImWHqn7h0ZV8ziyPhGvE+CwIT/myJFP9 to7dk9avOO3uyrTL7vzhfW4GD3pv+JOEbtpImDlm2EPR3huT8hzkgAZHOAZGKiVzwIhU 1d91FigURJhMNU4zmsuAoF5isFyV0QbwRqvjiqi3IXDk9ncLyfzsbk8qhS/bt2uVD9LL THog== X-Gm-Message-State: APt69E11nCbeq8hr9BKIGuvo93lb0QqrYecffJvOIBw+CYmKnB3p9fID +iIw++cR+3PH/fltqt17LD6YSQ== X-Google-Smtp-Source: ADUXVKLITeWfiYEbrnq31oJtbekXwYUlUxiEhX/KSmjGArQ596RxCxMUQ/4JGm0p9XgtzL4S4269Fg== X-Received: by 2002:adf:fb92:: with SMTP id a18-v6mr3914657wrr.278.1528894571083; Wed, 13 Jun 2018 05:56:11 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Wed, 13 Jun 2018 13:55:48 +0100 Message-Id: <20180613125601.14371-10-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180613125601.14371-1-alex.bennee@linaro.org> References: <20180613125601.14371-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::234 Subject: [Qemu-devel] [RISU PATCH v3 09/22] risugen: use fewer insns for aarch64 immediate load X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-arm@nongnu.org, richard.henderson@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 From: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- risugen_arm.pm | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/risugen_arm.pm b/risugen_arm.pm index 83e521d..485e94e 100644 --- a/risugen_arm.pm +++ b/risugen_arm.pm @@ -261,15 +261,13 @@ sub write_mov_rr($$) =20 sub write_mov_ri16($$$) { - # Write 16 bits of immediate to register, using either MOVW or MOVT + # Write 16 bits of immediate to register. my ($rd, $imm, $is_movt) =3D @_; - die "write_mov_ri16: immediate $imm out of range\n" if (($imm & 0xffff= 0000) !=3D 0); =20 - if ($is_aarch64) { - # Use MOVZ 0x52800000. is_movt means MOVK of high bits */ - insn32(0xd2800000 | ($is_movt << 29) | ($is_movt ? 16 << 17 : 0) |= ($imm << 5) | $rd); + die "write_mov_ri16: invalid operation for this arch.\n" if ($is_aarch= 64); + die "write_mov_ri16: immediate $imm out of range\n" if (($imm & 0xffff= 0000) !=3D 0); =20 - } elsif ($is_thumb) { + if ($is_thumb) { # enc T3 my ($imm4, $i, $imm3, $imm8) =3D (($imm & 0xf000) >> 12, ($imm & 0x0800) >> 11, @@ -287,16 +285,24 @@ sub write_mov_ri16($$$) =20 sub write_mov_ri($$) { - # We always use a MOVW/MOVT pair, for simplicity. - # on aarch64, we use a MOVZ/MOVK pair. my ($rd, $imm) =3D @_; - write_mov_ri16($rd, ($imm & 0xffff), 0); my $highhalf =3D ($imm >> 16) & 0xffff; - write_mov_ri16($rd, $highhalf, 1) if $highhalf; =20 - if ($is_aarch64 && $imm < 0) { - # sign extend to allow small negative imm constants - write_sxt32($rd, $rd); + if ($is_aarch64) { + if ($imm < 0) { + # MOVN + insn32(0x92800000 | ((~$imm & 0xffff) << 5) | $rd); + # MOVK, LSL 16 + insn32(0xf2a00000 | ($highhalf << 5) | $rd) if $highhalf !=3D = 0xffff; + } else { + # MOVZ + insn32(0x52800000 | (($imm & 0xffff) << 5) | $rd); + # MOVK, LSL 16 + insn32(0xf2a00000 | ($highhalf << 5) | $rd) if $highhalf !=3D = 0; + } + } else { + write_mov_ri16($rd, ($imm & 0xffff), 0); + write_mov_ri16($rd, $highhalf, 1) if $highhalf; } } =20 --=20 2.17.1 From nobody Fri Apr 19 22:44:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1528895300083738.1819294379986; Wed, 13 Jun 2018 06:08:20 -0700 (PDT) Received: from localhost ([::1]:34080 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5VX-0003fE-52 for importer@patchew.org; Wed, 13 Jun 2018 09:08:15 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50527) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5Jx-0002kr-Dm for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fT5Jt-0005FA-BP for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:17 -0400 Received: from mail-wm0-x244.google.com ([2a00:1450:400c:c09::244]:38727) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fT5Jt-0005DV-1e for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:13 -0400 Received: by mail-wm0-x244.google.com with SMTP id 69-v6so5208138wmf.3 for ; Wed, 13 Jun 2018 05:56:12 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id p6-v6sm4253243wrq.19.2018.06.13.05.56.04 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 13 Jun 2018 05:56:07 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id AC9403E1228; Wed, 13 Jun 2018 13:56:01 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=eUY/neGXdk4S8JqLBaT3aKaFiB1DXFXQWHVnmZJwCZM=; b=NWF1PUaXkYiQ0Vy49OxvZ/+A36WYg5LbpzZVtnUtzc1A9Bu2lJT+ZohiQufXV1R+pU 0FdIWDKmmv49RsVICPl1XKic8HR3C2icfNq3+C87zarj10eCJ6V3Yyv4A1hC02ERMrKS Iuja2RhDAR23O0LPM/QgutXj/jB4fSwJNpxP0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=eUY/neGXdk4S8JqLBaT3aKaFiB1DXFXQWHVnmZJwCZM=; b=Txe9rezYTRm4mLMa9ngA6ID4BzzGd+yqzZ357Xirg3y91L5czCFNAqTcYL/dP9Ntt9 DZvU3b0M1yzJ/reBdw1aBJ27O6iq1005e6IbJM6gbKMJ835RqKigTXMQpSsgQ3NpUe5Q kvxB0mE5QDx+6HbGxqqrRG+MufSmm8jr2Rj1F0mR2KX+5JQuoZI+HLWXQAUeuZTPgUpa s24oWdRNuTfz8uaDbKjWpn//5iNQ9pwEilStwDwwN3yY+toacSpCHqGl3p5ulRVDxkhs C/z27Msc4ZW8FxqRaOM69zjXoNUS/oyGqKAWICEGBGS96TyvrBGTDMtBCYbOgmJraGS5 VTGg== X-Gm-Message-State: APt69E1ri6wG6AXGwJfXjc0QplKma1anbamfO1KCGTF7hMAnanYyendJ +Qi4U4H4zDAmwkgHQkB4WuYeedsb8Bo= X-Google-Smtp-Source: ADUXVKI6ykHA4MqGIWi/1WlrE4uQfO/3rCl4cH3FBgHdIHVDN1k+0UPdue0KmKKtu0VzqY7KmClI6w== X-Received: by 2002:a1c:20c7:: with SMTP id g190-v6mr3647709wmg.2.1528894571876; Wed, 13 Jun 2018 05:56:11 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Wed, 13 Jun 2018 13:55:49 +0100 Message-Id: <20180613125601.14371-11-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180613125601.14371-1-alex.bennee@linaro.org> References: <20180613125601.14371-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::244 Subject: [Qemu-devel] [RISU PATCH v3 10/22] risugen: add reg_plus_imm_pl and reg_plus_imm_vl address helpers X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-arm@nongnu.org, richard.henderson@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 From: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- risugen_arm.pm | 126 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) diff --git a/risugen_arm.pm b/risugen_arm.pm index 485e94e..696bf5f 100644 --- a/risugen_arm.pm +++ b/risugen_arm.pm @@ -306,6 +306,52 @@ sub write_mov_ri($$) } } =20 +sub write_addpl_rri($$$) +{ + my ($rd, $rn, $imm) =3D @_; + die "write_addpl: invalid operation for this arch.\n" if (!$is_aarch64= ); + + insn32(0x04605000 | ($rn << 16) | (($imm & 0x3f) << 5) | $rd); +} + +sub write_addvl_rri($$$) +{ + my ($rd, $rn, $imm) =3D @_; + die "write_addvl: invalid operation for this arch.\n" if (!$is_aarch64= ); + + insn32(0x04205000 | ($rn << 16) | (($imm & 0x3f) << 5) | $rd); +} + +sub write_rdvl_ri($$) +{ + my ($rd, $imm) =3D @_; + die "write_rdvl: invalid operation for this arch.\n" if (!$is_aarch64); + + insn32(0x04bf5000 | (($imm & 0x3f) << 5) | $rd); +} + +sub write_madd_rrrr($$$$) +{ + my ($rd, $rn, $rm, $ra) =3D @_; + die "write_madd: invalid operation for this arch.\n" if (!$is_aarch64); + + insn32(0x9b000000 | ($rm << 16) | ($ra << 10) | ($rn << 5) | $rd); +} + +sub write_msub_rrrr($$$$) +{ + my ($rd, $rn, $rm, $ra) =3D @_; + die "write_msub: invalid operation for this arch.\n" if (!$is_aarch64); + + insn32(0x9b008000 | ($rm << 16) | ($ra << 10) | ($rn << 5) | $rd); +} + +sub write_mul_rrr($$$) +{ + my ($rd, $rn, $rm) =3D @_; + write_madd_rrrr($rd, $rn, $rm, 31); +} + # write random fp value of passed precision (1=3Dsingle, 2=3Ddouble, 4=3Dq= uad) sub write_random_fpreg_var($) { @@ -767,6 +813,86 @@ sub reg_plus_imm($$@) return $base; } =20 +sub reg_plus_imm_pl($$@) +{ + # Handle reg + immediate addressing mode + my ($base, $imm, @trashed) =3D @_; + if ($imm =3D=3D 0) { + return reg($base, @trashed); + } + write_get_offset(); + + # Now r0 is the address we want to do the access to, + # so set the basereg by doing the inverse of the + # addressing mode calculation, ie base =3D r0 - imm + # + # Note that addpl has a 6-bit immediate, but ldr has a 9-bit + # immediate, so we need to be able to support larger immediates. + + if (-$imm >=3D -32 && -$imm <=3D 31) { + write_addpl_rri($base, 0, -$imm); + } else { + # We borrow r1 and r2 as a temporaries (not a problem + # as long as we don't leave anything in a register + # which depends on the location of the memory block) + write_mov_ri(1, 0); + write_mov_ri(2, $imm); + write_addpl_rri(1, 1, 1); + write_msub_rrrr($base, 1, 2, 0); + } + if (grep $_ =3D=3D $base, @trashed) { + return -1; + } + return $base; +} + +sub reg_plus_imm_vl($$@) +{ + # The usual address formulation is + # elements =3D VL DIV esize + # mbytes =3D msize DIV 8 + # addr =3D base + imm * elements * mbytes + # Here we compute + # scale =3D log2(esize / msize) + # base + (imm * VL) >> scale + my ($base, $imm, $scale, @trashed) =3D @_; + if ($imm =3D=3D 0) { + return reg($base, @trashed); + } + write_get_offset(); + + # Now r0 is the address we want to do the access to, + # so set the basereg by doing the inverse of the + # addressing mode calculation, ie base =3D r0 - imm + # + # Note that rdvl/addvl have a 6-bit immediate, but ldr has a 9-bit + # immediate, so we need to be able to support larger immediates. + + use integer; + my $mul =3D 1 << $scale; + my $imm_div =3D $imm / $mul; + + if ($imm =3D=3D $imm_div * $mul && -$imm_div >=3D -32 && -$imm_div <= =3D 31) { + write_addvl_rri($base, 0, -$imm_div); + } elsif ($imm >=3D -32 && $imm <=3D 31) { + write_rdvl_ri(1, $imm); + write_sub_rrrs($base, 0, 1, $SHIFT_ASR, $scale); + } else { + write_rdvl_ri(1, 1); + write_mov_ri(2, $imm); + if ($scale =3D=3D 0) { + write_msub_rrrr($base, 1, 2, 0); + } else { + write_mul_rrr(1, 1, 2); + write_sub_rrrs($base, 0, 1, $SHIFT_ASR, $scale); + } + } + if (grep $_ =3D=3D $base, @trashed) { + return -1; + } + return $base; +} + sub reg_minus_imm($$@) { my ($base, $imm, @trashed) =3D @_; --=20 2.17.1 From nobody Fri Apr 19 22:44:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1528895348669845.7683624631119; Wed, 13 Jun 2018 06:09:08 -0700 (PDT) Received: from localhost ([::1]:34101 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5WN-0004N3-Qi for importer@patchew.org; Wed, 13 Jun 2018 09:09:07 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50538) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5Jx-0002l7-Fz for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fT5Ju-0005GY-3u for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:17 -0400 Received: from mail-wr0-x242.google.com ([2a00:1450:400c:c0c::242]:42679) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fT5Jt-0005Ev-Ua for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:14 -0400 Received: by mail-wr0-x242.google.com with SMTP id w10-v6so2645484wrk.9 for ; Wed, 13 Jun 2018 05:56:13 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id t17-v6sm3574692wrr.82.2018.06.13.05.56.04 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 13 Jun 2018 05:56:07 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id B86393E126F; Wed, 13 Jun 2018 13:56:01 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Uth4Ys8aYr8FACWERzidZ+kd8JZrxlxpRTXWTNIlyrE=; b=SR/e8YKrX19lZs5Xdiqc0isonzk3Iva2jQCnZpKYEYyMp315GkLP2QJMaAR9jr90TR vLA7XKr/xW6GFSH7uB8c8hPqp64tTDg7s46+0w63JHFeNKvKPCou+5UuIviUjq1n5Dzk ufk2HfPO58cGFewSWhGgQPPwO2Mika1ohbmug= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Uth4Ys8aYr8FACWERzidZ+kd8JZrxlxpRTXWTNIlyrE=; b=ALIAcPoe8BOJG8CyKwtsbbMzG4SbPoXPDhOlgBLWwr5QSsWdZNMSs2quhzFSo9+U1Z nSwBA87ZhQNYAsRC0pWGUJmNEXDJlAHtmqH1IpSUWDFtSp+8d5rNW7s04P9gi063uxX6 O425OLilSAbguT1ga8FeORsHwYdZ5K5ZErMfu5aaEtqjSR1XIeiHirjMGeTxMijKMmuG zBUy5iRJ6EzBtFZ2ve3AmHrW7XmxARrhlKweft1EZmD5Z2IUalbpxz8ezzsFCCft/3Y9 6nsTHN340h02orDKdv/bgVs2ayBwqHN3bjTWXmmq2tRU5HO76+iP7M4mBJCpQAGnGdJR 4W+w== X-Gm-Message-State: APt69E0IfuNOzM+tb2VtpZkiEzIeWs+7Y2dV29OYirAEiNVMBC+NEPbs Iv0/qrHt6G6cbYRdcs+Sm8ZS74LMwjk= X-Google-Smtp-Source: ADUXVKLUhHf6JOV1omOfq2kbWCiMDf/OZ6pzgN49AFxuGMcmIx4rmtZCV+zjJi/AfgEwxBNvbsd/qQ== X-Received: by 2002:adf:a3c3:: with SMTP id m3-v6mr3894552wrb.208.1528894572781; Wed, 13 Jun 2018 05:56:12 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Wed, 13 Jun 2018 13:55:50 +0100 Message-Id: <20180613125601.14371-12-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180613125601.14371-1-alex.bennee@linaro.org> References: <20180613125601.14371-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::242 Subject: [Qemu-devel] [RISU PATCH v3 11/22] risugen: add dtype_msz address helper X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-arm@nongnu.org, richard.henderson@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 From: Richard Henderson Signed-off-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- risugen_arm.pm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/risugen_arm.pm b/risugen_arm.pm index 696bf5f..8d423b1 100644 --- a/risugen_arm.pm +++ b/risugen_arm.pm @@ -765,6 +765,15 @@ sub write_get_offset() write_risuop($OP_GETMEMBLOCK); } =20 +# Return the log2 of the memory size of an operation described by dtype. +sub dtype_msz($) +{ + my ($dtype) =3D @_; + my $dth =3D $dtype >> 2; + my $dtl =3D $dtype & 3; + return $dtl >=3D $dth ? $dth : 3 - $dth; +} + sub reg($@) { my ($base, @trashed) =3D @_; --=20 2.17.1 From nobody Fri Apr 19 22:44:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1528896364304827.0760870748472; Wed, 13 Jun 2018 06:26:04 -0700 (PDT) Received: from localhost ([::1]:34310 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5ml-0001OG-Kb for importer@patchew.org; Wed, 13 Jun 2018 09:26:03 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52600) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5SO-0001ek-Dt for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:05:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fT5SI-0005cO-CO for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:05:00 -0400 Received: from mail-wr0-x22a.google.com ([2a00:1450:400c:c0c::22a]:45607) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fT5SI-0005ZI-2Z for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:04:54 -0400 Received: by mail-wr0-x22a.google.com with SMTP id o12-v6so2668941wrm.12 for ; Wed, 13 Jun 2018 06:04:53 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id f133-v6sm3354572wme.42.2018.06.13.06.04.47 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 13 Jun 2018 06:04:49 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id C41C83E1270; Wed, 13 Jun 2018 13:56:01 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=/IZQ4p0hwe86+xUxCaKvDsHzWjVNlBH8FOK7w9lXmkc=; b=BVkbTQwidzsyjj7x4Roa+LY9ie1GpdFj67kCW66yHo46HYmU55eMl9q/1reUe3g0GY IIlA6tMT3i2djKBF7Hs+0IqtaI3Z5fNcI2fpmtMG87Zcx+iEO1CIgr+EfaHpc8Xt99wf wP/+rm3DC7gofcR8zz/8q4wpaq5yd3PdgoGjQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=/IZQ4p0hwe86+xUxCaKvDsHzWjVNlBH8FOK7w9lXmkc=; b=B1jCvJwLZPSqIQwV+xMOI8sMxGuR3SqRQJgdGxA2dikBuWeYAkuxktXvnfvyS6TDY/ TE+6PfcdeumaTwIEN8X/cIltkJHcYE19wdDZvokd50QVVoUo3pc1GszZadz10RSCa050 Pj6BUYIoTNwCR6ghg8pXBn4Bb7h36kmhANzjrgEAqXwARybbZ0Y47eZHjFvj3MB7xB6x NidxDbOAl/H208HyrTF35ypjBOlVzluN/7+YWoG7hesyrfZ3ZPMCGpSF+U+419G6x8Id /sNRD5O3a3Ulb8nmuNEN9uBfIaJ49//LYr1cA0nHGgPwDSGoCvuOIemEAjdjkaBHGxgL sZNA== X-Gm-Message-State: APt69E2sHq1YOcIO4J3fZnqlfXfXWiBjl8iWm+VBsTjAc7InA09smbK/ eU4m+mYypAFcA2eLl138m4FPow== X-Google-Smtp-Source: ADUXVKKfZpBBjEsxYK66AqWoQh/wMQkowNApxv360DabPjV7LMSMcD/YUtAQX/vJUi7qqGVkcM8gyg== X-Received: by 2002:adf:bd89:: with SMTP id l9-v6mr4189640wrh.266.1528895092977; Wed, 13 Jun 2018 06:04:52 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Wed, 13 Jun 2018 13:55:51 +0100 Message-Id: <20180613125601.14371-13-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180613125601.14371-1-alex.bennee@linaro.org> References: <20180613125601.14371-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::22a Subject: [Qemu-devel] [RISU PATCH v3 12/22] contrib/generate_all.sh: allow passing of arguments to risugen X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-arm@nongnu.org, richard.henderson@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 This allows us to use any new risugen options when generating all our test patterns. Signed-off-by: Alex Benn=C3=A9e --- contrib/generate_all.sh | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/contrib/generate_all.sh b/contrib/generate_all.sh index 1e6b847..651cb23 100755 --- a/contrib/generate_all.sh +++ b/contrib/generate_all.sh @@ -12,11 +12,11 @@ # Alex Benn=C3=A9e - initial implementation # # Usage: -# ./contrib/generate_all.sh +# ./contrib/generate_all.sh -- risugen ar= gs =20 set -e =20 -USAGE=3D"Usage: `basename $0` [-h] [-n x] " +USAGE=3D"Usage: `basename $0` [-h] [-n x] -- [risu= gen args]" SPLIT=3D4 RISUGEN=3D$(CDPATH=3D cd -- "$(dirname -- "$0")/.." && pwd -P)/risugen =20 @@ -41,18 +41,24 @@ done # Remove the switches we parsed above. shift `expr $OPTIND - 1` =20 -while [ $# -ne 0 ]; do +# Parse up to and including any -- +RISUGEN_ARGS=3D"" +while [ $# -ne 0 ] && [ -z "$RISUGEN_ARGS" ]; do =20 if [ -f $1 ]; then RISU_FILE=3D$1; elif [ -d $1 ]; then TARGET_DIR=3D$1; + elif [ "$1" =3D "--" ]; then + RISUGEN_ARGS=3D$1 elif [ ! -e $1 ]; then TARGET_DIR=3D$1 fi =20 shift done +# anything left is for RISUGEN +RISUGEN_ARGS=3D$@ =20 if test -z "${RISUGEN}" || test ! -x "${RISUGEN}"; then echo "Couldn't find risugen (${RISUGEN})" @@ -90,7 +96,7 @@ while test $# -gt 0 ; do fi done I_FILE=3D"${I_FILE}_INC.risu.bin" - CMD=3D"${RISUGEN} ${INSN_PATTERNS} ${RISU_FILE} ${I_FILE}" + CMD=3D"${RISUGEN} ${RISUGEN_ARGS} ${INSN_PATTERNS} ${RISU_FILE} ${I_FI= LE}" echo "Running: $CMD" $CMD done --=20 2.17.1 From nobody Fri Apr 19 22:44:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1528896440283439.814297239958; Wed, 13 Jun 2018 06:27:20 -0700 (PDT) Received: from localhost ([::1]:34315 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5nz-0002AY-IH for importer@patchew.org; Wed, 13 Jun 2018 09:27:19 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52590) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5SN-0001d4-0G for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:05:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fT5SH-0005a0-JP for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:04:58 -0400 Received: from mail-wm0-x22e.google.com ([2a00:1450:400c:c09::22e]:38598) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fT5SH-0005Wj-8K for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:04:53 -0400 Received: by mail-wm0-x22e.google.com with SMTP id 69-v6so5264145wmf.3 for ; Wed, 13 Jun 2018 06:04:53 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id s17-v6sm1911858wmc.34.2018.06.13.06.04.47 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 13 Jun 2018 06:04:49 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id CFD303E129C; Wed, 13 Jun 2018 13:56:01 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jjUldyaKeKYrcB+Cm5ncCoScFYt4ewD1ApH+rdYho6Q=; b=UnL5ND9LpxSZPfN4HtOqCm/yrEG1j7w/Sjb81Ir+u4rFHDBZOL8lOBUoHoXVJEvT9G Qf4CjTlsnbZoJ+QUhI7Prx9Adum7CeM53qKnx9L8YkafG0oIJXuybKY6obmDXDkVq9Ax IbqzSTWS2wwJdtjqWw7PGn1nVe4H2yvnh6sJU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=jjUldyaKeKYrcB+Cm5ncCoScFYt4ewD1ApH+rdYho6Q=; b=dE3YxRay0OA7X7GwXFLmlXIy11MUM86cH4wLWfNs0on6C7IIrzMGBPpsBI1GhyrGlU LWLlvH16LH5GeRF6DgOy3XBWb2vff0DZ5Bblhc4ac73UpcbtZfKw9bLlA4on+5lSd3Ut qbRHkSo9QIzs2ivY2O4UMvn9OXNHcU6+UjY3ft2LrDbqIusWhVogFkuFOp8gOI768+3I KJ0FtKDiklXNMGsSZpjxK0kAFi5L+h9VqRh36GlNVctp75kdS1+hBpoLKt7dpu83XyIv SYAl/a0uY3R1aAMBRcOM90VEZ7l+cN+iyNDpntssv3/2VltIPAne/GMfhm9148ddvOPa 4doQ== X-Gm-Message-State: APt69E3wsmPUFMc5tI+D4250zSFXCE0mvpYS1fo4inRRtGq0IZws9st3 8OFJLVqPCHGpLqrRIxyIBfu9wg== X-Google-Smtp-Source: ADUXVKKFlXkzd/Q6uLMsIZJv9bYq+taci6MT90/k5cvkvZih9H0yqa4nW/3JTlQ98tUIl3++XNE2iw== X-Received: by 2002:a1c:ee06:: with SMTP id m6-v6mr2267922wmh.70.1528895092106; Wed, 13 Jun 2018 06:04:52 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Wed, 13 Jun 2018 13:55:52 +0100 Message-Id: <20180613125601.14371-14-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180613125601.14371-1-alex.bennee@linaro.org> References: <20180613125601.14371-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::22e Subject: [Qemu-devel] [RISU PATCH v3 13/22] risu: move optional args to each architecture X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-arm@nongnu.org, richard.henderson@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 The key variables here are: *arch_long_opts and *arch_extra_help. If they are not NULL then we concatenate the extra options to appropriate structure to enable the support. Adding architecture short options is not supported. This also includes moving the ARM specific test_fp_exc/test-fp-exc into ARM specific code. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Richard Henderson --- v2 - better concatenation of default and extra opts --- risu.c | 29 +++++++++++++++++++++++++---- risu.h | 6 ++++-- risu_reginfo_aarch64.c | 3 +++ risu_reginfo_arm.c | 11 +++++++++++ risu_reginfo_m68k.c | 3 +++ risu_reginfo_ppc64.c | 3 +++ 6 files changed, 49 insertions(+), 6 deletions(-) diff --git a/risu.c b/risu.c index c684c90..18de351 100644 --- a/risu.c +++ b/risu.c @@ -46,8 +46,7 @@ gzFile gz_trace_file; =20 sigjmp_buf jmpbuf; =20 -/* Should we test for FP exception status bits? */ -int test_fp_exc; +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) =20 /* Master functions */ =20 @@ -283,6 +282,9 @@ void usage(void) fprintf(stderr, " -p, --port=3DPORT Specify the port to connect to/listen o= n " "(default 9191)\n"); + if (arch_extra_help) { + fprintf(stderr, "%s", arch_extra_help); + } } =20 struct option * setup_options(char **short_opts) @@ -293,12 +295,31 @@ struct option * setup_options(char **short_opts) {"host", required_argument, 0, 'h'}, {"port", required_argument, 0, 'p'}, {"trace", required_argument, 0, 't'}, - {"test-fp-exc", no_argument, &test_fp_exc, 1}, {0, 0, 0, 0} }; + struct option *lopts =3D &default_longopts[0]; =20 *short_opts =3D "h:p:t:"; - return default_longopts; + + if (arch_long_opts) { + const size_t osize =3D sizeof(struct option); + const int default_count =3D ARRAY_SIZE(default_longopts); + struct option *dptr; + int extra_count =3D 0; + + /* count additional opts */ + dptr =3D arch_long_opts; + do {} while (dptr[extra_count++].name); + + lopts =3D calloc(default_count + extra_count, osize); + + /* Copy default opts + extra opts */ + memcpy(lopts, default_longopts, default_count * osize); + dptr =3D &lopts[default_count - 1]; + memcpy(dptr, arch_long_opts, extra_count * osize); + } + + return lopts; } =20 int main(int argc, char **argv) diff --git a/risu.h b/risu.h index 1c8ecee..89811f4 100644 --- a/risu.h +++ b/risu.h @@ -17,6 +17,10 @@ #include #include =20 +/* Extra option processing for architectures */ +extern void *arch_long_opts; +extern char *arch_extra_help; + /* GCC computed include to pull in the correct risu_reginfo_*.h for * the architecture. */ @@ -36,8 +40,6 @@ void send_response_byte(int sock, int resp); extern uintptr_t image_start_address; extern void *memblock; =20 -extern int test_fp_exc; - /* Ops code under test can request from risu: */ #define OP_COMPARE 0 #define OP_TESTEND 1 diff --git a/risu_reginfo_aarch64.c b/risu_reginfo_aarch64.c index 3bb4339..ab12270 100644 --- a/risu_reginfo_aarch64.c +++ b/risu_reginfo_aarch64.c @@ -18,6 +18,9 @@ #include "risu.h" #include "risu_reginfo_aarch64.h" =20 +void *arch_long_opts; +char *arch_extra_help; + /* reginfo_init: initialize with a ucontext */ void reginfo_init(struct reginfo *ri, ucontext_t *uc) { diff --git a/risu_reginfo_arm.c b/risu_reginfo_arm.c index 6b9ee7b..5acad02 100644 --- a/risu_reginfo_arm.c +++ b/risu_reginfo_arm.c @@ -13,12 +13,23 @@ #include #include #include +#include =20 #include "risu.h" #include "risu_reginfo_arm.h" =20 extern int insnsize(ucontext_t *uc); =20 +/* Should we test for FP exception status bits? */ +static int test_fp_exc; +static struct option extra_opts[] =3D { + {"test-fp-exc", no_argument, &test_fp_exc, 1}, + {0, 0, 0, 0} +}; + +void *arch_long_opts =3D &extra_opts[0]; +char *arch_extra_help =3D " --test-fp-exc Check FP exception bits whe= n comparing\n"; + static void reginfo_init_vfp(struct reginfo *ri, ucontext_t *uc) { /* Read VFP registers. These live in uc->uc_regspace, which is diff --git a/risu_reginfo_m68k.c b/risu_reginfo_m68k.c index 4ff0aa8..d429502 100644 --- a/risu_reginfo_m68k.c +++ b/risu_reginfo_m68k.c @@ -14,6 +14,9 @@ #include "risu.h" #include "risu_reginfo_m68k.h" =20 +void *arch_long_opts; +char *arch_extra_help; + /* reginfo_init: initialize with a ucontext */ void reginfo_init(struct reginfo *ri, ucontext_t *uc) { diff --git a/risu_reginfo_ppc64.c b/risu_reginfo_ppc64.c index 5f33648..395111c 100644 --- a/risu_reginfo_ppc64.c +++ b/risu_reginfo_ppc64.c @@ -22,6 +22,9 @@ #define XER 37 #define CCR 38 =20 +void *arch_long_opts; +char *arch_extra_help; + /* reginfo_init: initialize with a ucontext */ void reginfo_init(struct reginfo *ri, ucontext_t *uc) { --=20 2.17.1 From nobody Fri Apr 19 22:44:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1528895446688340.31531994846875; Wed, 13 Jun 2018 06:10:46 -0700 (PDT) Received: from localhost ([::1]:34107 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5Xt-0005YD-5M for importer@patchew.org; Wed, 13 Jun 2018 09:10:41 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52478) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5SH-0001Wu-8Q for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:04:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fT5SE-0005SI-Ry for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:04:53 -0400 Received: from mail-wm0-x236.google.com ([2a00:1450:400c:c09::236]:35194) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fT5SE-0005PE-J1 for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:04:50 -0400 Received: by mail-wm0-x236.google.com with SMTP id j15-v6so5322957wme.0 for ; Wed, 13 Jun 2018 06:04:50 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id h7-v6sm1736493wmb.48.2018.06.13.06.04.45 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 13 Jun 2018 06:04:45 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id DB8EC3E12A1; Wed, 13 Jun 2018 13:56:01 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Bp/1YbPML67ffji3kuZga7TLev+DhxX9wc1+8T4FSYo=; b=ECj7tu4fjh4/8D9TnUj4U3q9JfAeovlW40BMCtdoXVmWCtEEPbC2Ql3KTY2vvt3TQb fj1hu5UZj8TaNNmtnF0E6txsC9QC0+T1Np6YrGdBEL4ThYmrruTEN12aRG9BVg9/TKUc DhPxoadhLxFmb5hn98SL4uup3nsA0uWRuaNlw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Bp/1YbPML67ffji3kuZga7TLev+DhxX9wc1+8T4FSYo=; b=FV6835pbhRaRdz7neEklvW2lEnlMopqiss0i/5RJNEx1nYZCnMgZSoG9QEQu/RybKQ 4QwbLEeE+7jAfffiz3Eq41krurQIjoQ15gFKL+ONrCXwuXvlilSZXPyNbWa5AqS3ZNan aI21Ewkj6t1KsitET9Waudu25tmLH4s7X3hHZuFkPondAum8mlvDbIIf7sHiJFVOEG8f OmdWLqJlO5/hN8Nh1JkVrZjzOe7Wdx0x3UXi2+4pSKjCUHBa1KnTfJqkEHCRbOSU+mpn dpCZaWYWb7YcCMKyAyhoongEtExUaII0YfhMIt9n1zALJvwqYDRAQTGXugWwc4qLiFVp igqQ== X-Gm-Message-State: APt69E0uUL9hrs325ys4Cxy3HQRXPIYAAeHsghMCq+hhTFbvJDPv7sex 0+YFtAzuTcyBf5ItFACj8LbCtg== X-Google-Smtp-Source: ADUXVKJjWkrJB5NEY5muC1z6dhFHcM/GDXK/6n9j0uKzxjag4aF1qqUsJUstAB5IHyPfNkKqr00GeQ== X-Received: by 2002:a1c:d650:: with SMTP id n77-v6mr3704750wmg.140.1528895089453; Wed, 13 Jun 2018 06:04:49 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Wed, 13 Jun 2018 13:55:53 +0100 Message-Id: <20180613125601.14371-15-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180613125601.14371-1-alex.bennee@linaro.org> References: <20180613125601.14371-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::236 Subject: [Qemu-devel] [RISU PATCH v3 14/22] risu: add process_arch_opt X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-arm@nongnu.org, richard.henderson@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 From: Richard Henderson Allows the backend to do more that just set a flag when it comes to processing options. Signed-off-by: Richard Henderson [AJB: tweaked order, added stdlib includes] Signed-off-by: Alex Benn=C3=A9e --- risu.c | 33 +++++++++++---------------------- risu.h | 7 +++++-- risu_reginfo_aarch64.c | 10 ++++++++-- risu_reginfo_arm.c | 14 ++++++++++---- risu_reginfo_m68k.c | 10 ++++++++-- risu_reginfo_ppc64.c | 10 ++++++++-- 6 files changed, 50 insertions(+), 34 deletions(-) diff --git a/risu.c b/risu.c index 18de351..01525d2 100644 --- a/risu.c +++ b/risu.c @@ -18,7 +18,6 @@ #include #include #include -#include #include #include #include @@ -27,7 +26,6 @@ #include =20 #include "config.h" - #include "risu.h" =20 void *memblock; @@ -287,7 +285,7 @@ void usage(void) } } =20 -struct option * setup_options(char **short_opts) +static struct option * setup_options(char **short_opts) { static struct option default_longopts[] =3D { {"help", no_argument, 0, '?'}, @@ -303,20 +301,19 @@ struct option * setup_options(char **short_opts) =20 if (arch_long_opts) { const size_t osize =3D sizeof(struct option); - const int default_count =3D ARRAY_SIZE(default_longopts); - struct option *dptr; - int extra_count =3D 0; + const int default_count =3D ARRAY_SIZE(default_longopts) - 1; + int arch_count; =20 /* count additional opts */ - dptr =3D arch_long_opts; - do {} while (dptr[extra_count++].name); + for (arch_count =3D 0; arch_long_opts[arch_count].name; arch_count= ++) { + continue; + } =20 - lopts =3D calloc(default_count + extra_count, osize); + lopts =3D calloc(default_count + arch_count + 1, osize); =20 /* Copy default opts + extra opts */ memcpy(lopts, default_longopts, default_count * osize); - dptr =3D &lopts[default_count - 1]; - memcpy(dptr, arch_long_opts, extra_count * osize); + memcpy(lopts + default_count, arch_long_opts, arch_count * osize); } =20 return lopts; @@ -343,34 +340,26 @@ int main(int argc, char **argv) =20 switch (c) { case 0: - { /* flag set by getopt_long, do nothing */ break; - } case 't': - { trace_fn =3D optarg; trace =3D 1; break; - } case 'h': - { hostname =3D optarg; break; - } case 'p': - { /* FIXME err handling */ port =3D strtol(optarg, 0, 10); break; - } case '?': - { usage(); exit(1); - } default: - abort(); + assert(c >=3D FIRST_ARCH_OPT); + process_arch_opt(c, optarg); + break; } } =20 diff --git a/risu.h b/risu.h index 89811f4..48c50d9 100644 --- a/risu.h +++ b/risu.h @@ -16,10 +16,13 @@ #include #include #include +#include =20 /* Extra option processing for architectures */ -extern void *arch_long_opts; -extern char *arch_extra_help; +extern const struct option * const arch_long_opts; +extern const char * const arch_extra_help; +void process_arch_opt(int opt, const char *arg); +#define FIRST_ARCH_OPT 0x100 =20 /* GCC computed include to pull in the correct risu_reginfo_*.h for * the architecture. diff --git a/risu_reginfo_aarch64.c b/risu_reginfo_aarch64.c index ab12270..c270e0b 100644 --- a/risu_reginfo_aarch64.c +++ b/risu_reginfo_aarch64.c @@ -14,12 +14,18 @@ #include #include #include /* for FPSIMD_MAGIC */ +#include =20 #include "risu.h" #include "risu_reginfo_aarch64.h" =20 -void *arch_long_opts; -char *arch_extra_help; +const struct option * const arch_long_opts; +const char * const arch_extra_help; + +void process_arch_opt(int opt, const char *arg) +{ + abort(); +} =20 /* reginfo_init: initialize with a ucontext */ void reginfo_init(struct reginfo *ri, ucontext_t *uc) diff --git a/risu_reginfo_arm.c b/risu_reginfo_arm.c index 5acad02..12ad0ef 100644 --- a/risu_reginfo_arm.c +++ b/risu_reginfo_arm.c @@ -13,7 +13,7 @@ #include #include #include -#include +#include =20 #include "risu.h" #include "risu_reginfo_arm.h" @@ -22,13 +22,19 @@ extern int insnsize(ucontext_t *uc); =20 /* Should we test for FP exception status bits? */ static int test_fp_exc; -static struct option extra_opts[] =3D { +static const struct option extra_opts[] =3D { {"test-fp-exc", no_argument, &test_fp_exc, 1}, {0, 0, 0, 0} }; =20 -void *arch_long_opts =3D &extra_opts[0]; -char *arch_extra_help =3D " --test-fp-exc Check FP exception bits whe= n comparing\n"; +const struct option * const arch_long_opts =3D &extra_opts[0]; +const char * const arch_extra_help =3D + " --test-fp-exc Check FP exception bits when comparing\n"; + +void process_arch_opt(int opt, const char *arg) +{ + abort(); +} =20 static void reginfo_init_vfp(struct reginfo *ri, ucontext_t *uc) { diff --git a/risu_reginfo_m68k.c b/risu_reginfo_m68k.c index d429502..7a1c5a9 100644 --- a/risu_reginfo_m68k.c +++ b/risu_reginfo_m68k.c @@ -10,12 +10,18 @@ #include #include #include +#include =20 #include "risu.h" #include "risu_reginfo_m68k.h" =20 -void *arch_long_opts; -char *arch_extra_help; +const struct option * const arch_long_opts; +const char * const arch_extra_help; + +void process_arch_opt(int opt, const char *arg) +{ + abort(); +} =20 /* reginfo_init: initialize with a ucontext */ void reginfo_init(struct reginfo *ri, ucontext_t *uc) diff --git a/risu_reginfo_ppc64.c b/risu_reginfo_ppc64.c index 395111c..4b70460 100644 --- a/risu_reginfo_ppc64.c +++ b/risu_reginfo_ppc64.c @@ -15,6 +15,7 @@ #include #include #include +#include =20 #include "risu.h" #include "risu_reginfo_ppc64.h" @@ -22,8 +23,13 @@ #define XER 37 #define CCR 38 =20 -void *arch_long_opts; -char *arch_extra_help; +const struct option * const arch_long_opts; +const char * const arch_extra_help; + +void process_arch_opt(int opt, const char *arg) +{ + abort(); +} =20 /* reginfo_init: initialize with a ucontext */ void reginfo_init(struct reginfo *ri, ucontext_t *uc) --=20 2.17.1 From nobody Fri Apr 19 22:44:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1528895162798698.8175139297063; Wed, 13 Jun 2018 06:06:02 -0700 (PDT) Received: from localhost ([::1]:34044 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5TO-0001xD-2M for importer@patchew.org; Wed, 13 Jun 2018 09:06:02 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50531) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5Jx-0002l3-Et for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fT5Jv-0005IW-1h for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:17 -0400 Received: from mail-wr0-x244.google.com ([2a00:1450:400c:c0c::244]:42681) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fT5Ju-0005HC-RU for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:14 -0400 Received: by mail-wr0-x244.google.com with SMTP id w10-v6so2645544wrk.9 for ; Wed, 13 Jun 2018 05:56:14 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id m58-v6sm5417713wrf.61.2018.06.13.05.56.05 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 13 Jun 2018 05:56:09 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id E72883E12AC; Wed, 13 Jun 2018 13:56:01 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=8h3p2bJmRYKdvQUyRXUZ12mtlfZfXctrDwETVGrxqLc=; b=kPxj2ymZLEs/RbXsY8fvFEH6Vk2D+l9Vnb+/2M1/vjFonER3906kvflXAk4mZ7/s6j eSGgwHxCdJRwSYoa1LOUVeEn/kR01y9XEqylBup6y8BHhGe6qhUEwzpv/GLCBg8OLSew vzlGKvABxyeDi86GTE4M8VsFKQc+WEej3mEQc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=8h3p2bJmRYKdvQUyRXUZ12mtlfZfXctrDwETVGrxqLc=; b=Hnzmcz1iFLDg6G5LaHpMrU3PUXO46P/MBo7yG1vOBk/AX57pa7QDqm7ggC0gC+vxCx Glf4AB/RtVvVxRBz8qz1XKNyMFPjkVNPNp+NuDwr712rD+FGaHTBhW1G7Uv8B4YJbOAW YpE+B+fjDT1R0Ntr+vnobMq/O+njIBUex/PW+J40YAia4o+x+mT/cC//d9FzW8Pcbqi4 QM1U8ZmvC3PPsa9rvhgaJC/yd0F7IxNzM6qW0/J+seMFdb2kWP7tzVjLdiVmjuzzxisu FRf1278w3TpyACfk6qc4tKkwJXMOOfkd+dt54xVyANI7FG6GzizYixng5ueJtyI6wvmY XMNA== X-Gm-Message-State: APt69E2aL0hTE5PmLae3f13NwQQQjWSMq8PvMwSOMdqmvUyCzSWl2JzS XgguppCO4FXmZQA+H9DHHjsKE1Wj1NE= X-Google-Smtp-Source: ADUXVKJUUxNNVHRLi9bF3lVE+0hOLmTvDlO1k4vIAa0oivrCrMPBXL6enzL6Reb3SGRNotvqJ0knGA== X-Received: by 2002:adf:a0aa:: with SMTP id m39-v6mr3979585wrm.125.1528894573707; Wed, 13 Jun 2018 05:56:13 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Wed, 13 Jun 2018 13:55:54 +0100 Message-Id: <20180613125601.14371-16-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180613125601.14371-1-alex.bennee@linaro.org> References: <20180613125601.14371-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::244 Subject: [Qemu-devel] [RISU PATCH v3 15/22] risu_reginfo_aarch64: drop stray ; X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-arm@nongnu.org, richard.henderson@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Richard Henderson --- risu_reginfo_aarch64.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/risu_reginfo_aarch64.c b/risu_reginfo_aarch64.c index c270e0b..34dd9af 100644 --- a/risu_reginfo_aarch64.c +++ b/risu_reginfo_aarch64.c @@ -66,7 +66,7 @@ void reginfo_init(struct reginfo *ri, ucontext_t *uc) for (i =3D 0; i < 32; i++) { ri->vregs[i] =3D fp->vregs[i]; } -}; +} =20 /* reginfo_is_eq: compare the reginfo structs, returns nonzero if equal */ int reginfo_is_eq(struct reginfo *r1, struct reginfo *r2) --=20 2.17.1 From nobody Fri Apr 19 22:44:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 15288956437311022.5683337018545; Wed, 13 Jun 2018 06:14:03 -0700 (PDT) Received: from localhost ([::1]:34172 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5b8-0008Pt-T8 for importer@patchew.org; Wed, 13 Jun 2018 09:14:02 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52426) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5SE-0001VF-HX for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:04:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fT5SD-0005NT-7a for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:04:50 -0400 Received: from mail-wm0-x235.google.com ([2a00:1450:400c:c09::235]:54356) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fT5SC-0005IW-M7 for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:04:48 -0400 Received: by mail-wm0-x235.google.com with SMTP id o13-v6so4577416wmf.4 for ; Wed, 13 Jun 2018 06:04:48 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id n17-v6sm4237671wmd.14.2018.06.13.06.04.45 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 13 Jun 2018 06:04:45 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id F3CA23E12CA; Wed, 13 Jun 2018 13:56:01 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=lbCPrENDXodqYySnVETQzfGuSpf+E0XwrnRGSzM1nmE=; b=IufAp4Ap8j2PT9Dw3URfX2PolRm13KSN82CC2QAyU4ivbGOpVbVY+N4CdZtghNilJi T3dIZLsol4P9hEldAwbjSZws9ZjfyBr7IpAhebv1Uph8C34j1mMbeobvOACMf56U71Sg XXNiSeR5LbUrwNbbVshb5D/GkzAVw6/pFmk4s= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=lbCPrENDXodqYySnVETQzfGuSpf+E0XwrnRGSzM1nmE=; b=m8EC7m/q4ZuP2ZO/uI+2cpgxvOVPM6mzZndoSWu1dFcV9u2obUuLob974dQ/H+Fyz5 jd/aVmxbdZNddjTVWfu8P3vXNsYO046q7pS2t0F7qX0Cg68DhtC5wqW+3nHE++6KsNOq 2AJI/QaekD2/4/ZVwtx+FKHf7Dw85eQflfCkugSDlqX3JOhPV+vNZianHC9lKeDffUE3 PeDom306N+DC5swIpp5rSbhPXgt1hwzPEU9VrSjgTzP21ANn2mmD/0j8ydAZd2XtfWL7 PmJPDHiXLrXleDbtjmGY/RJfDPt+ToEj7sSmdMpVGaqeFWgESeevpsds2LFskLImCyMn KjvA== X-Gm-Message-State: APt69E0Pnon+wLT5t1VU4a7X6bk/+fa5oTpNc1spXYXVr7J5vScFSHdx GjBVrNbJ3/MJ8HrdmGOEz6QMAQ== X-Google-Smtp-Source: ADUXVKIyvvamEbsaUgPJDA/+O6pBXzpUnqfwmWGUpru81tD0ylk5iW06TCocw5tsKLelXIRd22L0og== X-Received: by 2002:a1c:9b04:: with SMTP id d4-v6mr3385623wme.8.1528895087527; Wed, 13 Jun 2018 06:04:47 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Wed, 13 Jun 2018 13:55:55 +0100 Message-Id: <20180613125601.14371-17-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180613125601.14371-1-alex.bennee@linaro.org> References: <20180613125601.14371-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::235 Subject: [Qemu-devel] [RISU PATCH v3 16/22] risu_reginfo_aarch64: unionify VFP regs X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-arm@nongnu.org, richard.henderson@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 This is preparation for the SVE work as we won't want to be carrying around both VFP and SVE registers at the same time as they overlap. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Richard Henderson --- risu_reginfo_aarch64.c | 16 ++++++++-------- risu_reginfo_aarch64.h | 9 ++++++++- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/risu_reginfo_aarch64.c b/risu_reginfo_aarch64.c index 34dd9af..62a5599 100644 --- a/risu_reginfo_aarch64.c +++ b/risu_reginfo_aarch64.c @@ -64,7 +64,7 @@ void reginfo_init(struct reginfo *ri, ucontext_t *uc) ri->fpcr =3D fp->fpcr; =20 for (i =3D 0; i < 32; i++) { - ri->vregs[i] =3D fp->vregs[i]; + ri->simd.vregs[i] =3D fp->vregs[i]; } } =20 @@ -92,8 +92,8 @@ int reginfo_dump(struct reginfo *ri, FILE * f) =20 for (i =3D 0; i < 32; i++) { fprintf(f, " V%2d : %016" PRIx64 "%016" PRIx64 "\n", i, - (uint64_t) (ri->vregs[i] >> 64), - (uint64_t) (ri->vregs[i] & 0xffffffffffffffff)); + (uint64_t) (ri->simd.vregs[i] >> 64), + (uint64_t) (ri->simd.vregs[i] & 0xffffffffffffffff)); } =20 return !ferror(f); @@ -138,14 +138,14 @@ int reginfo_dump_mismatch(struct reginfo *m, struct r= eginfo *a, FILE * f) } =20 for (i =3D 0; i < 32; i++) { - if (m->vregs[i] !=3D a->vregs[i]) { + if (m->simd.vregs[i] !=3D a->simd.vregs[i]) { fprintf(f, " V%2d : " "%016" PRIx64 "%016" PRIx64 " vs " "%016" PRIx64 "%016" PRIx64 "\n", i, - (uint64_t) (m->vregs[i] >> 64), - (uint64_t) (m->vregs[i] & 0xffffffffffffffff), - (uint64_t) (a->vregs[i] >> 64), - (uint64_t) (a->vregs[i] & 0xffffffffffffffff)); + (uint64_t) (m->simd.vregs[i] >> 64), + (uint64_t) (m->simd.vregs[i] & 0xffffffffffffffff), + (uint64_t) (a->simd.vregs[i] >> 64), + (uint64_t) (a->simd.vregs[i] & 0xffffffffffffffff)); } } =20 diff --git a/risu_reginfo_aarch64.h b/risu_reginfo_aarch64.h index a05fb4e..a1c708b 100644 --- a/risu_reginfo_aarch64.h +++ b/risu_reginfo_aarch64.h @@ -13,6 +13,10 @@ #ifndef RISU_REGINFO_AARCH64_H #define RISU_REGINFO_AARCH64_H =20 +struct simd_reginfo { + __uint128_t vregs[32]; +}; + struct reginfo { uint64_t fault_address; uint64_t regs[31]; @@ -24,7 +28,10 @@ struct reginfo { /* FP/SIMD */ uint32_t fpsr; uint32_t fpcr; - __uint128_t vregs[32]; + + union { + struct simd_reginfo simd; + }; }; =20 #endif /* RISU_REGINFO_AARCH64_H */ --=20 2.17.1 From nobody Fri Apr 19 22:44:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1528895105588762.3711159548207; Wed, 13 Jun 2018 06:05:05 -0700 (PDT) Received: from localhost ([::1]:34036 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5SJ-0000lq-LF for importer@patchew.org; Wed, 13 Jun 2018 09:04:55 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50529) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5Jx-0002kx-E1 for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fT5Jw-0005KJ-1z for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:17 -0400 Received: from mail-wm0-x234.google.com ([2a00:1450:400c:c09::234]:55264) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fT5Jv-0005Ir-P6 for qemu-devel@nongnu.org; Wed, 13 Jun 2018 08:56:15 -0400 Received: by mail-wm0-x234.google.com with SMTP id o13-v6so4526573wmf.4 for ; Wed, 13 Jun 2018 05:56:15 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id s10-v6sm4512025wmb.12.2018.06.13.05.56.06 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 13 Jun 2018 05:56:09 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 0C6603E12E5; Wed, 13 Jun 2018 13:56:02 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=HAIX9tTUSqBJuCs9MaUHymal6G4zj6ophHdsDwTVexY=; b=hcoBddz2bO+27vWsOcqWZW8RnxeG/RMlCT2lv8yoYxqkXe1xfdf96lYc/lUG40u+BE d07jW8AqF8r2vezL+v8cpmJ2nH2tVV/FdemsRQsueCnKkGDWVHGB+NYqeDEk7h39wnUX I/34v42WAj7ojJNM8CdlSutRgtOzQDOsSNUy4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=HAIX9tTUSqBJuCs9MaUHymal6G4zj6ophHdsDwTVexY=; b=QT5NR8KOB8hy+wdWo6lC3HEd3S9B6Ht6r47pgOK8xNq+U7NG2gttYfJhz0JHNl1IBv ZeMo0h9SzRWR3YC1nNtUOYoEIUSdEjf9JjyWx6zPQhQkOtEuZSQb9itF77njUxsOjwXC WPzasIipoqcoV05CD6j6CNj2V/3GuI+8k7uju6Flief6XGhBwkDRzDdld1Bv/WYsZY5u uWLUguAaMEzprBA08mxrFiUcynre4bumA+69/tLOm0RZMc8u2wXbbTzTzlC3iUH1cHHt /eNtHaFyI5xb5A5l+LvZY4Gw3DeMljCrpp5HloTxej+N31OeCfuNvDu11Mjun/1GDG0s BmPQ== X-Gm-Message-State: APt69E3I95HPrKTLNE3y1F6QxPjl281h+Z1S2rata1G9f/Yf4K7XZsi0 IEVcUx1SVddF2GuO6QHXcei1ElIN/A8= X-Google-Smtp-Source: ADUXVKIi3Z2qzcSlqvF/rRl9xuNSM6WDd29shdfMy432RVp5ewoRY4AOaAMutS68ydDWQ/KiU7K4QQ== X-Received: by 2002:a1c:43c5:: with SMTP id q188-v6mr3603739wma.69.1528894574626; Wed, 13 Jun 2018 05:56:14 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Wed, 13 Jun 2018 13:55:56 +0100 Message-Id: <20180613125601.14371-18-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180613125601.14371-1-alex.bennee@linaro.org> References: <20180613125601.14371-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::234 Subject: [Qemu-devel] [RISU PATCH v3 17/22] risu_reginfo: introduce reginfo_size() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-arm@nongnu.org, richard.henderson@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 In preparation for conditionally supporting SVE we need to be able to have different sized reginfos. This introduces reginfo_size() to abstract the size away to the code the actually knows. For aarch64 we also use this while initialising the block. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Richard Henderson --- reginfo.c | 6 +++--- risu.h | 3 +++ risu_reginfo_aarch64.c | 11 ++++++++++- risu_reginfo_aarch64.h | 1 + risu_reginfo_arm.c | 5 +++++ risu_reginfo_m68k.c | 5 +++++ risu_reginfo_ppc64.c | 5 +++++ 7 files changed, 32 insertions(+), 4 deletions(-) diff --git a/reginfo.c b/reginfo.c index 1f55d06..dd42ae2 100644 --- a/reginfo.c +++ b/reginfo.c @@ -39,7 +39,7 @@ int send_register_info(write_fn write_fn, void *uc) =20 switch (op) { case OP_TESTEND: - write_fn(&ri, sizeof(ri)); + write_fn(&ri, reginfo_size()); /* if we are tracing write_fn will return 0 unlike a remote end, hence we force return of 1 here */ return 1; @@ -58,7 +58,7 @@ int send_register_info(write_fn write_fn, void *uc) /* Do a simple register compare on (a) explicit request * (b) end of test (c) a non-risuop UNDEF */ - return write_fn(&ri, sizeof(ri)); + return write_fn(&ri, reginfo_size()); } return 0; } @@ -101,7 +101,7 @@ int recv_and_compare_register_info(read_fn read_fn, /* Do a simple register compare on (a) explicit request * (b) end of test (c) a non-risuop UNDEF */ - if (read_fn(&apprentice_ri, sizeof(apprentice_ri))) { + if (read_fn(&apprentice_ri, reginfo_size())) { packet_mismatch =3D 1; resp =3D 2; } else if (!reginfo_is_eq(&master_ri, &apprentice_ri)) { diff --git a/risu.h b/risu.h index 48c50d9..8d2d646 100644 --- a/risu.h +++ b/risu.h @@ -133,4 +133,7 @@ int reginfo_dump(struct reginfo *ri, FILE * f); /* reginfo_dump_mismatch: print mismatch details to a stream, ret nonzero= =3Dok */ int reginfo_dump_mismatch(struct reginfo *m, struct reginfo *a, FILE *f); =20 +/* return size of reginfo */ +const int reginfo_size(void); + #endif /* RISU_H */ diff --git a/risu_reginfo_aarch64.c b/risu_reginfo_aarch64.c index 62a5599..5da9e39 100644 --- a/risu_reginfo_aarch64.c +++ b/risu_reginfo_aarch64.c @@ -15,6 +15,8 @@ #include #include /* for FPSIMD_MAGIC */ #include +#include +#include =20 #include "risu.h" #include "risu_reginfo_aarch64.h" @@ -27,6 +29,13 @@ void process_arch_opt(int opt, const char *arg) abort(); } =20 +const int reginfo_size(void) +{ + const int size =3D offsetof(struct reginfo, simd.end); + assert(sizeof(struct reginfo)=3D=3Dsize); + return size; +} + /* reginfo_init: initialize with a ucontext */ void reginfo_init(struct reginfo *ri, ucontext_t *uc) { @@ -71,7 +80,7 @@ void reginfo_init(struct reginfo *ri, ucontext_t *uc) /* reginfo_is_eq: compare the reginfo structs, returns nonzero if equal */ int reginfo_is_eq(struct reginfo *r1, struct reginfo *r2) { - return memcmp(r1, r2, sizeof(*r1)) =3D=3D 0; + return memcmp(r1, r2, reginfo_size()) =3D=3D 0; } =20 /* reginfo_dump: print state to a stream, returns nonzero on success */ diff --git a/risu_reginfo_aarch64.h b/risu_reginfo_aarch64.h index a1c708b..ef97622 100644 --- a/risu_reginfo_aarch64.h +++ b/risu_reginfo_aarch64.h @@ -15,6 +15,7 @@ =20 struct simd_reginfo { __uint128_t vregs[32]; + char end[0]; }; =20 struct reginfo { diff --git a/risu_reginfo_arm.c b/risu_reginfo_arm.c index 12ad0ef..3662f12 100644 --- a/risu_reginfo_arm.c +++ b/risu_reginfo_arm.c @@ -36,6 +36,11 @@ void process_arch_opt(int opt, const char *arg) abort(); } =20 +const int reginfo_size(void) +{ + return sizeof(struct reginfo); +} + static void reginfo_init_vfp(struct reginfo *ri, ucontext_t *uc) { /* Read VFP registers. These live in uc->uc_regspace, which is diff --git a/risu_reginfo_m68k.c b/risu_reginfo_m68k.c index 7a1c5a9..32b28c8 100644 --- a/risu_reginfo_m68k.c +++ b/risu_reginfo_m68k.c @@ -23,6 +23,11 @@ void process_arch_opt(int opt, const char *arg) abort(); } =20 +const int reginfo_size(void) +{ + return sizeof(struct reginfo); +} + /* reginfo_init: initialize with a ucontext */ void reginfo_init(struct reginfo *ri, ucontext_t *uc) { diff --git a/risu_reginfo_ppc64.c b/risu_reginfo_ppc64.c index 4b70460..f9d2f0d 100644 --- a/risu_reginfo_ppc64.c +++ b/risu_reginfo_ppc64.c @@ -31,6 +31,11 @@ void process_arch_opt(int opt, const char *arg) abort(); } =20 +const int reginfo_size(void) +{ + return sizeof(struct reginfo); +} + /* reginfo_init: initialize with a ucontext */ void reginfo_init(struct reginfo *ri, ucontext_t *uc) { --=20 2.17.1 From nobody Fri Apr 19 22:44:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1528895914717363.1893553311136; Wed, 13 Jun 2018 06:18:34 -0700 (PDT) Received: from localhost ([::1]:34219 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5fV-0004C7-Vw for importer@patchew.org; Wed, 13 Jun 2018 09:18:34 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52386) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5SD-0001Uk-6b for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:04:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fT5SC-0005J0-3R for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:04:49 -0400 Received: from mail-wm0-x244.google.com ([2a00:1450:400c:c09::244]:36158) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fT5SB-0005FU-Sh for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:04:48 -0400 Received: by mail-wm0-x244.google.com with SMTP id v131-v6so5285664wma.1 for ; Wed, 13 Jun 2018 06:04:47 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id c3-v6sm1748869wmb.40.2018.06.13.06.04.45 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 13 Jun 2018 06:04:45 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 1928E3E12F0; Wed, 13 Jun 2018 13:56:02 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3GZt6zmPPRz/Cc8Er05snigjnuvB2tXpXhI9lbDLCgQ=; b=bWv0ExrIoDWSsBtKBMNoVX0tx7tWJK/GZMO4Y7JFxD/FrgyOwQxoLjujJyBZ13m9qA 3HwJnWF4sCHwTt9F8CllboabCB1WI5e9wbrYUXjQg5sY6ZUqlNo2SNbdf8rYpy3giK03 YnrxBXJYpJaghKSU+i4dFAhqVOr+Cx2ZesTQ0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=3GZt6zmPPRz/Cc8Er05snigjnuvB2tXpXhI9lbDLCgQ=; b=mByL1Jk0pAl/Zc2rPqAtfPw3PMZFvrlmJxSFocAHja/0+xe7qq8gXRWxNp6AOLvN40 sh2w1s0tWm8WTHUau/L7ecrbhWOZ4YguA5pW8+eb3o2RyY2L/24rt8qrlp3S3S2NjAg7 xIOhRLk/4uvjtCfA6sEWtHJhG284v04ko8T/ZUNl0ZNCnjuHO4bKluBIphYkqrX0yPEa M62+XF3G+k4nHAN8LxFZCDgjK2IVX7mdT1WbLNiNJQ6v09FU5+90gUfKvXDXhz1/kahv 7Utg5Xe7wtyYh6gN5Q6R3akYYHFuAn+DMInYG3avu+whGpYFjb31EOWrpDBXATBJOUf8 q25w== X-Gm-Message-State: APt69E3pFQ82BN+K0l59bRj1wE2BRx557vCY/bVxtr4zdQmLG96AQmHB OB+wQIDDDA+Zabcz0FccL0WtUA== X-Google-Smtp-Source: ADUXVKJLQ0IjyNgLsoVgjTPJ8wbU1f6xXcukL6JHgJAuixKik4p7190yvrF9WRjOc7uUhbbi2wmL/Q== X-Received: by 2002:a1c:64d7:: with SMTP id y206-v6mr3428042wmb.43.1528895086772; Wed, 13 Jun 2018 06:04:46 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Wed, 13 Jun 2018 13:55:57 +0100 Message-Id: <20180613125601.14371-19-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180613125601.14371-1-alex.bennee@linaro.org> References: <20180613125601.14371-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::244 Subject: [Qemu-devel] [RISU PATCH v3 18/22] risu_reginfo_aarch64: left justify regnums and drop masks X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-arm@nongnu.org, richard.henderson@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Left justification is more pleasing to the eye than the default. We also drop the masking which isn't needed as we are casting to a smaller size anyway. This was split out of Richard's re-factoring work for SVE. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Richard Henderson --- risu_reginfo_aarch64.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/risu_reginfo_aarch64.c b/risu_reginfo_aarch64.c index 5da9e39..3ccaf0e 100644 --- a/risu_reginfo_aarch64.c +++ b/risu_reginfo_aarch64.c @@ -90,7 +90,7 @@ int reginfo_dump(struct reginfo *ri, FILE * f) fprintf(f, " faulting insn %08x\n", ri->faulting_insn); =20 for (i =3D 0; i < 31; i++) { - fprintf(f, " X%2d : %016" PRIx64 "\n", i, ri->regs[i]); + fprintf(f, " X%-2d : %016" PRIx64 "\n", i, ri->regs[i]); } =20 fprintf(f, " sp : %016" PRIx64 "\n", ri->sp); @@ -100,9 +100,9 @@ int reginfo_dump(struct reginfo *ri, FILE * f) fprintf(f, " fpcr : %08x\n", ri->fpcr); =20 for (i =3D 0; i < 32; i++) { - fprintf(f, " V%2d : %016" PRIx64 "%016" PRIx64 "\n", i, + fprintf(f, " V%-2d : %016" PRIx64 "%016" PRIx64 "\n", i, (uint64_t) (ri->simd.vregs[i] >> 64), - (uint64_t) (ri->simd.vregs[i] & 0xffffffffffffffff)); + (uint64_t) (ri->simd.vregs[i])); } =20 return !ferror(f); @@ -119,7 +119,7 @@ int reginfo_dump_mismatch(struct reginfo *m, struct reg= info *a, FILE * f) } for (i =3D 0; i < 31; i++) { if (m->regs[i] !=3D a->regs[i]) { - fprintf(f, " X%2d : %016" PRIx64 " vs %016" PRIx64 "\n", + fprintf(f, " X%-2d : %016" PRIx64 " vs %016" PRIx64 "\n", i, m->regs[i], a->regs[i]); } } @@ -148,13 +148,13 @@ int reginfo_dump_mismatch(struct reginfo *m, struct r= eginfo *a, FILE * f) =20 for (i =3D 0; i < 32; i++) { if (m->simd.vregs[i] !=3D a->simd.vregs[i]) { - fprintf(f, " V%2d : " + fprintf(f, " V%-2d : " "%016" PRIx64 "%016" PRIx64 " vs " "%016" PRIx64 "%016" PRIx64 "\n", i, (uint64_t) (m->simd.vregs[i] >> 64), - (uint64_t) (m->simd.vregs[i] & 0xffffffffffffffff), + (uint64_t) m->simd.vregs[i], (uint64_t) (a->simd.vregs[i] >> 64), - (uint64_t) (a->simd.vregs[i] & 0xffffffffffffffff)); + (uint64_t) a->simd.vregs[i]); } } =20 --=20 2.17.1 From nobody Fri Apr 19 22:44:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 152889542049153.52315659712565; Wed, 13 Jun 2018 06:10:20 -0700 (PDT) Received: from localhost ([::1]:34106 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5XX-0005HU-Bq for importer@patchew.org; Wed, 13 Jun 2018 09:10:19 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52379) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5SD-0001Ui-3h for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:04:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fT5SB-0005Gj-HK for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:04:49 -0400 Received: from mail-wr0-x242.google.com ([2a00:1450:400c:c0c::242]:37688) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fT5SB-0005Dy-8f for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:04:47 -0400 Received: by mail-wr0-x242.google.com with SMTP id d8-v6so2693143wro.4 for ; Wed, 13 Jun 2018 06:04:47 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id j4-v6sm2566981wrr.47.2018.06.13.06.04.45 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 13 Jun 2018 06:04:45 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 24DA33E1305; Wed, 13 Jun 2018 13:56:02 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=7LijovdmKNV9kAq+uRPzeOm1CxkfeVzs8McFFxEKX1M=; b=Ka3j0sG+Rz47VAqe8RZ0IYI445ozvLKdXXWSX7cWjv4a+PgIosqzHjnPXanwSCRHhx xl+lWXFVcsS5KZMgZwA2Y4damwljuwy5FVoXD8q2PhGyS4WREL2bdhu7qBxa1Ae85J2h Z4mTprVmfZSx8f1D75MloOSm/piRMTSo5E4No= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=7LijovdmKNV9kAq+uRPzeOm1CxkfeVzs8McFFxEKX1M=; b=bZhQYdQCxNkIjScJw2zHuElZGph3aFO9Akj7+YhZsJF4zja7cGvXbcIyWCGEgtMB5T LoiLMZn1y5TuQMKalm6JWxmWCNFksjaSH678eFCAqvEswpCFZXXnnhzRcwV3eiuVMkfh wvOiC4GREGXtE9+Go1+qH2Q1yRf1FDVi/tOli7ZFbhLgkDswbqAMQnqg/TZmDCrJyNLA g83cYLwKImMrneMWIXMAVlXLiG5ypm0onclcA8P0jIxkJ4kb2wN+O3wYvegnbdgZExRl UqqNl16ibBFYqFUdKdyNpz2rOmD28dpQ9/kOVttmTn3f554xmuC0QUbqRHfeAJ4c2elx e+1w== X-Gm-Message-State: APt69E03vJJOvigsA+4RH70oKlovF938cWef4iGcZ1pLhw30PMXe3jki 1WTU+tMUGfwp8tUY4wuZHGBfFg== X-Google-Smtp-Source: ADUXVKKHXK60RbC+ocl20KlpUb5ZDhCnZPxPsLL+RpKL1ZPkTdC1DctqTXZ0KnGD436eiaY+kYWQ2Q== X-Received: by 2002:adf:a20a:: with SMTP id p10-v6mr4130343wra.196.1528895086103; Wed, 13 Jun 2018 06:04:46 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Wed, 13 Jun 2018 13:55:58 +0100 Message-Id: <20180613125601.14371-20-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180613125601.14371-1-alex.bennee@linaro.org> References: <20180613125601.14371-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::242 Subject: [Qemu-devel] [RISU PATCH v3 19/22] risu_reginfo_aarch64: add support for copying SVE register state X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-arm@nongnu.org, richard.henderson@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Add the ability to save SVE registers from the signal context. This is controlled with an optional flag --test-sve. The whole thing is conditionally compiled when SVE support is in the sigcontext headers. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Richard Henderson --- v2 - support EXTRA_MAGIC contexts v3 - handle conditional bits - include in reginfo.h - move from helper function to main init function - (void *) cast for memcpy - additional ifdef SVE_MAGIC stuff --- risu_reginfo_aarch64.c | 107 ++++++++++++++++++++++++++++++++++++----- risu_reginfo_aarch64.h | 16 ++++++ 2 files changed, 110 insertions(+), 13 deletions(-) diff --git a/risu_reginfo_aarch64.c b/risu_reginfo_aarch64.c index 3ccaf0e..79db5dd 100644 --- a/risu_reginfo_aarch64.c +++ b/risu_reginfo_aarch64.c @@ -16,13 +16,26 @@ #include /* for FPSIMD_MAGIC */ #include #include -#include +#include =20 #include "risu.h" #include "risu_reginfo_aarch64.h" =20 +#ifndef SVE_MAGIC const struct option * const arch_long_opts; const char * const arch_extra_help; +#else + +/* Should we test SVE register state */ +static int test_sve; +static const struct option extra_opts[] =3D { + {"test-sve", no_argument, &test_sve, 1}, + {0, 0, 0, 0} +}; + +const struct option * const arch_long_opts =3D &extra_opts[0]; +const char * const arch_extra_help =3D " --test-sve Compare SVE re= gisters\n"; +#endif =20 void process_arch_opt(int opt, const char *arg) { @@ -31,8 +44,12 @@ void process_arch_opt(int opt, const char *arg) =20 const int reginfo_size(void) { - const int size =3D offsetof(struct reginfo, simd.end); - assert(sizeof(struct reginfo)=3D=3Dsize); + int size =3D offsetof(struct reginfo, simd.end); +#ifdef SVE_MAGIC + if (test_sve) { + size =3D offsetof(struct reginfo, sve.end); + } +#endif return size; } =20 @@ -40,8 +57,12 @@ const int reginfo_size(void) void reginfo_init(struct reginfo *ri, ucontext_t *uc) { int i; - struct _aarch64_ctx *ctx; - struct fpsimd_context *fp; + struct _aarch64_ctx *ctx, *extra =3D NULL; + struct fpsimd_context *fp =3D NULL; +#ifdef SVE_MAGIC + struct sve_context *sve =3D NULL; +#endif + /* necessary to be able to compare with memcmp later */ memset(ri, 0, sizeof(*ri)); =20 @@ -57,21 +78,81 @@ void reginfo_init(struct reginfo *ri, ucontext_t *uc) ri->faulting_insn =3D *((uint32_t *) uc->uc_mcontext.pc); =20 ctx =3D (struct _aarch64_ctx *) &uc->uc_mcontext.__reserved[0]; - - while (ctx->magic !=3D FPSIMD_MAGIC && ctx->size !=3D 0) { - ctx +=3D (ctx->size + sizeof(*ctx) - 1) / sizeof(*ctx); + while (ctx) { + switch (ctx->magic) { + case FPSIMD_MAGIC: + fp =3D (void *)ctx; + break; +#ifdef SVE_MAGIC + case SVE_MAGIC: + sve =3D (void *)ctx; + break; + case EXTRA_MAGIC: + extra =3D (void *)((struct extra_context *)(ctx))->datap; + break; +#endif + case 0: + /* End of list. */ + ctx =3D extra; + extra =3D NULL; + continue; + default: + /* Unknown record -- skip it. */ + break; + } + ctx =3D (void *)ctx + ctx->size; } =20 - if (ctx->magic !=3D FPSIMD_MAGIC || ctx->size !=3D sizeof(*fp)) { - fprintf(stderr, - "risu_reginfo_aarch64: failed to get FP/SIMD state\n"); + if (!fp || fp->head.size !=3D sizeof(*fp)) { + fprintf(stderr, "risu_reginfo_aarch64: failed to get FP/SIMD state= \n"); return; } - - fp =3D (struct fpsimd_context *) ctx; ri->fpsr =3D fp->fpsr; ri->fpcr =3D fp->fpcr; =20 +#ifdef SVE_MAGIC + if (test_sve) { + int vq =3D sve_vq_from_vl(sve->vl); /* number of quads for whole v= l */ + + if (sve =3D=3D NULL) { + fprintf(stderr, "risu_reginfo_aarch64: failed to get SVE state= \n"); + return; + } + + ri->sve.vl =3D sve->vl; + + if (sve->head.size < SVE_SIG_CONTEXT_SIZE(vq)) { + if (sve->head.size =3D=3D sizeof(*sve)) { + /* SVE state is empty -- not an error. */ + } else { + fprintf(stderr, "risu_reginfo_aarch64: " + "failed to get complete SVE state\n"); + } + return; + } + + /* Copy ZREG's one at a time */ + for (i =3D 0; i < SVE_NUM_ZREGS; i++) { + memcpy(&ri->sve.zregs[i], + (void *)sve + SVE_SIG_ZREG_OFFSET(vq, i), + SVE_SIG_ZREG_SIZE(vq)); + } + + /* Copy PREG's one at a time */ + for (i =3D 0; i < SVE_NUM_PREGS; i++) { + memcpy(&ri->sve.pregs[i], + (void *)sve + SVE_SIG_PREG_OFFSET(vq, i), + SVE_SIG_PREG_SIZE(vq)); + } + + /* Finally the FFR */ + memcpy(&ri->sve.ffr,(void *)sve + SVE_SIG_FFR_OFFSET(vq), + SVE_SIG_FFR_SIZE(vq)); + + return; + } +#endif + for (i =3D 0; i < 32; i++) { ri->simd.vregs[i] =3D fp->vregs[i]; } diff --git a/risu_reginfo_aarch64.h b/risu_reginfo_aarch64.h index ef97622..b3701b3 100644 --- a/risu_reginfo_aarch64.h +++ b/risu_reginfo_aarch64.h @@ -13,11 +13,24 @@ #ifndef RISU_REGINFO_AARCH64_H #define RISU_REGINFO_AARCH64_H =20 +#include /* for SVE_MAGIC */ + struct simd_reginfo { __uint128_t vregs[32]; char end[0]; }; =20 +#ifdef SVE_MAGIC +struct sve_reginfo { + /* SVE */ + uint16_t vl; /* current VL */ + __uint128_t zregs[SVE_NUM_ZREGS][SVE_VQ_MAX]; + uint16_t pregs[SVE_NUM_PREGS][SVE_VQ_MAX]; + uint16_t ffr[SVE_VQ_MAX]; + char end[0]; +}; +#endif + struct reginfo { uint64_t fault_address; uint64_t regs[31]; @@ -32,6 +45,9 @@ struct reginfo { =20 union { struct simd_reginfo simd; +#ifdef SVE_MAGIC + struct sve_reginfo sve; +#endif }; }; =20 --=20 2.17.1 From nobody Fri Apr 19 22:44:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1528896291771562.9363072184193; Wed, 13 Jun 2018 06:24:51 -0700 (PDT) Received: from localhost ([::1]:34297 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5lP-0000Vt-IB for importer@patchew.org; Wed, 13 Jun 2018 09:24:39 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52546) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5SJ-0001Zy-SQ for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:04:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fT5SD-0005Ox-S0 for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:04:55 -0400 Received: from mail-wr0-x231.google.com ([2a00:1450:400c:c0c::231]:39123) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fT5SD-0005M3-Ji for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:04:49 -0400 Received: by mail-wr0-x231.google.com with SMTP id w7-v6so2683375wrn.6 for ; Wed, 13 Jun 2018 06:04:49 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id t17-v6sm3596895wrr.82.2018.06.13.06.04.45 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 13 Jun 2018 06:04:45 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 319203E130E; Wed, 13 Jun 2018 13:56:02 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=m5poxk/3IEl6hK1Nv7oygKfYCWi7POaKrRzUx6MinRw=; b=Ll1eoHyBhPlmFEWGFT8A0TIFdfHkgTmaUNnAtv9gzTM771C2QPcekhNHMxGJIwY90Z LNK2YtblYUNbGSI4/pce8OPRgcA1M8imFA5GfHVdXyb2pfUXiW+1KGZjHsmQ5zbmmU92 SH26dmv3J2tnG2YDvW45PFP2sEsUxv7yBPCLE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=m5poxk/3IEl6hK1Nv7oygKfYCWi7POaKrRzUx6MinRw=; b=VkxFLpplM814k2A2XHUKDzMvmUJthTS96gzRgASEa/WtQvMckPKQQKAWrgqi7FFhzZ Vqz2F50oKJaAE4IaK2WGvh86JLigFgqXaLhNeskdPT18P7A1wBpN5MP0Ig90abtdYqj4 u4LLox3kVR3VgMV3bi/pFOo8hxSwtb8LqcYUfgEsdy018EYYtOlAEFi/VBtIR0D86Pqe WmQ5QVetmtswLsJzSvIMljqrlqFfmMowFJq9+P01ajTg2cM8fwQT9yNqDLeCqW7NlSYv 7G7RUhgCSKkLHR09Q3MgWu++FeYRX8dAOh1VcO+XHZvD9+nytAElcuskPckSfOfQazap 6K/w== X-Gm-Message-State: APt69E3ueEckR0l6feepA25jRSfsvSByGwnx9LptHeqlBg6I2oD1cQYC 7tmq7hAaSu9EZC2INKqt92gkMg== X-Google-Smtp-Source: ADUXVKKHTGqrOGA2lf4MefiNruw2kP2WrJixr8p3lkJJN+U19QP60OirOndo1aWnPCskGV/Z4Vfs4A== X-Received: by 2002:adf:f112:: with SMTP id r18-v6mr4017135wro.134.1528895088500; Wed, 13 Jun 2018 06:04:48 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Wed, 13 Jun 2018 13:55:59 +0100 Message-Id: <20180613125601.14371-21-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180613125601.14371-1-alex.bennee@linaro.org> References: <20180613125601.14371-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::231 Subject: [Qemu-devel] [RISU PATCH v3 20/22] risu_reginfo_aarch64: add SVE support to reginfo_dump_mismatch X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-arm@nongnu.org, richard.henderson@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Alex Benn=C3=A9e --- v2 - include ffr in comparison - mild re-factor of preg cmp/diff v3 - re-factoring --- risu_reginfo_aarch64.c | 74 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/risu_reginfo_aarch64.c b/risu_reginfo_aarch64.c index 79db5dd..a352b4c 100644 --- a/risu_reginfo_aarch64.c +++ b/risu_reginfo_aarch64.c @@ -17,6 +17,7 @@ #include #include #include +#include =20 #include "risu.h" #include "risu_reginfo_aarch64.h" @@ -164,6 +165,35 @@ int reginfo_is_eq(struct reginfo *r1, struct reginfo *= r2) return memcmp(r1, r2, reginfo_size()) =3D=3D 0; } =20 +#ifdef SVE_MAGIC +static int sve_zreg_is_eq(struct reginfo *r1, struct reginfo *r2, int z) +{ + return memcmp(r1->sve.zregs[z], r2->sve.zregs[z], sizeof(*r1->sve.zreg= s[z])) =3D=3D 0; +} + +static int sve_preg_is_eq(uint16_t const (*p1)[SVE_VQ_MAX], + uint16_t const (*p2)[SVE_VQ_MAX]) +{ + return memcmp(p1, p2, sizeof *p1) =3D=3D 0; +} + +static void sve_dump_preg_diff(FILE *f, int vq, + uint16_t const (*p1)[SVE_VQ_MAX], + uint16_t const (*p2)[SVE_VQ_MAX]) +{ + int q; + + for (q =3D 0; q < vq; q++) { + fprintf(f, "%#04x", *p1[q]); + } + fprintf(f, " vs "); + for (q =3D 0; q < vq; q++) { + fprintf(f, "%#04x", *p2[q]); + } + fprintf(f, "\n"); +} +#endif + /* reginfo_dump: print state to a stream, returns nonzero on success */ int reginfo_dump(struct reginfo *ri, FILE * f) { @@ -227,6 +257,50 @@ int reginfo_dump_mismatch(struct reginfo *m, struct re= ginfo *a, FILE * f) fprintf(f, " fpcr : %08x vs %08x\n", m->fpcr, a->fpcr); } =20 +#ifdef SVE_MAGIC + if (test_sve) { + struct sve_reginfo *ms =3D &m->sve; + struct sve_reginfo *as =3D &a->sve; + + if (ms->vl !=3D as->vl) { + fprintf(f, " SVE VL : %d vs %d\n", ms->vl, as->vl); + } + + if (!sve_preg_is_eq(&ms->ffr, &as->ffr)) { + fprintf(f, " FFR : "); + sve_dump_preg_diff(f, sve_vq_from_vl(ms->vl), + &ms->pregs[i], &as->pregs[i]); + } + for (i =3D 0; i < SVE_NUM_PREGS; i++) { + if (!sve_preg_is_eq(&ms->pregs[i], &as->pregs[i])) { + fprintf(f, " P%2d : ", i); + sve_dump_preg_diff(f, sve_vq_from_vl(ms->vl), + &ms->pregs[i], &as->pregs[i]); + } + } + for (i =3D 0; i < SVE_NUM_ZREGS; i++) { + if (!sve_zreg_is_eq(m, a, i)) { + int q; + char *pad=3D""; + fprintf(f, " Z%2d : ", i); + for (q =3D 0; q < sve_vq_from_vl(ms->vl); q++) { + if (ms->zregs[i][q] !=3D as->zregs[i][q]) { + fprintf(f, "%sq%02d: %016" PRIx64 "%016" PRIx64 + " vs %016" PRIx64 "%016" PRIx64"\n", pad, q, + (uint64_t) (ms->zregs[i][q] >> 64), + (uint64_t) ms->zregs[i][q], + (uint64_t) (as->zregs[i][q] >> 64), + (uint64_t) as->zregs[i][q]); + pad =3D " "; + } + } + } + } + + return !ferror(f); + } +#endif + for (i =3D 0; i < 32; i++) { if (m->simd.vregs[i] !=3D a->simd.vregs[i]) { fprintf(f, " V%-2d : " --=20 2.17.1 From nobody Fri Apr 19 22:44:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1528896089074116.23534959144945; Wed, 13 Jun 2018 06:21:29 -0700 (PDT) Received: from localhost ([::1]:34259 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5iK-0006ei-8l for importer@patchew.org; Wed, 13 Jun 2018 09:21:28 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52483) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5SH-0001X8-CE for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:04:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fT5SF-0005V4-Sq for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:04:53 -0400 Received: from mail-wm0-x243.google.com ([2a00:1450:400c:c09::243]:36158) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fT5SF-0005T2-Kz for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:04:51 -0400 Received: by mail-wm0-x243.google.com with SMTP id v131-v6so5286119wma.1 for ; Wed, 13 Jun 2018 06:04:51 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id 132-v6sm4114638wmr.33.2018.06.13.06.04.46 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 13 Jun 2018 06:04:49 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 3D4993E1351; Wed, 13 Jun 2018 13:56:02 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=eRUvf69/Mjicin5hPK1+CpPdqfXsU3+UuNwgwB7o0xM=; b=B0cgWlnKmhbJ3Q1PYgepMPEVLXmNVJWsFVR+Iwu8UxkXvAoONVXagL1LjfaZM6WwDl EZkTxqu3FSel85VeepguHR5lNrJxcjoMRQ7zTO5ek0FskMyTIMWDXz2L5wwxxd90clwJ xjyW4QDsgANXoRxf0lYr9I1txKErqkCElBSlU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=eRUvf69/Mjicin5hPK1+CpPdqfXsU3+UuNwgwB7o0xM=; b=RCtNqGR4988rIokkOdNlry5QQ9TFBtt3wOwTxFENPjFPyb0Me4JyZ3XP+CI4ahqWZK 08A31kKQ8mdOLx3CyMlfn8twsLQ641jXA9vtXEQIFsnO8dZ5XM87f3FSM0Ty5ioJNbeZ gxnD7bTO6F0Q66Ci7nKTxuH/M/Kfaa+C9ZegyLSYjFbCl7IpUfz3/oXUvalvD3zlhGLL ewoGbVfdD50nN/hs3mpmnY38f1TDeNLtJYS0+kzsO8ewZ34YEU3tT4MlilPKoPTdBmGD 9kLFPV9XCceG71p6QjpLumkHmQT/iKqFfA8JqzFUSCyk2K0N2iGbwOjVNB7lzBrGlleO hWPg== X-Gm-Message-State: APt69E3S8xvoUnGMrysHa6wE/k6F6TdCal0nqICPoRz3yTuV2oOpMuWg WWCmwc+I5m2jg5qnomUzvIlbDQ== X-Google-Smtp-Source: ADUXVKJ5EhvGz9iYUPUh0QSVdLL3VxBxFGW4BXm4QX0NCLuwnWCx1WIpksXops6D794gAYY3gAQbAw== X-Received: by 2002:a1c:9189:: with SMTP id t131-v6mr3755594wmd.89.1528895090590; Wed, 13 Jun 2018 06:04:50 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Wed, 13 Jun 2018 13:56:00 +0100 Message-Id: <20180613125601.14371-22-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180613125601.14371-1-alex.bennee@linaro.org> References: <20180613125601.14371-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::243 Subject: [Qemu-devel] [RISU PATCH v3 21/22] risu_reginfo_aarch64: limit SVE_VQ_MAX to current architecture X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-arm@nongnu.org, richard.henderson@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 From: Richard Henderson The kernel headers optimistically assume it's going to grow but as we are never going to use that many on current hardware we limit SVE_VQ_MAX to what we will. Signed-off-by: Richard Henderson Signed-off-by: Alex Benn=C3=A9e --- risu_reginfo_aarch64.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/risu_reginfo_aarch64.h b/risu_reginfo_aarch64.h index b3701b3..c33b86f 100644 --- a/risu_reginfo_aarch64.h +++ b/risu_reginfo_aarch64.h @@ -31,6 +31,11 @@ struct sve_reginfo { }; #endif =20 +/* The kernel headers set this based on future arch extensions. + The current arch maximum is 16. Save space below. */ +#undef SVE_VQ_MAX +#define SVE_VQ_MAX 16 + struct reginfo { uint64_t fault_address; uint64_t regs[31]; --=20 2.17.1 From nobody Fri Apr 19 22:44:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1528896209082995.6375023577932; Wed, 13 Jun 2018 06:23:29 -0700 (PDT) Received: from localhost ([::1]:34292 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5k9-0008Bt-BY for importer@patchew.org; Wed, 13 Jun 2018 09:23:21 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52529) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fT5SJ-0001ZD-31 for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:04:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fT5SG-0005X0-P4 for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:04:55 -0400 Received: from mail-wr0-x22d.google.com ([2a00:1450:400c:c0c::22d]:41612) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fT5SG-0005Um-F7 for qemu-devel@nongnu.org; Wed, 13 Jun 2018 09:04:52 -0400 Received: by mail-wr0-x22d.google.com with SMTP id h10-v6so2662866wrq.8 for ; Wed, 13 Jun 2018 06:04:52 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id a1-v6sm2742974wrq.54.2018.06.13.06.04.46 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 13 Jun 2018 06:04:49 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 49EB33E1357; Wed, 13 Jun 2018 13:56:02 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=LgQ7v8FSvW3rYAYloOho4U2Wg8+IrRIeB0BXVRYCzj0=; b=cL6XUzg4vQ47BteW2zBLywsm3NKH92XdKgGba8BnwE4f+3lnQ+p1IrccYSwL1wuaJ3 D15gjgz98BkkHsUYm0yXUebyRMG1fjhVzgLvgN/bucnvUA6spoDbHfpQhrpq1CQ9QV0K ki6fDuzjvVrTp1vRXZqBbuN845ExlUny3vRng= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=LgQ7v8FSvW3rYAYloOho4U2Wg8+IrRIeB0BXVRYCzj0=; b=OYHlOQcaQZzxEuHcaR11evr6rC5/YkPFsQJr680g0ZeJwRczGqhaSrP0osd8me5pds G7cQVtMfhigcEhVQuB6m9kz+Rns6OiQYLzPwcZc5HUMP+H4QXYrDff15t0DQGIUDEE4I NcDrRqBA39i3v3p/EHVKWoTAw4kmgwRnKFSz5MP4akHeBVprboXR7xqoRdZ4cWwl4DEw fWYxE24E4S7AUnCpBxwCUTJ0wmpwnNhU4JIQclZKJGPgxiqOvqsMkOUHTE0lgcN3M8vv igizfkGIXICRAKZz3/iTPCZAtmzzBoeplHSgSucYDVX/q/FbXgVnnvBisjaqzdqfCXFq EmgQ== X-Gm-Message-State: APt69E0OfBb4EIN0qXQBFpyNm5aD+9/gcVM+mmUVCuYiFYUSgJpL7Whz YC3uoQs1J/DPzpidnTfCGPsoug== X-Google-Smtp-Source: ADUXVKJ6aF6zFEQzQMyPgGbOeA5qGAbor48Ue9Csa4gYSpqa2AovuFGJzXiYFVZhYYueisFxGy1TQA== X-Received: by 2002:adf:dc52:: with SMTP id m18-v6mr4379645wrj.84.1528895091357; Wed, 13 Jun 2018 06:04:51 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Wed, 13 Jun 2018 13:56:01 +0100 Message-Id: <20180613125601.14371-23-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180613125601.14371-1-alex.bennee@linaro.org> References: <20180613125601.14371-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::22d Subject: [Qemu-devel] [RISU PATCH v3 22/22] risu_reginfo_aarch64: handle variable VQ X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-arm@nongnu.org, richard.henderson@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 This involves parsing the command line parameter and calling the kernel to set the VQ limit. We also add dumping of the register state in the main register dump. Signed-off-by: Alex Benn=C3=A9e --- risu_reginfo_aarch64.c | 164 +++++++++++++++++++++++++++++------------ 1 file changed, 115 insertions(+), 49 deletions(-) diff --git a/risu_reginfo_aarch64.c b/risu_reginfo_aarch64.c index a352b4c..71c57b9 100644 --- a/risu_reginfo_aarch64.c +++ b/risu_reginfo_aarch64.c @@ -18,6 +18,8 @@ #include #include #include +#include +#include =20 #include "risu.h" #include "risu_reginfo_aarch64.h" @@ -30,17 +32,41 @@ const char * const arch_extra_help; /* Should we test SVE register state */ static int test_sve; static const struct option extra_opts[] =3D { - {"test-sve", no_argument, &test_sve, 1}, + {"test-sve", required_argument, NULL, FIRST_ARCH_OPT }, {0, 0, 0, 0} }; =20 const struct option * const arch_long_opts =3D &extra_opts[0]; -const char * const arch_extra_help =3D " --test-sve Compare SVE re= gisters\n"; +const char * const arch_extra_help + =3D " --test-sve=3D Compare SVE registers with VQ\n"; #endif =20 void process_arch_opt(int opt, const char *arg) { +#ifdef SVE_MAGIC + long want, got; + + assert(opt =3D=3D FIRST_ARCH_OPT); + test_sve =3D strtol(arg, 0, 10); + + if (test_sve <=3D 0 || test_sve > SVE_VQ_MAX) { + fprintf(stderr, "Invalid value for VQ (1-%d)\n", SVE_VQ_MAX); + exit(1); + } + want =3D sve_vl_from_vq(test_sve); + got =3D prctl(PR_SVE_SET_VL, want); + if (want !=3D got) { + if (got < 0) { + perror("prctl PR_SVE_SET_VL"); + } else { + fprintf(stderr, "Unsupported value for VQ (%d !=3D %d)\n", + test_sve, (int)sve_vq_from_vl(got)); + } + exit(1); + } +#else abort(); +#endif } =20 const int reginfo_size(void) @@ -113,12 +139,18 @@ void reginfo_init(struct reginfo *ri, ucontext_t *uc) =20 #ifdef SVE_MAGIC if (test_sve) { - int vq =3D sve_vq_from_vl(sve->vl); /* number of quads for whole v= l */ + int vq =3D test_sve; =20 if (sve =3D=3D NULL) { fprintf(stderr, "risu_reginfo_aarch64: failed to get SVE state= \n"); return; } + if (sve->vl !=3D sve_vl_from_vq(vq)) { + fprintf(stderr, "risu_reginfo_aarch64: " + "unexpected SVE state: %d !=3D %d\n", + sve->vl, sve_vl_from_vq(vq)); + return; + } =20 ri->sve.vl =3D sve->vl; =20 @@ -147,12 +179,12 @@ void reginfo_init(struct reginfo *ri, ucontext_t *uc) } =20 /* Finally the FFR */ - memcpy(&ri->sve.ffr,(void *)sve + SVE_SIG_FFR_OFFSET(vq), + memcpy(&ri->sve.ffr, (void *)sve + SVE_SIG_FFR_OFFSET(vq), SVE_SIG_FFR_SIZE(vq)); =20 return; } -#endif +#endif /* SVE_MAGIC */ =20 for (i =3D 0; i < 32; i++) { ri->simd.vregs[i] =3D fp->vregs[i]; @@ -166,32 +198,49 @@ int reginfo_is_eq(struct reginfo *r1, struct reginfo = *r2) } =20 #ifdef SVE_MAGIC -static int sve_zreg_is_eq(struct reginfo *r1, struct reginfo *r2, int z) +static int sve_zreg_is_eq(int vq, const void *z1, const void *z2) { - return memcmp(r1->sve.zregs[z], r2->sve.zregs[z], sizeof(*r1->sve.zreg= s[z])) =3D=3D 0; + return memcmp(z1, z2, vq * 16) =3D=3D 0; } =20 -static int sve_preg_is_eq(uint16_t const (*p1)[SVE_VQ_MAX], - uint16_t const (*p2)[SVE_VQ_MAX]) +static int sve_preg_is_eq(int vq, const void *p1, const void *p2) { - return memcmp(p1, p2, sizeof *p1) =3D=3D 0; + return memcmp(p1, p2, vq * 2) =3D=3D 0; } =20 -static void sve_dump_preg_diff(FILE *f, int vq, - uint16_t const (*p1)[SVE_VQ_MAX], - uint16_t const (*p2)[SVE_VQ_MAX]) +static void sve_dump_preg(FILE *f, int vq, const uint16_t *p) { int q; - - for (q =3D 0; q < vq; q++) { - fprintf(f, "%#04x", *p1[q]); + for (q =3D vq - 1; q >=3D 0; q--) { + fprintf(f, "%04x", p[q]); } +} + +static void sve_dump_preg_diff(FILE *f, int vq, const uint16_t *p1, + const uint16_t *p2) +{ + sve_dump_preg(f, vq, p1); fprintf(f, " vs "); - for (q =3D 0; q < vq; q++) { - fprintf(f, "%#04x", *p2[q]); - } + sve_dump_preg(f, vq, p2); fprintf(f, "\n"); } + +static void sve_dump_zreg_diff(FILE *f, int vq, const __uint128_t *z1, + const __uint128_t *z2) +{ + const char *pad =3D ""; + int q; + + for (q =3D 0; q < vq; ++q) { + if (z1[q] !=3D z2[q]) { + fprintf(f, "%sq%02d: %016" PRIx64 "%016" PRIx64 + " vs %016" PRIx64 "%016" PRIx64"\n", pad, q, + (uint64_t)(z1[q] >> 64), (uint64_t)z1[q], + (uint64_t)(z2[q] >> 64), (uint64_t)z2[q]); + pad =3D " "; + } + } +} #endif =20 /* reginfo_dump: print state to a stream, returns nonzero on success */ @@ -210,6 +259,36 @@ int reginfo_dump(struct reginfo *ri, FILE * f) fprintf(f, " fpsr : %08x\n", ri->fpsr); fprintf(f, " fpcr : %08x\n", ri->fpcr); =20 +#ifdef SVE_MAGIC + if (test_sve) { + int q, vq =3D test_sve; + + fprintf(f, " vl : %d\n", ri->sve.vl); + + for (i =3D 0; i < 32; i++) { + fprintf(f, " Z%-2d q%-2d: %016" PRIx64 "%016" PRIx64 "\n", i,= 0, + (uint64_t)(ri->sve.zregs[i][0] >> 64), + (uint64_t)ri->sve.zregs[i][0]); + for (q =3D 1; q < vq; ++q) { + fprintf(f, " q%-2d: %016" PRIx64 "%016" PRIx64 "\n", = q, + (uint64_t)(ri->sve.zregs[i][q] >> 64), + (uint64_t)ri->sve.zregs[i][q]); + } + } + + for (i =3D 0; i < 16; i++) { + fprintf(f, " P%-2d : ", i); + sve_dump_preg(f, vq, &ri->sve.pregs[i][0]); + fprintf(f, "\n"); + } + fprintf(f, " FFR : "); + sve_dump_preg(f, vq, &ri->sve.ffr[0]); + fprintf(f, "\n"); + + return !ferror(f); + } +#endif + for (i =3D 0; i < 32; i++) { fprintf(f, " V%-2d : %016" PRIx64 "%016" PRIx64 "\n", i, (uint64_t) (ri->simd.vregs[i] >> 64), @@ -259,42 +338,29 @@ int reginfo_dump_mismatch(struct reginfo *m, struct r= eginfo *a, FILE * f) =20 #ifdef SVE_MAGIC if (test_sve) { - struct sve_reginfo *ms =3D &m->sve; - struct sve_reginfo *as =3D &a->sve; + int vq =3D sve_vq_from_vl(m->sve.vl); =20 - if (ms->vl !=3D as->vl) { - fprintf(f, " SVE VL : %d vs %d\n", ms->vl, as->vl); + if (m->sve.vl !=3D a->sve.vl) { + fprintf(f, " vl : %d vs %d\n", m->sve.vl, a->sve.vl); } =20 - if (!sve_preg_is_eq(&ms->ffr, &as->ffr)) { - fprintf(f, " FFR : "); - sve_dump_preg_diff(f, sve_vq_from_vl(ms->vl), - &ms->pregs[i], &as->pregs[i]); + for (i =3D 0; i < SVE_NUM_ZREGS; i++) { + if (!sve_zreg_is_eq(vq, &m->sve.zregs[i], &a->sve.zregs[i])) { + fprintf(f, " Z%-2d : ", i); + sve_dump_zreg_diff(f, vq, &m->sve.zregs[i][0], + &a->sve.zregs[i][0]); + } } for (i =3D 0; i < SVE_NUM_PREGS; i++) { - if (!sve_preg_is_eq(&ms->pregs[i], &as->pregs[i])) { - fprintf(f, " P%2d : ", i); - sve_dump_preg_diff(f, sve_vq_from_vl(ms->vl), - &ms->pregs[i], &as->pregs[i]); - } + if (!sve_preg_is_eq(vq, &m->sve.pregs[i], &a->sve.pregs[i])) { + fprintf(f, " P%-2d : ", i); + sve_dump_preg_diff(f, vq, &m->sve.pregs[i][0], + &a->sve.pregs[i][0]); + } } - for (i =3D 0; i < SVE_NUM_ZREGS; i++) { - if (!sve_zreg_is_eq(m, a, i)) { - int q; - char *pad=3D""; - fprintf(f, " Z%2d : ", i); - for (q =3D 0; q < sve_vq_from_vl(ms->vl); q++) { - if (ms->zregs[i][q] !=3D as->zregs[i][q]) { - fprintf(f, "%sq%02d: %016" PRIx64 "%016" PRIx64 - " vs %016" PRIx64 "%016" PRIx64"\n", pad, q, - (uint64_t) (ms->zregs[i][q] >> 64), - (uint64_t) ms->zregs[i][q], - (uint64_t) (as->zregs[i][q] >> 64), - (uint64_t) as->zregs[i][q]); - pad =3D " "; - } - } - } + if (!sve_preg_is_eq(vq, &m->sve.ffr, &a->sve.ffr)) { + fprintf(f, " FFR : "); + sve_dump_preg_diff(f, vq, &m->sve.pregs[i][0], &a->sve.pregs[i= ][0]); } =20 return !ferror(f); --=20 2.17.1