* Florian Weimer:

> * Jeff Law:
>
>> On 03/29/2018 08:00 AM, Florian Weimer wrote:
>>> This patch performs lazy initialization of the relevant CPUID feature
>>> register value.  It will needlessly invoke the CPUID determination code
>>> on architectures which lack CPUID support or support for the feature
>>> register, but I think it's not worth to avoid the complexity for that.
>>> 
>>> I verified manually that the CMPXCHG16B implementation is still selected
>>> for a 128-bit load after the change.  I don't know how to write an
>>> automated test for that.
>>> 
>>> Thanks,
>>> Florian
>>> 
>>> pr60790.patch
>>> 
>>> 
>>> Index: libatomic/ChangeLog
>>> ===================================================================
>>> --- libatomic/ChangeLog     (revision 258952)
>>> +++ libatomic/ChangeLog     (working copy)
>>> @@ -1,3 +1,18 @@
>>> +2018-03-29  Florian Weimer  <fwei...@tor.usersys.redhat.com>
>>> +
>>> +   PR libgcc/60790
>>> +   x86: Do not assume ELF constructors run before IFUNC resolvers.
>>> +   * config/x86/host-config.h (libat_feat1_ecx, libat_feat1_edx):
>>> +   Remove declarations.
>>> +   (__libat_feat1, __libat_feat1_init): Declare.
>>> +   (FEAT1_REGISTER): Define.
>>> +   (load_feat1): New function.
>>> +   (IFUNC_COND_1): Adjust.
>>> +   * config/x86/init.c (libat_feat1_ecx, libat_feat1_edx)
>>> +   (init_cpuid): Remove definitions.
>>> +   (__libat_feat1): New variable.
>>> +   (__libat_feat1_init): New function.
>> OK.
>
> Here is the backport to gcc-8-branch.

Ping?  <https://gcc.gnu.org/ml/gcc-patches/2018-10/msg00524.html>

Reply via email to