From nobody Sat May 4 13:15:37 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.zoho.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 1494632453132142.2719806107965; Fri, 12 May 2017 16:40:53 -0700 (PDT) Received: from localhost ([::1]:55680 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d9KB1-0001LK-Nd for importer@patchew.org; Fri, 12 May 2017 19:40:51 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44792) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d9K9F-0008Ol-6Q for qemu-devel@nongnu.org; Fri, 12 May 2017 19:39:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d9K9D-0002Tu-RG for qemu-devel@nongnu.org; Fri, 12 May 2017 19:39:01 -0400 Received: from mail-qt0-x22a.google.com ([2607:f8b0:400d:c0d::22a]:36462) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d9K9D-0002T7-Lm for qemu-devel@nongnu.org; Fri, 12 May 2017 19:38:59 -0400 Received: by mail-qt0-x22a.google.com with SMTP id f55so11050777qta.3 for ; Fri, 12 May 2017 16:38:59 -0700 (PDT) Received: from localhost.localdomain ([138.117.48.226]) by smtp.gmail.com with ESMTPSA id n78sm3253857qki.60.2017.05.12.16.38.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 May 2017 16:38: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=Lf/X7klh0bXzciQF3lh+AdVzTLi16otmJ/GzIO3WPpQ=; b=d5hfeJDXkW0j1KLfbmRFTXRD1Fe8ylbmlzsERQfMu7z/sEpDYYa8GqZRPIh8f40tFI tsKoNRmAYrdufQ8OYMK49ZIgDeOhnzUMfwKRjcsk9oQj/KcaFrT5OGYCvYqPC2/L0JoZ 8nr4Ov12GSmVTXOJC6cndDkq9Vvms33YD9q+FUYP7KsErpiEq/WGwFqwE5FB6Bh6v0yd x88Ua5PiJpApM28QGi19KqzpbDzNK8bzqSpL2k2kuLsgI4sBdCPORwdwMmjdibNX5PY0 yBB/ZYEK8HL7+YGhDvHavD5hif4Bi28a+NIsIRH9IkIYuu5dHUmh9cAX8cXY99ZtA1jO Cd1Q== 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=Lf/X7klh0bXzciQF3lh+AdVzTLi16otmJ/GzIO3WPpQ=; b=N73VX5dQNsWOjOAomWBMwwzoSxTi7fOeEMoEcixGykBFa31j8oKfJE/3egea/lYuGr fEL29ONDyZTBk32cdyRNau8oiwTidApEMWuiv/wkpEoBoZkKd78Ms9G9ne/vgR6M4bCt rsjhpv/O5bhWSdOd4k+z8GevPNKnxs3zjyviLfvqF1uftbNu5PknsEK4HjB43HctGf0I djXKm3SnMd0F2PJTPmD3+Po/NOVnC9q5kU9ldM8S3O+15O4Dz0dXmYd/gjS6LY5VD+vM BS3xePCb41U23MUCMLm9XUSldqZwxWFtrT3a3gnl0KSVNJG7SquuRqtP17yqjOpbzJOr lW6Q== X-Gm-Message-State: AODbwcBXTQdtGaukxEpZt6LAdglpl+zMRF59GNieXtCANqiC1tigHwZZ AjvS7qtQtzqD7A== X-Received: by 10.200.38.227 with SMTP id 32mr5875037qtp.275.1494632339018; Fri, 12 May 2017 16:38:59 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org, Aurelien Jarno , Richard Henderson , Nikunj A Dadhania , Eric Blake , Markus Armbruster , Laurent Vivier , Michael Tokarev , Eduardo Habkost , Paolo Bonzini Date: Fri, 12 May 2017 20:38:38 -0300 Message-Id: <20170512233843.27713-2-f4bug@amsat.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170512233843.27713-1-f4bug@amsat.org> References: <20170512233843.27713-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::22a Subject: [Qemu-devel] [RFC PATCH v4 1/6] 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: Julia Lawall , Nicolas Palix , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Markus Elfring 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 If you have coccinelle installed you can apply this script using: $ spatch \ --macro-file scripts/cocci-macro-file.h \ --dir target --in-place You can also use directly Peter Senna Tschudin docker image (easier): $ docker run -v `pwd`:`pwd` -w `pwd` petersenna/coccinelle \ --sp-file scripts/coccinelle/tcg_gen_extract.cocci \ --macro-file scripts/cocci-macro-file.h \ --dir target --in-place Then verified that no manual touchups are required. The following thread was helpful while writing this script: https://github.com/coccinelle/coccinelle/issues/86 Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- scripts/coccinelle/tcg_gen_extract.cocci | 103 +++++++++++++++++++++++++++= ++++ 1 file changed, 103 insertions(+) create mode 100644 scripts/coccinelle/tcg_gen_extract.cocci diff --git a/scripts/coccinelle/tcg_gen_extract.cocci b/scripts/coccinelle/= tcg_gen_extract.cocci new file mode 100644 index 0000000000..37546834ee --- /dev/null +++ b/scripts/coccinelle/tcg_gen_extract.cocci @@ -0,0 +1,103 @@ +// 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 +// Coccinelle helpful issue: +// https://github.com/coccinelle/coccinelle/issues/86 + +@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@ // depends on never match_and_check_reg_used@ +metavariable ret, arg; +constant ofs, msk; +expression tcg_arg; +identifier tcg_func =3D~ "^tcg_gen_"; +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); +<... +tcg_func(tcg_arg, ...); +...> +( + 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; +tcg_func << match.tcg_func; +tcg_arg << match.tcg_arg; +extract_len; +@@ +is_optimizable =3D False +debug("candidate at %s:%s" % (shr_p[0].file, shr_p[0].line)) +if tcg_arg =3D=3D ret_s: + debug(" %s() modifies argument '%s'" % (tcg_func, ret_s)) +else: + 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 s= ome 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 prime: 0x%x]" % (m= sk_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@ +metavariable match.ret, 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); +... +-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); +... +-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); +... +-tcg_gen_andi_tl@and_p(ret, ret, msk); +) --=20 2.11.0 From nobody Sat May 4 13:15:37 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.zoho.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 1494632601645252.053689965363; Fri, 12 May 2017 16:43:21 -0700 (PDT) Received: from localhost ([::1]:55696 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d9KDQ-0003ft-DK for importer@patchew.org; Fri, 12 May 2017 19:43:20 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44818) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d9K9H-0008Pr-2c for qemu-devel@nongnu.org; Fri, 12 May 2017 19:39:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d9K9G-0002XJ-AM for qemu-devel@nongnu.org; Fri, 12 May 2017 19:39:03 -0400 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:33554) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d9K9G-0002WW-6A for qemu-devel@nongnu.org; Fri, 12 May 2017 19:39:02 -0400 Received: by mail-qt0-x243.google.com with SMTP id a46so8697242qte.0 for ; Fri, 12 May 2017 16:39:02 -0700 (PDT) Received: from localhost.localdomain ([138.117.48.226]) by smtp.gmail.com with ESMTPSA id n78sm3253857qki.60.2017.05.12.16.38.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 May 2017 16:39:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=r1Z7TW+N4GkHuN9R5zd34NTMZZysrnMMNlUmGYMUNdg=; b=D78woMI6Mk0/oVLlsQqa/wxY7poH2Y2R5pwZ7IlGXR/w6jOlGGjorH2QsTUbwWAf5e z0n5kRqijaWusPfie2DJzcautTHOnn3x9riK8WJBRWJbsnXi6TTAzVYrKVbiB+a8qopV 7bHzhuqzNbW3g7Ijho5nIqwd4fh3HashNFo7HeULzIvIOs5awJvPGQwArZAO8ir5bcI8 ccCIXWj5C/dAIZa4JrlxCNxtzzhHBIeqRfP7eDcwUvDKGVCkcwCpJ8vAL2alhUXMgcfa TFQ6ZuMBVUUpzxLcwF8m6DihvpsqyuSBFCEkNKuDzDG9RrZQZxwF3q7VdLxKk0XhTpQZ 8POQ== 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=r1Z7TW+N4GkHuN9R5zd34NTMZZysrnMMNlUmGYMUNdg=; b=qcpwgxq+7TR9JJtrefWUZNu/k3BUyCohkMAdgHGAxeRcZHLG3QKnKCxluZlz7p+TuP PhOR72jwZBQjXauvCX4aRO/W80R42yuKKdRi62mrejCFGts8hZ3hpLH6wS8oAa92dIDt AB12mPGvmiGqSnWf9qYqk30eVOyvY1Bao2tJXbWCLe5hEI1TovlsXObWk6eQUXCLDZ5/ kl+XPwfgvok7xutbkPd+E266U9z/zxwNtoG4CbpgVa9Zih9mYbeg6njY5rm2VBfkGnZD kgeWyBJ1S4tN0LnvXX5mEKqv9Vpr4Vev+RKwW3E4CchKzCeQyrATJN1n1/a4d+SE/jMw Rqfw== X-Gm-Message-State: AODbwcAh1xtsYrKuTP+0BkXWIDT+NF1U0dSSXWGJDU+Ix6ZKJmbv0I+G 9tugNEXvb34o8w== X-Received: by 10.200.3.26 with SMTP id q26mr6715998qtg.3.1494632341613; Fri, 12 May 2017 16:39:01 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org, Aurelien Jarno , Richard Henderson , Laurent Vivier Date: Fri, 12 May 2017 20:38:39 -0300 Message-Id: <20170512233843.27713-3-f4bug@amsat.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170512233843.27713-1-f4bug@amsat.org> References: <20170512233843.27713-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::243 Subject: [Qemu-devel] [PATCH v4 2/6] target/alpha: optimize cvtlq() 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: =?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 Patch created mechanically using Coccinelle script via: $ spatch --macro-file scripts/cocci-macro-file.h --in-place \ --sp-file scripts/coccinelle/tcg_gen_extract.cocci --dir target Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/alpha/translate.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/target/alpha/translate.c b/target/alpha/translate.c index df5d695344..531af4f5b8 100644 --- a/target/alpha/translate.c +++ b/target/alpha/translate.c @@ -747,9 +747,8 @@ static void gen_cvtlq(TCGv vc, TCGv vb) /* 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_extract_i64(vc, vb, 29, 30); tcg_gen_andi_i64(tmp, tmp, (int32_t)0xc0000000); - tcg_gen_andi_i64(vc, vc, 0x3fffffff); tcg_gen_or_i64(vc, vc, tmp); =20 tcg_temp_free(tmp); --=20 2.11.0 From nobody Sat May 4 13:15:37 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.zoho.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 1494632731968374.41580878668935; Fri, 12 May 2017 16:45:31 -0700 (PDT) Received: from localhost ([::1]:55710 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d9KFW-0005oE-PL for importer@patchew.org; Fri, 12 May 2017 19:45:30 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44853) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d9K9J-0008TL-LV for qemu-devel@nongnu.org; Fri, 12 May 2017 19:39:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d9K9I-0002a6-Or for qemu-devel@nongnu.org; Fri, 12 May 2017 19:39:05 -0400 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:36644) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d9K9I-0002ZZ-Ka; Fri, 12 May 2017 19:39:04 -0400 Received: by mail-qt0-x241.google.com with SMTP id j13so8688318qta.3; Fri, 12 May 2017 16:39:04 -0700 (PDT) Received: from localhost.localdomain ([138.117.48.226]) by smtp.gmail.com with ESMTPSA id n78sm3253857qki.60.2017.05.12.16.39.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 May 2017 16:39:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ARntjubsQyR5+cZJSQIcfrChA/eTk2P8uu7CiiT9EvA=; b=klCY5Xnx55F7mI8kpKhxZmj/0n94BqiiHoWtKGaQ/JQdtq24x8fuhTExFB1OeJ1INM +zS/rHcCyoQ4Ba0gdqzdqY+vkyZiSELNZkHdbz1jA7Ie2ftlv/kTOSpcVBn2TK9Hm2QG 5NZAxvHESBVndBVhHlG5qGRSzdSlQaHFV7UYI0lhpb781YOY/3UdAXGrCKMq0lAeo5JF 4ZxefLuBnyLabsSWXAxzzfJp3AsVJ2HNl5tYRGAnkyiWFbIpRspDKtNGZjTj1DGYrriP OLyWz2QoJaMd9W0Bm0axTow8THc/GTnw82rHyAL/ZcCYjHZhFX+JIqfPQuxVyHiZ/9GD cRyQ== 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=ARntjubsQyR5+cZJSQIcfrChA/eTk2P8uu7CiiT9EvA=; b=Rtj2B7EmLxymD1IjN1tgzJWbumDZa2nUCyehvwCtgxlsgTL4OiFySlL4MriYYsbytp yTF88Oial4tIinrrWjjR20MoLDOzL6D5KamdYUA0YQCnM1Qy0W1MC5qvnvAr8gCNfHxO FCuaxbtnFJ/HSzqEJn8vhh39L2WJ6fi2OX1hsUQnUJx5ZnfdHyAB644xbxraMHYrq8W2 o/n3gE2WNjLt002pCKznGSZC/sTEOV06cYXSMyzrry1MohZOREa96dcsiZ8mMdyDUPJ6 kjm8uRV/nxaikdhTkxbbz73IjAHqHyVcw1l3vuuE+rn4jkRQTcDVpB9pZdJFkAjE7zZP VHFw== X-Gm-Message-State: AODbwcDoVdPGIpFlkhGCheSELMemkn/f3F3G+hs4p8FA+LCLe8qI/N4A dkx3Jbb/shbtOA== X-Received: by 10.200.37.26 with SMTP id 26mr6736072qtm.278.1494632344095; Fri, 12 May 2017 16:39:04 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org, Peter Maydell , Aurelien Jarno , Richard Henderson , qemu-arm@nongnu.org Date: Fri, 12 May 2017 20:38:40 -0300 Message-Id: <20170512233843.27713-4-f4bug@amsat.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170512233843.27713-1-f4bug@amsat.org> References: <20170512233843.27713-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::241 Subject: [Qemu-devel] [PATCH v4 3/6] target/arm: optimize rev16() 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: =?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 Patch created mechanically using Coccinelle script via: $ spatch --macro-file scripts/cocci-macro-file.h --in-place \ --sp-file scripts/coccinelle/tcg_gen_extract.cocci --dir target Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/arm/translate-a64.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index 24de30d92c..759b2466ef 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -4038,14 +4038,12 @@ static void handle_rev16(DisasContext *s, unsigned = int sf, tcg_gen_andi_i64(tcg_tmp, tcg_rn, 0xffff); tcg_gen_bswap16_i64(tcg_rd, tcg_tmp); =20 - tcg_gen_shri_i64(tcg_tmp, tcg_rn, 16); - tcg_gen_andi_i64(tcg_tmp, tcg_tmp, 0xffff); + tcg_gen_extract_i64(tcg_tmp, tcg_rn, 16, 16); tcg_gen_bswap16_i64(tcg_tmp, tcg_tmp); tcg_gen_deposit_i64(tcg_rd, tcg_rd, tcg_tmp, 16, 16); =20 if (sf) { - tcg_gen_shri_i64(tcg_tmp, tcg_rn, 32); - tcg_gen_andi_i64(tcg_tmp, tcg_tmp, 0xffff); + tcg_gen_extract_i64(tcg_tmp, tcg_rn, 32, 16); tcg_gen_bswap16_i64(tcg_tmp, tcg_tmp); tcg_gen_deposit_i64(tcg_rd, tcg_rd, tcg_tmp, 32, 16); =20 --=20 2.11.0 From nobody Sat May 4 13:15:37 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.zoho.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 1494632622716394.9154226436291; Fri, 12 May 2017 16:43:42 -0700 (PDT) Received: from localhost ([::1]:55697 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d9KDl-00045f-3P for importer@patchew.org; Fri, 12 May 2017 19:43:41 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44900) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d9K9M-000059-UF for qemu-devel@nongnu.org; Fri, 12 May 2017 19:39:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d9K9K-0002dZ-US for qemu-devel@nongnu.org; Fri, 12 May 2017 19:39:08 -0400 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:33960) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d9K9K-0002cc-RD for qemu-devel@nongnu.org; Fri, 12 May 2017 19:39:06 -0400 Received: by mail-qt0-x242.google.com with SMTP id l39so8698332qtb.1 for ; Fri, 12 May 2017 16:39:06 -0700 (PDT) Received: from localhost.localdomain ([138.117.48.226]) by smtp.gmail.com with ESMTPSA id n78sm3253857qki.60.2017.05.12.16.39.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 May 2017 16:39:05 -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=U4h7F7PCvb/T+pCJbDsZWpNqNpff+PIWnBdVVeaKirc=; b=idNutqkEsic/L6HwTOZJFcTSVjvYqwD6ggekV8NHn5QM0KHe175I7G36dV+Hgd+5wq 8F5JJMDWZchVj1mvRcT8erRYFV5CDgnpCCBl/pVeBCLmMTrtbK84KmNPLenmQGni5QTs YQmVLDvQ8LIHPQGpyFy3SViIJkXPgjrEF0nRUhiU8mAyes+54354p2ZwGvcb0s611Ok4 Q9c44wTIRxGvHuCuH32HtE/Q9C5GC/W104/HvP6FZMd1VEOkEPk7rSmlYgOQyaResTv+ zLxDbcdIpMDEFGx5necCQPAbpiZJaxkSelnSVcZZyTrA5wsWZ+e7ASF7OsfFf+Qy56Zy a9IQ== 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=U4h7F7PCvb/T+pCJbDsZWpNqNpff+PIWnBdVVeaKirc=; b=GllVIhzr061OgHLpUbw0jVFBOuOQq3MfLHqjAybsRepzabsnsHyBmCsVRt+F5ViONs doJm8YvaNh8YuQ0dfoTcgsDr9IllYzKyOXa1aRsBNLrJYHXNlIXmqw2fyNIHKW0Iy0Zm wtb0BrBM3vHASUH9wUYcKX/XpQAnxu94okfhgtZkV5azmaIK9fB2VQev2SEZNTcEkSb8 RhgBMVXRmpswPpvRAGsfZAOKbp1GIe9l8fjdGlSKZ6V+Sadns9UtoQg5Tnq4bLsXE9CI DI5PrIgTbh9YNiKOv2TqMRFfEk1ndcmXF8Wy959CE9c6vyLhXKlcbukswZHvHE7gI45t KYXA== X-Gm-Message-State: AODbwcC+WJMCklFU5TD6Y6bomiMUCa2Z5l/RdlmmD1eD3U56DR9LkIaw D8WK7aj+hy7QUQ== X-Received: by 10.200.39.56 with SMTP id g53mr6546982qtg.134.1494632346334; Fri, 12 May 2017 16:39:06 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org, Aurelien Jarno , Richard Henderson , Laurent Vivier Date: Fri, 12 May 2017 20:38:41 -0300 Message-Id: <20170512233843.27713-5-f4bug@amsat.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170512233843.27713-1-f4bug@amsat.org> References: <20170512233843.27713-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::242 Subject: [Qemu-devel] [PATCH v4 4/6] 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: =?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 Patch created mechanically using Coccinelle script via: $ spatch --macro-file scripts/cocci-macro-file.h --in-place \ --sp-file scripts/coccinelle/tcg_gen_extract.cocci --dir target Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Laurent Vivier Reviewed-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 9f60fbc0db..babb9e2c5b 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -1463,8 +1463,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.11.0 From nobody Sat May 4 13:15:37 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.zoho.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 1494632466624525.1835889839886; Fri, 12 May 2017 16:41:06 -0700 (PDT) Received: from localhost ([::1]:55681 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d9KBF-0001XQ-5z for importer@patchew.org; Fri, 12 May 2017 19:41:05 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44928) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d9K9O-00007j-P1 for qemu-devel@nongnu.org; Fri, 12 May 2017 19:39:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d9K9N-0002hp-Mi for qemu-devel@nongnu.org; Fri, 12 May 2017 19:39:10 -0400 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:34993) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d9K9N-0002hC-Hs; Fri, 12 May 2017 19:39:09 -0400 Received: by mail-qt0-x242.google.com with SMTP id r58so8704141qtb.2; Fri, 12 May 2017 16:39:09 -0700 (PDT) Received: from localhost.localdomain ([138.117.48.226]) by smtp.gmail.com with ESMTPSA id n78sm3253857qki.60.2017.05.12.16.39.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 May 2017 16:39:08 -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=2++k+AdA7af4sNJ49pYD1irHLuJnTcbXYPbUK2LfqFM=; b=O0yC+jXR/eoqTISjsZfOrkq8wjoIsXFSJ9z8DYhs7gUq8HuVC/asDv0+yv+v+e8Lf+ vaxUX9PIJDk+S1fpsO4phSVj5m1hi5Uhycnj1OrrCE6OB0XnGSqiPzpmrm0K+9+8lcyB rn+G4bfh/B7Qrf4uG19mSkWlsoNang5FHmK6WLXtCHc0sUBlVnknTwyau/WZ1fmt3tTc pJquZkGy2Nckv6r8dacsZsbNTxcXSMDdyFudiFzb3X+q2oisYtevoTeOy+XDkphC6AJH YW9eLGi0U9XIOFjD/m3hbkYDe+rm8hiiNEdb5b1vQ4goFEApzrbmQGrAgqMtVIbs6tvL Hdvg== 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=2++k+AdA7af4sNJ49pYD1irHLuJnTcbXYPbUK2LfqFM=; b=pQ/yTRcWwSPJxy6+9+APsQL9tVuPzTvZ3mADBEBq/FeqTMN3zXzIyDix1+uhW0VQBx gu29MujrqtBUSBDrvFAvse0VDk9OGaD9vAqS1a63/igCZRoUTjnt+3STqrW2e7m5GIvJ YKBK33DhDMZb59HyWJiJGxgJv5qTJw1MthT9RQ2ZhpO8Fs/UubWxUdmiXckCd4KUyyFH wIphEekTvjYVu0tdXEpgHjXcpWsgC9uU33Cc04imYgIrw2HJZm7MjXfuxbIyyfnSV5FM JYithlaVDg6FUmiOeVXwdLOfjenfXBPBoaQN1rbvd3Bd3qe3GIhnLyZkfHfaxLmn9enM /uXw== X-Gm-Message-State: AODbwcByrk/ZB80wAWhw7jJUa/z1NzxWIC5uSOoyAGrzpXtnfi1duTj3 9RtHspyl9GN71w== X-Received: by 10.200.56.156 with SMTP id f28mr6341020qtc.252.1494632349028; Fri, 12 May 2017 16:39:09 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org, Aurelien Jarno , Richard Henderson , David Gibson , Alexander Graf , qemu-ppc@nongnu.org Date: Fri, 12 May 2017 20:38:42 -0300 Message-Id: <20170512233843.27713-6-f4bug@amsat.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170512233843.27713-1-f4bug@amsat.org> References: <20170512233843.27713-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::242 Subject: [Qemu-devel] [PATCH v4 5/6] 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: =?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 Patch created mechanically using Coccinelle script via: $ spatch --macro-file scripts/cocci-macro-file.h --in-place \ --sp-file scripts/coccinelle/tcg_gen_extract.cocci --dir target Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: David Gibson Reviewed-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 f40b5a1abf..6521365bfa 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -868,8 +868,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); } @@ -1399,8 +1398,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); } @@ -4310,8 +4308,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) */ @@ -4342,8 +4339,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) */ @@ -4377,8 +4373,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) */ @@ -4409,8 +4404,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) */ @@ -5383,8 +5377,7 @@ static void gen_mfsri(DisasContext *ctx) CHK_SV; t0 =3D tcg_temp_new(); gen_addr_reg_index(ctx, t0); - tcg_gen_shri_tl(t0, t0, 28); - tcg_gen_andi_tl(t0, t0, 0xF); + tcg_gen_extract_tl(t0, t0, 28, 4); gen_helper_load_sr(cpu_gpr[rd], cpu_env, t0); tcg_temp_free(t0); if (ra !=3D 0 && ra !=3D rd) diff --git a/target/ppc/translate/vsx-impl.inc.c b/target/ppc/translate/vsx= -impl.inc.c index 7f12908029..85ed135d44 100644 --- a/target/ppc/translate/vsx-impl.inc.c +++ b/target/ppc/translate/vsx-impl.inc.c @@ -1248,8 +1248,7 @@ static void gen_xsxexpdp(DisasContext *ctx) gen_exception(ctx, POWERPC_EXCP_VSXU); return; } - tcg_gen_shri_i64(rt, cpu_vsrh(xB(ctx->opcode)), 52); - tcg_gen_andi_i64(rt, rt, 0x7FF); + tcg_gen_extract_i64(rt, cpu_vsrh(xB(ctx->opcode)), 52, 11); } =20 static void gen_xsxexpqp(DisasContext *ctx) @@ -1262,8 +1261,7 @@ static void gen_xsxexpqp(DisasContext *ctx) gen_exception(ctx, POWERPC_EXCP_VSXU); return; } - tcg_gen_shri_i64(xth, xbh, 48); - tcg_gen_andi_i64(xth, xth, 0x7FFF); + tcg_gen_extract_i64(xth, xbh, 48, 15); tcg_gen_movi_i64(xtl, 0); } =20 @@ -1323,8 +1321,7 @@ static void gen_xsxsigdp(DisasContext *ctx) zr =3D tcg_const_i64(0); nan =3D tcg_const_i64(2047); =20 - tcg_gen_shri_i64(exp, cpu_vsrh(xB(ctx->opcode)), 52); - tcg_gen_andi_i64(exp, exp, 0x7FF); + tcg_gen_extract_i64(exp, cpu_vsrh(xB(ctx->opcode)), 52, 11); tcg_gen_movi_i64(t0, 0x0010000000000000); tcg_gen_movcond_i64(TCG_COND_EQ, t0, exp, zr, zr, t0); tcg_gen_movcond_i64(TCG_COND_EQ, t0, exp, nan, zr, t0); @@ -1352,8 +1349,7 @@ static void gen_xsxsigqp(DisasContext *ctx) zr =3D tcg_const_i64(0); nan =3D tcg_const_i64(32767); =20 - tcg_gen_shri_i64(exp, cpu_vsrh(rB(ctx->opcode) + 32), 48); - tcg_gen_andi_i64(exp, exp, 0x7FFF); + tcg_gen_extract_i64(exp, cpu_vsrh(rB(ctx->opcode) + 32), 48, 15); tcg_gen_movi_i64(t0, 0x0001000000000000); tcg_gen_movcond_i64(TCG_COND_EQ, t0, exp, zr, zr, t0); tcg_gen_movcond_i64(TCG_COND_EQ, t0, exp, nan, zr, t0); @@ -1448,10 +1444,8 @@ static void gen_xvxexpdp(DisasContext *ctx) gen_exception(ctx, POWERPC_EXCP_VSXU); return; } - tcg_gen_shri_i64(xth, xbh, 52); - tcg_gen_andi_i64(xth, xth, 0x7FF); - tcg_gen_shri_i64(xtl, xbl, 52); - tcg_gen_andi_i64(xtl, xtl, 0x7FF); + tcg_gen_extract_i64(xth, xbh, 52, 11); + tcg_gen_extract_i64(xtl, xbl, 52, 11); } =20 GEN_VSX_HELPER_2(xvxsigsp, 0x00, 0x04, 0, PPC2_ISA300) @@ -1474,16 +1468,14 @@ static void gen_xvxsigdp(DisasContext *ctx) zr =3D tcg_const_i64(0); nan =3D tcg_const_i64(2047); =20 - tcg_gen_shri_i64(exp, xbh, 52); - tcg_gen_andi_i64(exp, exp, 0x7FF); + tcg_gen_extract_i64(exp, xbh, 52, 11); tcg_gen_movi_i64(t0, 0x0010000000000000); tcg_gen_movcond_i64(TCG_COND_EQ, t0, exp, zr, zr, t0); tcg_gen_movcond_i64(TCG_COND_EQ, t0, exp, nan, zr, t0); tcg_gen_andi_i64(xth, xbh, 0x000FFFFFFFFFFFFF); tcg_gen_or_i64(xth, xth, t0); =20 - tcg_gen_shri_i64(exp, xbl, 52); - tcg_gen_andi_i64(exp, exp, 0x7FF); + tcg_gen_extract_i64(exp, xbl, 52, 11); tcg_gen_movi_i64(t0, 0x0010000000000000); tcg_gen_movcond_i64(TCG_COND_EQ, t0, exp, zr, zr, t0); tcg_gen_movcond_i64(TCG_COND_EQ, t0, exp, nan, zr, t0); --=20 2.11.0 From nobody Sat May 4 13:15:37 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.zoho.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 1494632847878530.5826478255126; Fri, 12 May 2017 16:47:27 -0700 (PDT) Received: from localhost ([::1]:55717 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d9KHO-0007Mu-MC for importer@patchew.org; Fri, 12 May 2017 19:47:26 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44969) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d9K9R-0000AX-2O for qemu-devel@nongnu.org; Fri, 12 May 2017 19:39:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d9K9Q-0002m9-78 for qemu-devel@nongnu.org; Fri, 12 May 2017 19:39:13 -0400 Received: from mail-qt0-x244.google.com ([2607:f8b0:400d:c0d::244]:33969) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d9K9Q-0002lB-3R for qemu-devel@nongnu.org; Fri, 12 May 2017 19:39:12 -0400 Received: by mail-qt0-x244.google.com with SMTP id l39so8698598qtb.1 for ; Fri, 12 May 2017 16:39:12 -0700 (PDT) Received: from localhost.localdomain ([138.117.48.226]) by smtp.gmail.com with ESMTPSA id n78sm3253857qki.60.2017.05.12.16.39.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 May 2017 16:39:11 -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=1bkRuEvz2MpJYn1Dl4J2BPFGfTgIVrdJ8nOn3hpgo/s=; b=KrXTe7MB49yqL4RjOlHhxNFj+eirlpYWHnoXY6bPX+6PqueQ7Yb6KSeXumhFwcKdUs iuuXODwlJmpGvivzvLddumg/I1OiUIf9MYHzOambXqu/jWB2RaS7G7rtdI2Ypr2BPbwi CD89ci7FwqeZDS72VXSCSZ1xVl9Ey2ve5HyIRHkxmvcIGsbvqwzB5jOZOoJoTUgfnCYZ WWh0Ya45nt259TV4j4/8O14lzmrvPNysJDd4VNYt8VqXbKnesCTUl/Cp2KhgqFWhM0H8 7AxaPiY9Fc7AptIwzq4rMMDZLWH6k6DzokkHNiZFN+e4CUNhfAIrw/pG94eydPouWQ66 mCDA== 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=1bkRuEvz2MpJYn1Dl4J2BPFGfTgIVrdJ8nOn3hpgo/s=; b=BoWhjTgEwG+00+tXpvk81u/zdD3dHGTlq/u+qnYSNC07n9Ls5EUnwuvNj5Fny02JU1 5DJJncDFiTW8L8ThDOc55PQx+wfQFW5vHCiTQJgbu9+ME5zdezgr2ZiMxrHa3whs0aEc lgLDE95Z4HdB6r0qcoMxjryLEKqKb+xOX/X12jJ9VmjPJalLi+bA0zDE3bBhaW0cloWV +gAbj3MWJ7aCYCOc3r7Wq4JTsA0w+LQ60gC3UY4mJHjR2VCfMOoUsaEGrPdv0djo0TVd bwIy4jCQ89XI3fwxVVjRR/gbS2sIzSvrwwYPEer6eicwA1yGjMFKkwgE+WMAfpEBj0aN 5y8g== X-Gm-Message-State: AODbwcBq9QNtfnT8pF7Cxqnh4y3VhuJJQ/JUHQGLNdsa2hGie3qXpD+Y eyTRLXCvQeo2Sw== X-Received: by 10.237.61.28 with SMTP id g28mr6063300qtf.279.1494632351574; Fri, 12 May 2017 16:39:11 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org, Aurelien Jarno , Richard Henderson , Mark Cave-Ayland , Artyom Tarasenko Date: Fri, 12 May 2017 20:38:43 -0300 Message-Id: <20170512233843.27713-7-f4bug@amsat.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170512233843.27713-1-f4bug@amsat.org> References: <20170512233843.27713-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::244 Subject: [Qemu-devel] [PATCH v4 6/6] 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: =?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 Patch created mechanically using Coccinelle script via: $ spatch --macro-file scripts/cocci-macro-file.h --in-place \ --sp-file scripts/coccinelle/tcg_gen_extract.cocci --dir target Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- target/sparc/translate.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/target/sparc/translate.c b/target/sparc/translate.c index aa6734d54e..67a83b77cc 100644 --- a/target/sparc/translate.c +++ b/target/sparc/translate.c @@ -380,29 +380,25 @@ static inline void gen_goto_tb(DisasContext *s, int t= b_num, static inline void gen_mov_reg_N(TCGv reg, TCGv_i32 src) { tcg_gen_extu_i32_tl(reg, src); - tcg_gen_shri_tl(reg, reg, PSR_NEG_SHIFT); - tcg_gen_andi_tl(reg, reg, 0x1); + tcg_gen_extract_tl(reg, reg, PSR_NEG_SHIFT, 1); } =20 static inline void gen_mov_reg_Z(TCGv reg, TCGv_i32 src) { tcg_gen_extu_i32_tl(reg, src); - tcg_gen_shri_tl(reg, reg, PSR_ZERO_SHIFT); - tcg_gen_andi_tl(reg, reg, 0x1); + tcg_gen_extract_tl(reg, reg, PSR_ZERO_SHIFT, 1); } =20 static inline void gen_mov_reg_V(TCGv reg, TCGv_i32 src) { tcg_gen_extu_i32_tl(reg, src); - tcg_gen_shri_tl(reg, reg, PSR_OVF_SHIFT); - tcg_gen_andi_tl(reg, reg, 0x1); + tcg_gen_extract_tl(reg, reg, PSR_OVF_SHIFT, 1); } =20 static inline void gen_mov_reg_C(TCGv reg, TCGv_i32 src) { tcg_gen_extu_i32_tl(reg, src); - tcg_gen_shri_tl(reg, reg, PSR_CARRY_SHIFT); - tcg_gen_andi_tl(reg, reg, 0x1); + tcg_gen_extract_tl(reg, reg, PSR_CARRY_SHIFT, 1); } =20 static inline void gen_op_add_cc(TCGv dst, TCGv src1, TCGv src2) @@ -638,8 +634,7 @@ static inline void gen_op_mulscc(TCGv dst, TCGv src1, T= CGv src2) // env->y =3D (b2 << 31) | (env->y >> 1); tcg_gen_andi_tl(r_temp, cpu_cc_src, 0x1); tcg_gen_shli_tl(r_temp, r_temp, 31); - tcg_gen_shri_tl(t0, cpu_y, 1); - tcg_gen_andi_tl(t0, t0, 0x7fffffff); + tcg_gen_extract_tl(t0, cpu_y, 1, 31); tcg_gen_or_tl(t0, t0, r_temp); tcg_gen_andi_tl(cpu_y, t0, 0xffffffff); =20 --=20 2.11.0