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: [PATCH] Allow setting CpuVRex bit in .arch directive


On Tue, May 24, 2016 at 12:02:42PM -0700, H.J. Lu wrote:
> > Try:
> >         .arch corei7
> >         .arch .avx512f
> >         vpxord %xmm15, %xmm15, %xmm15
> >         vpxord %xmm16, %xmm16, %xmm16
> >
> > I get:
> > /tmp/1.s: Assembler messages:
> > /tmp/1.s:4: Error: bad register name `%xmm16'
> 
> I opened:
> 
> https://sourceware.org/bugzilla/show_bug.cgi?id=20141
> 
> > and couldn't find any way how to make that assemble if I want to
> > disable even some ISA set and thus have to start with .arch <cpuname>
> > and add all the ISA sets I want to enable on top of that CPU.
> 
> So you want to just disable  AVX512D, no thing else.  Wouldn't a
> ".noarch" directive work better?

Well, to be able to generically disable specific ISAs (one, several).
An alternative to .noarch would be just allowing
.arch .noavx512vl etc. (like it already allows .no87).
Perhaps instead of mentioning all the ISAs once again with "no" prefix
just handle it generically, if .arch .no* is used, look first for
entries with explicit no at the beginning, and if not found, look for
the string after the prefix in the table and assume negate.

Anyway, still it would be good to be able to change (both set and remove)
the CpuVRex bit.

	Jakub


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