This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
Re: [PATCH][AArch64] Fix issue with dst bias in memset
- From: "Richard Earnshaw (lists)" <Richard dot Earnshaw at arm dot com>
- To: Wilco Dijkstra <Wilco dot Dijkstra at arm dot com>, "newlib at sourceware dot org" <newlib at sourceware dot org>
- Cc: nd <nd at arm dot com>
- Date: Thu, 8 Nov 2018 16:46:40 +0000
- Subject: Re: [PATCH][AArch64] Fix issue with dst bias in memset
- References: <DB5PR08MB103019058A406665BF08BCB883C50@DB5PR08MB1030.eurprd08.prod.outlook.com>
On 08/11/2018 15:50, Wilco Dijkstra wrote:
> This patch fixes an issue in the previous memset loop change. If the
> zva size is >= 256 and there are more than 64 bytes left, we could enter
> the loop and thus need to rebias dst by 32 as well.
>
> Since no known CPUs use this size this can't be tested natively, so I've
> tested it on a simulator initialized with a large zva size.
>
> --
>
> diff --git a/newlib/libc/machine/aarch64/memset.S b/newlib/libc/machine/aarch64/memset.S
> index 7c8fe583bf88722d73b90ec470c72b509e5be137..103e3f8bb0f20a5d02578f2379620687eae10a52 100644
> --- a/newlib/libc/machine/aarch64/memset.S
> +++ b/newlib/libc/machine/aarch64/memset.S
> @@ -233,6 +233,7 @@ L(zva_other):
> subs count, count, zva_len
> b.hs 3b
> 4: add count, count, zva_len
> + sub dst, dst, 32 /* Bias dst for tail loop. */
> b L(tail64)
>
> .size memset, . - memset
>
Pushed