]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit - gas/config/tc-i386.c
x86: Use vexvvvv as the switch state to encode the vvvv register
authorCui, Lili <lili.cui@intel.com>
Mon, 6 May 2024 06:15:49 +0000 (14:15 +0800)
committerCui, Lili <lili.cui@intel.com>
Mon, 6 May 2024 10:16:42 +0000 (18:16 +0800)
commitf2a3a8814da7c18144e517c11ac84ef6799b0534
tree87c21200ba98da332d3017f2fb008580eba0a4ac
parentf4c1c984bf02e9326b8a2141702beb1542103d70
x86: Use vexvvvv as the switch state to encode the vvvv register

Use vexvvvv as the switch state, and replace VexVVVV with Src1VVVV.
Src1VVVV means using VEX.vvvv encodes the first source register
operand. The old logic did not check vexvvvv first, which made the
logic here very complicated.

gas/ChangeLog:

        * config/tc-i386.c (optimize_encoding): Replaced 1 with Src1VVVV.
        (build_modrm_byte): Used vexvvvv to encode the vvvv register.
        (s_insn): Replaced 1 with Src1VVVV.

opcodes/ChangeLog:

        * i386-opc.h (VexVVVV_DST): Adjusted the value.
        (Src1VVVV): New.
        * i386-opc.tbl: Replaced part VexVVVV with Src1VVVV.
* i386-tbl.h: Regenerated.
gas/config/tc-i386.c
opcodes/i386-opc.h
opcodes/i386-opc.tbl
opcodes/i386-tbl.h