From nobody Mon Apr 29 07:10:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500440509196167.27139066981476; Tue, 18 Jul 2017 22:01:49 -0700 (PDT) Received: from localhost ([::1]:59907 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXh7K-00072y-VW for importer@patchew.org; Wed, 19 Jul 2017 01:01:47 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41498) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXh3H-0003Fo-KK for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:57:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXh3F-00025E-Oy for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:57:35 -0400 Received: from mail-pf0-x243.google.com ([2607:f8b0:400e:c00::243]:35206) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXh3F-000258-Ih for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:57:33 -0400 Received: by mail-pf0-x243.google.com with SMTP id q85so5085907pfq.2 for ; Tue, 18 Jul 2017 21:57:33 -0700 (PDT) Received: from bigtime.twiddle.net (14-203-207-215.tpgi.com.au. [14.203.207.215]) by smtp.gmail.com with ESMTPSA id m196sm9062855pga.33.2017.07.18.21.57.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 18 Jul 2017 21:57:31 -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=MsIYxhQNqgWeaRQ/kfNzJ1lWugsH1ATqV1sfy/jXO2A=; b=N3Mr9hZxRW958XV1EAX5FazXqyzu1PMvRwhlOoiMOyf3mJ14KNfsLLEWfQoRVTbeLX fXLIfZewtmtMruJ3z6FH46d8ZE9IK38Y86F2NopmXd1bdKm2emR5OpJranKyIWblni6l y5PrwfO/mEa1yWoKzl74h2GlLX9RoKnJHz1xRgzpsq9mub0d/GhfYGQcRXcBcenq9pre E9q+R0tgox1enUlwTCBifv5t5PA4nN3YciuM5OuRKYmy0c1kK7OdsY8omNJKVZ81Y4Dh LcoSNp2OrN9KsT0ue6sXCW7hfZaIKohGtkoy41SYtGnx9wVQzUgCsdjLlA4NGlR6xqZC d8fA== 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=MsIYxhQNqgWeaRQ/kfNzJ1lWugsH1ATqV1sfy/jXO2A=; b=EDjRDlqeMp110zUAbP8lEw17ZkkYJOGIqPi6YfsAiZGPTpOWN8XdZ5uWp+1UvqEAfu trerPuMv5kY4yHIFi8xDH1Z1bx0dhppIc8E5inrtB7pC95VmJID0Da2YcDMTAqVhsaLz 5DyQI11TJPCebmhmXAB9uqkdq9BIhxmmzBHYhLnnw4KYcK7LMCgnnnqyUENBfweIuZPO TJ4GdG4r2mtbdsWjTYdehbCXFgUEJMjtk/IrQinNS/lNzhPQixe1Ig+vA40dIVolxgi6 4Y4KNK/X8FtDgbdvrQ6lzvE+bMu+mkrFLhWU80n+NPYPBfQZeEwPNQpgz8Gg1VHyVqoL 4n8w== X-Gm-Message-State: AIVw112Slbn8WZ1xmBCxtKvrEadVyaXvox8BgroDO9W7pIqrz6G1HgL5 xk4MgrqlgXctEz0vDXk= X-Received: by 10.101.76.206 with SMTP id n14mr1172569pgt.154.1500440252405; Tue, 18 Jul 2017 21:57:32 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Tue, 18 Jul 2017 18:57:09 -1000 Message-Id: <20170719045722.25492-2-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170719045722.25492-1-rth@twiddle.net> References: <20170719045722.25492-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400e:c00::243 Subject: [Qemu-devel] [PULL 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 85756b8..1a8169f 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.9.4 From nobody Mon Apr 29 07:10:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500440356642550.3440297443879; Tue, 18 Jul 2017 21:59:16 -0700 (PDT) Received: from localhost ([::1]:59890 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXh4t-0004IV-0c for importer@patchew.org; Wed, 19 Jul 2017 00:59:15 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41514) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXh3K-0003GA-4N for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:57:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXh3J-00025w-Cd for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:57:38 -0400 Received: from mail-pf0-x241.google.com ([2607:f8b0:400e:c00::241]:33326) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXh3J-00025q-7Q for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:57:37 -0400 Received: by mail-pf0-x241.google.com with SMTP id e199so5098835pfh.0 for ; Tue, 18 Jul 2017 21:57:37 -0700 (PDT) Received: from bigtime.twiddle.net (14-203-207-215.tpgi.com.au. [14.203.207.215]) by smtp.gmail.com with ESMTPSA id m196sm9062855pga.33.2017.07.18.21.57.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 18 Jul 2017 21:57:35 -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=w6Y1Ifq0/9XGJR7xO/7axHvcEaoxpTc3rbNesveO7+w=; b=cHsORKisysl5DJUTTnFEMvRZMzbHBCMtas7ejePnM9uIGT0fH08nvGs0zkR6I7HZAE ThHpSffmkapXJsUcXHfpODiA3fXwqBDRkSRKdMSZPMOP23ORpUHVwcIrqUDqCCclejD4 M99FNWII/JC52bN0oHvxUkOkc7LtlzLSU4LppIhMs+tf7uILDcug4y6dH86YorVtvxkY 0sh3Wmk3DgFTUjG47LtljXDmQeqFVWR7k35lYAiL/sd8PLoYEd9/PKaiAino8gRqND4G mc92+JaRKA/VRkGkM0c9Pe6R9RbtaeTNvf1pAvah48xrDGAXux4sbdP+yYsZJg2n5K2p uqHw== 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=w6Y1Ifq0/9XGJR7xO/7axHvcEaoxpTc3rbNesveO7+w=; b=ogstnC1Xs8R0Cc6hgYtlCuKHfkgDrZs/OZoMZr5Sux35/mOW002b/enl13Ni2+X4Zx 7Onv0AS8qaF/Gc9n5djD4shSYg5XVcLNHmv+ffJjzMtVx8MKCSQtDOhJtOjSZi9dJpEl 2AJ22WQQ6zV/An3IJL0NUQpZ9I7mu52xsGLQw56XWZx7gC9+n+jwSdUa8I9nDZOmF2cl ViKWw0KppXSzXJTPKqhw34DCt8mlF053rEDchWr5Z6/mfiamc8zMe+617zvBqtue/M9O AIAJ5+8wGY0Hkxz9fZLlfOCzxCQKZJRyEQayGtjKYqKAbzZuennaBFG61lfjzt7TKZxd 0Lng== X-Gm-Message-State: AIVw112OagN1I/Skt7Pds4yWL0aFVM65C+uYkzFMfFPneH7Bgm0psgSP 9uMToQiO//McS+DDifg= X-Received: by 10.84.217.86 with SMTP id e22mr1214062plj.140.1500440256018; Tue, 18 Jul 2017 21:57:36 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Tue, 18 Jul 2017 18:57:10 -1000 Message-Id: <20170719045722.25492-3-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170719045722.25492-1-rth@twiddle.net> References: <20170719045722.25492-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:400e:c00::241 Subject: [Qemu-devel] [PULL 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 6253049..593940f 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.9.4 From nobody Mon Apr 29 07:10:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500440654885589.30521659671; Tue, 18 Jul 2017 22:04:14 -0700 (PDT) Received: from localhost ([::1]:59914 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXh9h-0000e7-LC for importer@patchew.org; Wed, 19 Jul 2017 01:04:13 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41529) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXh3N-0003IV-Cf for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:57:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXh3M-00026e-Jb for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:57:41 -0400 Received: from mail-pf0-x242.google.com ([2607:f8b0:400e:c00::242]:35220) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXh3M-00026L-EA for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:57:40 -0400 Received: by mail-pf0-x242.google.com with SMTP id q85so5086206pfq.2 for ; Tue, 18 Jul 2017 21:57:40 -0700 (PDT) Received: from bigtime.twiddle.net (14-203-207-215.tpgi.com.au. [14.203.207.215]) by smtp.gmail.com with ESMTPSA id m196sm9062855pga.33.2017.07.18.21.57.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 18 Jul 2017 21:57:38 -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=Bj/hep4jkT1lmODBIyaJNVEcwEKRk0ROtG4hxaztEIQ=; b=MrW/VSb/kb+R6BRhoEjWp6vM2bRmH8NbeWEGHSaUmoN6V9rgY6uqKQpmfZ16J+vbDe 8+ejCax4riruk/hcK3sRwP2VP07hsAkDxoEohoc9syailobLBnHOltRMoTkjMX1xIQNH sJSuHeh3NO8c3zl5Uy19EI6dfbShG8Z5GcE/K0cGExPk6oyMiXS6HQFtNi2a/y0JPeIK c/uDWHE+qaeZshagQw8LZcAa213oLAPW8VfueiNEJRs4TFSpl5+UKVessJJjmYGWaIx1 owtCCAmV/zidpqv5giUokx/inPS/kl0flZoANmiUnawwYWopGqHrbiKBd3yQ6J8GozNH 8HjA== 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=Bj/hep4jkT1lmODBIyaJNVEcwEKRk0ROtG4hxaztEIQ=; b=nGW/03GXmhwy5dNfCtDbvhlCNthLoxr+qs/JJVaYzK32Y+sRyV6Z7zYINirY7H9ybC YJVE0YxqVP2hjuB4lmZtCL+79EZB3mtOOUjY0hrlJ4xq04nUtiXG4Ltn2Ug9vbxeNlhh WyqZhmq66YI6JL3HqtTBTLx0dfFsRHHu4S6MYsKqNoxtoXSpSAWSgo0HCW3PYvyYX5ui tIDmhkKcZ9MmQuZZbznR/ddOxwKzQcW1uCpuFSh503pHJd4jf4HCdSwnXNMl2MOXkkZo QAa0k2+TD7qMJuPeWVBGgNgbvVCxXi6mjtiv3H9zqjh1rBSF01JOr6n+vEGFZHQKGklJ YK9Q== X-Gm-Message-State: AIVw112x5fgeutLq8+jU8+jySRyFQY8hJ9jbqYb27LIi/xJoJIx4iXzP ALralnxQeJpFm3lHK/M= X-Received: by 10.84.215.129 with SMTP id l1mr1147216pli.275.1500440259173; Tue, 18 Jul 2017 21:57:39 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Tue, 18 Jul 2017 18:57:11 -1000 Message-Id: <20170719045722.25492-4-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170719045722.25492-1-rth@twiddle.net> References: <20170719045722.25492-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400e:c00::242 Subject: [Qemu-devel] [PULL 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 bb92877..b0c5baf 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.9.4 From nobody Mon Apr 29 07:10:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500440368680742.1093444462889; Tue, 18 Jul 2017 21:59:28 -0700 (PDT) Received: from localhost ([::1]:59891 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXh55-0004XM-AY for importer@patchew.org; Wed, 19 Jul 2017 00:59:27 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41546) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXh3S-0003Lh-F9 for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:57:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXh3P-00027T-Hh for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:57:46 -0400 Received: from mail-pg0-x244.google.com ([2607:f8b0:400e:c05::244]:35859) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXh3P-00027L-Bq for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:57:43 -0400 Received: by mail-pg0-x244.google.com with SMTP id y129so5428668pgy.3 for ; Tue, 18 Jul 2017 21:57:43 -0700 (PDT) Received: from bigtime.twiddle.net (14-203-207-215.tpgi.com.au. [14.203.207.215]) by smtp.gmail.com with ESMTPSA id m196sm9062855pga.33.2017.07.18.21.57.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 18 Jul 2017 21:57: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=gN79H1yHaahfTze19zfOtQ1M3UEvdjD2rAd6bmzyBJ0=; b=bfXXK1rsGMIqqvFlJXbKwIWzx9z8UHNnpISNs780jQfj8TKu1+A8v2iw+iuo7PRuBx KQu1VnNVsQma4ak6kukx4PStcprXH7Y/sKG5MR7m69uVy43xo6qamWIeLuhon0tzULtY orWzZIgOB06UW0EemRnWA/sRyqvV8Nr+Q78UTr7wLhF8GiIJoei3pCJMca8jlWruD6O0 jxTjTlwJFzMo9Lf3MZk/g8BS1T38IhZVgFcq4EHXFeMJcsroWuDMLD2OLlQ2SldVte+8 dFeZcAyNr5TOMcoCvPlw0t8D6AbF0HEtB4Bwua7Tm97Wkw9RIXEh3alfqghwElSBXOWK Mw4A== 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=gN79H1yHaahfTze19zfOtQ1M3UEvdjD2rAd6bmzyBJ0=; b=D4BVInhdWSoK7ZdsPxrk1j+2xVnB4ddX6sig4ByOvnijmP7KzKgP+eqkCq1V+Ugr4Q knhcu0X6d5/tZrd7uip1E/sRVye3tDOrHPyjIT2SzUSrwH6jtKIERf1xyl44E9ttjzLs mLRogGcXqhHi475xRGWxxgHMXPyTCMnpBoR+6vo8w7xgCy0G5Ly9i2Y1W8l1NV34jdq+ ALT5PX0Pcav4p4AhdDcfIEbL2P6yJJkGgKXxvVw1MCPKekuZgWbeLQTmNga0mg3sUkUQ J1tZfR/Cna1OgutXvX3aacMTbhKQxgloo1WqxNQRzA42ghcWzaMGZJil68XqL+nT2oaT RYGw== X-Gm-Message-State: AIVw110QSB2HB+aKPrDcXe3KtppV1oW6HPmg5QBR4yiFdnFoLzOrnfzM WAEHwYVH1vpfmXX6e2U= X-Received: by 10.84.133.226 with SMTP id f89mr1206327plf.11.1500440262182; Tue, 18 Jul 2017 21:57:42 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Tue, 18 Jul 2017 18:57:12 -1000 Message-Id: <20170719045722.25492-5-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170719045722.25492-1-rth@twiddle.net> References: <20170719045722.25492-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:400e:c05::244 Subject: [Qemu-devel] [PULL 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 09c2363..cf65316 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.9.4 From nobody Mon Apr 29 07:10:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500440523408633.0947395032158; Tue, 18 Jul 2017 22:02:03 -0700 (PDT) Received: from localhost ([::1]:59908 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXh7a-0007Ey-2f for importer@patchew.org; Wed, 19 Jul 2017 01:02:02 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41559) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXh3U-0003NQ-CJ for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:57:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXh3T-00028L-5T for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:57:48 -0400 Received: from mail-pg0-x243.google.com ([2607:f8b0:400e:c05::243]:35312) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXh3S-000287-VW for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:57:47 -0400 Received: by mail-pg0-x243.google.com with SMTP id d193so5425435pgc.2 for ; Tue, 18 Jul 2017 21:57:46 -0700 (PDT) Received: from bigtime.twiddle.net (14-203-207-215.tpgi.com.au. [14.203.207.215]) by smtp.gmail.com with ESMTPSA id m196sm9062855pga.33.2017.07.18.21.57.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 18 Jul 2017 21:57:45 -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=VETpF4KbRBHhLUfGgJwCZiI9xUj7wkR5IVZ7KzrZTWQ=; b=j1t6KyoTtzwAxKrhss0/hgldCdOz/kF2MwYyjOO4bYu8E+Vhssh40OLTsQKHGyfICR 1MV9ber2dL9TT9dBH2ATXAPH1VkM+51w4swCVnc0UkeirUEXlw6lCCWLo2+shaxlXhUy SNG6AaEMBnUu4uCBuo61zuywyMYaoSntkib1uAXMQDB8nR/CD4eZEEEGc+1HuxIy9AgP sH3UpgrOnH8TyQDvi2m+Phve27EgPXFGyFwXRRG86KVayYuIm/gs4aVcLl2Q8rE3uGlz XAp4JGw/B8odjnIa9TIQYnFR7mj+5Xya0fKjriAEo/XP2Vc5Qe5m9+lVRX1iBUCxdTPM ockw== 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=VETpF4KbRBHhLUfGgJwCZiI9xUj7wkR5IVZ7KzrZTWQ=; b=G5vteVII+wvwcT++Qd+VXdtPQ34/KVeOPFkKd7TRgV1XVp2tGSrF8YU9RmwaqZF1Uy fDahE0Ja8/1dglfACQTLH/BIi1maPqx8aRNm8YX5s1qFaffuhu3oWhWu1uS7+zaerqot oaD1PVuN4BzpyK2XC/uQSIcwrQWXsqmpLSTjiI3VgGZkaf7m8/QUZrrrw2CDJ2HEui6W /XM0V3JSt72Ze52O7qtubK7LRptcQYueZTiGMpIOu7ZsfkIZy5xKew07V4AAX3VQikov U4yMbKtXvc6GK8szKbiAw0ZRgCzZQeFFha7XXMnDWVE24wWenvzgVaMyw2ROw2DVEZ/e mn5w== X-Gm-Message-State: AIVw111k15ShJmPAVpl2xDtJigKeKZZTZS/Bx/F6c9r+GxSEikTqoHUF XPeaJsS/IJZsJWDKQho= X-Received: by 10.99.171.1 with SMTP id p1mr1180509pgf.140.1500440265725; Tue, 18 Jul 2017 21:57:45 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Tue, 18 Jul 2017 18:57:13 -1000 Message-Id: <20170719045722.25492-6-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170719045722.25492-1-rth@twiddle.net> References: <20170719045722.25492-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:400e:c05::243 Subject: [Qemu-devel] [PULL 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 0000000..81e66a3 --- /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.9.4 From nobody Mon Apr 29 07:10:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500440500948727.9505293617337; Tue, 18 Jul 2017 22:01:40 -0700 (PDT) Received: from localhost ([::1]:59906 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXh7D-0006xC-Li for importer@patchew.org; Wed, 19 Jul 2017 01:01:39 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41570) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXh3X-0003Q5-AN for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:57:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXh3W-000297-Cd for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:57:51 -0400 Received: from mail-pg0-x244.google.com ([2607:f8b0:400e:c05::244]:35876) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXh3W-00028t-1J for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:57:50 -0400 Received: by mail-pg0-x244.google.com with SMTP id y129so5429015pgy.3 for ; Tue, 18 Jul 2017 21:57:49 -0700 (PDT) Received: from bigtime.twiddle.net (14-203-207-215.tpgi.com.au. [14.203.207.215]) by smtp.gmail.com with ESMTPSA id m196sm9062855pga.33.2017.07.18.21.57.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 18 Jul 2017 21:57: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; bh=AEiT3T0A46sjcTvOEbqlLPAzHl4MGJfDUrOqHcIn8iY=; b=ADqFLd2ypbZoyjoEG8PaKbt9SHwUU3DdYFxFpTqT4I4SUvb3IImwbxVlHjHnwWn5CR n1toIVzq2xAwCIwX6mE5DP/KxYhIvhtiiOzhaSeGez6/Sg7JUsNQDUORrD0dGBKFY1dZ hyo5nSAuhY9mQBpmmOTlfOW+sBWTUe2WUPM6ZI+Iv6ss+S+8BWe/Imx49Ar9jifnoiwY 0FZ2kqCTTC3lWegpHjifbja02Phv2S434O9CXL+LFm+eIY8isPzD81g0A388o3/Nzw4M Xr5ja6PnNhVO62xcUHMVgTKPkTPFJMcEkKQA5HddrpbVpiI4qjzBP/ltxO3GFiAfF2L4 aNyg== 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=AEiT3T0A46sjcTvOEbqlLPAzHl4MGJfDUrOqHcIn8iY=; b=Jjm/qMvfHoxi0WFMIysH5JnczQWn/OmirDdVvYh7+cFZalfBD0qOElMhW9HKDX4JDr sTz+Vhy9tXNgqp4Vt1D2XndBpKA3N9ez9RmnyKeMGr1IhcJwBlbRAVlqaoimVujaWg2s HW2Zm4aTdoIN6Pt2JO5A0FwKqv2LEEInwNt4/o0I1t37W0QZWpwvOXsUC3ex8OwZ4nR+ DFYds+VSHp4lK+ee24VPrwtAaNIGGZjBaNQA1POP+A+gufPeGbrU3FAZjJeFadTqeeZu a/GIhfLpD9PhptPF7369CxKyvQwXi653R48JF5T1FxIpL8yokD8VyT40NHWhbwkbJ/jN 1Cog== X-Gm-Message-State: AIVw113MIki2hDYbJ9aUiMGCnnQV1KGy79y+TVfD+MMs4wFdbdbxrT7B hp3eWJ4/nurZmHUNBYg= X-Received: by 10.98.142.1 with SMTP id k1mr1134104pfe.189.1500440268895; Tue, 18 Jul 2017 21:57:48 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Tue, 18 Jul 2017 18:57:14 -1000 Message-Id: <20170719045722.25492-7-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170719045722.25492-1-rth@twiddle.net> References: <20170719045722.25492-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400e:c05::244 Subject: [Qemu-devel] [PULL 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 3fa3902..5bb0f8e 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.9.4 From nobody Mon Apr 29 07:10:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500440652202352.2120566092258; Tue, 18 Jul 2017 22:04:12 -0700 (PDT) Received: from localhost ([::1]:59913 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXh9d-0000ac-Af for importer@patchew.org; Wed, 19 Jul 2017 01:04:09 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41592) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXh3d-0003W3-O4 for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:57:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXh3Z-00029r-Fs for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:57:57 -0400 Received: from mail-pf0-x243.google.com ([2607:f8b0:400e:c00::243]:34014) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXh3Z-00029i-A7 for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:57:53 -0400 Received: by mail-pf0-x243.google.com with SMTP id o88so5094159pfk.1 for ; Tue, 18 Jul 2017 21:57:53 -0700 (PDT) Received: from bigtime.twiddle.net (14-203-207-215.tpgi.com.au. [14.203.207.215]) by smtp.gmail.com with ESMTPSA id m196sm9062855pga.33.2017.07.18.21.57.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 18 Jul 2017 21:57: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=ZmAnHTUFDrWKF39iTXNKSINHp4+F7huFYqpvLb0G7QI=; b=bpduSogyEmqC9/ynGkW7mX5gJd9m4QCmfmlT7DCfNGUBr21T3NHMfVwnaT+Ba37Tfa 4PyIHKUs991Ua4SnpSC0b3EmwiAjEG9SBLDtHV7+cL1pdDMiw50XhAf8ibs90TCGNNLC koFyk1ZX9/2teyI+/TNmTV/bK2PjKG+ue7VsJPTPWc62vt3g8Jh/za/bUXdmkOEVXWMw yvlBPn0ZFAcPubYYGXxbmDfJ7SuPf91RiSQvi4eKbz6pM0U9EH+/VUwV/VAfJmKfuNrV 8xYD/mK8/w07qoltIRb2LTAjYd5FW9jPENiXhsvdlzq9amygBeD0inY9VnA4DTC85KJm +9xg== 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=ZmAnHTUFDrWKF39iTXNKSINHp4+F7huFYqpvLb0G7QI=; b=TT0hmI3y3l6dcs4TcKRhoNkCbrX+31yhUjJFULdWEgLzovDzzz0aW0/HEJuwXBpr0L o5mDU5H+J1uvZecjzsxYKOiJMjGNrvlpgzspWV0Dq29q0OOIYIlP/C0id8sW3qj1PISN +wJo+3A0DFQVdTp4nVHUld4zTLnIOdo8Xaqyv86i7+1qqkHh5gZJxX6x1eaQkP/LNWQj gkW8Xm5ECKiwyREYrPgwnKQlNhNXJHyD4/PCQRnYoZkPzMob+iSocYWaBrgEoPHX0J+j wCmm3j8Z+UKHog8guVMuEx59SsMwiWyFljoLhCvWIeNatUaY3uxubW+wjeKW28V6xRQg ttFw== X-Gm-Message-State: AIVw111VmwQlji7sxK73bpFPdvZ6KcgyRDZdUbaRbKHoJ4+xcRvvohCi 0gTloLPwOYGyn0dZk4g= X-Received: by 10.84.231.140 with SMTP id g12mr1249771plk.256.1500440272174; Tue, 18 Jul 2017 21:57:52 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Tue, 18 Jul 2017 18:57:15 -1000 Message-Id: <20170719045722.25492-8-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170719045722.25492-1-rth@twiddle.net> References: <20170719045722.25492-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:400e:c00::243 Subject: [Qemu-devel] [PULL 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 e27736c..d3003ae 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.9.4 From nobody Mon Apr 29 07:10:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500440781017457.18596739543034; Tue, 18 Jul 2017 22:06:21 -0700 (PDT) Received: from localhost ([::1]:59926 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXhBj-0002Rq-OF for importer@patchew.org; Wed, 19 Jul 2017 01:06:19 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41605) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXh3f-0003Yw-Od for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:58:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXh3d-0002Aq-2B for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:57:59 -0400 Received: from mail-pg0-x243.google.com ([2607:f8b0:400e:c05::243]:33981) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXh3c-0002Ab-Sn for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:57:56 -0400 Received: by mail-pg0-x243.google.com with SMTP id v190so5447705pgv.1 for ; Tue, 18 Jul 2017 21:57:56 -0700 (PDT) Received: from bigtime.twiddle.net (14-203-207-215.tpgi.com.au. [14.203.207.215]) by smtp.gmail.com with ESMTPSA id m196sm9062855pga.33.2017.07.18.21.57.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 18 Jul 2017 21:57:55 -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=U64CK10UDhov/c0aBNs4CC+F7BckYxHKnxM+fOC57dQ=; b=EEmFngGVW4QhuNUmA3JztZYVO4wH9WZ1M3FSL6oFKrEBPu31MuwQbLdruVo0GP17iG KnN9b5k+CySuSgwg8P+XfousbTX8qwXrrSDkG1XGKP+7FvY0FA5VD6jXYa0dv8FB/sWt I5g7HbWwK4ulfe1ED4pgSaD6MdJzEjlasswjlPC0ikIy1Um23V6/fRqBjuJezqRTRlP6 2R+S+V8GzdiqopjYIls+ILnJ+RSGyATXYVWll03ODh1Jxq2H7pSAc7TBHG/DEo8Rhrzg 7BS4PcztzkFu6xgOqcfZlq7MCpSlp5x7tpdSOzrscgNQtjlQ6v1oVW7HnZlvqbeq7AEC IqBQ== 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=U64CK10UDhov/c0aBNs4CC+F7BckYxHKnxM+fOC57dQ=; b=R465dYXUdOCGV2irgBdFK8SMdT0l43ZIt5PAzM1TZ36aDyOo6IhXY0mv6kcVhavtdd K5nkbN0Ou6FGEMd9T6bKcwMourMfKr8fGWpemsNbLB5xrvu9V7GNo3pGSVH+51vq/ITc Nm54TxLM1p/ZYkRqv7vwBA+Qc5SS4z+wVywviv0qMz7G4p8c7E0Q+c+GoKLYwoGqGMir 7L4Bf/EneJID2Cdb/AtGq8pzEysc6LEVH+1NNY/ilU017z6oNQRGL8XSs84dF+x7q5e0 L53w3LiS2hWj2LNWUSxe/nQTSTEnNm7FPTHx6cMg9JDrR56i8UNtX4P4IIap7RkegL47 ZPGA== X-Gm-Message-State: AIVw112/zLczbs7W2PUJ1EKi+pjL+m7vrTrxC9jSFgal9uMKl/+OgLoO OLssLW18oMj+J2m2tfk= X-Received: by 10.84.217.86 with SMTP id e22mr1215102plj.140.1500440275772; Tue, 18 Jul 2017 21:57:55 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Tue, 18 Jul 2017 18:57:16 -1000 Message-Id: <20170719045722.25492-9-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170719045722.25492-1-rth@twiddle.net> References: <20170719045722.25492-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:400e:c05::243 Subject: [Qemu-devel] [PULL 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 3a519b7..e709e6c 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.9.4 From nobody Mon Apr 29 07:10:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500440389728226.9560277834745; Tue, 18 Jul 2017 21:59:49 -0700 (PDT) Received: from localhost ([::1]:59893 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXh5Q-00051S-Eu for importer@patchew.org; Wed, 19 Jul 2017 00:59:48 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41626) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXh3i-0003b2-42 for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:58:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXh3g-0002Bl-Rc for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:58:02 -0400 Received: from mail-pg0-x241.google.com ([2607:f8b0:400e:c05::241]:33991) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXh3g-0002Bc-Jf for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:58:00 -0400 Received: by mail-pg0-x241.google.com with SMTP id v190so5447909pgv.1 for ; Tue, 18 Jul 2017 21:58:00 -0700 (PDT) Received: from bigtime.twiddle.net (14-203-207-215.tpgi.com.au. [14.203.207.215]) by smtp.gmail.com with ESMTPSA id m196sm9062855pga.33.2017.07.18.21.57.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 18 Jul 2017 21:57:58 -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=SmmSyXJx00y8siWgE9Qj9I4r4NPjy2UYKOKgMug26iI=; b=iikeU/sNw9uW0zc3sflQkQxWS2Z4Gb+R4gjKgVKQsOKSjVKvddXr2ThwOm+NnQEgIR ymX/TwH3eWGZ+Cc9WYBRWPgbf5ORzGKckWmt9QKKo/HyfQugtmT5qdBOfcEDG5fUBT+B MrQs9p3RS4gheqa0oaKD5hVBlEvwo9+xvkhNUag4AWHLQmdtxsWv0ZzkTCUMcGehaIzx cA/d3lF8ECu96+lqjOj7nVjU6rNs4JGNvCz6KGVUPx2lgE82XC9sLF7h+xEQ7Wjb0RJZ h+//lL9S7jDCo7ips+S7Zaep5kRbDOzBW0qAIVZNT2JOtqBKSJBdxMBpXsbAoc0cUWA8 lBTw== 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=SmmSyXJx00y8siWgE9Qj9I4r4NPjy2UYKOKgMug26iI=; b=JG+0qVl5x4uR3GKmmDsKkYB0a75mhK4DWACKC6XfqtJ4isaQyszjT111+Y4DvGbuTu YYq+hnnf8OWRGYHr03AlYmgkgigMhrngrvEmFSJfZ2m4Y+PeuKAIzFyntx0j9QPMxXnv 7cz0snJdGuQ0Xc1aiFQcEE+zGyTbIgacKIj5PC5vN1Q9P0euXf3rDFslyua+6vRE6NOG ev4RfvA4C1ecuy7orwZY6DOcyWVkjpt1qBHqE8kIHEOgGWCHy0YZREG+SQ/6lqjvFgCf eeXmQZjYyf3SoiorCQ/zCTyAjyKV1znpD1VwKnA44YdTA1BwlUFbhH0E/oJffyHzM56l nM2Q== X-Gm-Message-State: AIVw112rR4ztgqgCxi9mxhtWxnDP59aUFuZyd7PmTymP9Nu/1J4ex+uV ZZniWacM2V2VuZ29TeE= X-Received: by 10.84.206.37 with SMTP id f34mr1219711ple.262.1500440279423; Tue, 18 Jul 2017 21:57:59 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Tue, 18 Jul 2017 18:57:17 -1000 Message-Id: <20170719045722.25492-10-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170719045722.25492-1-rth@twiddle.net> References: <20170719045722.25492-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:400e:c05::241 Subject: [Qemu-devel] [PULL 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 c0cd64d..de271af 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 7f12908..85ed135 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.9.4 From nobody Mon Apr 29 07:10:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500440927903221.1791531643654; Tue, 18 Jul 2017 22:08:47 -0700 (PDT) Received: from localhost ([::1]:59933 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXhE6-0004OW-ON for importer@patchew.org; Wed, 19 Jul 2017 01:08:46 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41645) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXh3l-0003du-6J for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:58:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXh3k-0002Dt-B1 for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:58:05 -0400 Received: from mail-pg0-x241.google.com ([2607:f8b0:400e:c05::241]:33999) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXh3k-0002Dh-6M for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:58:04 -0400 Received: by mail-pg0-x241.google.com with SMTP id v190so5448062pgv.1 for ; Tue, 18 Jul 2017 21:58:03 -0700 (PDT) Received: from bigtime.twiddle.net (14-203-207-215.tpgi.com.au. [14.203.207.215]) by smtp.gmail.com with ESMTPSA id m196sm9062855pga.33.2017.07.18.21.57.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 18 Jul 2017 21:58:02 -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=/XlniXWdDFDVioB9R/J+yYTdgpqFeooGuRyyRBwHQTc=; b=XbvMuE75KHkbG+wziuPPfs4lHeu1t+gqwgocCXub6liT3EERIkOO2ym8+kLaPBptgY wOBJY5MVnpqObxpYxn7ZhYLuv3ksmgLqz4YXyH+e880rFaTz0Essjkd/EnPZEQqK5W9X Cfii15t7ZesZ2btnEjAZ9N5D7bOsOUsOYqZNTY4aZ8ObpDgatbCM1yRCxtpGcSuLFyD9 BlFL0EQegST5KEwyo6z62K2BNe6IjYXE2C7NLtQmXAAa7C936O2U2sGaFjBXTJYntpQf zgxJTY4bJxqCN+a9wnfj/PSI3veYxdakMg9WHZBlCeCXJTHChyvq4ixN85VBkXV5L+nP VeYA== 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=/XlniXWdDFDVioB9R/J+yYTdgpqFeooGuRyyRBwHQTc=; b=K5ZEWrAwmddlZEmnzEWm0smE0YJExZf79J4xjqHgtu7v6Uwzl8cTtcaOXvR5BFtr6d 4PbjyGLPTyYFH452bDC9bLNpc9MB31/2KhlTYpbN65OHMJNdxZTp4E5t7d2wGb+qkrDW 66iLx1UTvC0C8b50lF1bX4mZwsRsNRuw6wj4ut1EqAeAjBeewckO7Qwt1yOmPQLcRSI5 jx1Jyzuu0ScU/G+PLq6mDkuDiAq9sQAHX69eJ2uozQ7x1lKEp2CdiSo2TNnc5EVdfwFu qmlku9rDjI1lY5QRwTNiaLD6ZiZMgcZFmXzHZ+MVMtuZyK2jhTyW5RKCZZxmMfsnoYKs qXuA== X-Gm-Message-State: AIVw112tcI/DcusKRI09CUjNOGD7KfCV6ekwNZLRmpNAXJXKpFLH2woF hK0F9+FS2FC+ET+dE18= X-Received: by 10.84.215.129 with SMTP id l1mr1148441pli.275.1500440283048; Tue, 18 Jul 2017 21:58:03 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Tue, 18 Jul 2017 18:57:18 -1000 Message-Id: <20170719045722.25492-11-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170719045722.25492-1-rth@twiddle.net> References: <20170719045722.25492-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:400e:c05::241 Subject: [Qemu-devel] [PULL 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 aa6734d..67a83b7 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.9.4 From nobody Mon Apr 29 07:10:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500440666972357.82781961420267; Tue, 18 Jul 2017 22:04:26 -0700 (PDT) Received: from localhost ([::1]:59916 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXh9t-0000rS-LS for importer@patchew.org; Wed, 19 Jul 2017 01:04:25 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41663) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXh3o-0003gq-N1 for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:58:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXh3n-0002EY-Uc for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:58:08 -0400 Received: from mail-pf0-x244.google.com ([2607:f8b0:400e:c00::244]:33400) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXh3n-0002EQ-P2 for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:58:07 -0400 Received: by mail-pf0-x244.google.com with SMTP id e199so5100500pfh.0 for ; Tue, 18 Jul 2017 21:58:07 -0700 (PDT) Received: from bigtime.twiddle.net (14-203-207-215.tpgi.com.au. [14.203.207.215]) by smtp.gmail.com with ESMTPSA id m196sm9062855pga.33.2017.07.18.21.58.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 18 Jul 2017 21:58: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=F8FTCzEL/R4nl1MdYrA4kxw8/bxXSJpnC1mh0Y+Es3M=; b=cEK2ZKImc/0p3tDlWZs3LYnaLw8YH5Cbjj6D6pRSJpBjsAg55OcqTITZ67VFvV0o8m eiA0ueIsemM+XcSLoyGvY0e7IwGQT+PjIdY1Y9qYGXu9KqNC4oa2GBE/z6pAhRr0ZvMM C1ngbW3ZoK8WcEHBfky4Xrk4EK5Oa6Ami7YKCYrgsB2/baB82Ed5w6qnHz2aoYq1PKvj swLTpNzEUfPI1aPhd6kY3s0VfYBzgeRpaLBTbKJlZSaMPEX3KuVvzwZTB362RMR45G1Z BTp7TbARn1QNXRMED1AMHUUoPRnA7M9286GASEy1dO/AA2E1MdNI+Kkkjodq8+RPWD1x GVZQ== 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=F8FTCzEL/R4nl1MdYrA4kxw8/bxXSJpnC1mh0Y+Es3M=; b=i/9WxeBkOsLUiHnpgE1EXFxB2emIhonra6cD1p23YEJRe5WyNSYW7ZxMzHQUMNzsT9 4Lgil8Wp22hqj0/IIiRPgaDHyjW0P7h7M5o+RE03hBhv6llkkjpsJLUM2/anFPlgx8y2 AnKu3H849QgJOlOwrQMO2/k9hxGXgP5cDXgewR3mLYizH413UtGAuGZ7gTY62J3m+eur 3xwigi0hiLhhpt0Nw0guFD/1fPutRR7fXnl3ySw8teuJb1UPM7QTi23mzKjnphu5ZnM9 wfwqn2R0P7zY2LDYCbz65t0Ir8VvgJRYWliBMppzTBLyk05izHVhsw+yJvVN5jD6d7W2 LAlw== X-Gm-Message-State: AIVw113tz/CYUemhsCNlN9x/7PxzhnoyfGIuvv3SFitLQi5LYpCOXocl Y/gJ2j5P/piTa3WCxyc= X-Received: by 10.99.99.7 with SMTP id x7mr1114568pgb.81.1500440286619; Tue, 18 Jul 2017 21:58:06 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Tue, 18 Jul 2017 18:57:19 -1000 Message-Id: <20170719045722.25492-12-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170719045722.25492-1-rth@twiddle.net> References: <20170719045722.25492-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:400e:c00::244 Subject: [Qemu-devel] [PULL 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 67a83b7..a425efb 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, cpu_y, cpu_cc_src, 31, 1); =20 // b1 =3D N ^ V; gen_mov_reg_N(t0, cpu_psr); --=20 2.9.4 From nobody Mon Apr 29 07:10:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500440545423543.5328065235745; Tue, 18 Jul 2017 22:02:25 -0700 (PDT) Received: from localhost ([::1]:59909 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXh7v-0007Xp-5I for importer@patchew.org; Wed, 19 Jul 2017 01:02:23 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41687) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXh3s-0003k8-A2 for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:58:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXh3r-0002Fd-H7 for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:58:12 -0400 Received: from mail-pf0-x244.google.com ([2607:f8b0:400e:c00::244]:34058) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXh3r-0002FI-BQ for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:58:11 -0400 Received: by mail-pf0-x244.google.com with SMTP id o88so5095190pfk.1 for ; Tue, 18 Jul 2017 21:58:11 -0700 (PDT) Received: from bigtime.twiddle.net (14-203-207-215.tpgi.com.au. [14.203.207.215]) by smtp.gmail.com with ESMTPSA id m196sm9062855pga.33.2017.07.18.21.58.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 18 Jul 2017 21:58:09 -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=yGHbeaQ3U2f9GH6HQY1sViQUX3H+MCPvgP5m2em63xk=; b=WJ8Psf7iECLEfxwdj5pfUJzYjUYnqMWcXQ05zC1L6XkAR018y10yOR7jkgaHW9sfWt R2bbPQhytfqZucrBwftQ1KKkZcj9IF53qZW1Jf1kMdwgXBMV/rOu7ARx2tuegvcdelNy PSySh5abIlOPyEQatnQ0beGT+m9Po94XqD6A2IYbGVtwXgz9o8cYImu7mjrDcEf35HJ2 FQKvQwtrFWAvBVbCEB+4ZBFiAB9jvcpaD7pmaw2zvwleg10iip8Q4iAtzxMxPZx+oIkR otH46Pnef+6jdto4P2YN7VYXO1Z2FqyWjuEDj/bJpCqOyr8gXDRLKwJzCdQyZdHlWyh0 mBMQ== 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=yGHbeaQ3U2f9GH6HQY1sViQUX3H+MCPvgP5m2em63xk=; b=n/kubDUiwYOIkDWm5Szj4T+WLkr8EFuzF2CErXb8dGsQjbsQgihXMqmTIo0rz2KJq0 CfZvVKDtbshgm/Y/ZqKot9tXye+bApPU5EtI/+uT6kcS+B47tZLX+RXCHNvOdj7QIVFx ZSYVEuWzXn5JPGaAtCUzoe8WF8V3ahmTZHgWDltsPQOK+ObaKNcyeMwoTBMmyW6qaBzd ZAuu857vXeXR1ugft6Pmpzwgb13e1WMUfDd4lcThNsPxzvsjMxHB2/61K0/drxxGJgr0 Ph6amfR2g82n2ROqD8DT0zLTq+pjxMf7Zicr6m5ZVjwebntkHzNrJ8ePCMgzP4Zac5KU cZXQ== X-Gm-Message-State: AIVw110VF5qKYqOakrnJ2ZdwJR9giR+t2/g29dG/tiUSGVBry/pqa4xr T/N7DiU4wKfc2snfHnU= X-Received: by 10.101.75.197 with SMTP id p5mr1214695pgr.164.1500440290216; Tue, 18 Jul 2017 21:58:10 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Tue, 18 Jul 2017 18:57:20 -1000 Message-Id: <20170719045722.25492-13-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170719045722.25492-1-rth@twiddle.net> References: <20170719045722.25492-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:400e:c00::244 Subject: [Qemu-devel] [PULL 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 232af9e..2bffbae 100644 --- a/target/alpha/translate.c +++ b/target/alpha/translate.c @@ -756,11 +756,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.9.4 From nobody Mon Apr 29 07:10:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500440784924234.90368521551773; Tue, 18 Jul 2017 22:06:24 -0700 (PDT) Received: from localhost ([::1]:59927 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXhBn-0002Yz-Mm for importer@patchew.org; Wed, 19 Jul 2017 01:06:23 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41745) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXh3y-0003pK-J3 for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:58:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXh3v-0002H0-Hm for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:58:18 -0400 Received: from mail-pg0-x241.google.com ([2607:f8b0:400e:c05::241]:35929) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXh3v-0002Gf-Bu for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:58:15 -0400 Received: by mail-pg0-x241.google.com with SMTP id y129so5430215pgy.3 for ; Tue, 18 Jul 2017 21:58:15 -0700 (PDT) Received: from bigtime.twiddle.net (14-203-207-215.tpgi.com.au. [14.203.207.215]) by smtp.gmail.com with ESMTPSA id m196sm9062855pga.33.2017.07.18.21.58.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 18 Jul 2017 21:58: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=xmqK69haKV+Y0rr2iV9dgMZIHe5YSUfTFmbRXGL7448=; b=pQdOrsp17UKMCBlcBkKWqBVyJyifGHTYKcZpD4xCX1e/rfUaoHN8uV25KjI4EW8Asc ladfhH/xtTeXncej0n+cDJUSZx51eM8ueSxi5MK8uJhcU+xLNzk+YvPvI8DiaGGEsvp4 DoeMrqvfRcP5Z9nuTcRkvv2nKrjn8fF7MP3uvl45leZnnu5WBBlIeAcZ47wBzCba15Cn OShtENcq9sLh5blr2DhjssBABo82jy1gjmTgQEASYZgk/ZHgslTiWgRy5Bqm/KoVGHyQ +VcwYbywMmnqEx9C5w8FkWtM8IpU8/k6eBBdSVYjkd2hRTMTzC+HPD196XRExXwFZSuX ErDA== 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=xmqK69haKV+Y0rr2iV9dgMZIHe5YSUfTFmbRXGL7448=; b=mtkjILUTBADMEhqrp+gfa7xNyixp8l+9IbdBmp2Vkk7s+Xo+XpDSNKQKxQTfuAF3Cg tya0pp6aAKBlGHGOCBf7dBAoIAuCvtyD+o31zVjg+zjd5kT3OIH8SCP5SYz0NtuOcDTN y8iFX19mAkutJa004bEF/KGHpXTK3D9zeRKYBM7n0Fq2joJubFPQHKZ1Yidv4K5PsDNC hZBGiHeAQJfAELGWEM9KDzsGpKZlclL0Sca668ck3QLQIg1qt8zdwncS+VeqkrSyjChU rJzJiOUezVzng3znpuQS1NqIvRJiUtXgFh9CK/9kjYvOmzQIgsG4bMOPDln4b2ad6B3u kHzg== X-Gm-Message-State: AIVw113cVxfU6V5o+UhCGyZ77xvQuAFL95/nnOsV67xf7hAz8LNu/wij tPl4VdAvHn3mFuZE7FE= X-Received: by 10.84.229.1 with SMTP id b1mr1160338plk.273.1500440294206; Tue, 18 Jul 2017 21:58:14 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Tue, 18 Jul 2017 18:57:21 -1000 Message-Id: <20170719045722.25492-14-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170719045722.25492-1-rth@twiddle.net> References: <20170719045722.25492-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:400e:c05::241 Subject: [Qemu-devel] [PULL 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 4bdc645..f39bfb9 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.9.4 From nobody Mon Apr 29 07:10:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500440801972241.05947621292887; Tue, 18 Jul 2017 22:06:41 -0700 (PDT) Received: from localhost ([::1]:59928 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXhC2-0002yf-LH for importer@patchew.org; Wed, 19 Jul 2017 01:06:38 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41805) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dXh42-0003tF-OK for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:58:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dXh3z-0002Ic-Hm for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:58:22 -0400 Received: from mail-pg0-x241.google.com ([2607:f8b0:400e:c05::241]:34027) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dXh3z-0002II-93 for qemu-devel@nongnu.org; Wed, 19 Jul 2017 00:58:19 -0400 Received: by mail-pg0-x241.google.com with SMTP id v190so5448807pgv.1 for ; Tue, 18 Jul 2017 21:58:19 -0700 (PDT) Received: from bigtime.twiddle.net (14-203-207-215.tpgi.com.au. [14.203.207.215]) by smtp.gmail.com with ESMTPSA id m196sm9062855pga.33.2017.07.18.21.58.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 18 Jul 2017 21:58: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=WZY6iiKEtlrBy7rLPT5Zs7IWqO6X6AxJIs/oskOTAjc=; b=nkA1eh702shg43y2EiSSwd7Hah1m+E0o6jnwRTVxNqdc1Eo6u90/5IQoR8ABfrBkFA NxL8pKuQCg4VdUDy7q1S19TtspZitTQlolNybH5w4chQS6euw0pzyFFT3EF4MmTQryDI mT2qdVopb9HbSxrpV85Z8yAqbuuCeBJ9uFT3QdUk2V0cd2HxHSVxLx3gmm9JKbACG3Sb XRh/N6oFh8nPbLnFUEzFszEHjshX65CAHmdSRMfH/kRnB4kkal3MUHCRPQt1PxR7mObf dzq+L2HgCq9My0dpNLd6iCFTdTfTq/2OoBKEOwxewWlLqAgd15QyTJwgPOL7I4RCkiav b1Yw== 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=WZY6iiKEtlrBy7rLPT5Zs7IWqO6X6AxJIs/oskOTAjc=; b=sG7nOufyrJktM7AWXu/dlGBZ+6AO/2gSxwu7Y9HFSlWtqrW2X/ArrJyWEcfKZFyG6f Qcpqjbysw3aivCmN7xFjq32YCGA0CaemdTuYSxe5scyVOiQ3xaNexFWIKj0osLUnYSlw +ubY0i7FF4cwZcKErzs0bcAoP66E2UON9FbueP/f0CBb9lvLbOWqLhFduKqaIEG4XHIx IUSL8e7OpAAF9fWw9OjnZ8Ur2Vvbqb3AqB62GIVDV9GdfVuo0Ou+YYuYj6qbpPupW696 JGHgedqAI3mYmyoCPaMzx7enni1L9rUtzW7miRLcprud7/4NufdSompg03u/t/KCS6zl mkCQ== X-Gm-Message-State: AIVw111bjFX0cGmYV173HRZ8Z080ojHLwzUcszQ8qVupu7nmU2GJN2Li v2CqxPgclYUAxg/THJ4= X-Received: by 10.99.94.66 with SMTP id s63mr1079319pgb.253.1500440297861; Tue, 18 Jul 2017 21:58:17 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Tue, 18 Jul 2017 18:57:22 -1000 Message-Id: <20170719045722.25492-15-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170719045722.25492-1-rth@twiddle.net> References: <20170719045722.25492-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:400e:c05::241 Subject: [Qemu-devel] [PULL 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 87b1b74..440fc31 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 12fd79b..2fe144b 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 090ebad..37ecafa 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 2bffbae..2abf319 100644 --- a/target/alpha/translate.c +++ b/target/alpha/translate.c @@ -2909,10 +2909,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 5bb0f8e..883e9df 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 d3003ae..d1a5f56 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 0ee05ca..12b96eb 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 e10abc5..900870c 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 ed3b896..cab9e32 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 692882f..f68f372 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 e709e6c..ada2a91 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 cb65d1e..a24373c 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 fe44f2f..1fd18e9 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 0660b44..3cfd232 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 2f3c2e5..8b97d65 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 e49518e..a014131 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 de271af..01233e8 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 1dffcee..48b71f9 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 8bc132b..1a5ca39 100644 --- a/target/sh4/translate.c +++ b/target/sh4/translate.c @@ -1815,10 +1815,9 @@ static void decode_opc(DisasContext * ctx) } } =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 a425efb..56ef73c 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 ff2ef7b..ace2830 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 ddd2dd0..4e4198e 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 666a201..8f30cff 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 2630024..f3f0ff5 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.9.4