i386: Only check suffix in instruction mnemonic
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 8 Nov 2019 17:31:06 +0000 (09:31 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 8 Nov 2019 17:31:17 +0000 (09:31 -0800)
commitdc2be329b9508395b7270b7c3bebc19a6f1e2e07
tree04840e8c94ba97be2d64220119e2a70cb77f9c39
parent992a70401ec229425ee75b2ad9b731f30d2de391
i386: Only check suffix in instruction mnemonic

We should check suffix in instruction mnemonic when matching instruction.
In Intel syntax, normally we check for memory operand size.  But the same
mnemonic with 2 different encodings can have the same memory operand
size and i.suffix is set to LONG_DOUBLE_MNEM_SUFFIX from memory operand
size in Intel syntax to distinguish them.  When there is no suffix in
mnemonic, we check LONG_DOUBLE_MNEM_SUFFIX in i.suffix for mnemonic
suffix.

gas/

PR gas/25167
* config/tc-i386.c (match_template): Don't check instruction
suffix set from operand.
* testsuite/gas/i386/code16.d: New file.
* testsuite/gas/i386/code16.s: Likewise.
* testsuite/gas/i386/i386.exp: Run code16.
* testsuite/gas/i386/x86-64-branch-4.l: Updated.

opcodes/

PR gas/25167
* i386-opc.tbl: Remove IgnoreSize from cmpsd and movsd.
* i386-tbl.h: Regenerated.
gas/ChangeLog
gas/config/tc-i386.c
gas/testsuite/gas/i386/code16.d [new file with mode: 0644]
gas/testsuite/gas/i386/code16.s [new file with mode: 0644]
gas/testsuite/gas/i386/i386.exp
gas/testsuite/gas/i386/x86-64-branch-4.l
opcodes/ChangeLog
opcodes/i386-opc.tbl
opcodes/i386-tbl.h