Re: [PATCH 5/7] x86, boot, LLVM: Use regparm=0 for memcpy and memset

From: H. Peter Anvin
Date: Thu Jun 22 2017 - 18:51:02 EST


On 03/17/17 05:08, Peter Zijlstra wrote:
> On Thu, Mar 16, 2017 at 05:15:18PM -0700, Michael Davidson wrote:
>> Use the standard regparm=0 calling convention for memcpy and
>> memset when building with clang.
>>
>> This is a work around for a long standing clang bug
>> (see https://llvm.org/bugs/show_bug.cgi?id=3997) where
>> clang always uses the standard regparm=0 calling convention
>> for any implcit calls to memcpy and memset that it generates
>> (eg for structure assignments and initialization) even if an
>> alternate calling convention such as regparm=3 has been specified.
>
> Seriously, fix LLVM already.
>

Yes, this is a real stinker, in no small part because once clang is
fixed to DTRT then this is actually broken...

-hpa