This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] powerpc: Use aligned stores in memset
On 08/18/2017 08:51 AM, Rajalakshmi Srinivasaraghavan wrote:
>
>
> On 08/18/2017 11:51 AM, Florian Weimer wrote:
>> On 08/18/2017 07:11 AM, Rajalakshmi Srinivasaraghavan wrote:
>>> * sysdeps/powerpc/powerpc64/power8/memset.S: Store byte by byte
>>> for unaligned inputs if size is less than 8.
>>
>> This makes me rather nervous. powerpc64le was supposed to have
>> reasonable efficient unaligned loads and stores. GCC happily generates
>> them, too.
>
> This is meant ONLY for caching inhibited accesses. Caching Inhibited
> accesses are required to be Guarded and properly aligned.
The intent is to support memset for such memory regions, right? This
change is insufficient. You have to fix GCC as well because it will
inline memset of unaligned pointers, like this:
typedef long __attribute__ ((aligned(1))) long_unaligned;
void
clear (long_unaligned *p)
{
memset (p, 0, sizeof (*p));
}
clear:
li 9,0
std 9,0(3)
blr
That's why I think your change is not useful in isolation.
Thanks,
Florian