From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28871 invoked by alias); 2 Jun 2017 10:23:08 -0000 Mailing-List: contact newlib-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: newlib-owner@sourceware.org Received: (qmail 28857 invoked by uid 89); 2 Jun 2017 10:23:06 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.5 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=H*r:sk:mail-he, H*r:104.47.0 X-HELO: EUR01-HE1-obe.outbound.protection.outlook.com Received: from mail-he1eur01on0084.outbound.protection.outlook.com (HELO EUR01-HE1-obe.outbound.protection.outlook.com) (104.47.0.84) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 02 Jun 2017 10:23:04 +0000 Authentication-Results: sourceware.org; dkim=none (message not signed) header.d=none;sourceware.org; dmarc=none action=none header.from=arm.com; Received: from localhost (217.140.96.140) by VI1PR0802MB2463.eurprd08.prod.outlook.com (10.175.26.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1124.9; Fri, 2 Jun 2017 10:23:05 +0000 Date: Fri, 02 Jun 2017 10:23:00 -0000 From: Prakhar Bahuguna To: newlib@sourceware.org Cc: nd@arm.com Subject: [PATCH, ARM] Fix minor issues in memchr NEON implementation Message-ID: <20170602102256.eyeslc2gyznswpvl@e107464-lin.cambridge.arm.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="rbyt4rqhc4y3uqxd" Content-Disposition: inline X-ClientProxiedBy: VI1PR0701CA0044.eurprd07.prod.outlook.com (10.173.77.30) To VI1PR0802MB2463.eurprd08.prod.outlook.com (10.175.26.18) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI1PR0802MB2463: X-MS-Office365-Filtering-Correlation-Id: 28bca185-b01e-4d36-a357-08d4a9a15b87 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(201703131423075)(201703031133081);SRVR:VI1PR0802MB2463; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2463;3:Fx7qUwCXvwuax819nvZ5LDeUBpAolW28MN+TE05mUPk+IGu4k9IftZCgf6CEU8GbFF1Ks+yphBJvJD57+B7dNVdD7/J0nTSSey9Q2fbeFeHnsFMl9aWinDdwo1X2FW2LeYAqGDqeyGfS8gnIdbb2SC3USva6+dUgb9MLSjuPl/AhcD0L5gaghJQQ4/CIRLcgovZkyjQkBxck+okXVt2krV7FMWNm0fedPxed5MHf/ffkvfO4jLaTzWiulugFNVLcNdUdw3vmJJ9LjcU9CilBLApjBLpmZP++HRmRAGZCeNDK7kEC9BFk13t8M8h6CjJ2RAhodhJavuCNX0UZqaSM9w+N+3cU1vdJqpiWcqYz+S4=;25:xF5C8v2cvUQ8AUHr9ESyq69Bs0wpqJp4n8QXZI5YyORnNyNYUD9i7PPLbR1BJTALwwG2QyfBK9bYfG2dQLOkBD94F3c0BBYHx1OtLMf9zlZ3wrVdM2koyodxcIfHzP2IbeZtG+AtIM2/wFoa30VLAq1v3Fm079hbPCC+SY6sLWI8X8GbyJBwdgiSZ1YtLssPpJaVrtf/dPiF4aXhC+VgHp4vy0tH84GIo3hCXZ3peZEvkf1178bYrREQZspH1pLni+G0GpyW0K/oD9coTaust8XrHG0iABF3NMINBPjNd7riTwGdQLJjITmnp/5MlsGsxu0Ea4DHeCuFfz9/7CxVjT5T5HLtwpPpj+eFLBMVBx7j6cunzYCHdnkaVLXEW/B0RHA9YQNX0artuB65Sd7saJp8WCqKmCJgOSlSd6yioiNS51TJsMEPjZXjY7ebxadojKg1D7E687Uwtkr4+tkzM9AbEW9GhzsO+qjzIQCOy8ZVyMh2Yh9hBo187njChT1aNpP4WcbJVET6DgNJyXweBA== X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2463;31:HJiDPueXCpcUR8CumEQrxz9gCjYgNroATJrJrlu6g0dZbVRV/59uVBeQRNrG0VBgKsQjAbAp54THxlA2fzB9Xfi9uTO6tYBZRoGWhoV2rO3ZlB9ODJRq2NMmuOdcc74Vj6X/S2dOP8gnydw3HWWx+GKRDrRN/kyEwi112S6Ao9SDFPpzZdtPI+jMTlvJXtCyD9Q5/EZ1H7xAEdTQm0n2LE7CbjCqgCCHPdsnUfl/axsObiRgS9u239nPAMV+Z92duTq8/YIagNUgYQy+IkfTfg==;20:dTQFnEPHXlasmdiNPcUxbCqFHfN6ZL6qeF/PTa4Ar8vkBVNDHLRLa3u/t5YXi80312ZODzaM7NJaTeWcSja7+SVGh+64woAHGsHBqjD/NvF6Ao9AXmMqZNOffHEW85BX95M1hjbXujCltb/Fq2a4dW7YxAEbZEJ8U134YHBP/N4= NoDisclaimer: True X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(102415395)(6040450)(601004)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(3002001)(100000703101)(100105400095)(6055026)(6041248)(20161123562025)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123560025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:VI1PR0802MB2463;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:VI1PR0802MB2463; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;VI1PR0802MB2463;4:VuBo5wZs4WiQmMayRpIQ7TOSPz1JT7aUcca9KOgm?= =?us-ascii?Q?lFAZgfu5IMJxPyy4/unznm634CHBWWaM5m/qZ5ZmvU4tbPxpupIRChPrF1gH?= =?us-ascii?Q?SPsSvHz06kN9lKs5r2wuIWDpivkdVNnPZXG+5srXhIaKUgi4DL/0o9da4ZpW?= =?us-ascii?Q?B6Zujw3/NSl+L2nTsEk/fqzjJ56qRbrTXosNDqJwEP1KC56q9BlhoechyvvU?= =?us-ascii?Q?FfZGtKvlaQ0kz4Dgo/bRV+rD5tPAE6Vk53s6b+Nwu2lWbYniLZAiyghPbfTC?= =?us-ascii?Q?yCTSi/91m9TzxNRFIQ+FoB74yGrQtbCniLCeqp95qysKmydGlHQ+dWfLeiG9?= =?us-ascii?Q?AxQlnjjVomuHF636JR02bnwzyang+BGgVvDIuR/F2uJxtMVAYEMafrgXLYCE?= =?us-ascii?Q?f5aWh7C7XV/jwcxAyzRYPkTLQaX8XOgOe4zzHZWYej/FLrrrHpX4BhFSnGSu?= =?us-ascii?Q?zqKNNm4PuKYfXxCm18ptMlxY+VNYJrrwOsWLix8SIYkbiR24Se1xCclm+QqY?= =?us-ascii?Q?wGZnEpnwLaB7VbjCLGECHymem7fxHrW/pxBg0oPtEoBoVeZfvVbDGgnYnU1B?= =?us-ascii?Q?rJ1FzkCr+tvE5OD4NjAeju1/OTUWoHA9jgO7vsMDRyBhO/HpAJjTtsWv69SE?= =?us-ascii?Q?BxklXPSz5nb9ALsvea2TmqpSwZMZWZlgwYmo2tRVfYcDgjikaKkiGy8ZlBIA?= =?us-ascii?Q?09edPCF5UKiXtS7f6QommrvIMFsaysaUneNZfgt/0p8Ydaq2xawsCvlomGVe?= =?us-ascii?Q?Fvk9Dj23OyHF3vEyVS4m5eVWMXIEp0f101RVRR0tB5fXL5nhBkrp6MC845Li?= =?us-ascii?Q?3SARkLWS3FLo6eF5cjj+TDQbccZXh1+J7bnOtiNG2NbwZonZ0f7qrOaaVVdk?= =?us-ascii?Q?dHbFGBcz+HLnNz0LdZAb6Wis6IVX+Hg95Gb4Bj/STV0OByvYKolazY3GfWF5?= =?us-ascii?Q?ymfMIAGTJ+GCRS/Ec841Dpu/YrS5I/C/Sxj4Pz/ImJGwW/gd3M4LLq+STwpG?= =?us-ascii?Q?ZHMV2BN7o70Y30K4e1f/f07epoTJ8IV6UyP5DPhi2UwpYF5yE1IYWm0cYPCo?= =?us-ascii?Q?sanWURWCYqBd8cwaXsrIAdQ7I5YNAR+o/BproYA2IcKrbXS+AghKJzU66/dG?= =?us-ascii?Q?wkup6PmNnY9uXLVg/WSrkVJeBSpVIz2tHU+btjN8Jm0xFA9qPhjpvJdlw+2/?= =?us-ascii?Q?cRS/bFcvoKENSgwSseZpqLNJxPcqXiSp0O7I/7m/eQYU3fKq12ow/d20Zg?= =?us-ascii?Q?=3D=3D?= X-Forefront-PRVS: 03264AEA72 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6069001)(6009001)(39860400002)(39400400002)(39410400002)(39450400003)(39840400002)(39850400002)(377424004)(5660300001)(84326002)(53936002)(33646002)(6496005)(50986999)(4610100001)(6666003)(4326008)(6116002)(1076002)(2361001)(54356999)(3846002)(5000100001)(189998001)(2351001)(5890100001)(86362001)(66066001)(81166006)(568964002)(305945005)(6486002)(2906002)(7736002)(6916009)(72206003)(42186005)(8676002)(38730400002)(76506005)(25786009)(110136004)(478600001)(2700100001);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR0802MB2463;H:localhost;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;VI1PR0802MB2463;23:cgJBnBBhk3V3pXk+n9zfy23B3PvtRZMPbc5qUWK?= =?us-ascii?Q?x9GmbajT89fS6NqSpVHeyM6r503gsyl8ZV9PcNSoq6jqquFudb0OqAmZ+/m0?= =?us-ascii?Q?jVrIC99xERDRg4rTg2pAJvuncbk7G/9tfUOFXpRaYzc9J0JUvO/Bs0QibJ3G?= =?us-ascii?Q?0Bhw1Ew0FG79QdVREKDSvHfCSolW4cKTGeamGKOyyDrMn8pb4UCeuxqSH3t9?= =?us-ascii?Q?wp4u5SiI4Jkz+INFiUzq0OPsXLRxF+UryIqm0CNmP+oFo61tfoBc+McvMgxn?= =?us-ascii?Q?ygSHUUdA0p/7AoAOYO+ocMppuXqHJc1cDvLqsLJD7xpZF+SxfVvZdNqvA7Al?= =?us-ascii?Q?72H+l9TlAyeEzMDxeT+hziLcjliHZ1ql8JyxAItlvvcIsxJVxgLo0Rj3Mc+C?= =?us-ascii?Q?8sWDrM1opfguCAqBlKiTK2DBKn4fGXluzVFywTdS5XupyzMvVuBeyFzbXXzE?= =?us-ascii?Q?e7bzIf1ShF9KxYDgm7aJ25ZlKuA6s80V8255AqaH8nDjZ0Od0NM7Ekn1VjQu?= =?us-ascii?Q?g4ejZvpRU+yBC6g9QLXHSStH2QK2nvnL4WzpTeYD8Cm93yZyOjKJ81M5L3WA?= =?us-ascii?Q?EN0Go4jBrwbakJBJiImWUqXdr/UwEoAWVUEzQbN3v/2DBzbT0teGII581jNc?= =?us-ascii?Q?m49yN7BvbWKNz2gzLs4wkI4i3xkoX8vR+GJbxjCcrYMlUmBm3Jq8/Y0VeXX2?= =?us-ascii?Q?k7IrCuYu9yfkr7/AcFbD/f5bPniiBDwHaE95KgtmB1iCQOGldiJnsW1Vfsir?= =?us-ascii?Q?mEAp8DlCHO9q2SLkNmUqOPZ9fdsk6UTWsHtHhc1qNlBXZvVfVKF4XV19NVv0?= =?us-ascii?Q?cZGRw/6btRg8inyqBtYv8PiaKjY4dXoCJTFEIJQbHcqKNZvq1wvIH6m3lCh8?= =?us-ascii?Q?85v6lcd0uaxL6XYHTVcvVQl2u1K1ccLZzWTqx4guBPl7XH85ME17EfJfyPZX?= =?us-ascii?Q?RGbMqCN0tPzGeTsrxpFCAVDjFihvU2e5g15fnJZYc36SZrhJrGcYnsG1Q4h6?= =?us-ascii?Q?ZvvuRNIhye5TH9smnJlzVBh8FxZBsNlklt06LSfwjS4fLvcQdJgIigtPnx6S?= =?us-ascii?Q?64O4S3WcmfVcH4pDc9jUpK3nYqEzuFjeiqT0NxKxF5oAMyYNrftkRbfQcnhY?= =?us-ascii?Q?OIRJKsYrRJ8TufpC2nqPTn9UjZsS+qQbHmapJuULsf9cGOgwSIs3xyQ=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2463;6:W3hsyjtV31BTYI4zBfOcVf++nPt03uG5u5h7sKHoazPUXRYVO6PTUWt/KGDTXzpHGX6hVE1cWn0pjLIhGf/4WKH00dzYbl5dOZuOq0yw/BKFvqyR0Y6bwq5p4Zy+o+oMBMPM40GOvlIwSRf9AgqDcREB6zur5PadpAjmhsvHP02axY6y++t29t0GLA7PenxnmhxoultPzoXcjuY1pGIoVyQjeBI5koTjZrTVe0RCYi6RFmq7ls3cjxTupywT7KC7vn0Jpm2VJeIklyI5wYsItAPJBVvKt+cJJqeqLpY1PrAFvqeKVho1tDdmE0UMekfTmjUjOgGsM1kFNkekUUyuevVVOIzfOMkKJTpcQd+BfljPg/v1AI0cEFNA5KqvMrG7shg0rSzcM9+SvHFy8L2agM4GNKXF5wRaZ3fDHCYrTSuf3esP9if6HOHoWfh3Aw6RhVGyQT2ftilJKw1DxGzqSlC4jh9N2CbaiRG07gM+5gMR6VoGT+cyA4V2BPHogxu+mf9hMgTkkfHM3fWy6+bgOYUDWC7MMj7jkQcuSEmFi/k= X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2463;5:1anH7mvSI/qWWMf761jJtZcbOVeuAXqdrMFxUb0r7tWH4hk8mPEHsTCWuvlHLwBZhImClVV+aFk4W3RR3CEhQdxgrUHUFIjd3VdhKj9xlcFBCl3dxOpKHn6YHGxNFwcGE+uIpTXvfMFBzUa6+5zCqVsq+2DwAZ6TPDzvpkH9kntsKO/2KcAuN1q7k7woC3siPkSjVFREEgqO/ntb/FxOlUofSAcoUlY9YICQDEgT01xedFevVlZ1ZhiXVcl5a1dw4hjVEFcK+uSAX4m4px3oDjz9yM6YXQclzoJuesPvZvE29hjVo5NUHYZ2iSMI3owhilRecYJ8Jnws/ZHG3UGJyKvFOsyUZtHefTDLiHSsb5DCyJOP7lKgoI1PpdLv7+EbmmJwOBa8lEq8Dnl7/hi8Vkw2Vz58GUVdALRPS6Ani3LPuiKvIEc6t1xfDsKKnItgFUFYQJTlQ66NZX9h6qeq9yj5UaIbhTOS7Xublb9U7mJqQ7huhRg5onNuYx72bhGQ;24:y6H6b4NR/7tABiYyMrAKtUm6+g7U4AkJcILORGIPyO5hywB7OwHASLuJ/PUsQG9e0Dz+r7uq+R8IejIiMyEOg+I50LystFqkCdXGn6pDJZg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2463;7:9MStioHxpY1yh0HgCqCmU0Ow5QInPjS7C1mj3yrLNkcKVTxK3N0Jj8ngtnZTLQlQLaq2qsqdgjgex5WGOC6IwLGAOSF81prG34YNyLDi0ZHmkY3uzLSfSCmwnr/kEM942h6RoiANeBV2QgznitxJfTmoz1gwfpLOnyxMEAWbaR0lu85Hp3QbNKalAmLpzq6+gWeZ9cAqC9sof+1Bpx8PtGkWFi/v9LQ5LGcntLIXAd2eN+XR/QvHeE239BjZcKLNH2g7m0r6/bBr4w+8oeM0k+dyriZpYWVpKUQs4YztIdgnCosDDzAjzJ72Z+M9joeoHePQqaVmqxTKnzWuNwxInA== X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2017 10:23:05.5120 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0802MB2463 X-SW-Source: 2017/txt/msg00371.txt.bz2 --rbyt4rqhc4y3uqxd Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-length: 477 The NEON-optimised implementation of memchr has a couple of minor issues - it does not mask off the higher bits of the input character, and it uses a signed comparison instead of unsigned within the smallstr loop. This patch addresses both of these issues. ChangeLog: 2017-06-02 Prakhar Bahuguna * libc/machine/arm/memchr.S: Add and instruction to mask off all but the lowest byte. Change blt to blo. Okay for master? -- Prakhar Bahuguna --rbyt4rqhc4y3uqxd Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment; filename="0001-Fix-minor-issues-in-memchr-NEON-implementation.patch" Content-length: 925 >From ac13527b4d7a5f91088920c59bc53b0a771858e1 Mon Sep 17 00:00:00 2001 From: Prakhar Bahuguna Date: Fri, 2 Jun 2017 10:22:32 +0100 Subject: [PATCH] Fix minor issues in memchr NEON implementation --- newlib/libc/machine/arm/memchr.S | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/newlib/libc/machine/arm/memchr.S b/newlib/libc/machine/arm/memchr.S index b5dcf83c0..7c22b117e 100644 --- a/newlib/libc/machine/arm/memchr.S +++ b/newlib/libc/machine/arm/memchr.S @@ -135,10 +135,11 @@ memchr: /* Use a simple loop if there are less than 8 bytes to search. */ cmp cntin, #7 bhi .Llargestr + and chrin, chrin, #0xff .Lsmallstr: subs cntin, cntin, #1 - blt .Lnotfound /* Return not found if reached end. */ + blo .Lnotfound /* Return not found if reached end. */ ldrb tmp, [srcin], #1 cmp tmp, chrin bne .Lsmallstr /* Loop again if not found. */ -- 2.13.0 --rbyt4rqhc4y3uqxd--