This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH 05/10] x86: add tests to cover defaulting of operand sizes for ambiguous insns
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Jan Beulich <jbeulich at suse dot com>
- Cc: "binutils at sourceware dot org" <binutils at sourceware dot org>
- Date: Tue, 6 Aug 2019 13:57:33 -0700
- Subject: Re: [PATCH 05/10] x86: add tests to cover defaulting of operand sizes for ambiguous insns
- References: <a10770b5-f659-6259-6054-c0603f816e70@suse.com> <9e97603d-5df9-b43c-08bd-031346427915@suse.com> <CAMe9rOpAaG4JnWUO4PA3iX9bvo18uWEA2=b9fLTvBOg4ApC6iQ@mail.gmail.com>
On Tue, Aug 6, 2019 at 12:56 PM H.J. Lu <hjl.tools@gmail.com> wrote:
>
> On Tue, Aug 6, 2019 at 7:26 AM Jan Beulich <jbeulich@suse.com> wrote:
>
> I don't see anything wrong since these are just tests.
>
> > Prior to changing the logic in the assembler install tests to make sure
> > the present defaulting of operand sizes won't get broken. There are a
> > few potential anomalies pointed out by this:
> > - arithmetic insns (add, sub, etc) allow defaulting when their immediate
> > fits in (signed) 8 bits, but they fail to assemble with larger values,
>
> The default destination is 32-bit with some 32-bit immediate operands
> encoded as 8-bit.
>
> > - mov, other than arithmetic insns, doesn't allow any defaulting,
> > - movsx/movzx default to byte sources (in AT&T mode), and their special
> > casing needs to be adjusted first
>
> Does AT&T syntax support movsx/movzx mnemonic?
To answer my question, there are
movsx, 2, 0xfbe, None, 2, Cpu386,
Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTSyntax, {
Reg8|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
movsx, 2, 0xfbf, None, 2, Cpu386,
Modrm|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTSyntax, {
Reg16|Unspecified|BaseIndex, Reg32|Reg64 }
movsx, 2, 0x63, None, 1, Cpu64,
Modrm|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64|ATTSyntax, {
Reg32|Unspecified|BaseIndex, Reg64 }
Without suffix, memory size is 8 bit.
> > - bt and friends allow defaulting, while shl and friends don't,
> > - ambiguous AVX and AVX512 insns don't allow defaulting.
> > This should ultimately all become consistent (perhaps with the exception
> > some of the SIMD insns); respective tests will be added to the test
> > cases here as the issues get addressed.
>
> AT&T syntax isn't very consistent. Improve its consistency is OK as long
> as it is compatible with existing assembly codes.
>
> > gas/
> > 2019-08-XX Jan Beulich <jbeulich@suse.com>
> >
> > * testsuite/gas/i386/noreg16.d, testsuite/gas/i386/noreg16.s,
> > testsuite/gas/i386/noreg32.d, testsuite/gas/i386/noreg32.s,
> > testsuite/gas/i386/noreg64.d, testsuite/gas/i386/noreg64.s: New.
> > * testsuite/gas/i386/i386.exp: Run new tests.
> >
>
> OK with clarification of commit message.
>
> Thanks.
>
> --
> H.J.
--
H.J.