On Fri, Jul 2, 2021 at 12:48 PM Hongyu Wang <wwwhhhyyy...@gmail.com> wrote:
>
> >
> > On Fri, Jul 2, 2021 at 10:30 AM Hongyu Wang <hongyu.w...@intel.com> wrote:
> > >
> > > Hi,
> > >
> > > For instructions like cvtss2si, there is no need to output the 'l'
> > > or 'q' suffixes just like cvtss2usi, since the output operand is always
> > > register and those suffixes are only used to distinguish ambiguous
> > > memory operands.
> > >
> > > Bootstraped and regression tested on x86_64-linux-gnu {,-m32}.
> > > OK for master?
> >
> > No, we leave suffixes for additional assembler checks.
> >
> > Uros.
> >
>
> What is the difference between cvtss2si and cvtss2usi? I just don't
> understand why only the singed convert requires suffixes.
>
> Assembler encodes these cvt*2si instruction according to the output
> operand size, it has same behavior w and w/o the suffixes. AFAIK the
> suffixes are needed when the assembler could not distinguish the
> operand size, otherwise it seems to be redundant.

We also don't need suffixes for:

       movl    %edi, %eax

but we emit them anyway.

Uros.

Reply via email to