Bug: gather/scatter accepts same registers in destination/src and index
Michael V. Zolotukhin
michael.v.zolotukhin@gmail.com
Tue Jan 21 11:51:00 GMT 2014
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
More information about the Binutils
mailing list