]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
Support APX NDD
authorkonglin1 <lingling.kong@intel.com>
Thu, 28 Dec 2023 01:06:40 +0000 (01:06 +0000)
committerCui, Lili <lili.cui@intel.com>
Thu, 28 Dec 2023 11:37:16 +0000 (11:37 +0000)
commit3083f376435662c747ab946bb84e6e6698985610
tree8e62c5347edc6fc10f602ed98d36a439a20bd55c
parentce9cddf5dd2a614815b1d9affa67c9419599ff63
Support APX NDD

opcodes/ChangeLog:

* opcodes/i386-dis-evex-reg.h: Handle for REG_EVEX_MAP4_80,
REG_EVEX_MAP4_81, REG_EVEX_MAP4_83,  REG_EVEX_MAP4_F6,
REG_EVEX_MAP4_F7, REG_EVEX_MAP4_FE, REG_EVEX_MAP4_FF.
* opcodes/i386-dis-evex.h: Add NDD insn.
* opcodes/i386-dis.c (nd): New define.
(VexGb): Ditto.
(VexGv): Ditto.
(get_valid_dis386): Change for NDD decode.
(print_insn): Ditto.
(putop): Ditto.
(intel_operand_size): Ditto.
(OP_E_memory): Ditto.
(OP_VEX): Ditto.
* opcodes/i386-opc.h (VexVVVV_DST): New.
* opcodes/i386-opc.tbl: Add APX NDD instructions and adjust VexVVVV.
* opcodes/i386-tbl.h: Regenerated.

gas/ChangeLog:

* gas/config/tc-i386.c (operand_size_match):
Support APX NDD that the number of operands is 3.
(build_apx_evex_prefix): Change for ndd encode.
(process_operands): Ditto.
(build_modrm_byte): Ditto.
(match_template): Support swap the first two operands for
APX NDD.
* testsuite/gas/i386/x86-64.exp: Add x86-64-apx-ndd.
* testsuite/gas/i386/x86-64-apx-ndd.d: New test.
* testsuite/gas/i386/x86-64-apx-ndd.s: Ditto.
* testsuite/gas/i386/x86-64-pseudos.d: Add test.
* testsuite/gas/i386/x86-64-pseudos.s: Ditto.
* testsuite/gas/i386/x86-64-apx-evex-promoted-bad.d : Ditto.
* testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s : Ditto.
14 files changed:
gas/config/tc-i386.c
gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.d
gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s
gas/testsuite/gas/i386/x86-64-apx-ndd.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-apx-ndd.s [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-pseudos.d
gas/testsuite/gas/i386/x86-64-pseudos.s
gas/testsuite/gas/i386/x86-64.exp
opcodes/i386-dis-evex-reg.h
opcodes/i386-dis-evex.h
opcodes/i386-dis.c
opcodes/i386-opc.h
opcodes/i386-opc.tbl
opcodes/i386-tbl.h