From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10087.outbound.protection.outlook.com [40.107.1.87]) by sourceware.org (Postfix) with ESMTPS id 700853987941 for ; Tue, 19 May 2020 09:27:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 700853987941 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=Szabolcs.Nagy@arm.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Jz4QWCOmKU8bfXb4n3lz9sKpYIeSSlPeNNbg46zxXtw=; b=ZP+EV2ynvt5twQ5QzJsPiY9nlDjwggULvLWr6U/yhyCE1KsAXG6CZOzd7PQdVzdbrSOnm0cZaSd4UMUAKUGjvXL2v6XDG6dqdtC+sz/6fkcyOWRTSR162c5Mc5L2/c8hfryq7yfbcz9cBEu05W6iLS3Y1K5ofu5adK9uOB/XEoo= Received: from DB6PR07CA0078.eurprd07.prod.outlook.com (2603:10a6:6:2b::16) by HE1PR0801MB2075.eurprd08.prod.outlook.com (2603:10a6:3:51::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3000.20; Tue, 19 May 2020 09:27:45 +0000 Received: from DB5EUR03FT030.eop-EUR03.prod.protection.outlook.com (2603:10a6:6:2b:cafe::ab) by DB6PR07CA0078.outlook.office365.com (2603:10a6:6:2b::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3021.12 via Frontend Transport; Tue, 19 May 2020 09:27:45 +0000 Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; sourceware.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; sourceware.org; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5EUR03FT030.mail.protection.outlook.com (10.152.20.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3000.19 via Frontend Transport; Tue, 19 May 2020 09:27:45 +0000 Received: ("Tessian outbound 9eabd37e4fee:v57"); Tue, 19 May 2020 09:27:44 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 9b4e3504e8878668 X-CR-MTA-TID: 64aa7808 Received: from ca0352af7e71.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 6B18771C-67E0-4D79-BCBF-1B6AB1A148FF.1; Tue, 19 May 2020 09:27:38 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id ca0352af7e71.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 19 May 2020 09:27:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Gyw4Ky08K67ETzqOh9tiexHnZmgytyAQxPQhtGKS7blZSXYSbRQQMJE3COnEqyt4vnEbpUyTF78GmZi9Lnu3Pqa5sIqVTe55PdBX5U6Gr8d31qt+2qP0qarsHPqu42rXNaTszCcCQEDAs1P0G+JG6WmEKt7r3left5cOi4B2F1+G3NSy7TQBI/opxyQB5AEFefC1TwYePalhMqjhVyKbKvUmDFIDXKMZsQqzDTg5WqzK/Hp4NGF5UwKAlERSR30PxRGcq7FV5dzvIxwR7ghf6fI7WuHdr/90jiGlVmf4iOBx628UxeWw5D5EIoyY0pbr76VmcMKwdXLuAh/Kkoe8cw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Jz4QWCOmKU8bfXb4n3lz9sKpYIeSSlPeNNbg46zxXtw=; b=XAgpEvsmSsLk7YJlgqsXrhYRm6bqAGt/glot4YD6FxVswj9e4sbkIyL8qMk1bYnWseO3WDVfEp6ala5zzMy4GyeriRLq0b0KQZgIR6v2pEzg0UUkCLELnKkdlkAQ3kCT2DtJqrJmrPOU1zSPcLwYAXa0V4CjlYsrHp6f+EimfzwWKL6R8Ns3fkh22Ji1KIoug7gfj2b/WZyTUT529E6q3DWG0i4kUjJHzycVZSpeuBkB2+zw5V+7iDEfBwxvrnkywG2vw3/AjF/C4uZ6bC2EMnHTFNBiI2DgmTEFTzCn7k+k8BfR2baIiazKzk5g6o0BAl42WLr/xb/7nRRNevMTCQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Jz4QWCOmKU8bfXb4n3lz9sKpYIeSSlPeNNbg46zxXtw=; b=ZP+EV2ynvt5twQ5QzJsPiY9nlDjwggULvLWr6U/yhyCE1KsAXG6CZOzd7PQdVzdbrSOnm0cZaSd4UMUAKUGjvXL2v6XDG6dqdtC+sz/6fkcyOWRTSR162c5Mc5L2/c8hfryq7yfbcz9cBEu05W6iLS3Y1K5ofu5adK9uOB/XEoo= Authentication-Results-Original: sourceware.org; dkim=none (message not signed) header.d=none;sourceware.org; dmarc=none action=none header.from=arm.com; Received: from AM6PR08MB3047.eurprd08.prod.outlook.com (2603:10a6:209:4c::23) by AM6PR08MB4439.eurprd08.prod.outlook.com (2603:10a6:20b:be::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3000.27; Tue, 19 May 2020 09:27:37 +0000 Received: from AM6PR08MB3047.eurprd08.prod.outlook.com ([fe80::49fd:6ded:4da7:8862]) by AM6PR08MB3047.eurprd08.prod.outlook.com ([fe80::49fd:6ded:4da7:8862%7]) with mapi id 15.20.3000.034; Tue, 19 May 2020 09:27:37 +0000 From: Szabolcs Nagy To: libc-stable@sourceware.org Cc: Lexi Shao Subject: [COMMITTED 2.31] aarch64: fix strcpy and strnlen for big-endian [BZ #25824] Date: Tue, 19 May 2020 10:27:26 +0100 Message-Id: <20200519092726.16074-1-szabolcs.nagy@arm.com> X-Mailer: git-send-email 2.17.1 Content-Type: text/plain X-ClientProxiedBy: DM3PR12CA0088.namprd12.prod.outlook.com (2603:10b6:0:57::32) To AM6PR08MB3047.eurprd08.prod.outlook.com (2603:10a6:209:4c::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (217.140.106.55) by DM3PR12CA0088.namprd12.prod.outlook.com (2603:10b6:0:57::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3021.23 via Frontend Transport; Tue, 19 May 2020 09:27:36 +0000 X-Mailer: git-send-email 2.17.1 X-Originating-IP: [217.140.106.55] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: c1ec27b2-2e09-45e2-0054-08d7fbd6e3a1 X-MS-TrafficTypeDiagnostic: AM6PR08MB4439:|HE1PR0801MB2075: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true Content-Transfer-Encoding: quoted-printable NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:2803;OLM:10000; X-Forefront-PRVS: 040866B734 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: VfVEqLiRxuwnHmPq3RsMWJuEHkTda4j+4XKTTZ5hj+sQyicPIbrk9A2oNpXwWLJOTBqGxUPNg29yTXHoON5q/OjuvuCwzmDdASFVBX5ZatZIkGDhlceGWtbFTWLZhGHzMF+4uyXmEAO9WQSFuM8rUbbEwyGHVSGa1y/YoC4FE38Dw1sv4hksi4pJfFei2QObd82fCabZfiOLMa78X6sPhSrx59ybOhZvVJKC9rzwfFvjHBylBB38HzI2qH05JMchl/AZ+ZJZOHkm8dDMSnr5mP6zELo7xrK3wIpISPIZLpcmcR7XQd4Oh65v+lXLnSK+u92LuwiVMOpG7Niykh5xfuJ90d47tCj3s3Jenw68tqHAsMcNygY0N4eZWPOmAeOlsFnrqEq+2XBdaXFfe/Q6AeD3s7gVDk8aysBPmbgiiOSQeOZ5E21MYEyeaKVEztjXurPVyx0Vk2SMJmaoeBu1TMz3SFxUxbpz+bkKgRuy4yPUQLayNuEEuYkngKeX7Nh3 X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR08MB3047.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(376002)(366004)(346002)(136003)(39860400002)(396003)(66556008)(52116002)(44832011)(186003)(16526019)(1076003)(26005)(2906002)(6506007)(8676002)(6666004)(66946007)(8936002)(2616005)(956004)(6486002)(36756003)(316002)(5660300002)(478600001)(6512007)(86362001)(69590400007)(66476007)(6916009)(4326008); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: a27mpT9b0AD1t7gWkmfVJwU/WwQVkYpqJpXu1sxkiq739jeGenkkbeAFaRUY8eCaZh3DqLEnBWL0v3ATidHWtUuit9EMpVTu/+4pIDKoP0IcVY1Xc1HUi7Fgi6QDowkyfb9Gj88z65AGxolKFjC2EJsL6YTWPA5bpN0g0r5iqnGV/inPLd4o0vsQem5ubp010FNMWJ6akBITpB7qJixI+swLZAe02yIQ5waruphi0P9k+zAipwKKTOw06ok0SaieXaLAoK/Mc+IfAt9zMp/2adn/UVFgKIVrBKreMtmETbkSHExgQi2JMxBn6JF9UCDa9n7lwU3cGxkhe77OCgKruCSf0rgxD5ky5Y/Qk0xRs9v/fUPTvwpfj61jZqgPW5UXg3zrWrrFV1/EcuPqX2ZrbRcgOCTNY/8hCjDP2LC8JKDqgEKE9puopWqeLmojzBcLmbcq8MUVeJFxXmDJovCvK7DP7/enSi/UXlwxLX0UCPV8kCcZD6wzFV0/HM7Qe5Ao X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4439 Original-Authentication-Results: sourceware.org; dkim=none (message not signed) header.d=none; sourceware.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT030.eop-EUR03.prod.protection.outlook.com X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFTY:; SFS:(4636009)(39860400002)(346002)(136003)(376002)(396003)(46966005)(107886003)(81166007)(5660300002)(6916009)(1076003)(356005)(316002)(6666004)(47076004)(6512007)(36756003)(8936002)(82310400002)(6506007)(4326008)(8676002)(478600001)(26005)(16526019)(186003)(336012)(2906002)(86362001)(6486002)(69590400007)(70206006)(2616005)(70586007)(956004)(44832011)(82740400003); DIR:OUT; SFP:1101; X-MS-Office365-Filtering-Correlation-Id-Prvs: 8a10dcde-baf4-4fba-cf31-08d7fbd6de88 X-Forefront-PRVS: 040866B734 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: sNztSO57PEuXSKBM6aBhOLTyT8GgJMZ4VUWVbH4qAFnd01ZiL/Gi72qH4dki5OBH0WRN58YZ9UQQ6owQwoFIR7pGxjWKoUO583WnqCuTiRraVVAHpiHeL2ildN0emohBJALDPkbKXPYP048ZEWYEfcwacYSj7B0N+oIvhf+Bm2KMUFcERZbGmvZaYedaKb/IOEZLZiRBhSRPQqILfdGStecrcIYpN5GlEC3kpW22dJvu80lBL7GOd7ooXCKCLapXjdoW2Zdas4jaBDBL4K01cLWd702FuBLE3IKUwDffD2Fo4/QMuATemVmKeiew6gNd3t7p67iL/UiiLyIXvUZEGGJuLupRSE3A/GmjIXChW/h5K5ALmDQjjGEqCWYNNLFAspkwR4r1nhSt+JjiNJfHriHY6vQ1iLCNK7W5Ng5XNLa0gCC3vm/WCSvygsRS/2/VV165Cz9zrlaFgA6++qCAAeJKz63TpG/pxVvJIDYfUlINYfoapmNf9MorjS507kz+4xyDZvtjNIyx+8ld/YA/5cNfcs08dynMUL+X1+55+DU= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2020 09:27:45.6677 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c1ec27b2-2e09-45e2-0054-08d7fbd6e3a1 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB2075 X-Spam-Status: No, score=-19.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-stable@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-stable mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 May 2020 09:27:50 -0000 From: Lexi Shao This patch fixes the optimized implementation of strcpy and strnlen on a big-endian arm64 machine. The optimized method uses neon, which can process 128bit with one instruction. On a big-endian machine, the bit order should be reversed for the whole 128-bits double word. But with instuction rev64 datav.16b, datav.16b it reverses 64bits in the two halves rather than reversing 128bits. There is no such instruction as rev128 to reverse the 128bits, but we can fix this by loading the data registers accordingly. Fixes 0237b61526e7("aarch64: Optimized implementation of strcpy") and 2911cb68ed3d("aarch64: Optimized implementation of strnlen"). Signed-off-by: Lexi Shao Reviewed-by: Szabolcs Nagy (cherry picked from commit 59b64f9cbbf1e98c6d187873de6c363994aee19d) --- sysdeps/aarch64/strcpy.S | 5 +++++ sysdeps/aarch64/strnlen.S | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/sysdeps/aarch64/strcpy.S b/sysdeps/aarch64/strcpy.S index 548130e413..a8ff52c072 100644 --- a/sysdeps/aarch64/strcpy.S +++ b/sysdeps/aarch64/strcpy.S @@ -234,8 +234,13 @@ L(entry_no_page_cross): #endif /* calculate the loc value */ cmeq datav.16b, datav.16b, #0 +#ifdef __AARCH64EB__ + mov data1, datav.d[1] + mov data2, datav.d[0] +#else mov data1, datav.d[0] mov data2, datav.d[1] +#endif cmp data1, 0 csel data1, data1, data2, ne mov pos, 8 diff --git a/sysdeps/aarch64/strnlen.S b/sysdeps/aarch64/strnlen.S index 5981247dd9..086a5c7e99 100644 --- a/sysdeps/aarch64/strnlen.S +++ b/sysdeps/aarch64/strnlen.S @@ -154,8 +154,13 @@ L(loop_end): byte. */ cmeq datav.16b, datav.16b, #0 +#ifdef __AARCH64EB__ + mov data1, datav.d[1] + mov data2, datav.d[0] +#else mov data1, datav.d[0] mov data2, datav.d[1] +#endif cmp data1, 0 csel data1, data1, data2, ne sub len, src, srcin -- 2.17.1 IMPORTANT NOTICE: The contents of this email and any attachments are confid= ential and may also be privileged. If you are not the intended recipient, p= lease notify the sender immediately and do not disclose the contents to any= other person, use it for any purpose, or store or copy the information in = any medium. Thank you.