x86: make RegMem an opcode modifier
authorJan Beulich <jbeulich@suse.com>
Tue, 16 Jul 2019 07:31:36 +0000 (09:31 +0200)
committerJan Beulich <jbeulich@suse.com>
Tue, 16 Jul 2019 07:31:36 +0000 (09:31 +0200)
commitdfd6917457a3030ea4a4b6356f65216fab92d0b8
tree564ff316e799585e35f21a1cec2393a4d5d11e4d
parent21df382b918888de64749e977f185c4e10a5b838
x86: make RegMem an opcode modifier

... instead of an operand type bit: It's an insn property, not an
operand one.  There's just one actual change to be made to the
templates: Most are now required to have the (unswapped) destination go
into ModR/M.rm, so VMOVD template needs its opcode adjusted accordingly
and its operands swapped.  {,V}MOVS{S,D}, otoh, are left alone in this
regard, as otherwise generated code would differ from what we've been
producing so far (which I don't think is wanted).

Take the opportunity and add a missing IgnoreSize to pextrb (leading to
an error in 16-bit mode), and take the liberty to once again drop stray
IgnoreSize attributes from lines changed and neighboring related ones.
gas/ChangeLog
gas/config/tc-i386.c
opcodes/ChangeLog
opcodes/i386-gen.c
opcodes/i386-init.h
opcodes/i386-opc.h
opcodes/i386-opc.tbl
opcodes/i386-tbl.h