From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753090AbbJFTYP (ORCPT ); Tue, 6 Oct 2015 15:24:15 -0400 Received: from mail-db3on0086.outbound.protection.outlook.com ([157.55.234.86]:17952 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753018AbbJFTYK (ORCPT ); Tue, 6 Oct 2015 15:24:10 -0400 Authentication-Results: spf=fail (sender IP is 12.216.194.146) smtp.mailfrom=ezchip.com; ezchip.com; dkim=none (message not signed) header.d=none;ezchip.com; dmarc=none action=none header.from=ezchip.com; From: Chris Metcalf To: Michael Cree , Matt Turner , Michael Ellerman , Yoshinori Sato , Alexey Dobriyan , "Rasmus Villemoes" , Ingo Molnar , "Linus Torvalds" , Peter Zijlstra , Thomas Gleixner , "H. Peter Anvin" , Borislav Petkov , , Linux Kernel Mailing List CC: Chris Metcalf Subject: [PATCH v2 2/3] word-at-a-time.h: support zero_bytemask() on alpha and tile Date: Tue, 6 Oct 2015 15:23:48 -0400 Message-ID: <1444159429-4788-3-git-send-email-cmetcalf@ezchip.com> X-Mailer: git-send-email 2.1.2 In-Reply-To: <1444159429-4788-1-git-send-email-cmetcalf@ezchip.com> References: <1444159429-4788-1-git-send-email-cmetcalf@ezchip.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;DB3FFO11FD031;1:iVIrdT3qcGrmWRkibuU5NhZDo8HcN/oeF4vCLQA6rWUM2fiW+bD0tC7JgNlDx7q1Ci1GNVjgWgmQOi+ws1//rK5qR7vg1Su+rPCAGrFURxXuLnpRuNZLmdLwJ94wM76yQ65T3iGtNVViUR/lKJqIFjcF1YzTsryqjjv0HAWzkTZ8/df9rgVeKjV0WITD37duWcW99eXUfepjBvKZVGFCKcscY8itsyE8xzVY+/qhWHewpKrKTUWhQgBm8xCl3n5cABV8FPi9OXVIxvBzPFSySeRYFHQMrzNV9W4tAsF8Krox1/MwAKX12EobEIbD3XYXNOyYw/DBL0rhqgxY2bXPv4ezaqOZ1xXXt1pVYkf4cteAj9DrDc2js9AGIPXQRvNICTCSC8zpw7y7iJE8rMB2jw== X-Forefront-Antispam-Report: CIP:12.216.194.146;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(50226001)(229853001)(76176999)(19580395003)(5001960100002)(50986999)(2950100001)(189998001)(5007970100001)(86362001)(575784001)(6806005)(11100500001)(107886002)(106466001)(106476002)(230783001)(42186005)(92566002)(105606002)(5008740100001)(97736004)(50466002)(104016004)(36756003)(5001770100001)(81156007)(48376002)(85426001)(46102003)(47776003)(5003940100001)(87936001)(19580405001)(64706001)(33646002)(106356001)(9376005)(921003)(4001430100001)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:AM2PR02MB0772;H:ld-1.internal.tilera.com;FPR:;SPF:Fail;PTR:InfoNoRecords;MX:1;A:1;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Exchange-Diagnostics: 1;AM2PR02MB0772;2:BrfyB2xpxUtgmBk/BJRZdzHkk2WddQ5kWocuw+OxiZyKBv3B/Z+ddlzYKEGjPM9b3FBy3AJpsBBDUEvgalFidqfrrrCnp7FkDCsci9wnSGgkJ0B+wlfe4w3EAMVgavpehlj6SFrYATdetWyPlNQK9meGni83v4nyT9Rv7NxVUT4=;3:s61zROrAWwJPGqe92t0oRhcLUMD2Ok2kXO/F7UF87rw/FhSCkIfh/5iuFkVWtsRLKbWnjWZJPFqizV10FCEOrAkIXg8+caILRjYsF0sUQrsL79Flsq7ufT4WD7R2lC2hQ2AKae6TSl3k1qbIZN/hqXRElO803JjEzI+XaSzTv2UDhS35/rIGbcwuTkIP4G1gRr+2bf4Y6dcWhZ2G2oHIUtppJJe2r/EvZI0GulBbxyZQqtxmG8I6TtGx8iQyjoZO;25:kxrO+iiF2PldO+XQ90qpxY4QQCLrL6Or+jpStCFCJmjkbDQHoAfbJVF1LyvvFVWeM/0wK09jSH8zA7+YnkPymBjDWJLTYCCBl+7Pa+dReAvdb4gB/KqDGA+qQBXlSb0u+ZhIwNaUwAI0ugZY9hXgqhun6hSVficiiOMeI0xDdVYWq1C+95fLLHaHktmbt8RsljEMfmChpAC+HbbdwzRjDBwKuriK31af05ghFYVUIglsFEaHFdhVq4Uo16g0iZEqXNbL1LvxSMN//Q9aN7AAOw==;20:HXXhW2v5HPTnofYJWBHn+6p2Vi+IzCRP8rC7cGy8EImDp3hXZ7thEsiQCMtBXt3XHzd+P/+IZljJIZl/Qt9yCwvv3GujTdoaTJqePUI5JHUMnrbngnzkJYG1uJBE1g15cTBdkalcDTp4/iGc2iY6Xg+pct385eZ/kzTak0i1LDc= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM2PR02MB0772; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(520078)(5005006)(3002001);SRVR:AM2PR02MB0772;BCL:0;PCL:0;RULEID:;SRVR:AM2PR02MB0772; X-Microsoft-Exchange-Diagnostics: 1;AM2PR02MB0772;4:NH2QBXN8fvW2taGAQcBVRPJ+p0rG4monNEA6vT+Xwa1WQiXiSBhqnctljVDNE0EMdh01bPtmVRwevrHz7Y5FPuEMWtWC5n2h7e52IV8H5L9B1Bq17Cpbl4kxAJbEqZ30qRh1uultrec16gZPCacpLhHYHYEc5LiM3yK4Tp/ZpBAyew89Ys8qTuzE2qdz5f/4DVXmp3mH4AhSE8C4RKjWxP7reS+MsS0ZnNmZCyRfeuwp9wv7YiqJJYRQINMjKlBhll5zbvH03EP2xxIUXvERvC8CO35BO3BehgdKXtx0SDuegq6X5HEh9c2yox3Oe0NjZlbYgeP+GgdUVWgpBrg3EqhNNZY+6R67Wc0SsCIdiZU= X-Forefront-PRVS: 07215D0470 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;AM2PR02MB0772;23:mp09BLwLsaqUgpaTdxez0DEmGunsuF006EIlas9dN?= =?us-ascii?Q?60asZLztTuk8TX9Am6kvMMOhouK4CWFz+LUFkwDZLHI9wKzbY+MD0hCxnz3s?= =?us-ascii?Q?rXIn5W8ZqQTZyKB7PCJaLJ3hrZ6jpsp8Kr0UdWHK/pjZ+jHLwA7e02cT18FY?= =?us-ascii?Q?njKABGKIkBaC6rqijgUcQGp3Xw9wPKpEQjgFKaPFu8yK8MDcOWNAtNsqhlSS?= =?us-ascii?Q?jxFMXgPmsgeRs3C14g01DLX7da8I11DDb3ZCB2+7/k9psvte7Br6dil0GuJM?= =?us-ascii?Q?dAsbdeWKEI9G2E7Jz0Nw9yAfTh0DUlXQ3KOMnbFXVoA4VMav79keOe17jA3p?= =?us-ascii?Q?7chyuZgaxvmdGhEbT9uVPuc1fGTMjtfzcEeGjgBMiSj/PGvJVba+GLA4eesa?= =?us-ascii?Q?PFAkKVi5xefJn0sXnWywdIAchA11EsFW76ctbrnyWfyjPZPmz8rDn9L65hM5?= =?us-ascii?Q?Hb4Ace+5ZSLHlQLaIha2LyFiPgwsvI8oeek6KjBe+TFcP7It0qcWx5P+YCoa?= =?us-ascii?Q?PERD2FdeviIKHdoOC24OoPoJmMJ0XzlgoqVhWMlVqzXd0fKXMuTGnqMRntd5?= =?us-ascii?Q?3LHfgnlNlXedjrDU+1H3cWass6HoqTasbVUE7Tj39rPvB9E3QnOwe+VC+/tc?= =?us-ascii?Q?1g2bv68glWGt+iiNmAIP7OroDYHZTc5UXlIXFYuRaHMcXj2e/X+9AiX2mhqs?= =?us-ascii?Q?rUBAb0Ur7oOOY2HWdzjPFkDyzUSfT8mmbl4pD3fNPc3wbxwMRJq7+TbPdfmA?= =?us-ascii?Q?zHqaZG+hj3YkweJ3gDrYswMnRMuI/NpcD1CxDO877SqTckPxSf7qsjWYz8x/?= =?us-ascii?Q?Terq7qYN1js89cYlgSm9rqjY7xbUo9KsLAKfwPM3AEcThI4CaqwehVeZ2gk2?= =?us-ascii?Q?dRoF08pO7UFGuWkyFqwMcVezbn20CJEw/mOtK4NXkJu404CwwX7+ndEd+/nw?= =?us-ascii?Q?5IgkrWitEjFDT5GuKmPZCMJbPyhXmYxnGaWRMcjd6Kxn+o86nJwej23pd3l9?= =?us-ascii?Q?IzE/iKY0unuslpnVDkpuLtEjkLBoc/AxMMx3ZmpHIkt3ocs5FYFKO3X+cwev?= =?us-ascii?Q?Bq7iu+0kkTeNt5A0ej9+qa9SOqo7QJyvmB6VpoZeQty12IYGhTKNI/GMMPBR?= =?us-ascii?Q?wuzdVdqIqDTVJcMkyoLouwOezV8/puln3Ce4pB/eLF92i1BNLYqHhhJo5CgO?= =?us-ascii?Q?0HTUkC6GYX1suMgO6UlitX3sshlOSGHJ5utnOZ4/mXu8KJWSFS/fqWF4+yfc?= =?us-ascii?Q?KbUVZuG03ob9axg3TrzEDa7qI6WD6ocHkTz8AG+?= X-Microsoft-Exchange-Diagnostics: 1;AM2PR02MB0772;5:+GFCHXx2Q9GLjopVmMJNxaFstHDo/zs7gQ6nV8YPENpuS1AyJpa5eRwknD+ClWkqCy1qxAkysMXwBD3UUQzGRzFnP+n7aacDQQIF4415p5R7NjssBec32Xcvs+Bylo2EiIjAgttiSptxmEQ7+oTvaA==;24:HDzB1oukxXbWOMayQhjXLjLHZ3Dll+03S+ABT3seCTRGGbpcfkAqp8X+Gh2RvjYValIp92v1qkaPqabrSRclzFc2wuFWjbeZ0KIW0A9QKFU=;20:eYqzj/MkUZ89775jIISCw4u1TkJa7aoKDIYxmNUyQVxWL/N+jJBJmTNUQAnBL1w2oH6f/PbgW0xiFutBGs+fZg== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Oct 2015 19:24:04.7456 (UTC) X-MS-Exchange-CrossTenant-Id: 0fc16e0a-3cd3-4092-8b2f-0a42cff122c3 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=0fc16e0a-3cd3-4092-8b2f-0a42cff122c3;Ip=[12.216.194.146];Helo=[ld-1.internal.tilera.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM2PR02MB0772 X-Microsoft-Exchange-Diagnostics: 1;AM2PR02MB0804;2:VR0b1H9n6RQuJRrdXm5ZoC+Xd5JaEsXaaU2Ix5hAb1TqTseg9Ju2avV8OANcTK4v4HKgCAtOV0XnOoLMA5eItRA8glpNMZgrdKAtTkbf+Rgzr/Su9/UH429MauDF8jPZcXSumcx/MnBsl/Fhw2KmCKfz49UAM/2RV5kgi2WKZUE=;23:QgEeEn7AomICIf14vpEbk0jjfTbONssfK13p08An8FSO4z0jIQKbkGCE7CCFoN8KfkqxDnDALmKOpDTOlx2iAuChd8gnQqBJ6cSwBcRn/1bsG14NdOzTpoKE3xv0YBdCegLMBxdmjanKrOh721KJ7HKHcINLK/qIbFhf7dPcSTNCEYaiddJyfnjf9xsUt/EC X-OriginatorOrg: ezchip.com Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Both alpha and tile needed implementations of zero_bytemask. The alpha version is untested. Signed-off-by: Chris Metcalf --- arch/alpha/include/asm/word-at-a-time.h | 2 ++ arch/tile/include/asm/word-at-a-time.h | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/arch/alpha/include/asm/word-at-a-time.h b/arch/alpha/include/asm/word-at-a-time.h index 6b340d0f1521..902e6ab00a06 100644 --- a/arch/alpha/include/asm/word-at-a-time.h +++ b/arch/alpha/include/asm/word-at-a-time.h @@ -52,4 +52,6 @@ static inline unsigned long find_zero(unsigned long bits) #endif } +#define zero_bytemask(mask) ((2ul << (find_zero(mask) * 8)) - 1) + #endif /* _ASM_WORD_AT_A_TIME_H */ diff --git a/arch/tile/include/asm/word-at-a-time.h b/arch/tile/include/asm/word-at-a-time.h index 9e5ce0d7b292..b66a693c2c34 100644 --- a/arch/tile/include/asm/word-at-a-time.h +++ b/arch/tile/include/asm/word-at-a-time.h @@ -6,7 +6,7 @@ struct word_at_a_time { /* unused */ }; #define WORD_AT_A_TIME_CONSTANTS {} -/* Generate 0x01 byte values for non-zero bytes using a SIMD instruction. */ +/* Generate 0x01 byte values for zero bytes using a SIMD instruction. */ static inline unsigned long has_zero(unsigned long val, unsigned long *data, const struct word_at_a_time *c) { @@ -33,4 +33,10 @@ static inline long find_zero(unsigned long mask) #endif } +#ifdef __BIG_ENDIAN +#define zero_bytemask(mask) (~1ul << (63 - __builtin_clzl(mask))) +#else +#define zero_bytemask(mask) ((2ul << __builtin_ctzl(mask)) - 1) +#endif + #endif /* _ASM_WORD_AT_A_TIME_H */ -- 2.1.2