This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [committed, PATCH] x86: Don't disable SSE4a when disabling SSE4


On Sun, Feb 16, 2020 at 05:19:39PM -0800, H.J. Lu wrote:
> On Sun, Feb 16, 2020 at 5:06 PM Alan Modra <amodra@gmail.com> wrote:
> >
> > On Sun, Feb 16, 2020 at 08:47:56AM -0800, H.J. Lu wrote:
> > > commit 7deea9aad8 changed nosse4 to include CpuSSE4a.  But AMD SSE4a is
> > > a superset of SSE3 and Intel SSE4 is a superset of SSSE3.  Disable Intel
> > > SSE4 shouldn't disable AMD SSE4a.  This patch restores nosse4.  It also
> > > adds .sse4a and nosse4a.
> >
> > diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c
> > index 79f4cc9d25..45106bcf6d 100644
> > --- a/opcodes/i386-gen.c
> > +++ b/opcodes/i386-gen.c
> > @@ -326,6 +326,8 @@ static initializer cpu_flag_init[] =
> >    { "CPU_ANY_SSE2_FLAGS",
> >      "CPU_ANY_SSE3_FLAGS|CpuSSE2" },
> >    { "CPU_ANY_SSE3_FLAGS",
> > +  { "CPU_ANY_SSE4A_FLAGS",
> > +    "CPU_ANY_SSE3_FLAGS|CpuSSE4a" },
> >      "CPU_ANY_SSSE3_FLAGS|CpuSSE3|CpuSSE4a" },
> >    { "CPU_ANY_SSSE3_FLAGS",
> >      "CPU_ANY_SSE4_1_FLAGS|CpuSSSE3" },
> > @@ -333,8 +335,6 @@ static initializer cpu_flag_init[] =
> >      "CPU_ANY_SSE4_2_FLAGS|CpuSSE4_1" },
> >    { "CPU_ANY_SSE4_2_FLAGS",
> >      "CpuSSE4_2" },
> > -  { "CPU_ANY_SSE4_FLAGS",
> > -    "CPU_ANY_SSE4_1_FLAGS|CpuSSE4a" },
> >    { "CPU_ANY_AVX_FLAGS",
> >      "CPU_ANY_AVX2_FLAGS|CpuF16C|CpuFMA|CpuFMA4|CpuXOP|CpuAVX" },
> >    { "CPU_ANY_AVX2_FLAGS",
> >
> > Merge error?
> 
> Is there anything wrong?

It doesn't compile.  The CPU_ANY_SSE4A_FLAGS entry is added inside the
CPU_ANY_SSE3_FLAGS entry.  Take a look at the diff.

-- 
Alan Modra
Australia Development Lab, IBM


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]