On Thu, Jul 18, 2024 at 9:29 AM Jakub Jelinek <ja...@redhat.com> wrote:
>
> On Thu, Jul 18, 2024 at 03:23:05PM +0800, MayShao-oc wrote:
> > From: mayshao <mayshao...@zhaoxin.com>
> >
> > Hi Jakub:
> >
> >     Thanks for your review,We should just amend this to handle Zhaoxin.
> >
> >     Bootstrapped /regtested X86_64.
> >
> >     Ok for trunk?
> > BR
> > Mayshao
> >
> > libatomic/ChangeLog:
> >
> >       PR target/104688
> >       * config/x86/init.c (__libat_feat1_init): Don't clear
> >       bit_AVX on ZHAOXIN CPUs.
> > ---
> >  libatomic/config/x86/init.c | 13 ++++++++-----
> >  1 file changed, 8 insertions(+), 5 deletions(-)
> >
> > diff --git a/libatomic/config/x86/init.c b/libatomic/config/x86/init.c
> > index a75be3f175c..0d6864909bb 100644
> > --- a/libatomic/config/x86/init.c
> > +++ b/libatomic/config/x86/init.c
> > @@ -39,12 +39,15 @@ __libat_feat1_init (void)
> >        == (bit_AVX | bit_CMPXCHG16B))
> >      {
> >        /* Intel SDM guarantees that 16-byte VMOVDQA on 16-byte aligned 
> > address
> > -      is atomic, and AMD is going to do something similar soon.
> > -      We don't have a guarantee from vendors of other CPUs with AVX,
> > -      like Zhaoxin and VIA.  */
> > -      unsigned int ecx2 = 0;
> > +      is atomic, and AMD is going to do something similar soon. Zhaoxin 
> > also
>
> Two spaces before Zhaoxin (and also should go on another line).
>
> > +      guarantees this. We don't have a guarantee from vendors of other CPUs
>
> Two spaces before We (and again, the line will be too long).
>
> > +      with AVX,like VIA.  */
>
> Space before like
>
> > +      unsigned int ecx2 = 0, family = 0;

No need to initialize these two variables. Please also add one line of
vertical space after variable declarations.

OK with the above change and with Jakub's proposed formatting changes.

Thanks,
Uros.

> > +      family = (eax >> 8) & 0x0f;
> >        __get_cpuid (0, &eax, &ebx, &ecx2, &edx);
> > -      if (ecx2 != signature_INTEL_ecx && ecx2 != signature_AMD_ecx)
> > +      if (ecx2 != signature_INTEL_ecx && ecx2 != signature_AMD_ecx
>
> If the whole condition can't fit on one line, then each subcondition should
> be on a separate line, so linebreak + indentation should be added also
> before && ecx2 != signature_AMD_ecx
>
> > +          && !(ecx2 == signature_CENTAUR_ecx && family > 0x6)
> > +          && ecx2 != signature_SHANGHAI_ecx)
> >       FEAT1_REGISTER &= ~bit_AVX;
> >      }
> >  #endif
> > --
> > 2.27.0
>
> Otherwise LGTM, but please give Uros a day or two to chime in.
>
>         Jakub
>

Reply via email to