Uros Bizjak <ubiz...@gmail.com> 于2021年7月2日周五 下午7:07写道:
>
> 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.

Ok, so I suppose cvt*2si requires those suffixes on purpose, while
cvt*2usi don't for some reason.

Thanks for your reply.

-- 
Regards,

Hongyu, Wang

Reply via email to