x86: Allow integer conversion without suffix in AT&T syntax
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 3 Mar 2020 15:39:18 +0000 (07:39 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 3 Mar 2020 15:39:35 +0000 (07:39 -0800)
commit10d97a0f99079325bf85e17cc741496e686a6b74
treeda805cda7b6874155800343de4d121ad743b3dfc
parent79d72f45a7c9b8b92c7d0452caf968b6709a0d44
x86: Allow integer conversion without suffix in AT&T syntax

According to gas manual, suffix in instruction mnemonics isn't always
required:

When there is no sizing suffix and no (suitable) register operands to
deduce the size of memory operands, with a few exceptions and where long
operand size is possible in the first place, operand size will default
to long in 32- and 64-bit modes.

This includes cvtsi2sd, cvtsi2ss, vcvtsi2sd, vcvtsi2ss, vcvtusi2sd and
vcvtusi2ss.  Since they are used in GCC 8 and older GCC releases, they
must be allowed without suffix in AT&T syntax.

gas/

PR gas/25622
* testsuite/gas/i386/i386.exp: Run x86-64-default-suffix and
x86-64-default-suffix-avx.
* testsuite/gas/i386/noreg64.s: Remove cvtsi2sd, cvtsi2ss,
vcvtsi2sd, vcvtsi2ss, vcvtusi2sd and vcvtusi2ss entries.
* testsuite/gas/i386/noreg64.d: Updated.
* testsuite/gas/i386/noreg64.l: Likewise.
* testsuite/gas/i386/x86-64-default-suffix-avx.d: New file.
* testsuite/gas/i386/x86-64-default-suffix.d: Likewise.
* testsuite/gas/i386/x86-64-default-suffix.s: Likewise.

opcodes/

PR gas/25622
* i386-opc.tbl: Add IgnoreSize to cvtsi2sd, cvtsi2ss, vcvtsi2sd,
vcvtsi2ss, vcvtusi2sd and vcvtusi2ss for AT&T syntax.
* i386-tbl.h: Regenerated.
gas/ChangeLog
gas/testsuite/gas/i386/i386.exp
gas/testsuite/gas/i386/noreg64.d
gas/testsuite/gas/i386/noreg64.l
gas/testsuite/gas/i386/noreg64.s
gas/testsuite/gas/i386/x86-64-default-suffix-avx.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-default-suffix.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-default-suffix.s [new file with mode: 0644]
opcodes/ChangeLog
opcodes/i386-opc.tbl
opcodes/i386-tbl.h