From nobody Mon Apr 29 22:59:30 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500507614254840.7061374379331; Wed, 19 Jul 2017 16:40:14 -0700 (PDT) Received: from localhost ([::1]:35400 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXyZg-0002w0-4l for importer@patchew.org; Wed, 19 Jul 2017 19:40:12 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33169) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXyVI-00080o-Ux for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:35:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXyVH-0006W4-Kn for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:35:40 -0400 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:36195) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXyVH-0006Vo-CV for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:35:39 -0400 Received: by mail-qt0-x243.google.com with SMTP id l55so1775913qtl.3 for ; Wed, 19 Jul 2017 16:35:39 -0700 (PDT) Received: from bigtime.com ([203.221.203.174]) by smtp.gmail.com with ESMTPSA id w33sm857130qth.96.2017.07.19.16.35.35 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 19 Jul 2017 16:35:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=vENqpYa1jHb5ylNSlzdqxm1guTr/1VMzalNuNrecBtw=; b=o6MRix1fFAGE/zUm2ETg6Z3a4nJqsfphYcNTTcBzmOFzPwIQdSC80oaTpuVnGzHAxp Ka8FpJEY2bimZNZtBTS6/A1lh35W5wo/EibdFzzk4B6v9S2uiT2faiOEa3IiO6y6NG/5 tMeJl49kSuICPVZbKx2qOYKzhghF/UP0GyABpRX8GS4fV33I8BEhZHL0GwpvZKGDqR/w gnJCghOwwVQY9DCLogiaARB6wcRFLuDtU9HimSDtUzxn8zFNNv1nEqh+b1k6QfttIXu6 TD9JpxPIrU1VLZVefXPZ4cjPKajxwAaUeRgznOPVDMlEQWe8gIET0KKpzMlh32Didnk+ ++QQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=vENqpYa1jHb5ylNSlzdqxm1guTr/1VMzalNuNrecBtw=; b=AH8gmifcccQ6sovNTBcrHsOF2qtqzetI1krHjYl01MIap0OojRb6ji9H3BT9KCsTP9 KVw3W0/p25URzVKB3RsR6MyF4x89C0qNITtC6/MGkmQhbYkxES2D3huTHnO5mLNZPFAd 1CnKF7oR1BmY8sQmXNzSyspNwqhEMs2hoHXQNa66TtDiA1Xgwe25YmlfeB8SffJBnMBS AdABZghHWDPLjCS3JzM+v7BN06CWs9eaXQCwnYs7vFUbB/2YFBd2uLe3YhGShzo/n18B A1KTDUhOrdHelhuO2fvqOynmigrTA4N/dqUXT/jB6zS/uFB5ivH9YS87dFZFVRTiM2e/ 1NXQ== X-Gm-Message-State: AIVw111pVhZjC91ImerEHa1R/bhsRTIPoAfJ7ktgIK70oza2AxrFoTbN f6akeLny7tf0ZOSTmmw= X-Received: by 10.237.40.69 with SMTP id r63mr2611442qtd.72.1500507338595; Wed, 19 Jul 2017 16:35:38 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 19 Jul 2017 13:34:42 -1000 Message-Id: <20170719233455.8740-2-rth@twiddle.net> X-Mailer: git-send-email 2.13.3 In-Reply-To: <20170719233455.8740-1-rth@twiddle.net> References: <20170719233455.8740-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::243 Subject: [Qemu-devel] [PULL v2 01/14] tcg/mips: reserve a register for the guest_base. 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: peter.maydell@linaro.org, Jiang Biao 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 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Jiang Biao Reserve a register for the guest_base using ppc code for reference. By doing so, we do not have to recompute it for every memory load. Signed-off-by: Jiang Biao Signed-off-by: Richard Henderson Message-Id: <1499677934-2249-1-git-send-email-jiang.biao2@zte.com.cn> --- tcg/mips/tcg-target.inc.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/tcg/mips/tcg-target.inc.c b/tcg/mips/tcg-target.inc.c index 85756b81d5..1a8169f5fc 100644 --- a/tcg/mips/tcg-target.inc.c +++ b/tcg/mips/tcg-target.inc.c @@ -85,6 +85,10 @@ static const char * const tcg_target_reg_names[TCG_TARGE= T_NB_REGS] =3D { #define TCG_TMP2 TCG_REG_T8 #define TCG_TMP3 TCG_REG_T7 =20 +#ifndef CONFIG_SOFTMMU +#define TCG_GUEST_BASE_REG TCG_REG_S1 +#endif + /* check if we really need so many registers :P */ static const int tcg_target_reg_alloc_order[] =3D { /* Call saved registers. */ @@ -1547,8 +1551,7 @@ static void tcg_out_qemu_ld(TCGContext *s, const TCGA= rg *args, bool is_64) } else if (guest_base =3D=3D (int16_t)guest_base) { tcg_out_opc_imm(s, ALIAS_PADDI, base, addr_regl, guest_base); } else { - tcg_out_movi(s, TCG_TYPE_PTR, TCG_TMP0, guest_base); - tcg_out_opc_reg(s, ALIAS_PADD, base, TCG_TMP0, addr_regl); + tcg_out_opc_reg(s, ALIAS_PADD, base, TCG_GUEST_BASE_REG, addr_regl= ); } tcg_out_qemu_ld_direct(s, data_regl, data_regh, base, opc, is_64); #endif @@ -1652,8 +1655,7 @@ static void tcg_out_qemu_st(TCGContext *s, const TCGA= rg *args, bool is_64) } else if (guest_base =3D=3D (int16_t)guest_base) { tcg_out_opc_imm(s, ALIAS_PADDI, base, addr_regl, guest_base); } else { - tcg_out_movi(s, TCG_TYPE_PTR, TCG_TMP0, guest_base); - tcg_out_opc_reg(s, ALIAS_PADD, base, TCG_TMP0, addr_regl); + tcg_out_opc_reg(s, ALIAS_PADD, base, TCG_GUEST_BASE_REG, addr_regl= ); } tcg_out_qemu_st_direct(s, data_regl, data_regh, base, opc); #endif @@ -2452,6 +2454,13 @@ static void tcg_target_qemu_prologue(TCGContext *s) TCG_REG_SP, SAVE_OFS + i * REG_SIZE); } =20 +#ifndef CONFIG_SOFTMMU + if (guest_base) { + tcg_out_movi(s, TCG_TYPE_PTR, TCG_GUEST_BASE_REG, guest_base); + tcg_regset_set_reg(s->reserved_regs, TCG_GUEST_BASE_REG); + } +#endif + /* Call generated code */ tcg_out_opc_reg(s, OPC_JR, 0, tcg_target_call_iarg_regs[1], 0); /* delay slot */ --=20 2.13.3 From nobody Mon Apr 29 22:59:30 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500507475497354.25435093759677; Wed, 19 Jul 2017 16:37:55 -0700 (PDT) Received: from localhost ([::1]:35392 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXyX6-0000g6-7w for importer@patchew.org; Wed, 19 Jul 2017 19:37:32 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33181) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXyVM-00080u-2Z for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:35:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXyVL-0006Xf-20 for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:35:44 -0400 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:37303) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXyVK-0006XT-TB for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:35:42 -0400 Received: by mail-qk0-x241.google.com with SMTP id q130so1003660qka.4 for ; Wed, 19 Jul 2017 16:35:42 -0700 (PDT) Received: from bigtime.com ([203.221.203.174]) by smtp.gmail.com with ESMTPSA id w33sm857130qth.96.2017.07.19.16.35.39 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 19 Jul 2017 16:35:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=dv9zzSG5dBjKxNReyNpNz0Dp7e1PeLkZmsitvizkl1g=; b=EPdCM19kcuLjlCnwGafOQyOLsJEDI216IYmTee8DEKz/HiTffCevb5XMB01PwAIc9J 96Min1v1V7Mbj7rFir2TQweIVGFqHidfuORv7dru2OrQ/0MnnA8UjiQJyvuwg+XhlBpz TwaANfEOSjqYNXGX1LYUPi9d8FfNiQ/NyR/+o4a8MTb9cvyIKbPI2i4zRx6CiDEM45EP sQeffA8rFP5kpTDCWSf3RYYjSoHJ4FABrLXDgqWDl55ZtIFYwqmI7Fy73LbrvtNPmKbU lA1L/cAIPSoVw5gvdCtHXtfTcaRoF0k6KiSjL8VlXnHlYbFNQlb9iB3IopRLzow3awtx cMtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=dv9zzSG5dBjKxNReyNpNz0Dp7e1PeLkZmsitvizkl1g=; b=TWxg+p1QfXRYKDjA0VX9OaF+c08afdHfKTN7ao9CnSuiOf+VWWix8e80dPKYSoOa5C JUCJdRRdN+uZLvHIIrDEFkByil3tbzQmvH28IjPXlXSuwrMyg4vc5yvsh6eh6gR4VZ6j 3AaPrPq3qyOdpSzK/X6+JgBMglT+v9as0jSFhlz4u51xJTjLNIHdBMpR3ewh9qBolzyl Rpn50gCgvl6NosOm/tv8+7o9yn/rLKyxNPg+PcV9MYRVYNWtxcQMboLoSJEziQ1zQPbO TTpbQR9vUWET74srb+4BZG0Fx22lm0rsF/aGXHXAmz8dPCUslJeRO8geGscHzyp6xiKs GkfA== X-Gm-Message-State: AIVw113Rh6/awyR/nQ8RwQZpROTqLCYSlE3ajmvaiwcJit5OmKxMrcRJ A2D1zDsJgOAClHf9kdM= X-Received: by 10.55.183.197 with SMTP id h188mr2531428qkf.206.1500507342114; Wed, 19 Jul 2017 16:35:42 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 19 Jul 2017 13:34:43 -1000 Message-Id: <20170719233455.8740-3-rth@twiddle.net> X-Mailer: git-send-email 2.13.3 In-Reply-To: <20170719233455.8740-1-rth@twiddle.net> References: <20170719233455.8740-1-rth@twiddle.net> 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: 2607:f8b0:400d:c09::241 Subject: [Qemu-devel] [PULL v2 02/14] util/cacheinfo: Add missing include for ppc linux 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: peter.maydell@linaro.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= 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: Philippe Mathieu-Daud=C3=A9 This include was forgotten when splitting cacheinfo.c out of tcg/ppc/tcg-target.inc.c (see commit b255b2c8). For a Centos7 host, the include path implicitly pulls in the desired AT_* defines. Not so for Debian Jessie. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20170711015524.22936-1-f4bug@amsat.org> Signed-off-by: Richard Henderson --- util/cacheinfo.c | 1 + 1 file changed, 1 insertion(+) diff --git a/util/cacheinfo.c b/util/cacheinfo.c index 6253049533..593940f27b 100644 --- a/util/cacheinfo.c +++ b/util/cacheinfo.c @@ -129,6 +129,7 @@ static void arch_cache_info(int *isize, int *dsize) } =20 #elif defined(_ARCH_PPC) && defined(__linux__) +# include "elf.h" =20 static void arch_cache_info(int *isize, int *dsize) { --=20 2.13.3 From nobody Mon Apr 29 22:59:30 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500507618006452.8412282251403; Wed, 19 Jul 2017 16:40:18 -0700 (PDT) Received: from localhost ([::1]:35401 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXyZk-0002xt-53 for importer@patchew.org; Wed, 19 Jul 2017 19:40:16 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33192) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXyVR-00084l-9a for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:35:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXyVO-0006Z7-5e for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:35:49 -0400 Received: from mail-qk0-x244.google.com ([2607:f8b0:400d:c09::244]:35022) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXyVN-0006Yt-UE for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:35:46 -0400 Received: by mail-qk0-x244.google.com with SMTP id t186so1002409qkf.2 for ; Wed, 19 Jul 2017 16:35:45 -0700 (PDT) Received: from bigtime.com ([203.221.203.174]) by smtp.gmail.com with ESMTPSA id w33sm857130qth.96.2017.07.19.16.35.42 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 19 Jul 2017 16:35:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=6PvZ8GAxxe8x9sw++K5FvTLzKjo50IVYELK5nkwTEL8=; b=otfzJaShxB6hlMN4Dd5GsV9fh/eSUzEgf1VPfdAJHxEUS49QYDel+jjNTwgYX/+5x3 rslw94wVBju91h9hRsSTc86dByziNw4Wk1sSgPTNlmFh6hjyZYRZKshhHhFQ3xpIEtVj 5MLVjrpwrxPWqwdvc8f++05dLWjexFURF6OvhJwVa2+UHNbyzHLJkyRGzsEoYCPRod4a MdnmcQerEQfUiKd7ulqRwYJdMn6JyvJ+xyyHUvIDI97AUYUcCWd8bk5H69dNZ8Voif/K 7X3BZ+4qI2rc9uiLSrKQxtZn4oRAqfhZQB61vaOfvD5PZfg88cJCoO9EUd9Eo725+CGq EP6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=6PvZ8GAxxe8x9sw++K5FvTLzKjo50IVYELK5nkwTEL8=; b=ZTEdSRibJzandicPGqSxSZ8FF9wSv2N8D7NNi6XmBX2yZaxxAYftz4iHR5zzAfZBx3 MEVO09CyXoJG/Vh76yidEhMFph/lzGP86hDGZNKvth+95UmK2TxfOgEjyhqNjCyJBDXi PVkt8E4cLcBcTpWTUoS7Ce51VKVzvzTYtVSpiPADTRe1uixQb0UaWO9b0UdPzacUtln7 ugNYWdTAbvgUOOLkubs/s44RI73lDqsWMNu49NxuO9YsFsyjs/TJWYNBvOJ5zI5l+fJR omkcMxIDGoFkNiaGEUFE+2xczjQFYRdv8x1Eb2g/dou+ElZzQa1dBompDj1uy5jl///U 79BQ== X-Gm-Message-State: AIVw111vXk8ri9zA0dCy5U3kIUco3yL97STXiuXJcBg2WlzEPvaWAg/4 MvOUSnc+UDYOChwAwuc= X-Received: by 10.233.223.68 with SMTP id t65mr2599994qkf.122.1500507345074; Wed, 19 Jul 2017 16:35:45 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 19 Jul 2017 13:34:44 -1000 Message-Id: <20170719233455.8740-4-rth@twiddle.net> X-Mailer: git-send-email 2.13.3 In-Reply-To: <20170719233455.8740-1-rth@twiddle.net> References: <20170719233455.8740-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::244 Subject: [Qemu-devel] [PULL v2 03/14] tcg: Expand glue macros before stringifying helper names 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: peter.maydell@linaro.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 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- include/exec/helper-tcg.h | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/include/exec/helper-tcg.h b/include/exec/helper-tcg.h index bb9287727c..b0c5bafa99 100644 --- a/include/exec/helper-tcg.h +++ b/include/exec/helper-tcg.h @@ -6,31 +6,35 @@ =20 #include "exec/helper-head.h" =20 +/* Need one more level of indirection before stringification + to get all the macros expanded first. */ +#define str(s) #s + #define DEF_HELPER_FLAGS_0(NAME, FLAGS, ret) \ - { .func =3D HELPER(NAME), .name =3D #NAME, .flags =3D FLAGS, \ + { .func =3D HELPER(NAME), .name =3D str(NAME), .flags =3D FLAGS, \ .sizemask =3D dh_sizemask(ret, 0) }, =20 #define DEF_HELPER_FLAGS_1(NAME, FLAGS, ret, t1) \ - { .func =3D HELPER(NAME), .name =3D #NAME, .flags =3D FLAGS, \ + { .func =3D HELPER(NAME), .name =3D str(NAME), .flags =3D FLAGS, \ .sizemask =3D dh_sizemask(ret, 0) | dh_sizemask(t1, 1) }, =20 #define DEF_HELPER_FLAGS_2(NAME, FLAGS, ret, t1, t2) \ - { .func =3D HELPER(NAME), .name =3D #NAME, .flags =3D FLAGS, \ + { .func =3D HELPER(NAME), .name =3D str(NAME), .flags =3D FLAGS, \ .sizemask =3D dh_sizemask(ret, 0) | dh_sizemask(t1, 1) \ | dh_sizemask(t2, 2) }, =20 #define DEF_HELPER_FLAGS_3(NAME, FLAGS, ret, t1, t2, t3) \ - { .func =3D HELPER(NAME), .name =3D #NAME, .flags =3D FLAGS, \ + { .func =3D HELPER(NAME), .name =3D str(NAME), .flags =3D FLAGS, \ .sizemask =3D dh_sizemask(ret, 0) | dh_sizemask(t1, 1) \ | dh_sizemask(t2, 2) | dh_sizemask(t3, 3) }, =20 #define DEF_HELPER_FLAGS_4(NAME, FLAGS, ret, t1, t2, t3, t4) \ - { .func =3D HELPER(NAME), .name =3D #NAME, .flags =3D FLAGS, \ + { .func =3D HELPER(NAME), .name =3D str(NAME), .flags =3D FLAGS, \ .sizemask =3D dh_sizemask(ret, 0) | dh_sizemask(t1, 1) \ | dh_sizemask(t2, 2) | dh_sizemask(t3, 3) | dh_sizemask(t4, 4) }, =20 #define DEF_HELPER_FLAGS_5(NAME, FLAGS, ret, t1, t2, t3, t4, t5) \ - { .func =3D HELPER(NAME), .name =3D #NAME, .flags =3D FLAGS, \ + { .func =3D HELPER(NAME), .name =3D str(NAME), .flags =3D FLAGS, \ .sizemask =3D dh_sizemask(ret, 0) | dh_sizemask(t1, 1) \ | dh_sizemask(t2, 2) | dh_sizemask(t3, 3) | dh_sizemask(t4, 4) \ | dh_sizemask(t5, 5) }, @@ -39,6 +43,7 @@ #include "trace/generated-helpers.h" #include "tcg-runtime.h" =20 +#undef str #undef DEF_HELPER_FLAGS_0 #undef DEF_HELPER_FLAGS_1 #undef DEF_HELPER_FLAGS_2 --=20 2.13.3 From nobody Mon Apr 29 22:59:30 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500507470428857.44167917744; Wed, 19 Jul 2017 16:37:50 -0700 (PDT) Received: from localhost ([::1]:35393 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXyXL-0000pe-Qw for importer@patchew.org; Wed, 19 Jul 2017 19:37:47 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33203) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXyVS-00085K-46 for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:35:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXyVR-0006ag-D3 for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:35:50 -0400 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:34778) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXyVR-0006aU-8Y for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:35:49 -0400 Received: by mail-qk0-x241.google.com with SMTP id q66so1005805qki.1 for ; Wed, 19 Jul 2017 16:35:49 -0700 (PDT) Received: from bigtime.com ([203.221.203.174]) by smtp.gmail.com with ESMTPSA id w33sm857130qth.96.2017.07.19.16.35.45 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 19 Jul 2017 16:35:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jpAJ/hIBBR71zlPFXGY47V/U5Q3s4z1e5B5cbPzikPs=; b=mr8DC8xpSmiiLzzAst1Lqk57yqbzwjlHcCdYvltbMuAMZAG6BTU9Bj/AvreZmdyWRA hrUuRCARWglWfiJp8QtoUNAFZANG8y7uUHTv9vPLUsv1nfarIwPztS07UD9zy5plQSiS yjtMeEuI+q8IzmZ8mAlwUfwfyqLKrIniqc36mL5x1AuWQ2L3u27agrzoltudHZvplCpc ovkHYGas3Ti35Yv9p2wylHg1Ki8JPWyUpZdiwwaPFl2w2KtMi4joD1w4w5zA9xqg17SO OzjD7miSxh6BsuPH3qMe2MXj76Pk3xo/GuuRELuyEYVMafNJsk95AWSLjR7cz3C5kTXo MDUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=jpAJ/hIBBR71zlPFXGY47V/U5Q3s4z1e5B5cbPzikPs=; b=n5hAdDgAtfs3s0SWxsgKIjn2so4rMgoDNU0591up3lGvJOvuujf6/6IKdZKS0LTtui csiXooNrj7ubJD+QBuxnt0rUJpLdJu13Y6de6Nle7EdB2uaQh0CSZ9ytgRjRbMNwOXRs /HjYfwhKXcqjA0GVJlKtlsy+T2Ycf/rZ7STXJEW5PfJ/RKVlgIbpNESwnoZx7vyKbOa4 L1+/9S+SCcpTYv40nJWx+igIXa6mnG6vY8UfyQ9Emo0cQ1TSM3xpfTn2RSmjZyr8+jOR FveMmAXUNh2sKvW9kaa4Sl89XQEp6ZJNczimjqujYCjWPKSryic9IfnfWL0WxjLSA7Rb hvfw== X-Gm-Message-State: AIVw110mjCeoiPCJmlAYAYJeiY3jWBTiPSssdIYhvpaPaKE53OzU/zIm WrIIq2vfLCbIoHEFvsQ= X-Received: by 10.55.186.66 with SMTP id k63mr2232745qkf.243.1500507348592; Wed, 19 Jul 2017 16:35:48 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 19 Jul 2017 13:34:45 -1000 Message-Id: <20170719233455.8740-5-rth@twiddle.net> X-Mailer: git-send-email 2.13.3 In-Reply-To: <20170719233455.8740-1-rth@twiddle.net> References: <20170719233455.8740-1-rth@twiddle.net> 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: 2607:f8b0:400d:c09::241 Subject: [Qemu-devel] [PULL v2 04/14] coccinelle: ignore ASTs pre-parsed cached C files 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: peter.maydell@linaro.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= 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: Philippe Mathieu-Daud=C3=A9 files generated using coccinelle tool: 'spatch --use-cache' Reviewed-by: Eric Blake Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20170718045540.16322-2-f4bug@amsat.org> Signed-off-by: Richard Henderson --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 09c2363acf..cf65316863 100644 --- a/.gitignore +++ b/.gitignore @@ -116,6 +116,8 @@ tags TAGS docker-src.* *~ +*.ast_raw +*.depend_raw trace.h trace.c trace-ust.h --=20 2.13.3 From nobody Mon Apr 29 22:59:30 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500507472163140.3844017013987; Wed, 19 Jul 2017 16:37:52 -0700 (PDT) Received: from localhost ([::1]:35394 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXyXN-0000sN-Bg for importer@patchew.org; Wed, 19 Jul 2017 19:37:49 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33215) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXyVW-000878-4I for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:35:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXyVU-0006cI-PW for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:35:54 -0400 Received: from mail-qt0-x244.google.com ([2607:f8b0:400d:c0d::244]:38595) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXyVU-0006bw-Ks for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:35:52 -0400 Received: by mail-qt0-x244.google.com with SMTP id h47so1768002qta.5 for ; Wed, 19 Jul 2017 16:35:52 -0700 (PDT) Received: from bigtime.com ([203.221.203.174]) by smtp.gmail.com with ESMTPSA id w33sm857130qth.96.2017.07.19.16.35.48 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 19 Jul 2017 16:35:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=no3Y6CTel7JbQZtzSGkxWqeV3Fm+sehu87tssuiZpOc=; b=m6lCWTMiqOgffK7SiiCsowTSlBKsgcdToqKqZ6PuAgI9wi9AxS/sgT23yovhFcipBb PMlxpEE2SdHn5E2lcc/mPOXHJesrSnRZ8TlA60j7vFhw/YzbhphmYT2Wu0cM6rDqK4/z 8XAMCAZM6wr4ZxRA03mcBqPMtcSaZpXUGppjLbbKJK6e3IvGDuF/oXLDiGdhUlyXxFjU rhxU9ZgQH9ETumQOjJ49t3z3o95h0MIMIIsy40vG4kSQCAg8m/inabDOUNH8P6hyRVXP 6Lu1K4K+WxfHYuerO/L5VcJxxFlUS7iNb6cv98NmXjg2ry3A7gp5HizzjcQbUid+tgk3 zRjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=no3Y6CTel7JbQZtzSGkxWqeV3Fm+sehu87tssuiZpOc=; b=qiV9Jpbj5DyLQi6wqFBdLMQi975bOFUAxPeVKzMpnsBLHutbCsUTPzDlM2R4SJAtLL yuJEC2SZzI0NUAKlEjBcq6UruRf8KK2B6UbAPVKqrpR8Qdm61N0FXODtLPy0pHbC97E4 f1W9a6CLgXudc1UTK5JwYUQ68tJzobNEZsgx/LLFNCwy27WQ4KNtGtyPd/niIIBkqpPr FEvv3ng5oTIgBpB6MLt8lAbqYABnRV8508IN4P4Yqi0zXqrlku9JXQYm25WcoCanTRpe +rmGQfMQuerqFOWjQacM2syhGOC6NarowNoTajZWZ7AnL5Sk15B0fq2erZJdahHwwg5D T48w== X-Gm-Message-State: AIVw111JNqc3uriHR0jwXcENk0yGCd/NLXFFei8tMTqyTNxYJJV4wmIm vT7vw6dZeFjHMN6+HeA= X-Received: by 10.200.34.2 with SMTP id o2mr2582098qto.67.1500507351753; Wed, 19 Jul 2017 16:35:51 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 19 Jul 2017 13:34:46 -1000 Message-Id: <20170719233455.8740-6-rth@twiddle.net> X-Mailer: git-send-email 2.13.3 In-Reply-To: <20170719233455.8740-1-rth@twiddle.net> References: <20170719233455.8740-1-rth@twiddle.net> 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: 2607:f8b0:400d:c0d::244 Subject: [Qemu-devel] [PULL v2 05/14] coccinelle: add a script to optimize tcg op using tcg_gen_extract() 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: peter.maydell@linaro.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= 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: Philippe Mathieu-Daud=C3=A9 The following thread was helpful while writing this script: https://github.com/coccinelle/coccinelle/issues/86 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20170718045540.16322-3-f4bug@amsat.org> Signed-off-by: Richard Henderson --- scripts/coccinelle/tcg_gen_extract.cocci | 107 +++++++++++++++++++++++++++= ++++ 1 file changed, 107 insertions(+) create mode 100644 scripts/coccinelle/tcg_gen_extract.cocci diff --git a/scripts/coccinelle/tcg_gen_extract.cocci b/scripts/coccinelle/= tcg_gen_extract.cocci new file mode 100644 index 0000000000..81e66a35ae --- /dev/null +++ b/scripts/coccinelle/tcg_gen_extract.cocci @@ -0,0 +1,107 @@ +// optimize TCG using extract op +// +// Copyright: (C) 2017 Philippe Mathieu-Daud=C3=A9. GPLv2+. +// Confidence: High +// Options: --macro-file scripts/cocci-macro-file.h +// +// Nikunj A Dadhania optimization: +// http://lists.nongnu.org/archive/html/qemu-devel/2017-02/msg05211.html +// Aurelien Jarno optimization: +// http://lists.nongnu.org/archive/html/qemu-devel/2017-05/msg01466.html +// +// This script can be run either using spatch locally or via a docker imag= e: +// +// $ spatch \ +// --macro-file scripts/cocci-macro-file.h \ +// --sp-file scripts/coccinelle/tcg_gen_extract.cocci \ +// --keep-comments --in-place \ +// --use-gitgrep --dir target +// +// $ docker run --rm -v `pwd`:`pwd` -w `pwd` philmd/coccinelle \ +// --macro-file scripts/cocci-macro-file.h \ +// --sp-file scripts/coccinelle/tcg_gen_extract.cocci \ +// --keep-comments --in-place \ +// --use-gitgrep --dir target + +@initialize:python@ +@@ +import sys +fd =3D sys.stderr +def debug(msg=3D"", trailer=3D"\n"): + fd.write("[DBG] " + msg + trailer) +def low_bits_count(value): + bits_count =3D 0 + while (value & (1 << bits_count)): + bits_count +=3D 1 + return bits_count +def Mn(order): # Mersenne number + return (1 << order) - 1 + +@match@ +identifier ret; +metavariable arg; +constant ofs, msk; +position shr_p, and_p; +@@ +( + tcg_gen_shri_i32@shr_p +| + tcg_gen_shri_i64@shr_p +| + tcg_gen_shri_tl@shr_p +)(ret, arg, ofs); +... WHEN !=3D ret +( + tcg_gen_andi_i32@and_p +| + tcg_gen_andi_i64@and_p +| + tcg_gen_andi_tl@and_p +)(ret, ret, msk); + +@script:python verify_len depends on match@ +ret_s << match.ret; +msk_s << match.msk; +shr_p << match.shr_p; +extract_len; +@@ +is_optimizable =3D False +debug("candidate at %s:%s" % (shr_p[0].file, shr_p[0].line)) +try: # only eval integer, no #define like 'SR_M' (cpp did this, else some = headers are missing). + msk_v =3D long(msk_s.strip("UL"), 0) + msk_b =3D low_bits_count(msk_v) + if msk_b =3D=3D 0: + debug(" value: 0x%x low_bits: %d" % (msk_v, msk_b)) + else: + debug(" value: 0x%x low_bits: %d [Mersenne number: 0x%x]" % (msk_= v, msk_b, Mn(msk_b))) + is_optimizable =3D Mn(msk_b) =3D=3D msk_v # check low_bits + coccinelle.extract_len =3D "%d" % msk_b + debug(" candidate %s optimizable" % ("IS" if is_optimizable else "is = NOT")) +except: + debug(" ERROR (check included headers?)") +cocci.include_match(is_optimizable) +debug() + +@replacement depends on verify_len@ +identifier match.ret; +metavariable match.arg; +constant match.ofs, match.msk; +position match.shr_p, match.and_p; +identifier verify_len.extract_len; +@@ +( +-tcg_gen_shri_i32@shr_p(ret, arg, ofs); ++tcg_gen_extract_i32(ret, arg, ofs, extract_len); +... WHEN !=3D ret +-tcg_gen_andi_i32@and_p(ret, ret, msk); +| +-tcg_gen_shri_i64@shr_p(ret, arg, ofs); ++tcg_gen_extract_i64(ret, arg, ofs, extract_len); +... WHEN !=3D ret +-tcg_gen_andi_i64@and_p(ret, ret, msk); +| +-tcg_gen_shri_tl@shr_p(ret, arg, ofs); ++tcg_gen_extract_tl(ret, arg, ofs, extract_len); +... WHEN !=3D ret +-tcg_gen_andi_tl@and_p(ret, ret, msk); +) --=20 2.13.3 From nobody Mon Apr 29 22:59:30 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500509348030577.033611747747; Wed, 19 Jul 2017 17:09:08 -0700 (PDT) Received: from localhost ([::1]:35414 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXycC-0005Zq-9S for importer@patchew.org; Wed, 19 Jul 2017 19:42:48 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33232) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXyVa-0008AJ-Kf for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:35:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXyVX-0006di-Gw for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:35:58 -0400 Received: from mail-qt0-x244.google.com ([2607:f8b0:400d:c0d::244]:33678) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXyVX-0006dS-CH for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:35:55 -0400 Received: by mail-qt0-x244.google.com with SMTP id 50so1792746qtz.0 for ; Wed, 19 Jul 2017 16:35:55 -0700 (PDT) Received: from bigtime.com ([203.221.203.174]) by smtp.gmail.com with ESMTPSA id w33sm857130qth.96.2017.07.19.16.35.52 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 19 Jul 2017 16:35:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=S1EqYke6bHWeThh7NLjBieo6NVqpOk6KHa8GTKD4Stk=; b=GsTJtonznEvTbM17yPquP9FEi8rCQGSUYMjhTQAu/nnlQ0LW+OrTSwi5yvE/wYY6/x fJqpzCkIwYcamBthu9paOflNtQMsTWt+r6XU2bXenY9y4ePW+lebsjSusI724I2opuLK YWFKU8lFT6cFSMp7vSCDzZ7zLXXHv1hdetZH+IZdmQeN9eWKEIZLgMgVc94pp6jVdZYQ UN1Y3ZpUFKhK2vZE4r4en2Zq8kvgwSL0lDJUAsX2VnsX1yA3C04oCbScRAhQGHy7pVFU IlTu4VBE6h61edsS79DAhXjQShOn8vHrZ8qKIb+tZUEFVMrByBwSokr/I0DSdY+YrI+o SVNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=S1EqYke6bHWeThh7NLjBieo6NVqpOk6KHa8GTKD4Stk=; b=F1sIxyBOIwFj3ECQihPR6gA7stWUZqTAXuCqWLdJBwJcnGYqArm8+Y2fLuuzRj/aO4 rdNwqXP6+qnOU9+2ex+Eh+O4S0hzZTYfHDhpC5E2QSwoXTskNeOgOb7EcRZmr/O9Vimm YSV2dd9eOw2BV/Flk6SVIFMXAH1WukxFhK7CZfE4gY5bxRhVG6/r5K9Rov3rpOdBrl+p bpIhKydAMALlIBVbUQFAKe1z9QTeeH18vn4RmvBcD2CVnKFlYBcHc3zfmuuMRl8UqES4 n4eWr8RmN2ieHOrBxGrUFvwIY3QJ6RHBXMQYaQHzgkG6cOnPBvEytb37R5DnleNs7jMx xpHQ== X-Gm-Message-State: AIVw110yMyomd0OtdbtYQZ9+AI8RXg4J9T/T8MfqzeXuheChKQrKblh9 KzzRbhCWVa1Ap5L0FW4= X-Received: by 10.237.35.156 with SMTP id j28mr2523893qtc.284.1500507354677; Wed, 19 Jul 2017 16:35:54 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 19 Jul 2017 13:34:47 -1000 Message-Id: <20170719233455.8740-7-rth@twiddle.net> X-Mailer: git-send-email 2.13.3 In-Reply-To: <20170719233455.8740-1-rth@twiddle.net> References: <20170719233455.8740-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::244 Subject: [Qemu-devel] [PULL v2 06/14] target/arm: Optimize aarch64 rev16 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: peter.maydell@linaro.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 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" It is much shorter to reverse all 4 half-words in parallel than extract, reverse, and deposit each in turn. Suggested-by: Aurelien Jarno Signed-off-by: Richard Henderson --- target/arm/translate-a64.c | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index 3fa39023ca..5bb0f8ef22 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -4043,25 +4043,13 @@ static void handle_rev16(DisasContext *s, unsigned = int sf, TCGv_i64 tcg_rd =3D cpu_reg(s, rd); TCGv_i64 tcg_tmp =3D tcg_temp_new_i64(); TCGv_i64 tcg_rn =3D read_cpu_reg(s, rn, sf); + TCGv_i64 mask =3D tcg_const_i64(sf ? 0x00ff00ff00ff00ffull : 0x00ff00f= f); =20 - tcg_gen_andi_i64(tcg_tmp, tcg_rn, 0xffff); - tcg_gen_bswap16_i64(tcg_rd, tcg_tmp); - - tcg_gen_shri_i64(tcg_tmp, tcg_rn, 16); - tcg_gen_andi_i64(tcg_tmp, tcg_tmp, 0xffff); - tcg_gen_bswap16_i64(tcg_tmp, tcg_tmp); - tcg_gen_deposit_i64(tcg_rd, tcg_rd, tcg_tmp, 16, 16); - - if (sf) { - tcg_gen_shri_i64(tcg_tmp, tcg_rn, 32); - tcg_gen_andi_i64(tcg_tmp, tcg_tmp, 0xffff); - tcg_gen_bswap16_i64(tcg_tmp, tcg_tmp); - tcg_gen_deposit_i64(tcg_rd, tcg_rd, tcg_tmp, 32, 16); - - tcg_gen_shri_i64(tcg_tmp, tcg_rn, 48); - tcg_gen_bswap16_i64(tcg_tmp, tcg_tmp); - tcg_gen_deposit_i64(tcg_rd, tcg_rd, tcg_tmp, 48, 16); - } + tcg_gen_shri_i64(tcg_tmp, tcg_rn, 8); + tcg_gen_and_i64(tcg_rd, tcg_rn, mask); + tcg_gen_and_i64(tcg_tmp, tcg_tmp, mask); + tcg_gen_shli_i64(tcg_rd, tcg_rd, 8); + tcg_gen_or_i64(tcg_rd, tcg_rd, tcg_tmp); =20 tcg_temp_free_i64(tcg_tmp); } --=20 2.13.3 From nobody Mon Apr 29 22:59:30 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500507632128285.26839868891807; Wed, 19 Jul 2017 16:40:32 -0700 (PDT) Received: from localhost ([::1]:35402 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXyZw-0003AR-Jt for importer@patchew.org; Wed, 19 Jul 2017 19:40:28 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33243) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXyVb-0008BG-Kr for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:36:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXyVa-0006hx-MU for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:35:59 -0400 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:33680) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXyVa-0006h9-IF for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:35:58 -0400 Received: by mail-qt0-x243.google.com with SMTP id 50so1792805qtz.0 for ; Wed, 19 Jul 2017 16:35:58 -0700 (PDT) Received: from bigtime.com ([203.221.203.174]) by smtp.gmail.com with ESMTPSA id w33sm857130qth.96.2017.07.19.16.35.54 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 19 Jul 2017 16:35:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=BW592JGW+EO9/XfNrio2TsDCgHgner9G3ZEcnWh1j7E=; b=AgOG+GquP9SlAtKQrWkIlS+tpTlH90Pdy0X8OGsotYLep01JJ1OFqfSJT2eNuwmcrk i7n246idzjbFd0OyrIaabeU0OvI8lgVti4d9OlBK9hefUnGb6z73GeQhuzIOv+/mntfx fKGBn0CeCYr3dR8mD0HH4YWj8PnS6bNtEOZJbULPqMCEOPJH7hY7ClVyPd9sR8PWi+zl SjE+im4VhSKugPm2Fg2GVZbTMqFcUCZa+dUcPYGvAN00enz2ERl7qd6XzcEc4d0yBuQO XG5aqRnfdjshUw/qMrHAbMus9iRIrhw1WYkyjpJm55zzQd10bQ7ZCJIK0PNUX7RNPaR5 tw1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=BW592JGW+EO9/XfNrio2TsDCgHgner9G3ZEcnWh1j7E=; b=FljJ4wiQQ60yDBDnTaWKBBH7rM5MBCLMx9AV5rt9sLvdLWqT8nbn1ELSEBWjf7U5oB StYOwf3H68o29kPf0hYGbCdd8BH6N7aGo4K5PoSrzlnvl6fMANXrvxpyghsqFRvX7Iay /VFfWxT5hyVzaGq45zc93dYmfhyDlEjm0+rnR5lbefgFZlkmnlQfmdsP/0le8/7oCTpq hUMk8WnzSG8WMmXw8RtZ5v7mmBQmbwlTPRQpaHs5a2T6iay/DIWx0GCdDeo6mCReTBTX rbzPcr1Z8msUeUP18QgSe/tYOcqwBfZlwTgUjzRAOHW3HE9jqgiixwWZfAzkPBUC5GVZ h1qw== X-Gm-Message-State: AIVw1102a0hiYfj17+ObhzuXJiI5OTSnHK/yZOT7pOK9S14LeIGly0ha OL9dMK4Mb8QA/TWbEaY= X-Received: by 10.200.36.74 with SMTP id d10mr2585164qtd.298.1500507357899; Wed, 19 Jul 2017 16:35:57 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 19 Jul 2017 13:34:48 -1000 Message-Id: <20170719233455.8740-8-rth@twiddle.net> X-Mailer: git-send-email 2.13.3 In-Reply-To: <20170719233455.8740-1-rth@twiddle.net> References: <20170719233455.8740-1-rth@twiddle.net> 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: 2607:f8b0:400d:c0d::243 Subject: [Qemu-devel] [PULL v2 07/14] target/arm: optimize aarch32 rev16 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: peter.maydell@linaro.org, Aurelien Jarno 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: Aurelien Jarno Use the same mask to avoid having to load two different constants, as suggested by Richard Henderson. Signed-off-by: Aurelien Jarno Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20170516230159.4195-2-aurelien@aurel32.net> Signed-off-by: Richard Henderson --- target/arm/translate.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/target/arm/translate.c b/target/arm/translate.c index e27736ce5b..d3003ae0d8 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -343,11 +343,13 @@ static void gen_smul_dual(TCGv_i32 a, TCGv_i32 b) static void gen_rev16(TCGv_i32 var) { TCGv_i32 tmp =3D tcg_temp_new_i32(); + TCGv_i32 mask =3D tcg_const_i32(0x00ff00ff); tcg_gen_shri_i32(tmp, var, 8); - tcg_gen_andi_i32(tmp, tmp, 0x00ff00ff); + tcg_gen_and_i32(tmp, tmp, mask); + tcg_gen_and_i32(var, var, mask); tcg_gen_shli_i32(var, var, 8); - tcg_gen_andi_i32(var, var, 0xff00ff00); tcg_gen_or_i32(var, var, tmp); + tcg_temp_free_i32(mask); tcg_temp_free_i32(tmp); } =20 --=20 2.13.3 From nobody Mon Apr 29 22:59:30 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 150050763248128.794079021985908; Wed, 19 Jul 2017 16:40:32 -0700 (PDT) Received: from localhost ([::1]:35404 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXyZy-0003Lw-Js for importer@patchew.org; Wed, 19 Jul 2017 19:40:30 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33256) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXyVe-0008Eb-VN for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:36:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXyVe-0006lH-38 for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:36:02 -0400 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:34348) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXyVd-0006kp-Lj for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:36:02 -0400 Received: by mail-qt0-x241.google.com with SMTP id 19so1789632qty.1 for ; Wed, 19 Jul 2017 16:36:01 -0700 (PDT) Received: from bigtime.com ([203.221.203.174]) by smtp.gmail.com with ESMTPSA id w33sm857130qth.96.2017.07.19.16.35.58 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 19 Jul 2017 16:36:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=IMZ/E+YJtPFVxXJqOVkxn1s9v8BvzLY37dvSOiyXNH0=; b=WP4sp0rjPkicUk3HrxULZz4yGlGGOammxs7/rLEMVJPRWwu7IMK1e4UHWwhIVqEnPt koIpuLwtRSxLSU+Ao9XXb+JV685jU+2inbYfrMWvUoguQe6pBYkIb9u5IAY0QwLZIqdT JHSyA/NwTcRDVsS9g9hHeG/sQf8KoLDHpHi7FRyR0sTogDQzYytaoV/BS1O0NP6DtT9W GfMU2ldUylBHCy0S/zhY5LYyucLUihHMf0BthFA4k+DPCuj//MbuMt6rONtYaY+mriGK ut0xhNspRP61crjkpyniUloYQsjNI9fjKUIjyoAqABatSrupFSKONjX7JvDZ5FRwIaK5 t5GA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=IMZ/E+YJtPFVxXJqOVkxn1s9v8BvzLY37dvSOiyXNH0=; b=jZ3YgVXy1PZkLG0/adzA8u6/yo4YSJTJhFfxZdoGO0N/FQHZBiM4Fg5O3nJwheFBOd NbAoLBIi6CMPNKS1+9Bb3xT8+cJtFn5tizPkyDrBh3AncImP9iNXdJAjNWzJVhpXqD1t ravBKURJ5+g2Ez3fXCggY/jEvZqZoYp/3hpp+Dg5YzxlhQxQY4W7B1cw5pFRQmSrCiOM NF3Xy0ICkTZrTMQ60KOcXQ40PQfbqZjB/jy7hYEhDOYHnppusIMkm2z+9fuMMEV1rwKH 8aB6JGfm9JXRZNi0weSnd3rLpDsBMOIcnoK8icwlaGp776vHLKwQs7hpOdowRv40HieI 28Hg== X-Gm-Message-State: AIVw112EcLz/KIR4VzVUbkfz+OOBfblBs67yBzF0FTDUCuIb+RNsBLwl Css+g43ZyRcq1D0SBnM= X-Received: by 10.200.46.87 with SMTP id s23mr2627675qta.310.1500507360904; Wed, 19 Jul 2017 16:36:00 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 19 Jul 2017 13:34:49 -1000 Message-Id: <20170719233455.8740-9-rth@twiddle.net> X-Mailer: git-send-email 2.13.3 In-Reply-To: <20170719233455.8740-1-rth@twiddle.net> References: <20170719233455.8740-1-rth@twiddle.net> 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: 2607:f8b0:400d:c0d::241 Subject: [Qemu-devel] [PULL v2 08/14] target/m68k: optimize bcd_flags() using extract op 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: peter.maydell@linaro.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= 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: Philippe Mathieu-Daud=C3=A9 Done with the Coccinelle semantic patch scripts/coccinelle/tcg_gen_extract.cocci. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Laurent Vivier Reviewed-by: Richard Henderson Message-Id: <20170718045540.16322-5-f4bug@amsat.org> Signed-off-by: Richard Henderson --- target/m68k/translate.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/target/m68k/translate.c b/target/m68k/translate.c index 3a519b790d..e709e6cde2 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -1749,8 +1749,7 @@ static void bcd_flags(TCGv val) tcg_gen_andi_i32(QREG_CC_C, val, 0x0ff); tcg_gen_or_i32(QREG_CC_Z, QREG_CC_Z, QREG_CC_C); =20 - tcg_gen_shri_i32(QREG_CC_C, val, 8); - tcg_gen_andi_i32(QREG_CC_C, QREG_CC_C, 1); + tcg_gen_extract_i32(QREG_CC_C, val, 8, 1); =20 tcg_gen_mov_i32(QREG_CC_X, QREG_CC_C); } --=20 2.13.3 From nobody Mon Apr 29 22:59:30 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500507786804683.3513926405727; Wed, 19 Jul 2017 16:43:06 -0700 (PDT) Received: from localhost ([::1]:35415 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXycS-0005nx-Ba for importer@patchew.org; Wed, 19 Jul 2017 19:43:04 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33279) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXyVk-0008JV-7F for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:36:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXyVh-0006ol-2r for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:36:08 -0400 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:35430) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXyVg-0006oH-T3 for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:36:04 -0400 Received: by mail-qt0-x241.google.com with SMTP id p25so1786780qtp.2 for ; Wed, 19 Jul 2017 16:36:04 -0700 (PDT) Received: from bigtime.com ([203.221.203.174]) by smtp.gmail.com with ESMTPSA id w33sm857130qth.96.2017.07.19.16.36.01 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 19 Jul 2017 16:36:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=166k9y6FlmCisq+B9P7TGBXBJqgeIOuzGtou39fk8DA=; b=hLh+rjog5DFaJBWjU+kjBBNl8/cDb3JT6CgGJ1dTqXYT+rNC6wLNIVBP+e3AmAitx6 BVZs97kiYkN3Jrpk0aCT1lHOxbINlBitq/sxjBV9IdCwZXuUBwjp3vhFGTTGbSIOr4PY 9owDd9wLLetqbZbOavZaWlb3EQeRLW1k6/qwzAFhtEEMQ5+5sFqXbya++8fVcUsED+k8 HHPIaq7S8/YRufd6QtkmQfa1bqW+23EciA2WC1Jzhjq/IeqKMEi8vaI1ju4lOw6vjy1i fGiRY76nrWt1jVY9yLYSy6lyIUjBHt9cA2hSolCYKzL8ze9cnTjZPLdI+mmlPkqTeXBa paUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=166k9y6FlmCisq+B9P7TGBXBJqgeIOuzGtou39fk8DA=; b=WPA9Z150q1qp0/Pfb7yq59SOEgg2KCirTgoLLSY4k+p3pd033wkLHaV0opUi1jlfj4 cGl/2WzTTn7VxRHd1uEb9NbjvbBi4ORX7umc5oRDm42AsfHPBL4EvkzY29fZFzS8svcl u+y6O/vW9qgqtHceR7g+6P9DfYDemCA7fPVublTgfmuuIl83mxjRiLwkv0nSH3peTsQn YdH56ca4W/OaVNwIEso9iKU7H4AdBcAXQ2I+apWybTbCKcm0tdod9SBoiZUoHO8mr6Eo TYWhjogjtt6OE2wBxcdlpUpfjoz5E8Qi3dJw1+ZKEDjo0kK1dnEth8x46DIzlXxn++nu tH0w== X-Gm-Message-State: AIVw113G9hD0IT/cdDgn4zkkNXYu/BfdH8cHAU+0LvbWSu6tk1H4Rr4M Ld1ihp5U9x87GU8Rcrc= X-Received: by 10.200.10.202 with SMTP id g10mr2355451qti.227.1500507364117; Wed, 19 Jul 2017 16:36:04 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 19 Jul 2017 13:34:50 -1000 Message-Id: <20170719233455.8740-10-rth@twiddle.net> X-Mailer: git-send-email 2.13.3 In-Reply-To: <20170719233455.8740-1-rth@twiddle.net> References: <20170719233455.8740-1-rth@twiddle.net> 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: 2607:f8b0:400d:c0d::241 Subject: [Qemu-devel] [PULL v2 09/14] target/ppc: optimize various functions using extract op 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: peter.maydell@linaro.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= 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: Philippe Mathieu-Daud=C3=A9 Done with the Coccinelle semantic patch scripts/coccinelle/tcg_gen_extract.cocci. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Acked-by: David Gibson Message-Id: <20170718045540.16322-6-f4bug@amsat.org> Signed-off-by: Richard Henderson --- target/ppc/translate.c | 21 +++++++-------------- target/ppc/translate/vsx-impl.inc.c | 24 ++++++++---------------- 2 files changed, 15 insertions(+), 30 deletions(-) diff --git a/target/ppc/translate.c b/target/ppc/translate.c index c0cd64d927..de271af52b 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -873,8 +873,7 @@ static inline void gen_op_arith_add(DisasContext *ctx, = TCGv ret, TCGv arg1, } tcg_gen_xor_tl(cpu_ca, t0, t1); /* bits changed w/ carr= y */ tcg_temp_free(t1); - tcg_gen_shri_tl(cpu_ca, cpu_ca, 32); /* extract bit 32 */ - tcg_gen_andi_tl(cpu_ca, cpu_ca, 1); + tcg_gen_extract_tl(cpu_ca, cpu_ca, 32, 1); if (is_isa300(ctx)) { tcg_gen_mov_tl(cpu_ca32, cpu_ca); } @@ -1404,8 +1403,7 @@ static inline void gen_op_arith_subf(DisasContext *ct= x, TCGv ret, TCGv arg1, tcg_temp_free(inv1); tcg_gen_xor_tl(cpu_ca, t0, t1); /* bits changes w/ car= ry */ tcg_temp_free(t1); - tcg_gen_shri_tl(cpu_ca, cpu_ca, 32); /* extract bit 32 */ - tcg_gen_andi_tl(cpu_ca, cpu_ca, 1); + tcg_gen_extract_tl(cpu_ca, cpu_ca, 32, 1); if (is_isa300(ctx)) { tcg_gen_mov_tl(cpu_ca32, cpu_ca); } @@ -4336,8 +4334,7 @@ static void gen_mfsrin(DisasContext *ctx) =20 CHK_SV; t0 =3D tcg_temp_new(); - tcg_gen_shri_tl(t0, cpu_gpr[rB(ctx->opcode)], 28); - tcg_gen_andi_tl(t0, t0, 0xF); + tcg_gen_extract_tl(t0, cpu_gpr[rB(ctx->opcode)], 28, 4); gen_helper_load_sr(cpu_gpr[rD(ctx->opcode)], cpu_env, t0); tcg_temp_free(t0); #endif /* defined(CONFIG_USER_ONLY) */ @@ -4368,8 +4365,7 @@ static void gen_mtsrin(DisasContext *ctx) CHK_SV; =20 t0 =3D tcg_temp_new(); - tcg_gen_shri_tl(t0, cpu_gpr[rB(ctx->opcode)], 28); - tcg_gen_andi_tl(t0, t0, 0xF); + tcg_gen_extract_tl(t0, cpu_gpr[rB(ctx->opcode)], 28, 4); gen_helper_store_sr(cpu_env, t0, cpu_gpr[rD(ctx->opcode)]); tcg_temp_free(t0); #endif /* defined(CONFIG_USER_ONLY) */ @@ -4403,8 +4399,7 @@ static void gen_mfsrin_64b(DisasContext *ctx) =20 CHK_SV; t0 =3D tcg_temp_new(); - tcg_gen_shri_tl(t0, cpu_gpr[rB(ctx->opcode)], 28); - tcg_gen_andi_tl(t0, t0, 0xF); + tcg_gen_extract_tl(t0, cpu_gpr[rB(ctx->opcode)], 28, 4); gen_helper_load_sr(cpu_gpr[rD(ctx->opcode)], cpu_env, t0); tcg_temp_free(t0); #endif /* defined(CONFIG_USER_ONLY) */ @@ -4435,8 +4430,7 @@ static void gen_mtsrin_64b(DisasContext *ctx) =20 CHK_SV; t0 =3D tcg_temp_new(); - tcg_gen_shri_tl(t0, cpu_gpr[rB(ctx->opcode)], 28); - tcg_gen_andi_tl(t0, t0, 0xF); + tcg_gen_extract_tl(t0, cpu_gpr[rB(ctx->opcode)], 28, 4); gen_helper_store_sr(cpu_env, t0, cpu_gpr[rS(ctx->opcode)]); tcg_temp_free(t0); #endif /* defined(CONFIG_USER_ONLY) */ @@ -5414,8 +5408,7 @@ static void gen_mfsri(DisasContext *ctx) CHK_SV; t0 =3D tcg_temp_new(); gen_addr_reg_index(ctx, t0); - tcg_gen_shri_tl(t0, t0, 28); - tcg_gen_andi_tl(t0, t0, 0xF); + tcg_gen_extract_tl(t0, t0, 28, 4); gen_helper_load_sr(cpu_gpr[rd], cpu_env, t0); tcg_temp_free(t0); if (ra !=3D 0 && ra !=3D rd) diff --git a/target/ppc/translate/vsx-impl.inc.c b/target/ppc/translate/vsx= -impl.inc.c index 7f12908029..85ed135d44 100644 --- a/target/ppc/translate/vsx-impl.inc.c +++ b/target/ppc/translate/vsx-impl.inc.c @@ -1248,8 +1248,7 @@ static void gen_xsxexpdp(DisasContext *ctx) gen_exception(ctx, POWERPC_EXCP_VSXU); return; } - tcg_gen_shri_i64(rt, cpu_vsrh(xB(ctx->opcode)), 52); - tcg_gen_andi_i64(rt, rt, 0x7FF); + tcg_gen_extract_i64(rt, cpu_vsrh(xB(ctx->opcode)), 52, 11); } =20 static void gen_xsxexpqp(DisasContext *ctx) @@ -1262,8 +1261,7 @@ static void gen_xsxexpqp(DisasContext *ctx) gen_exception(ctx, POWERPC_EXCP_VSXU); return; } - tcg_gen_shri_i64(xth, xbh, 48); - tcg_gen_andi_i64(xth, xth, 0x7FFF); + tcg_gen_extract_i64(xth, xbh, 48, 15); tcg_gen_movi_i64(xtl, 0); } =20 @@ -1323,8 +1321,7 @@ static void gen_xsxsigdp(DisasContext *ctx) zr =3D tcg_const_i64(0); nan =3D tcg_const_i64(2047); =20 - tcg_gen_shri_i64(exp, cpu_vsrh(xB(ctx->opcode)), 52); - tcg_gen_andi_i64(exp, exp, 0x7FF); + tcg_gen_extract_i64(exp, cpu_vsrh(xB(ctx->opcode)), 52, 11); tcg_gen_movi_i64(t0, 0x0010000000000000); tcg_gen_movcond_i64(TCG_COND_EQ, t0, exp, zr, zr, t0); tcg_gen_movcond_i64(TCG_COND_EQ, t0, exp, nan, zr, t0); @@ -1352,8 +1349,7 @@ static void gen_xsxsigqp(DisasContext *ctx) zr =3D tcg_const_i64(0); nan =3D tcg_const_i64(32767); =20 - tcg_gen_shri_i64(exp, cpu_vsrh(rB(ctx->opcode) + 32), 48); - tcg_gen_andi_i64(exp, exp, 0x7FFF); + tcg_gen_extract_i64(exp, cpu_vsrh(rB(ctx->opcode) + 32), 48, 15); tcg_gen_movi_i64(t0, 0x0001000000000000); tcg_gen_movcond_i64(TCG_COND_EQ, t0, exp, zr, zr, t0); tcg_gen_movcond_i64(TCG_COND_EQ, t0, exp, nan, zr, t0); @@ -1448,10 +1444,8 @@ static void gen_xvxexpdp(DisasContext *ctx) gen_exception(ctx, POWERPC_EXCP_VSXU); return; } - tcg_gen_shri_i64(xth, xbh, 52); - tcg_gen_andi_i64(xth, xth, 0x7FF); - tcg_gen_shri_i64(xtl, xbl, 52); - tcg_gen_andi_i64(xtl, xtl, 0x7FF); + tcg_gen_extract_i64(xth, xbh, 52, 11); + tcg_gen_extract_i64(xtl, xbl, 52, 11); } =20 GEN_VSX_HELPER_2(xvxsigsp, 0x00, 0x04, 0, PPC2_ISA300) @@ -1474,16 +1468,14 @@ static void gen_xvxsigdp(DisasContext *ctx) zr =3D tcg_const_i64(0); nan =3D tcg_const_i64(2047); =20 - tcg_gen_shri_i64(exp, xbh, 52); - tcg_gen_andi_i64(exp, exp, 0x7FF); + tcg_gen_extract_i64(exp, xbh, 52, 11); tcg_gen_movi_i64(t0, 0x0010000000000000); tcg_gen_movcond_i64(TCG_COND_EQ, t0, exp, zr, zr, t0); tcg_gen_movcond_i64(TCG_COND_EQ, t0, exp, nan, zr, t0); tcg_gen_andi_i64(xth, xbh, 0x000FFFFFFFFFFFFF); tcg_gen_or_i64(xth, xth, t0); =20 - tcg_gen_shri_i64(exp, xbl, 52); - tcg_gen_andi_i64(exp, exp, 0x7FF); + tcg_gen_extract_i64(exp, xbl, 52, 11); tcg_gen_movi_i64(t0, 0x0010000000000000); tcg_gen_movcond_i64(TCG_COND_EQ, t0, exp, zr, zr, t0); tcg_gen_movcond_i64(TCG_COND_EQ, t0, exp, nan, zr, t0); --=20 2.13.3 From nobody Mon Apr 29 22:59:30 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500507791161669.981908570071; Wed, 19 Jul 2017 16:43:11 -0700 (PDT) Received: from localhost ([::1]:35416 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXycW-0005rP-Px for importer@patchew.org; Wed, 19 Jul 2017 19:43:08 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33293) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXyVl-0008KI-3Z for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:36:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXyVk-0006rA-0l for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:36:09 -0400 Received: from mail-qk0-x244.google.com ([2607:f8b0:400d:c09::244]:38200) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXyVj-0006qu-Sy for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:36:07 -0400 Received: by mail-qk0-x244.google.com with SMTP id t2so1003893qkc.5 for ; Wed, 19 Jul 2017 16:36:07 -0700 (PDT) Received: from bigtime.com ([203.221.203.174]) by smtp.gmail.com with ESMTPSA id w33sm857130qth.96.2017.07.19.16.36.04 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 19 Jul 2017 16:36:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3EsWG4fo+Rdv5s67aI3AP/nroTyABuVAxdOadFLvU+Q=; b=A91UhHgJByQsF23bDFxue1JDi61VVQU6MlDHHEVNsu139W/UbeGliO4aqQFCqw70nE nmGDh4cakluSR4mtu8QZSCzXsaySXDKyE5vxLOuFbMlhDcKvNUmZafqzh58/0pzut1NT xeIqcHqxtfBzgnsOIRwquxiy9My5feXGO0uOCD4onrxi0Z3pqVx/41DpiMJW9OsgFh93 qQ+gXEcfZFcp62KD4V4Tf66VaRunamKGQ+TgoGLrZ9/YvXnByDJc1pQybJNEUUZslNmS 12pgvotoQ6IC7qf5y6vubXU2CQ70p8RI9II9zZ6H7XoomRYmIXPAL6y6LyummmLWX34X 8dCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=3EsWG4fo+Rdv5s67aI3AP/nroTyABuVAxdOadFLvU+Q=; b=cKIy6OVZm4VVHYpzm6fW0uuZRy2EAfA+WDfIiWjUiDKzoi+PO0uzvqyQg+NmRjONbp hHpWtLd0cdbSgiucvnTTBDP8XMWXIUYYP36Np3hJ1BXCWWPqCZTyzIVOy9sGYbEjtQRG lwnrUX+DKyuMOUoi+s7UZORIjpJ6yYOGUn9xk8z6lugRDNxF/Ks9+qs3XJJ6eiysl/Xq oPqodds+6I5LHM4cDlw8NG8ncbDMYzEmIpzmYlBQ9Or5XiSVoTghZG6LBnZIl59mCo6b +ZinaOHgI/iqAj/M23UB+JpI7JfbFZ6UdvSZYPs+xHo5cVnvgvT0/zXSgy6526jVGWwH q+SA== X-Gm-Message-State: AIVw1126V88tmvk2nvks6UcFkaqAO6WacDxSU+COBaBlCXZuniR8GEOZ WuQFokRc2LivaA5K8xQ= X-Received: by 10.55.152.194 with SMTP id a185mr2620297qke.26.1500507367195; Wed, 19 Jul 2017 16:36:07 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 19 Jul 2017 13:34:51 -1000 Message-Id: <20170719233455.8740-11-rth@twiddle.net> X-Mailer: git-send-email 2.13.3 In-Reply-To: <20170719233455.8740-1-rth@twiddle.net> References: <20170719233455.8740-1-rth@twiddle.net> 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: 2607:f8b0:400d:c09::244 Subject: [Qemu-devel] [PULL v2 10/14] target/sparc: optimize various functions using extract op 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: peter.maydell@linaro.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= 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: Philippe Mathieu-Daud=C3=A9 Done with the Coccinelle semantic patch scripts/coccinelle/tcg_gen_extract.cocci. Reviewed-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- target/sparc/translate.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/target/sparc/translate.c b/target/sparc/translate.c index aa6734d54e..67a83b77cc 100644 --- a/target/sparc/translate.c +++ b/target/sparc/translate.c @@ -380,29 +380,25 @@ static inline void gen_goto_tb(DisasContext *s, int t= b_num, static inline void gen_mov_reg_N(TCGv reg, TCGv_i32 src) { tcg_gen_extu_i32_tl(reg, src); - tcg_gen_shri_tl(reg, reg, PSR_NEG_SHIFT); - tcg_gen_andi_tl(reg, reg, 0x1); + tcg_gen_extract_tl(reg, reg, PSR_NEG_SHIFT, 1); } =20 static inline void gen_mov_reg_Z(TCGv reg, TCGv_i32 src) { tcg_gen_extu_i32_tl(reg, src); - tcg_gen_shri_tl(reg, reg, PSR_ZERO_SHIFT); - tcg_gen_andi_tl(reg, reg, 0x1); + tcg_gen_extract_tl(reg, reg, PSR_ZERO_SHIFT, 1); } =20 static inline void gen_mov_reg_V(TCGv reg, TCGv_i32 src) { tcg_gen_extu_i32_tl(reg, src); - tcg_gen_shri_tl(reg, reg, PSR_OVF_SHIFT); - tcg_gen_andi_tl(reg, reg, 0x1); + tcg_gen_extract_tl(reg, reg, PSR_OVF_SHIFT, 1); } =20 static inline void gen_mov_reg_C(TCGv reg, TCGv_i32 src) { tcg_gen_extu_i32_tl(reg, src); - tcg_gen_shri_tl(reg, reg, PSR_CARRY_SHIFT); - tcg_gen_andi_tl(reg, reg, 0x1); + tcg_gen_extract_tl(reg, reg, PSR_CARRY_SHIFT, 1); } =20 static inline void gen_op_add_cc(TCGv dst, TCGv src1, TCGv src2) @@ -638,8 +634,7 @@ static inline void gen_op_mulscc(TCGv dst, TCGv src1, T= CGv src2) // env->y =3D (b2 << 31) | (env->y >> 1); tcg_gen_andi_tl(r_temp, cpu_cc_src, 0x1); tcg_gen_shli_tl(r_temp, r_temp, 31); - tcg_gen_shri_tl(t0, cpu_y, 1); - tcg_gen_andi_tl(t0, t0, 0x7fffffff); + tcg_gen_extract_tl(t0, cpu_y, 1, 31); tcg_gen_or_tl(t0, t0, r_temp); tcg_gen_andi_tl(cpu_y, t0, 0xffffffff); =20 --=20 2.13.3 From nobody Mon Apr 29 22:59:30 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500508728921186.2967317461788; Wed, 19 Jul 2017 16:58:48 -0700 (PDT) Received: from localhost ([::1]:35424 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXyeX-0008N0-L7 for importer@patchew.org; Wed, 19 Jul 2017 19:45:13 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33322) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXyVo-0008Nq-E8 for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:36:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXyVn-0006xP-Lw for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:36:12 -0400 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:35433) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXyVn-0006ww-HK for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:36:11 -0400 Received: by mail-qt0-x241.google.com with SMTP id p25so1786995qtp.2 for ; Wed, 19 Jul 2017 16:36:11 -0700 (PDT) Received: from bigtime.com ([203.221.203.174]) by smtp.gmail.com with ESMTPSA id w33sm857130qth.96.2017.07.19.16.36.07 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 19 Jul 2017 16:36:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9lYrBKzkNvcYNT1wSZJ9xXO4gZBT77sursomJOmDyyQ=; b=j1YX698S2G1hoYJANnwj3hB4NRCtEalDjbBcbZerpHNDHX9shpgwhHsiuDG/EvjteQ nv98OlSfXwRwSPbxL8HfUxVL9dR+JYl1s83HxGyctzBD+GDR3FpaAyU3gurTwYbrQg3u xfIzKmuOagF+JSNm/lsrztrMOJQW3AYIHiiTlvK15PkUIAiMBCGTaCga71RcgHaoanve VLQyUBO83m/7ev4uJK7ljvipn5totNnlMB5HG41QQtiPtnJf8mI/6bjodTscnKAHZ5pn gHyAJCm1WUJ4z3RcMWonMWn4J8rlswHd6CbpDKsTWIwa2quoMSxs74V82U38TZkzFQ7l R89Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=9lYrBKzkNvcYNT1wSZJ9xXO4gZBT77sursomJOmDyyQ=; b=iWAJeKjwuTNvQpjLRhSBd9w2Q2V/iYy4tVKmYB+QpCyIp4YDp5EM4QJEOGLGZ6hQsC BE05m3Ruk24K1lRPfwkSsn9pADhl4bwFbNgKkxJX7HhovHm0xa4soMnAq7aadVkbJwbL j65DyIQOC4St1TAP1Z0Ui9mneTpmhfdhD29vOLy0I4rrJYVyBCw9cYDPPQ4yNR2hojCO A1i7Il1ItOn82LmXPWP1YTS8sr9rc6gW6PCpiD8WrAtUwi5uTiQefo9iTZ47ACY9R7Nm pIgOIx1WZVAZSURxHxjU4ru5E0BPeZiHnftj91qWY/rb0+TwJRQlImgFJSOkzotvFWoe +lwA== X-Gm-Message-State: AIVw110Rxgbye6aCN9aczlfGFMNdTLkly+QAhSGAkdu+RnZtWzMIMByG JLOpo7urhJlIr1WXmok= X-Received: by 10.237.59.59 with SMTP id p56mr2502181qte.341.1500507370836; Wed, 19 Jul 2017 16:36:10 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 19 Jul 2017 13:34:52 -1000 Message-Id: <20170719233455.8740-12-rth@twiddle.net> X-Mailer: git-send-email 2.13.3 In-Reply-To: <20170719233455.8740-1-rth@twiddle.net> References: <20170719233455.8740-1-rth@twiddle.net> 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: 2607:f8b0:400d:c0d::241 Subject: [Qemu-devel] [PULL v2 11/14] target/sparc: optimize gen_op_mulscc() using deposit op 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: peter.maydell@linaro.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= 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: Philippe Mathieu-Daud=C3=A9 Suggested-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20170718045540.16322-9-f4bug@amsat.org> Signed-off-by: Richard Henderson --- target/sparc/translate.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/target/sparc/translate.c b/target/sparc/translate.c index 67a83b77cc..d13173275f 100644 --- a/target/sparc/translate.c +++ b/target/sparc/translate.c @@ -632,11 +632,8 @@ static inline void gen_op_mulscc(TCGv dst, TCGv src1, = TCGv src2) =20 // b2 =3D T0 & 1; // env->y =3D (b2 << 31) | (env->y >> 1); - tcg_gen_andi_tl(r_temp, cpu_cc_src, 0x1); - tcg_gen_shli_tl(r_temp, r_temp, 31); tcg_gen_extract_tl(t0, cpu_y, 1, 31); - tcg_gen_or_tl(t0, t0, r_temp); - tcg_gen_andi_tl(cpu_y, t0, 0xffffffff); + tcg_gen_deposit_tl(cpu_y, t0, cpu_cc_src, 31, 1); =20 // b1 =3D N ^ V; gen_mov_reg_N(t0, cpu_psr); --=20 2.13.3 From nobody Mon Apr 29 22:59:30 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500507770522151.75413783195347; Wed, 19 Jul 2017 16:42:50 -0700 (PDT) Received: from localhost ([::1]:35413 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXycC-0005Zm-K7 for importer@patchew.org; Wed, 19 Jul 2017 19:42:48 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33339) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXyVu-0008S7-Cd for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:36:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXyVr-0006z9-9d for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:36:18 -0400 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:33690) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXyVr-0006yn-4q for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:36:15 -0400 Received: by mail-qt0-x242.google.com with SMTP id 50so1793295qtz.0 for ; Wed, 19 Jul 2017 16:36:15 -0700 (PDT) Received: from bigtime.com ([203.221.203.174]) by smtp.gmail.com with ESMTPSA id w33sm857130qth.96.2017.07.19.16.36.11 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 19 Jul 2017 16:36:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=BonAjKf1NSloQCaTI2LRcGUqgeX8sNAAOk3SsoGMlf8=; b=O5AHuqYeixPEVBiCyQlxD/pq+so/3czzs25++AFBK4wDnu0Y0IyBoPZGCkz0w/SSYI nC9LGs5UVILA5hUHCDFiVir/6MuIbS0A7dRsRd/K2Wb7NJQBNgM39cqqpWOgnCzcPbjs STiTOBKQWIi1IEObw6YYkZHEcj/p2lew2xRmsLyoRhD/3Ed8KYmt7r3p9LZcViY8m0fZ eovFY82UHVQcpa5STAt34hPv0nWrcbv1rtjdUvFq26RUwEk5z7pfnpUmrmY+vWdkSjTw z+fnxU6T6hImWa4R5yZ6XVO6AgAx5lkYewnhZn2SlMxuAmVsVBOAL1LpFGgaFnxb4Ma/ TFqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=BonAjKf1NSloQCaTI2LRcGUqgeX8sNAAOk3SsoGMlf8=; b=ns0MlpkoOqYs84Cp0PT1gJSqdeHm8+BSxnKZ6j3QXjcY1l64uyEbK9skZ0iazdEA5R Usb62wj3yLyrsS+6VURZJed7GxWlI8/88I+rqxng9IRBIwNJkXnq9+osvPtU/Tk5aMme vuOzL1jfm/ktgTALKJvBumUQz096AucKh60p7BOGsyAW87YQzCd2153BfKDwzteKD6HL HmFfqKEiMP4AVUUAR8ESS7md6DhTLjquosfgOwZK1big9cwnc5PharZcvX90cQvHXAhy m8E1Nc62Wkn1LhB6Uh9BmjXXmMKGEgR73TZvmBwwgNFfmz7WTUtdWs5ZFadMrv2JnRJe 05Uw== X-Gm-Message-State: AIVw112N21NINY4cxTuDpvIl04mgTvg9d6wjGmhCh0VIWsvSZ0/JE6n9 DQQEfM7pPwCnFcxiG6k= X-Received: by 10.200.40.137 with SMTP id i9mr2634918qti.274.1500507374346; Wed, 19 Jul 2017 16:36:14 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 19 Jul 2017 13:34:53 -1000 Message-Id: <20170719233455.8740-13-rth@twiddle.net> X-Mailer: git-send-email 2.13.3 In-Reply-To: <20170719233455.8740-1-rth@twiddle.net> References: <20170719233455.8740-1-rth@twiddle.net> 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: 2607:f8b0:400d:c0d::242 Subject: [Qemu-devel] [PULL v2 12/14] target/alpha: optimize gen_cvtlq() using deposit op 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: peter.maydell@linaro.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= 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: Philippe Mathieu-Daud=C3=A9 Suggested-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20170718045540.16322-10-f4bug@amsat.org> Signed-off-by: Richard Henderson --- target/alpha/translate.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/target/alpha/translate.c b/target/alpha/translate.c index 90e6d5285f..744d8bbf12 100644 --- a/target/alpha/translate.c +++ b/target/alpha/translate.c @@ -783,11 +783,9 @@ static void gen_cvtlq(TCGv vc, TCGv vb) =20 /* The arithmetic right shift here, plus the sign-extended mask below yields a sign-extended result without an explicit ext32s_i64. */ - tcg_gen_sari_i64(tmp, vb, 32); - tcg_gen_shri_i64(vc, vb, 29); - tcg_gen_andi_i64(tmp, tmp, (int32_t)0xc0000000); - tcg_gen_andi_i64(vc, vc, 0x3fffffff); - tcg_gen_or_i64(vc, vc, tmp); + tcg_gen_shri_i64(tmp, vb, 29); + tcg_gen_sari_i64(vc, vb, 32); + tcg_gen_deposit_i64(vc, vc, tmp, 0, 30); =20 tcg_temp_free(tmp); } --=20 2.13.3 From nobody Mon Apr 29 22:59:30 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500508765093801.1870260986591; Wed, 19 Jul 2017 16:59:25 -0700 (PDT) Received: from localhost ([::1]:35423 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXyeX-0008M7-2i for importer@patchew.org; Wed, 19 Jul 2017 19:45:13 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33351) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXyVw-0008T5-3G for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:36:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXyVu-00071H-UP for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:36:20 -0400 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:38609) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXyVu-000719-QI for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:36:18 -0400 Received: by mail-qt0-x241.google.com with SMTP id h47so1768658qta.5 for ; Wed, 19 Jul 2017 16:36:18 -0700 (PDT) Received: from bigtime.com ([203.221.203.174]) by smtp.gmail.com with ESMTPSA id w33sm857130qth.96.2017.07.19.16.36.14 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 19 Jul 2017 16:36:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=93k+ezACAhYC59QJOHnrNta+EITu8k2xOSxDmJs1mhA=; b=WGeQ4rWYut69JbdW3ELP8wnkjAea2Niuk5TGhpMmmX9K+4woOtapoOgc8B7D0ZU/VP FRKS1F04EW4VJbmBsvIUUqiB6NxaGRrWaw9lzb1pccHljbxDDxc3fNqfklbnXdpBlRvw IF9AGAa3nc08oATD6mBIHfnWO7OuBTEdSG6XrdhjlRwa02vJZb5ZveShVAzLWKhW2TQ8 ZPt0W3jCIXPbYQzPbKyb375PXLqazG7fVZ5vDdsUH4dw/7Crg/xIhwd4qz3VWz0tkEsf q2PzcgeX+2ktNk8tjd1LqvZRQxLp7nVt5iD+Nw6LIZpUtEYAB5W8ZP/DgP7Z1HNPSvD5 mnBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=93k+ezACAhYC59QJOHnrNta+EITu8k2xOSxDmJs1mhA=; b=J2RGUwJy/xDajo97aktcfQKptuw6NxSohGwv8038x/jwbExrP1pSovleSnjAdXzaf7 qZnpZLBD7y7RsBP4CRLCy/6DaoKGRXw/yziB6mvUE5cBdYHb7fQ35lPoBXJ3O53Fg1vC zN74szVL2f1ntUHlEUKqc3a9tp2YdOesozquA0GJ5L4UjE2muLqdkX2DH4nB9s4E2Agp ArBxHcXmLp6P2SehucrJsMqF9b1iIiO1D7ikrSFdWHWQkURh0NbThAevIu5u69DAaSX2 ADFBeixgndLj54Qd95oIS0JjEpYFCVKGcDiizaki+b7SQD5OfR3S45VBNTKUWcb+u2xj RP5w== X-Gm-Message-State: AIVw112OpgAtT22L18XQT1FC1z9TUkhc5VoO/t+mx0OQX+oSbb4WDaEI uT0QbEW7wEInoW4+Ad4= X-Received: by 10.200.41.220 with SMTP id 28mr2545487qtt.168.1500507378077; Wed, 19 Jul 2017 16:36:18 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 19 Jul 2017 13:34:54 -1000 Message-Id: <20170719233455.8740-14-rth@twiddle.net> X-Mailer: git-send-email 2.13.3 In-Reply-To: <20170719233455.8740-1-rth@twiddle.net> References: <20170719233455.8740-1-rth@twiddle.net> 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: 2607:f8b0:400d:c0d::241 Subject: [Qemu-devel] [PULL v2 13/14] tcg/tci: enable bswap16_i64 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: peter.maydell@linaro.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Jaroslaw Pelczar 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: Philippe Mathieu-Daud=C3=A9 Altough correctly implemented, bswap16_i64() never got tested/executed so t= he safety TODO() statement was never removed. Since it got now tested the TODO() can be removed. while running Alex Benn=C3=A9e's image aarch64-linux-3.15rc2-buildroot.img: Trace 0x7fa1904b0890 [0: ffffffc00036cd04] Reviewed-by: Alex Benn=C3=A9e Reviewed-by: Eric Blake Reviewed-by: Stefan Weil ---------------- IN: 0xffffffc00036cd24: 5ac00694 rev16 w20, w20 OP: ---- ffffffc00036cd24 0000000000000000 0000000000000000 ext32u_i64 tmp3,x20 ext16u_i64 tmp2,tmp3 bswap16_i64 x20,tmp2 movi_i64 tmp4,$0x10 shr_i64 tmp2,tmp3,tmp4 ext16u_i64 tmp2,tmp2 bswap16_i64 tmp2,tmp2 deposit_i64 x20,x20,tmp2,$0x10,$0x10 Linking TBs 0x7fa1904b0890 [ffffffc00036cd04] index 0 -> 0x7fa1904b0aa0 [ff= ffffc00036cd24] Trace 0x7fa1904b0aa0 [0: ffffffc00036cd24] TODO qemu/tci.c:1049: tcg_qemu_tb_exec() qemu/tci.c:1049: tcg fatal error Aborted Signed-off-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Jaroslaw Pelczar Reviewed-by: Alex Benn=C3=A9e Reviewed-by: Eric Blake Reviewed-by: Stefan Weil Message-Id: <20170718045540.16322-11-f4bug@amsat.org> Signed-off-by: Richard Henderson --- tcg/tci.c | 1 - 1 file changed, 1 deletion(-) diff --git a/tcg/tci.c b/tcg/tci.c index 4bdc645f2a..f39bfb95c0 100644 --- a/tcg/tci.c +++ b/tcg/tci.c @@ -1046,7 +1046,6 @@ uintptr_t tcg_qemu_tb_exec(CPUArchState *env, uint8_t= *tb_ptr) break; #if TCG_TARGET_HAS_bswap16_i64 case INDEX_op_bswap16_i64: - TODO(); t0 =3D *tb_ptr++; t1 =3D tci_read_r16(&tb_ptr); tci_write_reg64(t0, bswap16(t1)); --=20 2.13.3 From nobody Mon Apr 29 22:59:30 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500509492164446.77815540284087; Wed, 19 Jul 2017 17:11:32 -0700 (PDT) Received: from localhost ([::1]:35430 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXyeq-0000DH-Cj for importer@patchew.org; Wed, 19 Jul 2017 19:45:32 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33392) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXyW1-000078-02 for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:36:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXyVy-00074r-Ly for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:36:24 -0400 Received: from mail-qk0-x243.google.com ([2607:f8b0:400d:c09::243]:35040) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXyVy-00074b-F6 for qemu-devel@nongnu.org; Wed, 19 Jul 2017 19:36:22 -0400 Received: by mail-qk0-x243.google.com with SMTP id t186so1003232qkf.2 for ; Wed, 19 Jul 2017 16:36:22 -0700 (PDT) Received: from bigtime.com ([203.221.203.174]) by smtp.gmail.com with ESMTPSA id w33sm857130qth.96.2017.07.19.16.36.18 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 19 Jul 2017 16:36:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=7S2n7/2qWSl/eJISYXORzEW7UTx8Ej4SxxPa3uQ6pQ0=; b=E68xyh4hWESKNy4nOxuW4ffOZn1VpWt0n5WK/M9fnDgPwOKyMVspJBBmaXEglT+66F xetabIRmmQ2kf/pkM6o9+Wdh2yPscNsSb6NzJe+AjjlrYHIEo/TRYXGf3CPUjDGR+CRY LmqlWKaj7EVRdDW1lWZGhBXrSuXS6zT0et2KkzK31BoatMsW1QpNqP2NryzIcG1SfOrm Aq7AIulez9Wsy/R6LA1Gwmcd3NnUDE1RdNEZJK/1qE7GQUfm9Z8d9sQWVLxysTyEjbYI AFBfo1T3TKvrU55m3VwFB5e/zvlrE4k483OVAXxLs0R2ZZf0RyCmF2BXjnFafcQQr/4d KYQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=7S2n7/2qWSl/eJISYXORzEW7UTx8Ej4SxxPa3uQ6pQ0=; b=kDx6rYxnElZIC2OGAUxtfM9k8Y+qN4G65WUXFPW0Eh1wSv4G+u0D7eezn0XGxnJyh1 lhiH8QXMsvZ+H1fb/+6W/DqAMspYOiw6RonqVumBcMDQmosvTTkMcnqXIQ34FuBOVceG o/io9oR5LQjhhNqULTUrswHq0yc9s7F5xAvBtZw7FLtz1QQdnplfdoOKAWUPkjXZw66S B7a/1fy1pYuvpmHIVp+GHuqnp54VBMQU5cOS0ojRXKSmW6ZpVpSl7/YmmyFbn6/wNaNI FLojAx1DhcLNMkoUzii9vEdUypTY21rzJciY+tb2emxUUbIWsPcFa2f0q4SekzIvQYu1 AoHg== X-Gm-Message-State: AIVw113rtwF5t5TJe/9aASJWz9MFPGldAyT457OTJPNo1wg5OC11cQTK PDkmdJA1/lf/CmqhS5E= X-Received: by 10.55.72.1 with SMTP id v1mr2401276qka.0.1500507381412; Wed, 19 Jul 2017 16:36:21 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 19 Jul 2017 13:34:55 -1000 Message-Id: <20170719233455.8740-15-rth@twiddle.net> X-Mailer: git-send-email 2.13.3 In-Reply-To: <20170719233455.8740-1-rth@twiddle.net> References: <20170719233455.8740-1-rth@twiddle.net> 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: 2607:f8b0:400d:c09::243 Subject: [Qemu-devel] [PULL v2 14/14] tcg: Pass generic CPUState to gen_intermediate_code() 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: peter.maydell@linaro.org, =?UTF-8?q?Llu=C3=ADs=20Vilanova?= 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: Llu=C3=ADs Vilanova Needed to implement a target-agnostic gen_intermediate_code() in the future. Reviewed-by: David Gibson Reviewed-by: Richard Henderson Reviewed-by: Alex Benne=C3=A9 Reviewed-by: Emilio G. Cota Signed-off-by: Llu=C3=ADs Vilanova Message-Id: <150002025498.22386.18051908483085660588.stgit@frigg.lan> Signed-off-by: Richard Henderson --- include/exec/exec-all.h | 2 +- target/arm/translate.h | 4 ++-- accel/tcg/translate-all.c | 2 +- target/alpha/translate.c | 5 ++--- target/arm/translate-a64.c | 6 +++--- target/arm/translate.c | 6 +++--- target/cris/translate.c | 7 +++---- target/hppa/translate.c | 5 ++--- target/i386/translate.c | 5 ++--- target/lm32/translate.c | 4 ++-- target/m68k/translate.c | 5 ++--- target/microblaze/translate.c | 4 ++-- target/mips/translate.c | 5 ++--- target/moxie/translate.c | 4 ++-- target/nios2/translate.c | 5 ++--- target/openrisc/translate.c | 4 ++-- target/ppc/translate.c | 5 ++--- target/s390x/translate.c | 5 ++--- target/sh4/translate.c | 5 ++--- target/sparc/translate.c | 5 ++--- target/tilegx/translate.c | 5 ++--- target/tricore/translate.c | 5 ++--- target/unicore32/translate.c | 5 ++--- target/xtensa/translate.c | 5 ++--- 24 files changed, 49 insertions(+), 64 deletions(-) diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h index 87b1b74e3b..440fc31b37 100644 --- a/include/exec/exec-all.h +++ b/include/exec/exec-all.h @@ -66,7 +66,7 @@ typedef ram_addr_t tb_page_addr_t; =20 #include "qemu/log.h" =20 -void gen_intermediate_code(CPUArchState *env, struct TranslationBlock *tb); +void gen_intermediate_code(CPUState *cpu, struct TranslationBlock *tb); void restore_state_to_opc(CPUArchState *env, struct TranslationBlock *tb, target_ulong *data); =20 diff --git a/target/arm/translate.h b/target/arm/translate.h index 12fd79ba8e..2fe144baa9 100644 --- a/target/arm/translate.h +++ b/target/arm/translate.h @@ -149,7 +149,7 @@ static void disas_set_insn_syndrome(DisasContext *s, ui= nt32_t syn) =20 #ifdef TARGET_AARCH64 void a64_translate_init(void); -void gen_intermediate_code_a64(ARMCPU *cpu, TranslationBlock *tb); +void gen_intermediate_code_a64(CPUState *cpu, TranslationBlock *tb); void gen_a64_set_pc_im(uint64_t val); void aarch64_cpu_dump_state(CPUState *cs, FILE *f, fprintf_function cpu_fprintf, int flags); @@ -158,7 +158,7 @@ static inline void a64_translate_init(void) { } =20 -static inline void gen_intermediate_code_a64(ARMCPU *cpu, TranslationBlock= *tb) +static inline void gen_intermediate_code_a64(CPUState *cpu, TranslationBlo= ck *tb) { } =20 diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c index 090ebad0a7..37ecafa931 100644 --- a/accel/tcg/translate-all.c +++ b/accel/tcg/translate-all.c @@ -1280,7 +1280,7 @@ TranslationBlock *tb_gen_code(CPUState *cpu, tcg_func_start(&tcg_ctx); =20 tcg_ctx.cpu =3D ENV_GET_CPU(env); - gen_intermediate_code(env, tb); + gen_intermediate_code(cpu, tb); tcg_ctx.cpu =3D NULL; =20 trace_translate_block(tb, tb->pc, tb->tc_ptr); diff --git a/target/alpha/translate.c b/target/alpha/translate.c index 744d8bbf12..f465752208 100644 --- a/target/alpha/translate.c +++ b/target/alpha/translate.c @@ -2952,10 +2952,9 @@ static ExitStatus translate_one(DisasContext *ctx, u= int32_t insn) return ret; } =20 -void gen_intermediate_code(CPUAlphaState *env, struct TranslationBlock *tb) +void gen_intermediate_code(CPUState *cs, struct TranslationBlock *tb) { - AlphaCPU *cpu =3D alpha_env_get_cpu(env); - CPUState *cs =3D CPU(cpu); + CPUAlphaState *env =3D cs->env_ptr; DisasContext ctx, *ctxp =3D &ctx; target_ulong pc_start; target_ulong pc_mask; diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index 5bb0f8ef22..883e9df0c2 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -11179,10 +11179,10 @@ static void disas_a64_insn(CPUARMState *env, Disa= sContext *s) free_tmp_a64(s); } =20 -void gen_intermediate_code_a64(ARMCPU *cpu, TranslationBlock *tb) +void gen_intermediate_code_a64(CPUState *cs, TranslationBlock *tb) { - CPUState *cs =3D CPU(cpu); - CPUARMState *env =3D &cpu->env; + CPUARMState *env =3D cs->env_ptr; + ARMCPU *cpu =3D arm_env_get_cpu(env); DisasContext dc1, *dc =3D &dc1; target_ulong pc_start; target_ulong next_page_start; diff --git a/target/arm/translate.c b/target/arm/translate.c index d3003ae0d8..d1a5f56998 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -11795,10 +11795,10 @@ static bool insn_crosses_page(CPUARMState *env, D= isasContext *s) } =20 /* generate intermediate code for basic block 'tb'. */ -void gen_intermediate_code(CPUARMState *env, TranslationBlock *tb) +void gen_intermediate_code(CPUState *cs, TranslationBlock *tb) { + CPUARMState *env =3D cs->env_ptr; ARMCPU *cpu =3D arm_env_get_cpu(env); - CPUState *cs =3D CPU(cpu); DisasContext dc1, *dc =3D &dc1; target_ulong pc_start; target_ulong next_page_start; @@ -11812,7 +11812,7 @@ void gen_intermediate_code(CPUARMState *env, Transl= ationBlock *tb) * the A32/T32 complexity to do with conditional execution/IT blocks/e= tc. */ if (ARM_TBFLAG_AARCH64_STATE(tb->flags)) { - gen_intermediate_code_a64(cpu, tb); + gen_intermediate_code_a64(cs, tb); return; } =20 diff --git a/target/cris/translate.c b/target/cris/translate.c index 0ee05ca02d..12b96eb68f 100644 --- a/target/cris/translate.c +++ b/target/cris/translate.c @@ -3080,10 +3080,9 @@ static unsigned int crisv32_decoder(CPUCRISState *en= v, DisasContext *dc) */ =20 /* generate intermediate code for basic block 'tb'. */ -void gen_intermediate_code(CPUCRISState *env, struct TranslationBlock *tb) +void gen_intermediate_code(CPUState *cs, struct TranslationBlock *tb) { - CRISCPU *cpu =3D cris_env_get_cpu(env); - CPUState *cs =3D CPU(cpu); + CPUCRISState *env =3D cs->env_ptr; uint32_t pc_start; unsigned int insn_len; struct DisasContext ctx; @@ -3105,7 +3104,7 @@ void gen_intermediate_code(CPUCRISState *env, struct = TranslationBlock *tb) * delayslot, like in real hw. */ pc_start =3D tb->pc & ~1; - dc->cpu =3D cpu; + dc->cpu =3D cris_env_get_cpu(env); dc->tb =3D tb; =20 dc->is_jmp =3D DISAS_NEXT; diff --git a/target/hppa/translate.c b/target/hppa/translate.c index e10abc5e04..900870cd5a 100644 --- a/target/hppa/translate.c +++ b/target/hppa/translate.c @@ -3740,10 +3740,9 @@ static ExitStatus translate_one(DisasContext *ctx, u= int32_t insn) return gen_illegal(ctx); } =20 -void gen_intermediate_code(CPUHPPAState *env, struct TranslationBlock *tb) +void gen_intermediate_code(CPUState *cs, struct TranslationBlock *tb) { - HPPACPU *cpu =3D hppa_env_get_cpu(env); - CPUState *cs =3D CPU(cpu); + CPUHPPAState *env =3D cs->env_ptr; DisasContext ctx; ExitStatus ret; int num_insns, max_insns, i; diff --git a/target/i386/translate.c b/target/i386/translate.c index ed3b896db4..cab9e32f91 100644 --- a/target/i386/translate.c +++ b/target/i386/translate.c @@ -8378,10 +8378,9 @@ void tcg_x86_init(void) } =20 /* generate intermediate code for basic block 'tb'. */ -void gen_intermediate_code(CPUX86State *env, TranslationBlock *tb) +void gen_intermediate_code(CPUState *cs, TranslationBlock *tb) { - X86CPU *cpu =3D x86_env_get_cpu(env); - CPUState *cs =3D CPU(cpu); + CPUX86State *env =3D cs->env_ptr; DisasContext dc1, *dc =3D &dc1; target_ulong pc_ptr; uint32_t flags; diff --git a/target/lm32/translate.c b/target/lm32/translate.c index 692882f447..f68f372f15 100644 --- a/target/lm32/translate.c +++ b/target/lm32/translate.c @@ -1044,10 +1044,10 @@ static inline void decode(DisasContext *dc, uint32_= t ir) } =20 /* generate intermediate code for basic block 'tb'. */ -void gen_intermediate_code(CPULM32State *env, struct TranslationBlock *tb) +void gen_intermediate_code(CPUState *cs, struct TranslationBlock *tb) { + CPULM32State *env =3D cs->env_ptr; LM32CPU *cpu =3D lm32_env_get_cpu(env); - CPUState *cs =3D CPU(cpu); struct DisasContext ctx, *dc =3D &ctx; uint32_t pc_start; uint32_t next_page_start; diff --git a/target/m68k/translate.c b/target/m68k/translate.c index e709e6cde2..ada2a91b64 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -5518,10 +5518,9 @@ static void disas_m68k_insn(CPUM68KState * env, Disa= sContext *s) } =20 /* generate intermediate code for basic block 'tb'. */ -void gen_intermediate_code(CPUM68KState *env, TranslationBlock *tb) +void gen_intermediate_code(CPUState *cs, TranslationBlock *tb) { - M68kCPU *cpu =3D m68k_env_get_cpu(env); - CPUState *cs =3D CPU(cpu); + CPUM68KState *env =3D cs->env_ptr; DisasContext dc1, *dc =3D &dc1; target_ulong pc_start; int pc_offset; diff --git a/target/microblaze/translate.c b/target/microblaze/translate.c index cb65d1e129..a24373c0be 100644 --- a/target/microblaze/translate.c +++ b/target/microblaze/translate.c @@ -1625,10 +1625,10 @@ static inline void decode(DisasContext *dc, uint32_= t ir) } =20 /* generate intermediate code for basic block 'tb'. */ -void gen_intermediate_code(CPUMBState *env, struct TranslationBlock *tb) +void gen_intermediate_code(CPUState *cs, struct TranslationBlock *tb) { + CPUMBState *env =3D cs->env_ptr; MicroBlazeCPU *cpu =3D mb_env_get_cpu(env); - CPUState *cs =3D CPU(cpu); uint32_t pc_start; struct DisasContext ctx; struct DisasContext *dc =3D &ctx; diff --git a/target/mips/translate.c b/target/mips/translate.c index fe44f2f807..1fd18e9d2a 100644 --- a/target/mips/translate.c +++ b/target/mips/translate.c @@ -19888,10 +19888,9 @@ static void decode_opc(CPUMIPSState *env, DisasCon= text *ctx) } } =20 -void gen_intermediate_code(CPUMIPSState *env, struct TranslationBlock *tb) +void gen_intermediate_code(CPUState *cs, struct TranslationBlock *tb) { - MIPSCPU *cpu =3D mips_env_get_cpu(env); - CPUState *cs =3D CPU(cpu); + CPUMIPSState *env =3D cs->env_ptr; DisasContext ctx; target_ulong pc_start; target_ulong next_page_start; diff --git a/target/moxie/translate.c b/target/moxie/translate.c index 0660b44c08..3cfd232558 100644 --- a/target/moxie/translate.c +++ b/target/moxie/translate.c @@ -822,10 +822,10 @@ static int decode_opc(MoxieCPU *cpu, DisasContext *ct= x) } =20 /* generate intermediate code for basic block 'tb'. */ -void gen_intermediate_code(CPUMoxieState *env, struct TranslationBlock *tb) +void gen_intermediate_code(CPUState *cs, struct TranslationBlock *tb) { + CPUMoxieState *env =3D cs->env_ptr; MoxieCPU *cpu =3D moxie_env_get_cpu(env); - CPUState *cs =3D CPU(cpu); DisasContext ctx; target_ulong pc_start; int num_insns, max_insns; diff --git a/target/nios2/translate.c b/target/nios2/translate.c index 2f3c2e5dfb..8b97d6585f 100644 --- a/target/nios2/translate.c +++ b/target/nios2/translate.c @@ -799,10 +799,9 @@ static void gen_exception(DisasContext *dc, uint32_t e= xcp) } =20 /* generate intermediate code for basic block 'tb'. */ -void gen_intermediate_code(CPUNios2State *env, TranslationBlock *tb) +void gen_intermediate_code(CPUState *cs, TranslationBlock *tb) { - Nios2CPU *cpu =3D nios2_env_get_cpu(env); - CPUState *cs =3D CPU(cpu); + CPUNios2State *env =3D cs->env_ptr; DisasContext dc1, *dc =3D &dc1; int num_insns; int max_insns; diff --git a/target/openrisc/translate.c b/target/openrisc/translate.c index e49518e893..a01413113b 100644 --- a/target/openrisc/translate.c +++ b/target/openrisc/translate.c @@ -1518,10 +1518,10 @@ static void disas_openrisc_insn(DisasContext *dc, O= penRISCCPU *cpu) } } =20 -void gen_intermediate_code(CPUOpenRISCState *env, struct TranslationBlock = *tb) +void gen_intermediate_code(CPUState *cs, struct TranslationBlock *tb) { + CPUOpenRISCState *env =3D cs->env_ptr; OpenRISCCPU *cpu =3D openrisc_env_get_cpu(env); - CPUState *cs =3D CPU(cpu); struct DisasContext ctx, *dc =3D &ctx; uint32_t pc_start; uint32_t next_page_start; diff --git a/target/ppc/translate.c b/target/ppc/translate.c index de271af52b..01233e8b6d 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -7196,10 +7196,9 @@ void ppc_cpu_dump_statistics(CPUState *cs, FILE*f, } =20 /*************************************************************************= ****/ -void gen_intermediate_code(CPUPPCState *env, struct TranslationBlock *tb) +void gen_intermediate_code(CPUState *cs, struct TranslationBlock *tb) { - PowerPCCPU *cpu =3D ppc_env_get_cpu(env); - CPUState *cs =3D CPU(cpu); + CPUPPCState *env =3D cs->env_ptr; DisasContext ctx, *ctxp =3D &ctx; opc_handler_t **table, *handler; target_ulong pc_start; diff --git a/target/s390x/translate.c b/target/s390x/translate.c index 1dffcee884..48b71f9604 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -5853,10 +5853,9 @@ static ExitStatus translate_one(CPUS390XState *env, = DisasContext *s) return ret; } =20 -void gen_intermediate_code(CPUS390XState *env, struct TranslationBlock *tb) +void gen_intermediate_code(CPUState *cs, struct TranslationBlock *tb) { - S390CPU *cpu =3D s390_env_get_cpu(env); - CPUState *cs =3D CPU(cpu); + CPUS390XState *env =3D cs->env_ptr; DisasContext dc; target_ulong pc_start; uint64_t next_page_start; diff --git a/target/sh4/translate.c b/target/sh4/translate.c index 498bb99dc1..10191073b2 100644 --- a/target/sh4/translate.c +++ b/target/sh4/translate.c @@ -2230,10 +2230,9 @@ static int decode_gusa(DisasContext *ctx, CPUSH4Stat= e *env, int *pmax_insns) } #endif =20 -void gen_intermediate_code(CPUSH4State * env, struct TranslationBlock *tb) +void gen_intermediate_code(CPUState *cs, struct TranslationBlock *tb) { - SuperHCPU *cpu =3D sh_env_get_cpu(env); - CPUState *cs =3D CPU(cpu); + CPUSH4State *env =3D cs->env_ptr; DisasContext ctx; target_ulong pc_start; int num_insns; diff --git a/target/sparc/translate.c b/target/sparc/translate.c index d13173275f..3bde47be83 100644 --- a/target/sparc/translate.c +++ b/target/sparc/translate.c @@ -5739,10 +5739,9 @@ static void disas_sparc_insn(DisasContext * dc, unsi= gned int insn) } } =20 -void gen_intermediate_code(CPUSPARCState * env, TranslationBlock * tb) +void gen_intermediate_code(CPUState *cs, TranslationBlock * tb) { - SPARCCPU *cpu =3D sparc_env_get_cpu(env); - CPUState *cs =3D CPU(cpu); + CPUSPARCState *env =3D cs->env_ptr; target_ulong pc_start, last_pc; DisasContext dc1, *dc =3D &dc1; int num_insns; diff --git a/target/tilegx/translate.c b/target/tilegx/translate.c index ff2ef7b63d..ace2830a84 100644 --- a/target/tilegx/translate.c +++ b/target/tilegx/translate.c @@ -2370,12 +2370,11 @@ static void translate_one_bundle(DisasContext *dc, = uint64_t bundle) } } =20 -void gen_intermediate_code(CPUTLGState *env, struct TranslationBlock *tb) +void gen_intermediate_code(CPUState *cs, struct TranslationBlock *tb) { - TileGXCPU *cpu =3D tilegx_env_get_cpu(env); + CPUTLGState *env =3D cs->env_ptr; DisasContext ctx; DisasContext *dc =3D &ctx; - CPUState *cs =3D CPU(cpu); uint64_t pc_start =3D tb->pc; uint64_t next_page_start =3D (pc_start & TARGET_PAGE_MASK) + TARGET_PA= GE_SIZE; int num_insns =3D 0; diff --git a/target/tricore/translate.c b/target/tricore/translate.c index ddd2dd07dd..4e4198e887 100644 --- a/target/tricore/translate.c +++ b/target/tricore/translate.c @@ -8782,10 +8782,9 @@ static void decode_opc(CPUTriCoreState *env, DisasCo= ntext *ctx, int *is_branch) } } =20 -void gen_intermediate_code(CPUTriCoreState *env, struct TranslationBlock *= tb) +void gen_intermediate_code(CPUState *cs, struct TranslationBlock *tb) { - TriCoreCPU *cpu =3D tricore_env_get_cpu(env); - CPUState *cs =3D CPU(cpu); + CPUTriCoreState *env =3D cs->env_ptr; DisasContext ctx; target_ulong pc_start; int num_insns, max_insns; diff --git a/target/unicore32/translate.c b/target/unicore32/translate.c index 666a2016a8..8f30cff932 100644 --- a/target/unicore32/translate.c +++ b/target/unicore32/translate.c @@ -1869,10 +1869,9 @@ static void disas_uc32_insn(CPUUniCore32State *env, = DisasContext *s) } =20 /* generate intermediate code for basic block 'tb'. */ -void gen_intermediate_code(CPUUniCore32State *env, TranslationBlock *tb) +void gen_intermediate_code(CPUState *cs, TranslationBlock *tb) { - UniCore32CPU *cpu =3D uc32_env_get_cpu(env); - CPUState *cs =3D CPU(cpu); + CPUUniCore32State *env =3D cs->env_ptr; DisasContext dc1, *dc =3D &dc1; target_ulong pc_start; uint32_t next_page_start; diff --git a/target/xtensa/translate.c b/target/xtensa/translate.c index 263002486c..f3f0ff589c 100644 --- a/target/xtensa/translate.c +++ b/target/xtensa/translate.c @@ -3117,10 +3117,9 @@ static void gen_ibreak_check(CPUXtensaState *env, Di= sasContext *dc) } } =20 -void gen_intermediate_code(CPUXtensaState *env, TranslationBlock *tb) +void gen_intermediate_code(CPUState *cs, TranslationBlock *tb) { - XtensaCPU *cpu =3D xtensa_env_get_cpu(env); - CPUState *cs =3D CPU(cpu); + CPUXtensaState *env =3D cs->env_ptr; DisasContext dc; int insn_count =3D 0; int max_insns =3D tb->cflags & CF_COUNT_MASK; --=20 2.13.3