This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH v2 2/2] aarch64: Optimized memcpy and memmove for Kunpeng processor
- From: Wilco Dijkstra <Wilco dot Dijkstra at arm dot com>
- To: Xuelei Zhang <zhangxuelei4 at huawei dot com>, "libc-alpha at sourceware dot org" <libc-alpha at sourceware dot org>, nd <nd at arm dot com>, "siddhesh at gotplt dot org" <siddhesh at gotplt dot org>, "jiangyikun at huawei dot com" <jiangyikun at huawei dot com>, "yikunkero at gmail dot com" <yikunkero at gmail dot com>
- Cc: nd <nd at arm dot com>
- Date: Tue, 22 Oct 2019 18:29:21 +0000
- Subject: Re: [PATCH v2 2/2] aarch64: Optimized memcpy and memmove for Kunpeng processor
- 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
- 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=RuVPmzhtG3ZiiTiyuVw189FpnvRYkjlvVTjMh1Slc1k=; b=SgCxNY94F6jy3vjq9equiWXU1xzQxq5iYgHJB8kRMHXjCniYMSRmJdqbMg034yPyouj+ui5DtmQ0VFtFNmplT6s084Oy9/RTQRWPCsNJzcYuuPkuNx1ohZOTC8rJBgvPTXaf/pGO0fmY/bxgbKlnHIzv0B6zL2cHLbd4Fe6LYaXOhBJaWFiyt6dLEyoto2G6WgznYDxuqngFFPj7TDcsHc76Hv/cbwamynhsnOU0MAl1uEvPvfFx6NsVqwZPQ9kPfF2IrImwbgP5mXYHYaG5tVRfmcXQh3OpK6pur99gRzNrfkQeh6dzq421nWFKRNUdOc+lxJzzhXBy6ZcdNSki3w==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QqEYZ9Hzk4Gr31HPVB7eM8jlX+qr6lkCHsVfCZHzV9U6weZJ6cwnFLGBRdjOAQ3bmBPqk4KtCPGsxhLn84MGGE8lYAht+NMys80WHKgfjEmz89YLjYsrqVlXJ98OyPAnnDLF/VecUskXGlqSXMeJEgqjYvIJE4VegK7PBagMbZIFMBOOYFLtrrytvxBe7VpEbHRbDkk87jkCNiOmaBYpjZ6NTWxnxF0lBeA+nKJ+jQwZtayGR+Lod4arUPvsyKAUA2QAvc1pa2Kp1wFzzg50T7VTYMQC4fqtS/wij7Jff2By0IcUeIHSbKPgPX4PYwJ0kkWtO628keh1C11ho28cag==
- Original-authentication-results: spf=none (sender IP is ) smtp.mailfrom=Wilco dot Dijkstra at arm dot com;
- References: <20191017131548.10808-1-zhangxuelei4@huawei.com>
Hi Xuelei,
In order to select the right memmove implementation, multiarch/memmove.c needs
similar changes as multiarch/memcpy.c.
Also since the memmove entry sequence does both check for medium and large cases, the
full overlap check should be done in both. Currently only sizes 96-512 benefit, not the
move_long case:
+ /* long move: more than 512 bytes align the dstend */
+ .p2align 4
+L(move_long):
+1:
+ add srcend, src, count
+ add dstend, dstin, count
This should do the same as move_middle:
+L(move_middle):
+ cbz tmp1, 3f
Wilco