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: Bug: gather/scatter accepts same registers in destination/src and index


Hi,

Thanks for the review, my answers are below.

> > @@ -4374,11 +4374,9 @@ check_VecOperands (const insn_template *t)
> >        if (i.reg_operands == 2 && !i.mask)
> >  	{
> >  	  gas_assert (i.types[0].bitfield.regxmm
> > -		      || i.types[0].bitfield.regymm
> > -		      || i.types[0].bitfield.regzmm);
> > +		      || i.types[0].bitfield.regymm);
> >  	  gas_assert (i.types[2].bitfield.regxmm
> > -		      || i.types[2].bitfield.regymm
> > -		      || i.types[2].bitfield.regzmm);
> > +		      || i.types[2].bitfield.regymm);
> 
> How come zmm registers would no longer get here?
That check is for AVX gathers, which don't allow ZMM-registers.

> I don't think scatter has as strict requirements as gather, hence
> the message would be misleading if indeed possible to be issued
> for a scatter instruction. Hence _if_ scatter handling can make it
> here, separate messages would be needed; if not, the message
> should be left unchanged.
Thanks, indeed.  Scatters don't need that check.  I'll update the patch shortly.

Michael 
> Jan


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