This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: Bug: gather/scatter accepts same registers in destination/src and index
- From: "Michael V. Zolotukhin" <michael dot v dot zolotukhin at gmail dot com>
- To: Jan Beulich <JBeulich at suse dot com>
- Cc: "H.J. Lu" <hjl dot tools at gmail dot com>, "binutils at sourceware dot org" <binutils at sourceware dot org>
- Date: Tue, 21 Jan 2014 15:51:16 +0400
- Subject: Re: Bug: gather/scatter accepts same registers in destination/src and index
- Authentication-results: sourceware.org; auth=none
- References: <CANtU078XuYEQ8AnKR2BQoRSSByKLAf_TrzdpjEO=4h09U524gQ at mail dot gmail dot com> <52DE438B0200007800115421 at nat28 dot tlf dot novell dot com> <20140121111627 dot GC13904 at msticlxl57 dot ims dot intel dot com> <52DE6BA20200007800115577 at nat28 dot tlf dot novell dot com>
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