]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
Support Intel AVX10.2 convert instructions
authorLiwei Xu <liwei.xu@intel.com>
Wed, 16 Oct 2024 02:25:35 +0000 (10:25 +0800)
committerHaochen Jiang <haochen.jiang@intel.com>
Wed, 16 Oct 2024 02:25:35 +0000 (10:25 +0800)
commit3bac89e65f01b978b033f44f62dbe9bc526dd10a
tree4de6920acccd12aac0d62339ef656059fb2c4e9e
parent6f4024f86d15180833a439bbba0fe40e0d269729
Support Intel AVX10.2 convert instructions

In this patch, we will support AVX10.2 convert instructions. All
of them are new instruction forms.

Among all the instructions, vcvtbiasph2[b,h]f8[,s] needs extra care.
Since Operand 2 could indicate memory size, we do not need suffix
under ATTmode. However, we could not fold all three templates but only
XMM/YMM since the dst operand size are the same for them. Also, a new
iterator <cvt8> is added to reduce redundancy.

gas/
* testsuite/gas/i386/i386.exp: Add AVX10.2 tests.
* testsuite/gas/i386/x86-64.exp: Ditto.
* testsuite/gas/i386/avx10_2-256-cvt-intel.d: New.
* testsuite/gas/i386/avx10_2-256-cvt.d: Ditto.
* testsuite/gas/i386/avx10_2-256-cvt.s: Ditto.
* testsuite/gas/i386/avx10_2-512-cvt-intel.d: Ditto.
* testsuite/gas/i386/avx10_2-512-cvt.d: Ditto.
* testsuite/gas/i386/avx10_2-512-cvt.s: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-256-cvt-intel.d: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-256-cvt.d: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-256-cvt.s: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-512-cvt-intel.d: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-512-cvt.d: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-512-cvt.s: Ditto.

opcodes/
* i386-dis-evex-prefix.h: Add PREFIX_EVEX_0F3874,
PREFIX_EVEX_MAP5_18, PREFIX_EVEX_MAP5_1B,
PREFIX_EVEX_MAP5_1E and PREFIX_EVEX_MAP5_74.
* i386-dis-evex.h: Add table pass for AVX10.2
instructions.
* i386-dis.c (MOD_EVEX_0F38B1): New.
(PREFIX_EVEX_0F3874): Ditto.
(PREFIX_EVEX_MAP5_18): Ditto.
(PREFIX_EVEX_MAP5_1B): Ditto.
(PREFIX_EVEX_MAP5_1E): Ditto.
(PREFIX_EVEX_MAP5_74): Ditto.
* i386-opc.tbl: Add AVX10.2 instructions.
* i386-mnem.h: Regenerated.
* i386-tbl.h: Ditto.

Co-authored-by: Kong Lingling <lingling.kong@intel.com>
Co-authored-by: Haochen Jiang <haochen.jiang@intel.com>
20 files changed:
gas/testsuite/gas/i386/avx10_2-256-cvt-intel.d [new file with mode: 0644]
gas/testsuite/gas/i386/avx10_2-256-cvt.d [new file with mode: 0644]
gas/testsuite/gas/i386/avx10_2-256-cvt.s [new file with mode: 0644]
gas/testsuite/gas/i386/avx10_2-512-cvt-intel.d [new file with mode: 0644]
gas/testsuite/gas/i386/avx10_2-512-cvt.d [new file with mode: 0644]
gas/testsuite/gas/i386/avx10_2-512-cvt.s [new file with mode: 0644]
gas/testsuite/gas/i386/i386.exp
gas/testsuite/gas/i386/x86-64-avx10_2-256-cvt-intel.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-avx10_2-256-cvt.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-avx10_2-256-cvt.s [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-avx10_2-512-cvt-intel.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-avx10_2-512-cvt.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-avx10_2-512-cvt.s [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64.exp
opcodes/i386-dis-evex-prefix.h
opcodes/i386-dis-evex.h
opcodes/i386-dis.c
opcodes/i386-mnem.h
opcodes/i386-opc.tbl
opcodes/i386-tbl.h