2023-01-20 10:15:48 +01:00
|
|
|
/* This file is automatically generated by i386-gen. Do not edit! */
|
2025-01-01 18:17:28 +10:30
|
|
|
/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
|
2023-01-20 10:15:48 +01:00
|
|
|
|
|
|
|
This file is part of the GNU opcodes library.
|
|
|
|
|
|
|
|
This library is free software; you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU General Public License as published by
|
|
|
|
the Free Software Foundation; either version 3, or (at your option)
|
|
|
|
any later version.
|
|
|
|
|
|
|
|
It is distributed in the hope that it will be useful, but WITHOUT
|
|
|
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
|
|
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
|
|
|
License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with this program; if not, write to the Free Software
|
|
|
|
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
|
|
|
MA 02110-1301, USA. */
|
|
|
|
|
|
|
|
extern const char i386_mnemonics[];
|
|
|
|
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_ud0 0x1
|
|
|
|
#define MN_prefetcht0 0x5
|
|
|
|
#define MN_prefetchit0 0x10
|
Support Intel AMX-TRANSPOSE
In this patch, we will support AMX-TRANSPOSE. Since AMX-TRANSPOSE
will be used with other CPUIDs very often, we put it into
CPU_FLAGS_COMMON.
To implement TMM pair, we reused ImplicitGroup and adjust the condition
in process_operands for the instructions.
APX_F extension is also handled in this patch, where it extends
T2RPNTLVW[Z0,Z1][,T1] to EVEX.128.NP/66.0F38.W0 6E/6F !(11):rrr:100
with NF=0.
Also, TTDPFP16PS should base on AMX_FP16, not AMX_BF16 in ISE055.
It would be fixed in ISE056.
gas/ChangeLog:
* config/tc-i386.c (cpu_arch): Add amx_transpose.
(_is_cpu): Ditto.
(process_operands): Adjust the condition for AMX-TRANSPOSE.
* doc/c-i386.texi: Document .amx_transpose.
* testsuite/gas/i386/x86-64.exp: Run AMX-TRANSPOSE tests.
* testsuite/gas/i386/x86-64-amx-transpose-bad.d: New test.
* testsuite/gas/i386/x86-64-amx-transpose-bad.s: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose-intel.d: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose-inval.l: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose-inval.s: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose.d: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose.s: Ditto.
opcodes/ChangeLog:
* i386-dis.c (MOD_VEX_0F386E_X86_64_W_0): New.
(MOD_VEX_0F386F_X86_64_W_0): Ditto.
(PREFIX_VEX_0F385F_X86_64_W_0_L_0): Ditto.
(PREFIX_VEX_0F386B_X86_64_W_0_L_0): Ditto.
(PREFIX_VEX_0F386E_X86_64_W_0_M_0_L_0): Ditto.
(PREFIX_VEX_0F386F_X86_64_W_0_M_0_L_0): Ditto.
(X86_64_VEX_0F385F): Ditto.
(X86_64_VEX_0F386B): Ditto.
(X86_64_VEX_0F386E): Ditto.
(X86_64_VEX_0F386F): Ditto.
(VEX_LEN_0F385F_X86_64_W_0): Ditto.
(VEX_LEN_0F386B_X86_64_W_0): Ditto.
(VEX_LEN_0F386E_X86_64_W_0_M_0): Ditto.
(VEX_LEN_0F386F_X86_64_W_0_M_0): Ditto.
(VEX_W_0F385F_X86_64): Ditto.
(VEX_W_0F386B_X86_64): Ditto.
(VEX_W_0F386E_X86_64): Ditto.
(VEX_W_0F386F_X86_64): Ditto.
(mod_table): Add MOD_VEX_0F386E_X86_64_W_0,
MOD_VEX_0F386F_X86_64_W_0.
(prefix_table): Add PREFIX_VEX_0F386E_X86_64_W_0_M_0_L_0,
PREFIX_VEX_0F386F_X86_64_W_0_M_0_L_0.
Add new instructions for PREFIX_VEX_0F386C_X86_64_W_0_L_0.
(x86_64_table): Add X86_64_VEX_0F385F, X86_64_VEX_0F386B,
X86_64_VEX_0F386E, X86_64_VEX_0F386F.
(vex_len_table): Add VEX_LEN_0F385F_X86_64_W_0,
VEX_LEN_0F386B_X86_64_W_0, VEX_LEN_0F386E_X86_64_W_0_M_0,
VEX_LEN_0F386F_X86_64_W_0_M_0.
(vex_w_table): Add VEX_W_0F385F_X86_64, VEX_W_0F386B_X86_64,
VEX_W_0F386E_X86_64, VEX_W_0F386F_X86_64.
* i386-gen.c (cpu_flag_init): Add AMX_TRANSPOSE.
(cpu_flags): Add CpuAMX_TRANSPOSE.
* i386-init.h: Regenerated.
* i386-mnem.h: Ditto.
* i386-opc.h (CpuAMX_TRANSPOSE): New.
(i386_cpu): Add cpuamx_transpose.
* i386-opc.tbl: Add AMX-TRANSPOSE instructions.
* i386-tbl.h: Regenerated.
Co-authored-by: Hu, Lin1 <lin1.hu@intel.com>
2025-01-02 10:14:37 +08:00
|
|
|
#define MN_t2rpntlvwz0 0x1c
|
|
|
|
#define MN_xsha1 0x28
|
|
|
|
#define MN_fld1 0x2e
|
|
|
|
#define MN_ud1 0x33
|
|
|
|
#define MN_sha1msg1 0x37
|
|
|
|
#define MN_vsha512msg1 0x40
|
|
|
|
#define MN_vsm3msg1 0x4c
|
|
|
|
#define MN_sha256msg1 0x55
|
|
|
|
#define MN_fprem1 0x60
|
|
|
|
#define MN_f2xm1 0x67
|
|
|
|
#define MN_fyl2xp1 0x6d
|
|
|
|
#define MN_t2rpntlvwz0t1 0x75
|
|
|
|
#define MN_t2rpntlvwz1t1 0x83
|
|
|
|
#define MN_tileloaddt1 0x91
|
|
|
|
#define MN_prefetcht1 0x9d
|
|
|
|
#define MN_prefetchit1 0xa8
|
|
|
|
#define MN_pfrcpit1 0xb4
|
|
|
|
#define MN_pfrsqit1 0xbd
|
|
|
|
#define MN_int1 0xc6
|
Support Intel AMX-MOVRS
This patch will support AMX-MOVRS feature. Unlike all the other
AMX insns in vector space where we pass vex_len_table before
vex_w_table, we first pass vex_w_table for tileloaddrs[,t1] to
align with the order in EVEX space. The reason why we first pass
vex_w_table in EVEX space is due to AMX-AVX512, where tcvtrowd2ps
and tilemovrow with r32 shares the same opcode with tileloaddrs[,t1].
All of them have evex.w = 0 but with different evex.length. Re-doing
that shortly is not ideal.
APX_F extension is also implemented in this patch. The encoding will
be:
- EVEX.128.NP/66.MAP5.W0 F8/F9 !(11):rrr:100 for
T2RPNTLVW[Z0,Z1]RS[,T1] with NF=0.
- EVEX.128.F2/66.0F38.W0 4A !(11):rrr:100 FOR TILELOADDRS[,T1] with
NF=0.
For APX_F extension, we could not use APX_F(AMX_TRANSPOSE&AMX_MOVRS)
since the transformation could not be done. Instead, we will use
AMX_TRANSPOSE & APX_F(AMX_MOVRS). Thus, we should set AMX_TRANSPOSE
for "any" for cpu_flags in assembler. Since it will only affect the
cpu_flags_match, handle that there.
gas/ChangeLog:
* config/tc-i386.c (cpu_arch): Add amx_movrs.
(cpu_flags_match): Set any bitfield for multiple cpuid
enabled insns.
* doc/c-i386.texi: Document .amx_movrs.
* testsuite/gas/i386/x86-64.exp: Run AMX-MOVRS tests.
* testsuite/gas/i386/x86-64-amx-movrs-intel.d: New test.
* testsuite/gas/i386/x86-64-amx-movrs-inval.l: Ditto.
* testsuite/gas/i386/x86-64-amx-movrs-inval.s: Ditto.
* testsuite/gas/i386/x86-64-amx-movrs.d: Ditto.
* testsuite/gas/i386/x86-64-amx-movrs.s: Ditto.
opcodes/ChangeLog:
* i386-dis-evex-len.h (EVEX_LEN_0F384A_X86_64_W_0): New.
* i386-dis-evex-w.h (EVEX_W_0F384A_X86_64): Ditto.
* i386-dis-evex-x86-64.h (X86_64_EVEX_0F384A): Ditto.
* i386-dis-evex.h: New entry for AMX-MOVRS.
* i386-dis.c:
(PREFIX_VEX_0F384A_X86_64_L_0_W_0): New.
(PREFIX_VEX_MAP5_F8_X86_64_L_0_W_0): Ditto.
(PREFIX_VEX_MAP5_F9_X86_64_L_0_W_0): Ditto.
(X86_64_VEX_0F384A): Ditto.
(X86_64_VEX_MAP5_F8): Ditto.
(X86_64_VEX_MAP5_F9): Ditto.
(X86_64_EVEX_0F384A): Ditto.
(VEX_LEN_0F384A_X86_64_W_0): Ditto.
(VEX_LEN_MAP5_F8_X86_64): Ditto.
(VEX_LEN_MAP5_F9_X86_64): Ditto.
(EVEX_LEN_0F384A_X86_64_W_0): Ditto.
(VEX_W_0F384A_X86_64): Ditto.
(VEX_W_MAP5_F8_X86_64): Ditto.
(VEX_W_MAP5_F9_X86_64): Ditto.
(EVEX_W_0F384A_X86_64): Ditto.
(prefix_table): New entry for AMX-MOVRS.
(x86_64_table): Ditto.
(vex_len_table): Ditto.
(vex_w_table): Ditto.
(map5_f8_opcode): New.
(map5_f9_opcode): Ditto.
(get_valid_dis386): Handle VEX_MAP5 opcode for AMX-MOVRS.
* i386-gen.c (isa_dependencies): Add AMX_MOVRS.
(cpu_flags): Ditto.
* i386-init.h: Regenerated.
* i386-mnem.h: Ditto.
* i386-opc.h (CpuAMX_MOVRS): New.
(i386_cpu_flags): Add cpuamx_movrs.
* i386-opc.tbl: Add AMX-MOVRS instructions.
* i386-tbl.h: Regenerated.
Co-authored-by: Haochen Jiang <haochen.jiang@intel.com>
2025-01-14 10:30:38 +08:00
|
|
|
#define MN_t2rpntlvwz0rst1 0xcb
|
|
|
|
#define MN_t2rpntlvwz1rst1 0xdb
|
|
|
|
#define MN_tileloaddrst1 0xeb
|
|
|
|
#define MN_prefetchwt1 0xf9
|
|
|
|
#define MN_t2rpntlvwz1 0x105
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_xsha512 0x111
|
|
|
|
#define MN_vmovdqa32 0x119
|
|
|
|
#define MN_data32 0x123
|
|
|
|
#define MN_crc32 0x12a
|
|
|
|
#define MN_endbr32 0x130
|
|
|
|
#define MN_addr32 0x138
|
|
|
|
#define MN_vmovdqu32 0x13f
|
|
|
|
#define MN_ud2 0x149
|
|
|
|
#define MN_fldlg2 0x14d
|
|
|
|
#define MN_xrng2 0x154
|
|
|
|
#define MN_sha1msg2 0x15a
|
|
|
|
#define MN_vsha512msg2 0x163
|
|
|
|
#define MN_vsm3msg2 0x16f
|
|
|
|
#define MN_sha256msg2 0x178
|
|
|
|
#define MN_push2 0x183
|
|
|
|
#define MN_sm2 0x189
|
|
|
|
#define MN_fldln2 0x18d
|
|
|
|
#define MN_pop2 0x194
|
|
|
|
#define MN_vsha512rnds2 0x199
|
|
|
|
#define MN_vsm3rnds2 0x1a6
|
|
|
|
#define MN_sha256rnds2 0x1b0
|
|
|
|
#define MN_prefetcht2 0x1bc
|
|
|
|
#define MN_pfrcpit2 0x1c7
|
|
|
|
#define MN_prefetchrst2 0x1d0
|
|
|
|
#define MN_vbroadcastf32x2 0x1dd
|
|
|
|
#define MN_vbroadcasti32x2 0x1ed
|
|
|
|
#define MN_vshuff64x2 0x1fd
|
|
|
|
#define MN_vextractf64x2 0x208
|
|
|
|
#define MN_vinsertf64x2 0x216
|
|
|
|
#define MN_vbroadcastf64x2 0x223
|
|
|
|
#define MN_vshufi64x2 0x233
|
|
|
|
#define MN_vextracti64x2 0x23e
|
|
|
|
#define MN_vinserti64x2 0x24c
|
|
|
|
#define MN_vbroadcasti64x2 0x259
|
|
|
|
#define MN_sm3 0x269
|
|
|
|
#define MN_int3 0x26d
|
|
|
|
#define MN_vmovdqa64 0x272
|
|
|
|
#define MN_xsavec64 0x27c
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_xsave64 (MN_fxsave64 + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_fxsave64 0x285
|
|
|
|
#define MN_endbr64 0x28e
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_xrstor64 (MN_fxrstor64 + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_fxrstor64 0x296
|
|
|
|
#define MN_xsaves64 0x2a0
|
|
|
|
#define MN_xrstors64 0x2a9
|
|
|
|
#define MN_xsaveopt64 0x2b3
|
|
|
|
#define MN_vmovdqu64 0x2be
|
|
|
|
#define MN_rex64 0x2c8
|
|
|
|
#define MN_xsha384 0x2ce
|
|
|
|
#define MN_sm4 0x2d6
|
|
|
|
#define MN_sha1rnds4 0x2da
|
|
|
|
#define MN_vsm4rnds4 0x2e4
|
|
|
|
#define MN_vshuff32x4 0x2ee
|
|
|
|
#define MN_vextractf32x4 0x2f9
|
|
|
|
#define MN_vinsertf32x4 0x307
|
|
|
|
#define MN_vbroadcastf32x4 0x314
|
|
|
|
#define MN_vshufi32x4 0x324
|
|
|
|
#define MN_vextracti32x4 0x32f
|
|
|
|
#define MN_vinserti32x4 0x33d
|
|
|
|
#define MN_vbroadcasti32x4 0x34a
|
|
|
|
#define MN_vextractf64x4 0x35a
|
|
|
|
#define MN_vinsertf64x4 0x368
|
|
|
|
#define MN_vbroadcastf64x4 0x375
|
|
|
|
#define MN_vextracti64x4 0x385
|
|
|
|
#define MN_vinserti64x4 0x393
|
|
|
|
#define MN_vbroadcasti64x4 0x3a0
|
|
|
|
#define MN_vsm4key4 0x3b0
|
|
|
|
#define MN_data16 0x3b9
|
|
|
|
#define MN_vfmsub231bf16 0x3c0
|
|
|
|
#define MN_vfnmsub231bf16 0x3ce
|
|
|
|
#define MN_vfmadd231bf16 0x3dd
|
|
|
|
#define MN_vfnmadd231bf16 0x3eb
|
|
|
|
#define MN_vfmsub132bf16 0x3fa
|
|
|
|
#define MN_vfnmsub132bf16 0x408
|
|
|
|
#define MN_vfmadd132bf16 0x417
|
|
|
|
#define MN_vfnmadd132bf16 0x425
|
|
|
|
#define MN_vcvtne2ps2bf16 0x434
|
|
|
|
#define MN_vcvtneps2bf16 0x443
|
|
|
|
#define MN_vfmsub213bf16 0x451
|
|
|
|
#define MN_vfnmsub213bf16 0x45f
|
|
|
|
#define MN_vfmadd213bf16 0x46e
|
|
|
|
#define MN_vfnmadd213bf16 0x47c
|
|
|
|
#define MN_vsubbf16 0x48b
|
|
|
|
#define MN_vaddbf16 0x494
|
|
|
|
#define MN_vreducebf16 0x49d
|
|
|
|
#define MN_vrndscalebf16 0x4a9
|
|
|
|
#define MN_vscalefbf16 0x4b7
|
|
|
|
#define MN_vmulbf16 0x4c3
|
|
|
|
#define MN_vminbf16 0x4cc
|
|
|
|
#define MN_vrcpbf16 0x4d5
|
|
|
|
#define MN_vcmpbf16 0x4de
|
|
|
|
#define MN_vgetexpbf16 0x4e7
|
|
|
|
#define MN_vcomisbf16 0x4f3
|
|
|
|
#define MN_vfpclassbf16 0x4fe
|
|
|
|
#define MN_vgetmantbf16 0x50b
|
|
|
|
#define MN_vrsqrtbf16 0x518
|
|
|
|
#define MN_vsqrtbf16 0x523
|
|
|
|
#define MN_vdivbf16 0x52d
|
|
|
|
#define MN_vminmaxbf16 0x536
|
|
|
|
#define MN_vmaxbf16 0x542
|
|
|
|
#define MN_tconjtfp16 0x54b
|
|
|
|
#define MN_addr16 0x556
|
|
|
|
#define MN_vmovdqu16 0x55d
|
|
|
|
#define MN_xsha256 0x567
|
|
|
|
#define MN_encodekey256 0x56f
|
|
|
|
#define MN_vperm2f128 0x57c
|
|
|
|
#define MN_vextractf128 0x587
|
|
|
|
#define MN_vinsertf128 0x594
|
|
|
|
#define MN_vbroadcastf128 0x5a0
|
|
|
|
#define MN_vperm2i128 0x5af
|
|
|
|
#define MN_vextracti128 0x5ba
|
|
|
|
#define MN_vinserti128 0x5c7
|
|
|
|
#define MN_vbroadcasti128 0x5d3
|
|
|
|
#define MN_encodekey128 0x5e2
|
|
|
|
#define MN_vcvt2ph2bf8 0x5ef
|
|
|
|
#define MN_vcvtbiasph2bf8 0x5fb
|
|
|
|
#define MN_vcvtph2bf8 0x60a
|
|
|
|
#define MN_vcvt2ph2hf8 0x615
|
|
|
|
#define MN_vcvtbiasph2hf8 0x621
|
|
|
|
#define MN_vcvtph2hf8 0x630
|
|
|
|
#define MN_vmovdqu8 0x63b
|
|
|
|
#define MN_vextractf32x8 0x644
|
|
|
|
#define MN_vinsertf32x8 0x652
|
|
|
|
#define MN_vbroadcastf32x8 0x65f
|
|
|
|
#define MN_vextracti32x8 0x66f
|
|
|
|
#define MN_vinserti32x8 0x67d
|
|
|
|
#define MN_vbroadcasti32x8 0x68a
|
|
|
|
#define MN_ud2a 0x69a
|
|
|
|
#define MN_aaa 0x69f
|
|
|
|
#define MN_daa 0x6a3
|
|
|
|
#define MN_ssca 0x6a7
|
|
|
|
#define MN_lea 0x6ac
|
|
|
|
#define MN_invlpga 0x6b0
|
|
|
|
#define MN_pusha 0x6b8
|
|
|
|
#define MN_ja 0x6be
|
|
|
|
#define MN_jna 0x6c1
|
|
|
|
#define MN_ccmpna 0x6c5
|
|
|
|
#define MN_setna 0x6cc
|
|
|
|
#define MN_ctestna 0x6d2
|
|
|
|
#define MN_setzuna 0x6da
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmovna (MN_fcmovna + 1)
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_fcmovna (MN_cfcmovna + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_cfcmovna 0x6e2
|
|
|
|
#define MN_ccmpa 0x6eb
|
|
|
|
#define MN_popa 0x6f1
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movntdqa (MN_vmovntdqa + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vmovntdqa 0x6f6
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movdqa (MN_vmovdqa + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vmovdqa 0x700
|
|
|
|
#define MN_seta 0x708
|
|
|
|
#define MN_prefetchnta 0x70d
|
|
|
|
#define MN_ctesta 0x719
|
|
|
|
#define MN_setzua 0x720
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmova (MN_fcmova + 1)
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_fcmova (MN_cfcmova + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_cfcmova 0x727
|
|
|
|
#define MN_rex_b 0x72f
|
|
|
|
#define MN_ud2b 0x735
|
|
|
|
#define MN_vpermi2b 0x73a
|
|
|
|
#define MN_vpmovm2b 0x743
|
|
|
|
#define MN_vpermt2b 0x74c
|
|
|
|
#define MN_movdir64b 0x755
|
|
|
|
#define MN_cmpxchg16b 0x75f
|
|
|
|
#define MN_cmpxchg8b 0x76a
|
|
|
|
#define MN_vpshab 0x774
|
|
|
|
#define MN_sbb 0x77b
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_psubb (MN_vpsubb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vpsubb 0x77f
|
|
|
|
#define MN_xcrypt_ecb 0x786
|
|
|
|
#define MN_xcryptecb 0x791
|
|
|
|
#define MN_llwpcb 0x79b
|
|
|
|
#define MN_slwpcb 0x7a2
|
|
|
|
#define MN_kaddb 0x7a9
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_paddb (MN_vpaddb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vpaddb 0x7af
|
|
|
|
#define MN_kandb 0x7b6
|
|
|
|
#define MN_vpexpandb 0x7bc
|
|
|
|
#define MN_vpmovusdb 0x7c6
|
|
|
|
#define MN_vpmovsdb 0x7d0
|
|
|
|
#define MN_vpmovdb 0x7d9
|
|
|
|
#define MN_vpcomgeb 0x7e1
|
|
|
|
#define MN_vpcomleb 0x7ea
|
|
|
|
#define MN_vpcmpnleb 0x7f3
|
|
|
|
#define MN_vpcmpleb 0x7fd
|
|
|
|
#define MN_vpcomfalseb 0x806
|
|
|
|
#define MN_vpcomtrueb 0x812
|
|
|
|
#define MN_xcrypt_cfb 0x81d
|
|
|
|
#define MN_xcryptcfb 0x828
|
|
|
|
#define MN_xcrypt_ofb 0x832
|
|
|
|
#define MN_xcryptofb 0x83d
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pshufb (MN_vpshufb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vpshufb 0x847
|
|
|
|
#define MN_invlpgb 0x84f
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pavgb (MN_vpavgb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vpavgb 0x857
|
|
|
|
#define MN_jb 0x85e
|
|
|
|
#define MN_pbndkb 0x861
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmovmskb (MN_vpmovmskb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vpmovmskb 0x868
|
|
|
|
#define MN_vpshlb 0x872
|
|
|
|
#define MN_kshiftlb 0x879
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_gf2p8mulb (MN_vgf2p8mulb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vgf2p8mulb 0x882
|
|
|
|
#define MN_vpblendmb 0x88d
|
|
|
|
#define MN_vptestnmb 0x897
|
|
|
|
#define MN_vpcomb 0x8a1
|
|
|
|
#define MN_vpshufbitqmb 0x8a8
|
|
|
|
#define MN_vpermb 0x8b5
|
|
|
|
#define MN_vptestmb 0x8bc
|
|
|
|
#define MN_kandnb 0x8c5
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_psignb (MN_vpsignb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vpsignb 0x8cc
|
|
|
|
#define MN_jnb 0x8d4
|
|
|
|
#define MN_ccmpnb 0x8d8
|
|
|
|
#define MN_setnb 0x8df
|
|
|
|
#define MN_ctestnb 0x8e5
|
|
|
|
#define MN_setzunb 0x8ed
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmovnb (MN_fcmovnb + 1)
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_fcmovnb (MN_cfcmovnb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_cfcmovnb 0x8f5
|
|
|
|
#define MN_ccmpb 0x8fe
|
|
|
|
#define MN_vpcmpb 0x904
|
|
|
|
#define MN_vpcomeqb 0x90b
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_gf2p8affineqb (MN_vgf2p8affineqb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vgf2p8affineqb 0x914
|
|
|
|
#define MN_vpcomneqb 0x923
|
|
|
|
#define MN_vpcmpneqb 0x92d
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pcmpeqb (MN_vpcmpeqb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vpcmpeqb 0x937
|
|
|
|
#define MN_vpmovusqb 0x940
|
|
|
|
#define MN_vpmovsqb 0x94a
|
|
|
|
#define MN_vpmultishiftqb 0x953
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_gf2p8affineinvqb (MN_vgf2p8affineinvqb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vgf2p8affineinvqb 0x962
|
|
|
|
#define MN_vpmovqb 0x974
|
|
|
|
#define MN_rex_rb 0x97c
|
|
|
|
#define MN_korb 0x983
|
|
|
|
#define MN_kxnorb 0x988
|
|
|
|
#define MN_kxorb 0x98f
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pinsrb (MN_vpinsrb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vpinsrb 0x995
|
|
|
|
#define MN_kshiftrb 0x99d
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pextrb (MN_vpextrb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vpextrb 0x9a6
|
|
|
|
#define MN_rex_wrb 0x9ae
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pabsb (MN_vpabsb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vpabsb 0x9b6
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_psubsb (MN_vpsubsb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vpsubsb 0x9bd
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_paddsb (MN_vpaddsb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vpaddsb 0x9c5
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pminsb (MN_vpminsb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vpminsb 0x9cd
|
|
|
|
#define MN_vmovrsb 0x9d5
|
|
|
|
#define MN_vpcompressb 0x9dd
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_psubusb (MN_vpsubusb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vpsubusb 0x9e9
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_paddusb (MN_vpaddusb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vpaddusb 0x9f2
|
|
|
|
#define MN_pavgusb 0x9fb
|
|
|
|
#define MN_movsb 0xa03
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmaxsb (MN_vpmaxsb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vpmaxsb 0xa09
|
|
|
|
#define MN_setb 0xa11
|
|
|
|
#define MN_vpcomgtb 0xa16
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pcmpgtb (MN_vpcmpgtb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vpcmpgtb 0xa1f
|
|
|
|
#define MN_vpcomltb 0xa28
|
|
|
|
#define MN_vpcmpnltb 0xa31
|
|
|
|
#define MN_vpcmpltb 0xa3b
|
|
|
|
#define MN_vpopcntb 0xa44
|
|
|
|
#define MN_knotb 0xa4d
|
|
|
|
#define MN_vprotb 0xa53
|
|
|
|
#define MN_vpbroadcastb 0xa5a
|
|
|
|
#define MN_ctestb 0xa67
|
|
|
|
#define MN_ktestb 0xa6e
|
|
|
|
#define MN_kortestb 0xa75
|
|
|
|
#define MN_vpcomgeub 0xa7e
|
|
|
|
#define MN_vpcomleub 0xa88
|
|
|
|
#define MN_vpcmpnleub 0xa92
|
|
|
|
#define MN_vpcmpleub 0xa9d
|
|
|
|
#define MN_vpcomfalseub 0xaa7
|
|
|
|
#define MN_vpcomtrueub 0xab4
|
|
|
|
#define MN_vpcomub 0xac0
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pminub (MN_vpminub + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vpminub 0xac8
|
|
|
|
#define MN_vpcmpub 0xad0
|
|
|
|
#define MN_vpcomequb 0xad8
|
|
|
|
#define MN_vpcomnequb 0xae2
|
|
|
|
#define MN_vpcmpnequb 0xaed
|
|
|
|
#define MN_vpcmpequb 0xaf8
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_sub (MN_fsub + 1)
|
|
|
|
#define MN_fsub (MN_pfsub + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_pfsub 0xb02
|
|
|
|
#define MN_fisub 0xb08
|
|
|
|
#define MN_vpcomgtub 0xb0e
|
|
|
|
#define MN_vpcomltub 0xb18
|
|
|
|
#define MN_vpcmpnltub 0xb22
|
|
|
|
#define MN_vpcmpltub 0xb2d
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmaxub (MN_vpmaxub + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vpmaxub 0xb37
|
|
|
|
#define MN_setzub 0xb3f
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pblendvb (MN_vpblendvb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vpblendvb 0xb46
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmovb (MN_fcmovb + 1)
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_fcmovb (MN_cfcmovb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_cfcmovb 0xb50
|
|
|
|
#define MN_kmovb 0xb58
|
|
|
|
#define MN_rex_wb 0xb5e
|
|
|
|
#define MN_clwb 0xb65
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_packsswb (MN_vpacksswb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vpacksswb 0xb6a
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_packuswb (MN_vpackuswb + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vpackuswb 0xb74
|
|
|
|
#define MN_vpmovuswb 0xb7e
|
|
|
|
#define MN_vpmovswb 0xb88
|
|
|
|
#define MN_vpmovwb 0xb91
|
|
|
|
#define MN_rex_xb 0xb99
|
|
|
|
#define MN_rex_rxb 0xba0
|
|
|
|
#define MN_rex_wrxb 0xba8
|
|
|
|
#define MN_rex_wxb 0xbb1
|
|
|
|
#define MN_movzb 0xbb9
|
|
|
|
#define MN_clac 0xbbf
|
|
|
|
#define MN_stac 0xbc4
|
|
|
|
#define MN_xcrypt_cbc 0xbc9
|
|
|
|
#define MN_xcryptcbc 0xbd4
|
|
|
|
#define MN_pfacc 0xbde
|
|
|
|
#define MN_pfnacc 0xbe4
|
|
|
|
#define MN_pfpnacc 0xbeb
|
|
|
|
#define MN_adc 0xbf3
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_dec (MN_aesdec + 3)
|
|
|
|
#define MN_aesdec (MN_vaesdec + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vaesdec 0xbf7
|
|
|
|
#define MN_getsec 0xbff
|
|
|
|
#define MN_xsavec 0xc06
|
|
|
|
#define MN_blcic 0xc0d
|
|
|
|
#define MN_blsic 0xc13
|
|
|
|
#define MN_jc 0xc19
|
|
|
|
#define MN_t1mskc 0xc1c
|
|
|
|
#define MN_clc 0xc23
|
|
|
|
#define MN_cmc 0xc27
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_aesimc (MN_vaesimc + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vaesimc 0xc2b
|
|
|
|
#define MN_rdpmc 0xc33
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_aesenc (MN_vaesenc + 1)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_vaesenc 0xc39
|
|
|
|
#define MN_inc 0xc41
|
|
|
|
#define MN_jnc 0xc45
|
|
|
|
#define MN_ccmpnc 0xc49
|
|
|
|
#define MN_setnc 0xc50
|
|
|
|
#define MN_ctestnc 0xc56
|
|
|
|
#define MN_vmfunc 0xc5e
|
|
|
|
#define MN_setzunc 0xc65
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_cmovnc (MN_cfcmovnc + 2)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_cfcmovnc 0xc6d
|
|
|
|
#define MN_tlbsync 0xc76
|
|
|
|
#define MN_ccmpc 0xc7e
|
|
|
|
#define MN_rdtsc 0xc84
|
|
|
|
#define MN_btc 0xc8a
|
|
|
|
#define MN_setc 0xc8e
|
Support APX CCMP and CTEST
CCMP and CTEST are two new sets of instructions for conditional CMP
and TEST, SCC and OSZC flags are given as suffixes of CCMP or CTEST
in the instruction mnemonic, e.g.:
ccmp<cc> { dfv=sf , cf , of } %eax, %ecx
also add
{evex} cmp/test %eax, %ecx
as an alias for ccmpt.
For the encoder part, add function check_Scc_OszcOperation to parse
'{ dfv=of , sf, sf, cf}', store scc in the lower 4 bits of base_opcode,
and adjust base_opcode to its normal meaning in install_template.
For the decoder part, add 'SC' and 'DF' macros to add scc and oszc flags
suffixes.
gas/ChangeLog:
* config/tc-i386.c (OSZC_CF): New.
(OSZC_ZF): Ditto.
(OSZC_SF): Ditto.
(OSZC_OF): Ditto.
(set_oszc_flags): Set oszc flags and report error for using the same oszc flags twice.
(check_Scc_OszcOperations): Handle SCC OSZC flags.
(install_template): Add scc and oszc_flags.
(build_apx_evex_prefix): Encode SCC and oszc flags bits.
(parse_insn): Handle check_Scc_OszcOperations.
* testsuite/gas/i386/x86-64-apx-evex-promoted-bad.d: Add ivalid test case.
* testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s: Ditto.
* testsuite/gas/i386/x86-64.exp: Add test for ccmp and ctest.
* testsuite/gas/i386/x86-64-apx-ccmp-ctest-intel.d: New test.
* testsuite/gas/i386/x86-64-apx-ccmp-ctest-inval.l: Ditto.
* testsuite/gas/i386/x86-64-apx-ccmp-ctest-inval.s: Ditto.
* testsuite/gas/i386/x86-64-apx-ccmp-ctest.d: Ditto.
* testsuite/gas/i386/x86-64-apx-ccmp-ctest.s: Ditto.
opcodes/ChangeLog:
* i386-dis-evex-reg.h: Add ccmp and ctest.
* i386-dis-evex.h: Ditto.
* i386-dis.c (struct instr_info): add scc.
(struct dis386): Add new micro 'NE','SC' and'DF'.
(get_valid_dis386): Get scc value and move MAP4 invalid check to print_insn.
(putop): Handle %NE, %SC and %DF.
* i386-opc.h (SCC): New.
* i386-opc.tbl: Add ccmp/ctest and evex format for cmp/test.
* i386-mnem.h: Regenerated.
* i386-tbl.h: Ditto.
2024-06-18 10:45:49 +08:00
|
|
|
#define MN_stc (MN_ctestc + 3)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_ctestc 0xc93
|
|
|
|
#define MN_setzuc 0xc9a
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_cmovc (MN_cfcmovc + 2)
|
2025-01-16 10:31:14 +01:00
|
|
|
#define MN_cfcmovc 0xca1
|
|
|
|
#define MN_vpermi2d 0xca9
|
|
|
|
#define MN_vpmovm2d 0xcb2
|
|
|
|
#define MN_vpermt2d 0xcbb
|
|
|
|
#define MN_vpbroadcastmw2d 0xcc4
|
|
|
|
#define MN_aad 0xcd4
|
|
|
|
#define MN_vmread 0xcd8
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_rmpread 0xcdf
|
|
|
|
#define MN_vpshad 0xce7
|
|
|
|
#define MN_vmload 0xcee
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_psrad (MN_vpsrad + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpsrad 0xcf5
|
|
|
|
#define MN_vphaddbd 0xcfc
|
|
|
|
#define MN_vphaddubd 0xd05
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_phsubd (MN_vphsubd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vphsubd 0xd0f
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_psubd (MN_vpsubd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpsubd 0xd17
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmovsxbd (MN_vpmovsxbd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmovsxbd 0xd1e
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmovzxbd (MN_vpmovzxbd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmovzxbd 0xd28
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_add (MN_aadd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_aadd 0xd32
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_fadd (MN_pfadd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_pfadd 0xd37
|
|
|
|
#define MN_fiadd 0xd3d
|
|
|
|
#define MN_tileloadd 0xd43
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_xadd (MN_cmpnaxadd + 5)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cmpnaxadd 0xd4d
|
|
|
|
#define MN_cmpaxadd 0xd57
|
|
|
|
#define MN_cmpnbxadd 0xd60
|
|
|
|
#define MN_cmpbxadd 0xd6a
|
|
|
|
#define MN_cmpncxadd 0xd73
|
|
|
|
#define MN_cmpcxadd 0xd7d
|
|
|
|
#define MN_cmpnaexadd 0xd86
|
|
|
|
#define MN_cmpaexadd 0xd91
|
|
|
|
#define MN_cmpnbexadd 0xd9b
|
|
|
|
#define MN_cmpbexadd 0xda6
|
|
|
|
#define MN_cmpngexadd 0xdb0
|
|
|
|
#define MN_cmpgexadd 0xdbb
|
|
|
|
#define MN_cmpnlexadd 0xdc5
|
|
|
|
#define MN_cmplexadd 0xdd0
|
|
|
|
#define MN_cmpnexadd 0xdda
|
|
|
|
#define MN_cmpexadd 0xde4
|
|
|
|
#define MN_cmppexadd 0xded
|
|
|
|
#define MN_cmpngxadd 0xdf7
|
|
|
|
#define MN_cmpgxadd 0xe01
|
|
|
|
#define MN_cmpnlxadd 0xe0a
|
|
|
|
#define MN_cmplxadd 0xe14
|
|
|
|
#define MN_cmpnoxadd 0xe1d
|
|
|
|
#define MN_cmpoxadd 0xe27
|
|
|
|
#define MN_cmppoxadd 0xe30
|
|
|
|
#define MN_cmpnpxadd 0xe3a
|
|
|
|
#define MN_cmppxadd 0xe44
|
|
|
|
#define MN_cmpnsxadd 0xe4d
|
|
|
|
#define MN_cmpsxadd 0xe57
|
|
|
|
#define MN_cmpnzxadd 0xe60
|
|
|
|
#define MN_cmpzxadd 0xe6a
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_phaddd (MN_vphaddd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vphaddd 0xe73
|
|
|
|
#define MN_kaddd 0xe7b
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_paddd (MN_vpaddd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpaddd 0xe81
|
|
|
|
#define MN_vpshldd 0xe88
|
|
|
|
#define MN_kandd 0xe90
|
|
|
|
#define MN_vpandd 0xe96
|
|
|
|
#define MN_vpexpandd 0xe9d
|
|
|
|
#define MN_vpblendd 0xea7
|
|
|
|
#define MN_vpgatherdd 0xeb0
|
|
|
|
#define MN_vpscatterdd 0xebb
|
|
|
|
#define MN_vpshrdd 0xec7
|
|
|
|
#define MN_vpmacsdd 0xecf
|
|
|
|
#define MN_vpmacssdd 0xed8
|
|
|
|
#define MN_rdseed 0xee2
|
|
|
|
#define MN_vpcomged 0xee9
|
|
|
|
#define MN_vpcomled 0xef2
|
|
|
|
#define MN_vpcmpnled 0xefb
|
|
|
|
#define MN_vpcmpled 0xf05
|
|
|
|
#define MN_tilestored 0xf0e
|
|
|
|
#define MN_vpcomfalsed 0xf19
|
|
|
|
#define MN_ttransposed 0xf25
|
|
|
|
#define MN_vpcomtrued 0xf31
|
|
|
|
#define MN_pi2fd 0xf3c
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pshufd (MN_vpshufd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpshufd 0xf42
|
|
|
|
#define MN_vpternlogd 0xf4a
|
|
|
|
#define MN_pf2id 0xf55
|
|
|
|
#define MN_invpcid 0xf5b
|
|
|
|
#define MN_rdpid 0xf63
|
|
|
|
#define MN_invvpid 0xf69
|
|
|
|
#define MN_cpuid 0xf71
|
|
|
|
#define MN_fbld 0xf77
|
|
|
|
#define MN_cld 0xf7c
|
|
|
|
#define MN_fld 0xf80
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_shld (MN_vpshld + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpshld 0xf84
|
|
|
|
#define MN_fild 0xf8b
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pslld (MN_vpslld + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpslld 0xf90
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmulld (MN_vpmulld + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmulld 0xf97
|
|
|
|
#define MN_vprold 0xf9f
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_psrld (MN_vpsrld + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpsrld 0xfa6
|
|
|
|
#define MN_vmptrld 0xfad
|
|
|
|
#define MN_kshiftld 0xfb5
|
|
|
|
#define MN_enqcmd 0xfbe
|
|
|
|
#define MN_vpblendmd 0xfc5
|
|
|
|
#define MN_vptestnmd 0xfcf
|
|
|
|
#define MN_vpcomd 0xfd9
|
|
|
|
#define MN_vpermd 0xfe0
|
|
|
|
#define MN_vptestmd 0xfe7
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_and (MN_aand + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_aand 0xff0
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pand (MN_vpand + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpand 0xff5
|
|
|
|
#define MN_rdrand 0xffb
|
|
|
|
#define MN_bnd 0x1002
|
|
|
|
#define MN_kandnd 0x1006
|
|
|
|
#define MN_vpandnd 0x100d
|
|
|
|
#define MN_xend 0x1015
|
|
|
|
#define MN_valignd 0x101a
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_psignd (MN_vpsignd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpsignd 0x1022
|
|
|
|
#define MN_bound 0x102a
|
|
|
|
#define MN_slod 0x1030
|
|
|
|
#define MN_vfmaddsub231pd 0x1035
|
|
|
|
#define MN_vfmsub231pd 0x1044
|
|
|
|
#define MN_vfnmsub231pd 0x1050
|
|
|
|
#define MN_vfmsubadd231pd 0x105d
|
|
|
|
#define MN_vfmadd231pd 0x106c
|
|
|
|
#define MN_vfnmadd231pd 0x1078
|
|
|
|
#define MN_vfmaddsub132pd 0x1085
|
|
|
|
#define MN_vfmsub132pd 0x1094
|
|
|
|
#define MN_vfnmsub132pd 0x10a0
|
|
|
|
#define MN_vfmsubadd132pd 0x10ad
|
|
|
|
#define MN_vfmadd132pd 0x10bc
|
|
|
|
#define MN_vfnmadd132pd 0x10c8
|
|
|
|
#define MN_vcvtph2pd 0x10d5
|
|
|
|
#define MN_vpermi2pd 0x10df
|
|
|
|
#define MN_cvtpi2pd 0x10e9
|
|
|
|
#define MN_vpermil2pd 0x10f2
|
|
|
|
#define MN_vexp2pd 0x10fd
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cvtdq2pd (MN_vcvtdq2pd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcvtdq2pd 0x1105
|
|
|
|
#define MN_vcvtudq2pd 0x110f
|
|
|
|
#define MN_vcvtqq2pd 0x111a
|
|
|
|
#define MN_vcvtuqq2pd 0x1124
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cvtps2pd (MN_vcvtps2pd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcvtps2pd 0x112f
|
|
|
|
#define MN_vpermt2pd 0x1139
|
|
|
|
#define MN_vfmaddsub213pd 0x1143
|
|
|
|
#define MN_vfmsub213pd 0x1152
|
|
|
|
#define MN_vfnmsub213pd 0x115e
|
|
|
|
#define MN_vfmsubadd213pd 0x116b
|
|
|
|
#define MN_vfmadd213pd 0x117a
|
|
|
|
#define MN_vfnmadd213pd 0x1186
|
|
|
|
#define MN_vrcp14pd 0x1193
|
|
|
|
#define MN_vrsqrt14pd 0x119c
|
|
|
|
#define MN_vrcp28pd 0x11a7
|
|
|
|
#define MN_vrsqrt28pd 0x11b0
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movapd (MN_vmovapd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmovapd 0x11bb
|
|
|
|
#define MN_pswapd 0x11c3
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_subpd (MN_addsubpd + 3)
|
|
|
|
#define MN_addsubpd (MN_vfmaddsubpd + 3)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vfmaddsubpd 0x11ca
|
|
|
|
#define MN_vaddsubpd 0x11d6
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_hsubpd (MN_vhsubpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vhsubpd 0x11e0
|
|
|
|
#define MN_vfmsubpd 0x11e8
|
|
|
|
#define MN_vfnmsubpd 0x11f1
|
|
|
|
#define MN_vsubpd 0x11fb
|
|
|
|
#define MN_vgatherpf0dpd 0x1202
|
|
|
|
#define MN_vscatterpf0dpd 0x1210
|
|
|
|
#define MN_vgatherpf1dpd 0x121f
|
|
|
|
#define MN_vscatterpf1dpd 0x122d
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_addpd (MN_vfmsubaddpd + 6)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vfmsubaddpd 0x123c
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_haddpd (MN_vhaddpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vhaddpd 0x1248
|
|
|
|
#define MN_vfmaddpd 0x1250
|
|
|
|
#define MN_vfnmaddpd 0x1259
|
|
|
|
#define MN_vaddpd 0x1263
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_andpd (MN_vexpandpd + 4)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vexpandpd 0x126a
|
|
|
|
#define MN_vandpd 0x1274
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_blendpd (MN_vblendpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vblendpd 0x127b
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_roundpd (MN_vroundpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vroundpd 0x1284
|
|
|
|
#define MN_vgatherdpd 0x128d
|
|
|
|
#define MN_vscatterdpd 0x1298
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpunordpd (MN_vcmpunordpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpunordpd 0x12a4
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpordpd (MN_vcmpordpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpordpd 0x12b0
|
|
|
|
#define MN_vreducepd 0x12ba
|
|
|
|
#define MN_vrangepd 0x12c4
|
|
|
|
#define MN_vcmpngepd 0x12cd
|
|
|
|
#define MN_vcmpgepd 0x12d7
|
|
|
|
#define MN_vrndscalepd 0x12e0
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpnlepd (MN_vcmpnlepd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpnlepd 0x12ec
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmplepd (MN_vcmplepd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmplepd 0x12f6
|
|
|
|
#define MN_vcmpfalsepd 0x12ff
|
|
|
|
#define MN_vcmptruepd 0x130b
|
|
|
|
#define MN_vscalefpd 0x1316
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_shufpd (MN_vshufpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vshufpd 0x1320
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_unpckhpd (MN_vunpckhpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vunpckhpd 0x1328
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movhpd (MN_vmovhpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmovhpd 0x1332
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movmskpd (MN_vmovmskpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmovmskpd 0x133a
|
|
|
|
#define MN_vpermilpd 0x1344
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_unpcklpd (MN_vunpcklpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vunpcklpd 0x134e
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_mulpd (MN_vmulpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmulpd 0x1358
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movlpd (MN_vmovlpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmovlpd 0x135f
|
|
|
|
#define MN_vpcmpd 0x1367
|
|
|
|
#define MN_vblendmpd 0x136e
|
|
|
|
#define MN_vfixupimmpd 0x1378
|
|
|
|
#define MN_vpermpd 0x1384
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_andnpd (MN_vandnpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vandnpd 0x138c
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_minpd (MN_vminpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vminpd 0x1394
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_dppd (MN_vdppd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vdppd 0x139b
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmppd (MN_vcmppd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmppd 0x13a1
|
|
|
|
#define MN_vgetexppd 0x13a8
|
|
|
|
#define MN_vgatherpf0qpd 0x13b2
|
|
|
|
#define MN_vscatterpf0qpd 0x13c0
|
|
|
|
#define MN_vgatherpf1qpd 0x13cf
|
|
|
|
#define MN_vscatterpf1qpd 0x13dd
|
|
|
|
#define MN_vcmpunord_qpd 0x13ec
|
|
|
|
#define MN_vcmpord_qpd 0x13fa
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpneqpd (MN_vcmpneqpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpneqpd 0x1406
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpeqpd (MN_vcmpeqpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpeqpd 0x1410
|
|
|
|
#define MN_vcmpge_oqpd 0x1419
|
|
|
|
#define MN_vcmple_oqpd 0x1425
|
|
|
|
#define MN_vcmpfalse_oqpd 0x1431
|
|
|
|
#define MN_vcmpneq_oqpd 0x1440
|
|
|
|
#define MN_vcmpeq_oqpd 0x144d
|
|
|
|
#define MN_vcmpgt_oqpd 0x1459
|
|
|
|
#define MN_vcmplt_oqpd 0x1465
|
|
|
|
#define MN_vgatherqpd 0x1471
|
|
|
|
#define MN_vscatterqpd 0x147c
|
|
|
|
#define MN_vcmpnge_uqpd 0x1488
|
|
|
|
#define MN_vcmpnle_uqpd 0x1495
|
|
|
|
#define MN_vcmptrue_uqpd 0x14a2
|
|
|
|
#define MN_vcmpneq_uqpd 0x14b0
|
|
|
|
#define MN_vcmpeq_uqpd 0x14bd
|
|
|
|
#define MN_vcmpngt_uqpd 0x14c9
|
|
|
|
#define MN_vcmpnlt_uqpd 0x14d6
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_orpd (MN_vorpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vorpd 0x14e3
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_xorpd (MN_vxorpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vxorpd 0x14e9
|
|
|
|
#define MN_vcmpunord_spd 0x14f0
|
|
|
|
#define MN_vcmpord_spd 0x14fe
|
|
|
|
#define MN_vcmpge_ospd 0x150a
|
|
|
|
#define MN_vcmple_ospd 0x1516
|
|
|
|
#define MN_vcmpfalse_ospd 0x1522
|
|
|
|
#define MN_vcmpneq_ospd 0x1531
|
|
|
|
#define MN_vcmpeq_ospd 0x153e
|
|
|
|
#define MN_vcmpgt_ospd 0x154a
|
|
|
|
#define MN_vcmplt_ospd 0x1556
|
|
|
|
#define MN_vfpclasspd 0x1562
|
|
|
|
#define MN_incsspd 0x156d
|
|
|
|
#define MN_rdsspd 0x1575
|
|
|
|
#define MN_vcompresspd 0x157c
|
|
|
|
#define MN_vcmpnge_uspd 0x1588
|
|
|
|
#define MN_vcmpnle_uspd 0x1595
|
|
|
|
#define MN_vcmptrue_uspd 0x15a2
|
|
|
|
#define MN_vcmpneq_uspd 0x15b0
|
|
|
|
#define MN_vcmpeq_uspd 0x15bd
|
|
|
|
#define MN_vcmpngt_uspd 0x15c9
|
|
|
|
#define MN_vcmpnlt_uspd 0x15d6
|
|
|
|
#define MN_vcmpngtpd 0x15e3
|
|
|
|
#define MN_vcmpgtpd 0x15ed
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpnltpd (MN_vcmpnltpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpnltpd 0x15f6
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpltpd (MN_vcmpltpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpltpd 0x1600
|
|
|
|
#define MN_vgetmantpd 0x1609
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movntpd (MN_vmovntpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmovntpd 0x1614
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_sqrtpd (MN_vsqrtpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vsqrtpd 0x161d
|
|
|
|
#define MN_vtestpd 0x1625
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movupd (MN_vmovupd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmovupd 0x162d
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_blendvpd (MN_vblendvpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vblendvpd 0x1635
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_divpd (MN_vdivpd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vdivpd 0x163f
|
|
|
|
#define MN_vmaskmovpd 0x1646
|
Support Intel AVX10.2 minmax, vector copy and compare instructions
In this patch, we will support AVX10.2 minmax, vector copy and compare
instructions. This will finish the new instruction form support for
AVX10.2. Most of them are new instructions forms except for vmovd
and vmovw, which are extended usage from the old ones.
gas/ChangeLog:
* NEWS: Mention AVX10.2.
* testsuite/gas/i386/i386.exp: Add AVX10.2 tests.
* testsuite/gas/i386/x86-64.exp: Ditto.
* testsuite/gas/i386/avx10_2-256-5-intel.d: New test.
* testsuite/gas/i386/avx10_2-256-miscs.d: Ditto.
* testsuite/gas/i386/avx10_2-256-miscs.s: Ditto.
* testsuite/gas/i386/avx10_2-512-miscs-intel.d: Ditto.
* testsuite/gas/i386/avx10_2-512-miscs.d: Ditto.
* testsuite/gas/i386/avx10_2-512-miscs.s: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-256-miscs-intel.d: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-256-miscs.d: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-256-miscs.s: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-512-miscs-intel.d: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-512-miscs.d: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-512-miscs.s: Ditto.
opcodes/ChangeLog:
* i386-dis-evex-len.h: Add EVEX_LEN_0F7E_P_1_W_1,
EVEX_LEN_0FD6_P_2_W_0, EVEX_LEN_MAP5_6E and EVEX_LEN_MAP5_7E.
* i386-dis-evex-prefix.h: Add PREFIX_EVEX_0F2E, PREFIX_EVEX_0F2F,
PREFIX_EVEX_0F3A52, PREFIX_EVEX_0F3A53, PREFIX_EVEX_MAP5_2E,
PREFIX_EVEX_MAP5_2F, PREFIX_EVEX_MAP5_6E and PREFIX_EVEX_MAP5_7E.
* i386-dis-evex-w.h: Adjust EVEX_W_0F3A42, EVEX_W_0F7E_P_1
and EVEX_W_0FD6. Add EVEX_W_MAP5_6E_P_1 and EVEX_W_MAP5_7E_P_1.
* i386-dis-evex.h: Add and adjust table entries for AVX10.2.
* i386-dis.c (PREFIX_EVEX_0F2E): New.
(PREFIX_EVEX_0F2F): Ditto.
(PREFIX_EVEX_0F3A52): Ditto.
(PREFIX_EVEX_0F3A53): Ditto.
(PREFIX_EVEX_MAP5_2E): Ditto.
(PREFIX_EVEX_MAP5_2F): Ditto.
(PREFIX_EVEX_MAP5_6E_L_0): Ditto.
(PREFIX_EVEX_MAP5_7E_L_0): Ditto.
(EVEX_LEN_0F7E_P_1_W_1): Ditto.
(EVEX_LEN_0FD6_P_2_W_0): Ditto.
(EVEX_LEN_MAP5_6E): Ditto.
(EVEX_LEN_MAP5_7E): Ditto.
(EVEX_W_MAP5_6E_P_1): Ditto.
(EVEX_W_MAP5_7E_P_1): Ditto.
* i386-opc.tbl: Add AVX10.2 instructions.
* i386-mnem.h: Regenerated.
* i386-tbl.h: Ditto.
Co-authored-by: Jun Zhang <jun.zhang@intel.com>
Co-authored-by: Zewei Mo <zewei.mo@intel.com>
2024-12-23 11:32:03 +08:00
|
|
|
#define MN_maxpd (MN_vminmaxpd + 4)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vminmaxpd 0x1651
|
|
|
|
#define MN_vmaxpd 0x165b
|
|
|
|
#define MN_vfrczpd 0x1662
|
|
|
|
#define MN_vpcomeqd 0x166a
|
|
|
|
#define MN_vpcomneqd 0x1673
|
|
|
|
#define MN_vpcmpneqd 0x167d
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pcmpeqd (MN_vpcmpeqd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpcmpeqd 0x1687
|
|
|
|
#define MN_vpgatherqd 0x1690
|
|
|
|
#define MN_vpscatterqd 0x169b
|
|
|
|
#define MN_vpmovusqd 0x16a7
|
|
|
|
#define MN_vpmovsqd 0x16b1
|
|
|
|
#define MN_vpmovqd 0x16ba
|
|
|
|
#define MN_shrd 0x16c2
|
|
|
|
#define MN_kord 0x16c7
|
|
|
|
#define MN_kxnord 0x16cc
|
|
|
|
#define MN_vpord 0x16d3
|
|
|
|
#define MN_vprord 0x16d9
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_word (MN_aword + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_aword 0x16e0
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_dword (MN_adword + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_adword 0x16e6
|
|
|
|
#define MN_kxord 0x16ed
|
|
|
|
#define MN_vpxord 0x16f3
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pinsrd (MN_vpinsrd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpinsrd 0x16fa
|
|
|
|
#define MN_kshiftrd 0x1702
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pextrd (MN_vpextrd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpextrd 0x170b
|
|
|
|
#define MN_vfmsub231sd 0x1713
|
|
|
|
#define MN_vfnmsub231sd 0x171f
|
|
|
|
#define MN_vfmadd231sd 0x172c
|
|
|
|
#define MN_vfnmadd231sd 0x1738
|
|
|
|
#define MN_vfmsub132sd 0x1745
|
|
|
|
#define MN_vfnmsub132sd 0x1751
|
|
|
|
#define MN_vfmadd132sd 0x175e
|
|
|
|
#define MN_vfnmadd132sd 0x176a
|
|
|
|
#define MN_vcvtsh2sd 0x1777
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cvtsi2sd (MN_vcvtsi2sd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcvtsi2sd 0x1781
|
|
|
|
#define MN_vcvtusi2sd 0x178b
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cvtss2sd (MN_vcvtss2sd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcvtss2sd 0x1796
|
|
|
|
#define MN_vfmsub213sd 0x17a0
|
|
|
|
#define MN_vfnmsub213sd 0x17ac
|
|
|
|
#define MN_vfmadd213sd 0x17b9
|
|
|
|
#define MN_vfnmadd213sd 0x17c5
|
|
|
|
#define MN_vrcp14sd 0x17d2
|
|
|
|
#define MN_vrsqrt14sd 0x17db
|
|
|
|
#define MN_vrcp28sd 0x17e6
|
|
|
|
#define MN_vrsqrt28sd 0x17ef
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pabsd (MN_vpabsd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpabsd 0x17fa
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_subsd (MN_vfmsubsd + 3)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vfmsubsd 0x1801
|
|
|
|
#define MN_vfnmsubsd 0x180a
|
|
|
|
#define MN_vsubsd 0x1814
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_addsd (MN_vfmaddsd + 3)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vfmaddsd 0x181b
|
|
|
|
#define MN_vfnmaddsd 0x1824
|
|
|
|
#define MN_vaddsd 0x182e
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_roundsd (MN_vroundsd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vroundsd 0x1835
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpunordsd (MN_vcmpunordsd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpunordsd 0x183e
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpordsd (MN_vcmpordsd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpordsd 0x184a
|
|
|
|
#define MN_vreducesd 0x1854
|
|
|
|
#define MN_vrangesd 0x185e
|
|
|
|
#define MN_vcmpngesd 0x1867
|
|
|
|
#define MN_vcmpgesd 0x1871
|
|
|
|
#define MN_vrndscalesd 0x187a
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpnlesd (MN_vcmpnlesd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpnlesd 0x1886
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmplesd (MN_vcmplesd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmplesd 0x1890
|
|
|
|
#define MN_vcmpfalsesd 0x1899
|
|
|
|
#define MN_vcmptruesd 0x18a5
|
|
|
|
#define MN_vscalefsd 0x18b0
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_comisd (MN_ucomisd + 1)
|
|
|
|
#define MN_ucomisd (MN_vucomisd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vucomisd 0x18ba
|
|
|
|
#define MN_vcomisd 0x18c3
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_mulsd (MN_vmulsd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmulsd 0x18cb
|
|
|
|
#define MN_vfixupimmsd 0x18d2
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_minsd (MN_pminsd + 1)
|
|
|
|
#define MN_pminsd (MN_vpminsd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpminsd 0x18de
|
|
|
|
#define MN_vminsd 0x18e6
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpsd (MN_vcmpsd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpsd 0x18ed
|
|
|
|
#define MN_vgetexpsd 0x18f4
|
|
|
|
#define MN_vcmpunord_qsd 0x18fe
|
|
|
|
#define MN_vcmpord_qsd 0x190c
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpneqsd (MN_vcmpneqsd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpneqsd 0x1918
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpeqsd (MN_vcmpeqsd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpeqsd 0x1922
|
|
|
|
#define MN_vcmpge_oqsd 0x192b
|
|
|
|
#define MN_vcmple_oqsd 0x1937
|
|
|
|
#define MN_vcmpfalse_oqsd 0x1943
|
|
|
|
#define MN_vcmpneq_oqsd 0x1952
|
|
|
|
#define MN_vcmpeq_oqsd 0x195f
|
|
|
|
#define MN_vcmpgt_oqsd 0x196b
|
|
|
|
#define MN_vcmplt_oqsd 0x1977
|
|
|
|
#define MN_vcmpnge_uqsd 0x1983
|
|
|
|
#define MN_vcmpnle_uqsd 0x1990
|
|
|
|
#define MN_vcmptrue_uqsd 0x199d
|
|
|
|
#define MN_vcmpneq_uqsd 0x19ab
|
|
|
|
#define MN_vcmpeq_uqsd 0x19b8
|
|
|
|
#define MN_vcmpngt_uqsd 0x19c4
|
|
|
|
#define MN_vcmpnlt_uqsd 0x19d1
|
|
|
|
#define MN_vmovrsd 0x19de
|
|
|
|
#define MN_vcmpunord_ssd 0x19e6
|
|
|
|
#define MN_vcmpord_ssd 0x19f4
|
|
|
|
#define MN_vpdpbssd 0x1a00
|
|
|
|
#define MN_tdpbssd 0x1a09
|
|
|
|
#define MN_vpcompressd 0x1a11
|
|
|
|
#define MN_vcmpge_ossd 0x1a1d
|
|
|
|
#define MN_vcmple_ossd 0x1a29
|
|
|
|
#define MN_vcmpfalse_ossd 0x1a35
|
|
|
|
#define MN_vcmpneq_ossd 0x1a44
|
|
|
|
#define MN_vcmpeq_ossd 0x1a51
|
|
|
|
#define MN_vcmpgt_ossd 0x1a5d
|
|
|
|
#define MN_vcmplt_ossd 0x1a69
|
|
|
|
#define MN_wrssd 0x1a75
|
|
|
|
#define MN_vfpclasssd 0x1a7b
|
|
|
|
#define MN_vcmpnge_ussd 0x1a86
|
|
|
|
#define MN_vcmpnle_ussd 0x1a93
|
|
|
|
#define MN_vcmptrue_ussd 0x1aa0
|
|
|
|
#define MN_vcmpneq_ussd 0x1aae
|
|
|
|
#define MN_vcmpeq_ussd 0x1abb
|
|
|
|
#define MN_vcmpngt_ussd 0x1ac7
|
|
|
|
#define MN_vcmpnlt_ussd 0x1ad4
|
|
|
|
#define MN_wrussd 0x1ae1
|
|
|
|
#define MN_vp4dpwssd 0x1ae8
|
|
|
|
#define MN_vpdpwssd 0x1af2
|
|
|
|
#define MN_vcmpngtsd 0x1afb
|
|
|
|
#define MN_vcmpgtsd 0x1b05
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpnltsd (MN_vcmpnltsd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpnltsd 0x1b0e
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpltsd (MN_vcmpltsd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpltsd 0x1b18
|
|
|
|
#define MN_vgetmantsd 0x1b21
|
|
|
|
#define MN_movntsd 0x1b2c
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_sqrtsd (MN_vsqrtsd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vsqrtsd 0x1b34
|
|
|
|
#define MN_vbroadcastsd 0x1b3c
|
|
|
|
#define MN_vpdpbusd 0x1b49
|
|
|
|
#define MN_tdpbusd 0x1b52
|
|
|
|
#define MN_vpdpwusd 0x1b5a
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_divsd (MN_vdivsd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vdivsd 0x1b63
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movsd (MN_vmovsd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmovsd 0x1b6a
|
Support Intel AVX10.2 minmax, vector copy and compare instructions
In this patch, we will support AVX10.2 minmax, vector copy and compare
instructions. This will finish the new instruction form support for
AVX10.2. Most of them are new instructions forms except for vmovd
and vmovw, which are extended usage from the old ones.
gas/ChangeLog:
* NEWS: Mention AVX10.2.
* testsuite/gas/i386/i386.exp: Add AVX10.2 tests.
* testsuite/gas/i386/x86-64.exp: Ditto.
* testsuite/gas/i386/avx10_2-256-5-intel.d: New test.
* testsuite/gas/i386/avx10_2-256-miscs.d: Ditto.
* testsuite/gas/i386/avx10_2-256-miscs.s: Ditto.
* testsuite/gas/i386/avx10_2-512-miscs-intel.d: Ditto.
* testsuite/gas/i386/avx10_2-512-miscs.d: Ditto.
* testsuite/gas/i386/avx10_2-512-miscs.s: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-256-miscs-intel.d: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-256-miscs.d: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-256-miscs.s: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-512-miscs-intel.d: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-512-miscs.d: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-512-miscs.s: Ditto.
opcodes/ChangeLog:
* i386-dis-evex-len.h: Add EVEX_LEN_0F7E_P_1_W_1,
EVEX_LEN_0FD6_P_2_W_0, EVEX_LEN_MAP5_6E and EVEX_LEN_MAP5_7E.
* i386-dis-evex-prefix.h: Add PREFIX_EVEX_0F2E, PREFIX_EVEX_0F2F,
PREFIX_EVEX_0F3A52, PREFIX_EVEX_0F3A53, PREFIX_EVEX_MAP5_2E,
PREFIX_EVEX_MAP5_2F, PREFIX_EVEX_MAP5_6E and PREFIX_EVEX_MAP5_7E.
* i386-dis-evex-w.h: Adjust EVEX_W_0F3A42, EVEX_W_0F7E_P_1
and EVEX_W_0FD6. Add EVEX_W_MAP5_6E_P_1 and EVEX_W_MAP5_7E_P_1.
* i386-dis-evex.h: Add and adjust table entries for AVX10.2.
* i386-dis.c (PREFIX_EVEX_0F2E): New.
(PREFIX_EVEX_0F2F): Ditto.
(PREFIX_EVEX_0F3A52): Ditto.
(PREFIX_EVEX_0F3A53): Ditto.
(PREFIX_EVEX_MAP5_2E): Ditto.
(PREFIX_EVEX_MAP5_2F): Ditto.
(PREFIX_EVEX_MAP5_6E_L_0): Ditto.
(PREFIX_EVEX_MAP5_7E_L_0): Ditto.
(EVEX_LEN_0F7E_P_1_W_1): Ditto.
(EVEX_LEN_0FD6_P_2_W_0): Ditto.
(EVEX_LEN_MAP5_6E): Ditto.
(EVEX_LEN_MAP5_7E): Ditto.
(EVEX_W_MAP5_6E_P_1): Ditto.
(EVEX_W_MAP5_7E_P_1): Ditto.
* i386-opc.tbl: Add AVX10.2 instructions.
* i386-mnem.h: Regenerated.
* i386-tbl.h: Ditto.
Co-authored-by: Jun Zhang <jun.zhang@intel.com>
Co-authored-by: Zewei Mo <zewei.mo@intel.com>
2024-12-23 11:32:03 +08:00
|
|
|
#define MN_maxsd (MN_vminmaxsd + 4)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vminmaxsd 0x1b71
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmaxsd (MN_vpmaxsd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmaxsd 0x1b7b
|
|
|
|
#define MN_vmaxsd 0x1b83
|
|
|
|
#define MN_vucomxsd 0x1b8a
|
|
|
|
#define MN_vcomxsd 0x1b93
|
|
|
|
#define MN_vfrczsd 0x1b9b
|
|
|
|
#define MN_vp2intersectd 0x1ba3
|
|
|
|
#define MN_vpconflictd 0x1bb1
|
|
|
|
#define MN_vpcomgtd 0x1bbd
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pcmpgtd (MN_vpcmpgtd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpcmpgtd 0x1bc6
|
|
|
|
#define MN_cltd 0x1bcf
|
|
|
|
#define MN_vpcomltd 0x1bd4
|
|
|
|
#define MN_vpcmpnltd 0x1bdd
|
|
|
|
#define MN_vpcmpltd 0x1be7
|
|
|
|
#define MN_vpopcntd 0x1bf0
|
|
|
|
#define MN_vplzcntd 0x1bf9
|
|
|
|
#define MN_knotd 0x1c02
|
|
|
|
#define MN_vprotd 0x1c08
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_std (MN_vpbroadcastd + 9)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpbroadcastd 0x1c0f
|
|
|
|
#define MN_ktestd 0x1c1c
|
|
|
|
#define MN_kortestd 0x1c23
|
|
|
|
#define MN_cwtd 0x1c2c
|
|
|
|
#define MN_vpcomgeud 0x1c31
|
|
|
|
#define MN_vpcomleud 0x1c3b
|
|
|
|
#define MN_vpcmpnleud 0x1c45
|
|
|
|
#define MN_vpcmpleud 0x1c50
|
|
|
|
#define MN_vpcomfalseud 0x1c5a
|
|
|
|
#define MN_vpcomtrueud 0x1c67
|
|
|
|
#define MN_vpcomud 0x1c73
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pminud (MN_vpminud + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpminud 0x1c7b
|
|
|
|
#define MN_vpcmpud 0x1c83
|
|
|
|
#define MN_vpcomequd 0x1c8b
|
|
|
|
#define MN_vpcomnequd 0x1c95
|
|
|
|
#define MN_vpcmpnequd 0x1ca0
|
|
|
|
#define MN_vpcmpequd 0x1cab
|
|
|
|
#define MN_vpdpbsud 0x1cb5
|
|
|
|
#define MN_tdpbsud 0x1cbe
|
|
|
|
#define MN_vpdpwsud 0x1cc6
|
|
|
|
#define MN_vpcomgtud 0x1ccf
|
|
|
|
#define MN_vpcomltud 0x1cd9
|
|
|
|
#define MN_vpcmpnltud 0x1ce3
|
|
|
|
#define MN_vpcmpltud 0x1cee
|
|
|
|
#define MN_vpdpbuud 0x1cf8
|
|
|
|
#define MN_tdpbuud 0x1d01
|
|
|
|
#define MN_vpdpwuud 0x1d09
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmaxud (MN_vpmaxud + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmaxud 0x1d12
|
|
|
|
#define MN_vpsravd 0x1d1a
|
|
|
|
#define MN_vpshldvd 0x1d22
|
|
|
|
#define MN_vpshrdvd 0x1d2b
|
|
|
|
#define MN_vpsllvd 0x1d34
|
|
|
|
#define MN_vprolvd 0x1d3c
|
|
|
|
#define MN_vpsrlvd 0x1d44
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_invd (MN_wbinvd + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_wbinvd 0x1d4c
|
|
|
|
#define MN_wbnoinvd 0x1d53
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movd (MN_kmovd + 1)
|
|
|
|
#define MN_kmovd (MN_vpmaskmovd + 5)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmaskmovd 0x1d5c
|
|
|
|
#define MN_vmovd 0x1d67
|
|
|
|
#define MN_vprorvd 0x1d6d
|
|
|
|
#define MN_vphsubwd 0x1d75
|
|
|
|
#define MN_cwd 0x1d7e
|
|
|
|
#define MN_vphaddwd 0x1d82
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmaddwd (MN_vpmaddwd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmaddwd 0x1d8b
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_punpckhwd (MN_vpunpckhwd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpunpckhwd 0x1d94
|
|
|
|
#define MN_kunpckwd 0x1d9f
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_punpcklwd (MN_vpunpcklwd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpunpcklwd 0x1da8
|
|
|
|
#define MN_vpmacswd 0x1db3
|
|
|
|
#define MN_vpmadcswd 0x1dbc
|
|
|
|
#define MN_vpmacsswd 0x1dc6
|
|
|
|
#define MN_vpmadcsswd 0x1dd0
|
|
|
|
#define MN_vphadduwd 0x1ddb
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmovsxwd (MN_vpmovsxwd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmovsxwd 0x1de5
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmovzxwd (MN_vpmovzxwd + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmovzxwd 0x1def
|
|
|
|
#define MN_movsxd 0x1df9
|
|
|
|
#define MN_fldl2e 0x1e00
|
|
|
|
#define MN_jae 0x1e07
|
|
|
|
#define MN_jnae 0x1e0b
|
|
|
|
#define MN_ccmpnae 0x1e10
|
|
|
|
#define MN_setnae 0x1e18
|
|
|
|
#define MN_ctestnae 0x1e1f
|
|
|
|
#define MN_setzunae 0x1e28
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmovnae (MN_fcmovnae + 1)
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_fcmovnae (MN_cfcmovnae + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cfcmovnae 0x1e31
|
|
|
|
#define MN_ccmpae 0x1e3b
|
|
|
|
#define MN_setae 0x1e42
|
|
|
|
#define MN_ctestae 0x1e48
|
|
|
|
#define MN_setzuae 0x1e50
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmovae (MN_fcmovae + 1)
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_fcmovae (MN_cfcmovae + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cfcmovae 0x1e58
|
|
|
|
#define MN_jbe 0x1e61
|
|
|
|
#define MN_jnbe 0x1e65
|
|
|
|
#define MN_ccmpnbe 0x1e6a
|
|
|
|
#define MN_setnbe 0x1e72
|
|
|
|
#define MN_ctestnbe 0x1e79
|
|
|
|
#define MN_setzunbe 0x1e82
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmovnbe (MN_fcmovnbe + 1)
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_fcmovnbe (MN_cfcmovnbe + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cfcmovnbe 0x1e8b
|
|
|
|
#define MN_ccmpbe 0x1e95
|
|
|
|
#define MN_setbe 0x1e9c
|
|
|
|
#define MN_ctestbe 0x1ea2
|
|
|
|
#define MN_setzube 0x1eaa
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movbe (MN_cmovbe + 1)
|
|
|
|
#define MN_cmovbe (MN_fcmovbe + 1)
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_fcmovbe (MN_cfcmovbe + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cfcmovbe 0x1eb2
|
|
|
|
#define MN_lfence 0x1ebb
|
|
|
|
#define MN_mfence 0x1ec2
|
|
|
|
#define MN_sfence 0x1ec9
|
|
|
|
#define MN_cwde 0x1ed0
|
|
|
|
#define MN_ffree 0x1ed5
|
|
|
|
#define MN_jge 0x1edb
|
|
|
|
#define MN_jnge 0x1edf
|
|
|
|
#define MN_ccmpnge 0x1ee4
|
|
|
|
#define MN_setnge 0x1eec
|
|
|
|
#define MN_ctestnge 0x1ef3
|
|
|
|
#define MN_setzunge 0x1efc
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_cmovnge (MN_cfcmovnge + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cfcmovnge 0x1f05
|
|
|
|
#define MN_ccmpge 0x1f0f
|
|
|
|
#define MN_pfcmpge 0x1f16
|
|
|
|
#define MN_setge 0x1f1e
|
|
|
|
#define MN_ctestge 0x1f24
|
|
|
|
#define MN_setzuge 0x1f2c
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_cmovge (MN_cfcmovge + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cfcmovge 0x1f34
|
|
|
|
#define MN_je 0x1f3d
|
|
|
|
#define MN_fscale 0x1f40
|
|
|
|
#define MN_jle 0x1f47
|
|
|
|
#define MN_jnle 0x1f4b
|
|
|
|
#define MN_ccmpnle 0x1f50
|
|
|
|
#define MN_setnle 0x1f58
|
|
|
|
#define MN_ctestnle 0x1f5f
|
|
|
|
#define MN_setzunle 0x1f68
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_cmovnle (MN_cfcmovnle + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cfcmovnle 0x1f71
|
|
|
|
#define MN_ccmple 0x1f7b
|
|
|
|
#define MN_setle 0x1f82
|
|
|
|
#define MN_ctestle 0x1f88
|
|
|
|
#define MN_setzule 0x1f90
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_cmovle (MN_cfcmovle + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cfcmovle 0x1f98
|
|
|
|
#define MN_vmresume 0x1fa1
|
|
|
|
#define MN_jne 0x1faa
|
|
|
|
#define MN_repne 0x1fae
|
|
|
|
#define MN_ccmpne 0x1fb4
|
|
|
|
#define MN_loopne 0x1fbb
|
|
|
|
#define MN_setne 0x1fc2
|
|
|
|
#define MN_ctestne 0x1fc8
|
|
|
|
#define MN_setzune 0x1fd0
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmovne (MN_fcmovne + 1)
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_fcmovne (MN_cfcmovne + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cfcmovne 0x1fd8
|
|
|
|
#define MN_repe 0x1fe1
|
|
|
|
#define MN_jpe 0x1fe6
|
|
|
|
#define MN_ccmpe 0x1fea
|
|
|
|
#define MN_loope 0x1ff0
|
|
|
|
#define MN_setpe 0x1ff6
|
|
|
|
#define MN_setzupe 0x1ffc
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_cmovpe (MN_cfcmovpe + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cfcmovpe 0x2004
|
|
|
|
#define MN_cdqe 0x200d
|
|
|
|
#define MN_xacquire 0x2012
|
|
|
|
#define MN_xstore 0x201b
|
|
|
|
#define MN_rdfsbase 0x2022
|
|
|
|
#define MN_wrfsbase 0x202b
|
|
|
|
#define MN_rdgsbase 0x2034
|
|
|
|
#define MN_wrgsbase 0x203d
|
|
|
|
#define MN_tilerelease 0x2046
|
|
|
|
#define MN_xrelease 0x2052
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pause (MN_tpause + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_tpause 0x205b
|
|
|
|
#define MN_pvalidate 0x2062
|
|
|
|
#define MN_rmpupdate 0x206c
|
|
|
|
#define MN_sete 0x2076
|
|
|
|
#define MN_vmwrite 0x207b
|
|
|
|
#define MN_ptwrite 0x2083
|
|
|
|
#define MN_cldemote 0x208b
|
|
|
|
#define MN_cteste 0x2094
|
|
|
|
#define MN_sha1nexte 0x209b
|
|
|
|
#define MN_setzue 0x20a5
|
|
|
|
#define MN_leave 0x20ac
|
|
|
|
#define MN_fsave 0x20b2
|
|
|
|
#define MN_vmsave 0x20b8
|
|
|
|
#define MN_fnsave 0x20bf
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_xsave (MN_fxsave + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_fxsave 0x20c6
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmove (MN_fcmove + 1)
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_fcmove (MN_cfcmove + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cfcmove 0x20cd
|
|
|
|
#define MN_serialize 0x20d5
|
|
|
|
#define MN_vmxoff 0x20df
|
|
|
|
#define MN_lahf 0x20e6
|
|
|
|
#define MN_sahf 0x20eb
|
|
|
|
#define MN_pushf 0x20f0
|
|
|
|
#define MN_ccmpf 0x20f6
|
|
|
|
#define MN_popf 0x20fc
|
|
|
|
#define MN_bsf 0x2101
|
|
|
|
#define MN_retf 0x2105
|
|
|
|
#define MN_ctestf 0x210a
|
|
|
|
#define MN_neg 0x2111
|
|
|
|
#define MN_ldtilecfg 0x2115
|
|
|
|
#define MN_sttilecfg 0x211f
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_xchg (MN_cmpxchg + 3)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cmpxchg 0x2129
|
|
|
|
#define MN_pconfig 0x2131
|
|
|
|
#define MN_jg 0x2139
|
|
|
|
#define MN_jng 0x213c
|
|
|
|
#define MN_ccmpng 0x2140
|
|
|
|
#define MN_xstore_rng 0x2147
|
|
|
|
#define MN_xstorerng 0x2152
|
|
|
|
#define MN_setng 0x215c
|
|
|
|
#define MN_ctestng 0x2162
|
|
|
|
#define MN_setzung 0x216a
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_cmovng (MN_cfcmovng + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cfcmovng 0x2172
|
|
|
|
#define MN_invlpg 0x217b
|
|
|
|
#define MN_ccmpg 0x2182
|
|
|
|
#define MN_setg 0x2188
|
|
|
|
#define MN_ctestg 0x218d
|
|
|
|
#define MN_setzug 0x2194
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_cmovg (MN_cfcmovg + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cfcmovg 0x219b
|
|
|
|
#define MN_tcvtrowps2bf16h 0x21a3
|
|
|
|
#define MN_vmlaunch 0x21b3
|
|
|
|
#define MN_prefetch 0x21bc
|
|
|
|
#define MN_fxch 0x21c5
|
|
|
|
#define MN_tcvtrowps2phh 0x21ca
|
|
|
|
#define MN_vfmaddsub231ph 0x21d8
|
|
|
|
#define MN_vfmsub231ph 0x21e7
|
|
|
|
#define MN_vfnmsub231ph 0x21f3
|
|
|
|
#define MN_vfmsubadd231ph 0x2200
|
|
|
|
#define MN_vfmadd231ph 0x220f
|
|
|
|
#define MN_vfnmadd231ph 0x221b
|
|
|
|
#define MN_vfmaddsub132ph 0x2228
|
|
|
|
#define MN_vfmsub132ph 0x2237
|
|
|
|
#define MN_vfnmsub132ph 0x2243
|
|
|
|
#define MN_vfmsubadd132ph 0x2250
|
|
|
|
#define MN_vfmadd132ph 0x225f
|
|
|
|
#define MN_vfnmadd132ph 0x226b
|
|
|
|
#define MN_vcvthf82ph 0x2278
|
|
|
|
#define MN_vcvtpd2ph 0x2283
|
|
|
|
#define MN_vcvtdq2ph 0x228d
|
|
|
|
#define MN_vcvtudq2ph 0x2297
|
|
|
|
#define MN_vcvtqq2ph 0x22a2
|
|
|
|
#define MN_vcvtuqq2ph 0x22ac
|
|
|
|
#define MN_vcvtps2ph 0x22b7
|
|
|
|
#define MN_vcvtw2ph 0x22c1
|
|
|
|
#define MN_vcvtuw2ph 0x22ca
|
|
|
|
#define MN_vfmaddsub213ph 0x22d4
|
|
|
|
#define MN_vfmsub213ph 0x22e3
|
|
|
|
#define MN_vfnmsub213ph 0x22ef
|
|
|
|
#define MN_vfmsubadd213ph 0x22fc
|
|
|
|
#define MN_vfmadd213ph 0x230b
|
|
|
|
#define MN_vfnmadd213ph 0x2317
|
|
|
|
#define MN_vsubph 0x2324
|
|
|
|
#define MN_vfcmaddcph 0x232b
|
|
|
|
#define MN_vfmaddcph 0x2336
|
|
|
|
#define MN_vfcmulcph 0x2340
|
|
|
|
#define MN_vfmulcph 0x234a
|
|
|
|
#define MN_vaddph 0x2353
|
|
|
|
#define MN_vcmpunordph 0x235a
|
|
|
|
#define MN_vcmpordph 0x2366
|
|
|
|
#define MN_vreduceph 0x2370
|
|
|
|
#define MN_vcmpngeph 0x237a
|
|
|
|
#define MN_vcmpgeph 0x2384
|
|
|
|
#define MN_vrndscaleph 0x238d
|
|
|
|
#define MN_vcmpnleph 0x2399
|
|
|
|
#define MN_vcmpleph 0x23a3
|
|
|
|
#define MN_vcmpfalseph 0x23ac
|
|
|
|
#define MN_vcmptrueph 0x23b8
|
|
|
|
#define MN_vscalefph 0x23c3
|
|
|
|
#define MN_vmulph 0x23cd
|
|
|
|
#define MN_vminph 0x23d4
|
|
|
|
#define MN_vrcpph 0x23db
|
|
|
|
#define MN_vcmpph 0x23e2
|
|
|
|
#define MN_vgetexpph 0x23e9
|
|
|
|
#define MN_vcmpunord_qph 0x23f3
|
|
|
|
#define MN_vcmpord_qph 0x2401
|
|
|
|
#define MN_vcmpneqph 0x240d
|
|
|
|
#define MN_vcmpeqph 0x2417
|
|
|
|
#define MN_vcmpge_oqph 0x2420
|
|
|
|
#define MN_vcmple_oqph 0x242c
|
|
|
|
#define MN_vcmpfalse_oqph 0x2438
|
|
|
|
#define MN_vcmpneq_oqph 0x2447
|
|
|
|
#define MN_vcmpeq_oqph 0x2454
|
|
|
|
#define MN_vcmpgt_oqph 0x2460
|
|
|
|
#define MN_vcmplt_oqph 0x246c
|
|
|
|
#define MN_vcmpnge_uqph 0x2478
|
|
|
|
#define MN_vcmpnle_uqph 0x2485
|
|
|
|
#define MN_vcmptrue_uqph 0x2492
|
|
|
|
#define MN_vcmpneq_uqph 0x24a0
|
|
|
|
#define MN_vcmpeq_uqph 0x24ad
|
|
|
|
#define MN_vcmpngt_uqph 0x24b9
|
|
|
|
#define MN_vcmpnlt_uqph 0x24c6
|
|
|
|
#define MN_vcmpunord_sph 0x24d3
|
|
|
|
#define MN_vcmpord_sph 0x24e1
|
|
|
|
#define MN_vcmpge_osph 0x24ed
|
|
|
|
#define MN_vcmple_osph 0x24f9
|
|
|
|
#define MN_vcmpfalse_osph 0x2505
|
|
|
|
#define MN_vcmpneq_osph 0x2514
|
|
|
|
#define MN_vcmpeq_osph 0x2521
|
|
|
|
#define MN_vcmpgt_osph 0x252d
|
|
|
|
#define MN_vcmplt_osph 0x2539
|
|
|
|
#define MN_vfpclassph 0x2545
|
|
|
|
#define MN_vcmpnge_usph 0x2550
|
|
|
|
#define MN_vcmpnle_usph 0x255d
|
|
|
|
#define MN_vcmptrue_usph 0x256a
|
|
|
|
#define MN_vcmpneq_usph 0x2578
|
|
|
|
#define MN_vcmpeq_usph 0x2585
|
|
|
|
#define MN_vcmpngt_usph 0x2591
|
|
|
|
#define MN_vcmpnlt_usph 0x259e
|
|
|
|
#define MN_vcmpngtph 0x25ab
|
|
|
|
#define MN_vcmpgtph 0x25b5
|
|
|
|
#define MN_vcmpnltph 0x25be
|
|
|
|
#define MN_vcmpltph 0x25c8
|
|
|
|
#define MN_vgetmantph 0x25d1
|
|
|
|
#define MN_vrsqrtph 0x25dc
|
|
|
|
#define MN_vsqrtph 0x25e5
|
|
|
|
#define MN_vdivph 0x25ed
|
|
|
|
#define MN_vminmaxph 0x25f4
|
|
|
|
#define MN_vmaxph 0x25fe
|
|
|
|
#define MN_vpmacsdqh 0x2605
|
|
|
|
#define MN_vpmacssdqh 0x260f
|
|
|
|
#define MN_vfmsub231sh 0x261a
|
|
|
|
#define MN_vfnmsub231sh 0x2626
|
|
|
|
#define MN_vfmadd231sh 0x2633
|
|
|
|
#define MN_vfnmadd231sh 0x263f
|
|
|
|
#define MN_vfmsub132sh 0x264c
|
|
|
|
#define MN_vfnmsub132sh 0x2658
|
|
|
|
#define MN_vfmadd132sh 0x2665
|
|
|
|
#define MN_vfnmadd132sh 0x2671
|
|
|
|
#define MN_vcvtsd2sh 0x267e
|
|
|
|
#define MN_vcvtsi2sh 0x2688
|
|
|
|
#define MN_vcvtusi2sh 0x2692
|
|
|
|
#define MN_vcvtss2sh 0x269d
|
|
|
|
#define MN_vfmsub213sh 0x26a7
|
|
|
|
#define MN_vfnmsub213sh 0x26b3
|
|
|
|
#define MN_vfmadd213sh 0x26c0
|
|
|
|
#define MN_vfnmadd213sh 0x26cc
|
|
|
|
#define MN_psmash 0x26d9
|
|
|
|
#define MN_vsubsh 0x26e0
|
|
|
|
#define MN_vfcmaddcsh 0x26e7
|
|
|
|
#define MN_vfmaddcsh 0x26f2
|
|
|
|
#define MN_vfcmulcsh 0x26fc
|
|
|
|
#define MN_vfmulcsh 0x2706
|
|
|
|
#define MN_vaddsh 0x270f
|
|
|
|
#define MN_vcmpunordsh 0x2716
|
|
|
|
#define MN_vcmpordsh 0x2722
|
|
|
|
#define MN_vreducesh 0x272c
|
|
|
|
#define MN_vcmpngesh 0x2736
|
|
|
|
#define MN_vcmpgesh 0x2740
|
|
|
|
#define MN_vrndscalesh 0x2749
|
|
|
|
#define MN_vcmpnlesh 0x2755
|
|
|
|
#define MN_vcmplesh 0x275f
|
|
|
|
#define MN_vcmpfalsesh 0x2768
|
|
|
|
#define MN_vcmptruesh 0x2774
|
|
|
|
#define MN_vscalefsh 0x277f
|
|
|
|
#define MN_vucomish 0x2789
|
|
|
|
#define MN_vcomish 0x2792
|
|
|
|
#define MN_vmulsh 0x279a
|
|
|
|
#define MN_vminsh 0x27a1
|
|
|
|
#define MN_vrcpsh 0x27a8
|
|
|
|
#define MN_vcmpsh 0x27af
|
|
|
|
#define MN_vgetexpsh 0x27b6
|
|
|
|
#define MN_vcmpunord_qsh 0x27c0
|
|
|
|
#define MN_vcmpord_qsh 0x27ce
|
|
|
|
#define MN_vcmpneqsh 0x27da
|
|
|
|
#define MN_vcmpeqsh 0x27e4
|
|
|
|
#define MN_vcmpge_oqsh 0x27ed
|
|
|
|
#define MN_vcmple_oqsh 0x27f9
|
|
|
|
#define MN_vcmpfalse_oqsh 0x2805
|
|
|
|
#define MN_vcmpneq_oqsh 0x2814
|
|
|
|
#define MN_vcmpeq_oqsh 0x2821
|
|
|
|
#define MN_vcmpgt_oqsh 0x282d
|
|
|
|
#define MN_vcmplt_oqsh 0x2839
|
|
|
|
#define MN_vcmpnge_uqsh 0x2845
|
|
|
|
#define MN_vcmpnle_uqsh 0x2852
|
|
|
|
#define MN_vcmptrue_uqsh 0x285f
|
|
|
|
#define MN_vcmpneq_uqsh 0x286d
|
|
|
|
#define MN_vcmpeq_uqsh 0x287a
|
|
|
|
#define MN_vcmpngt_uqsh 0x2886
|
|
|
|
#define MN_vcmpnlt_uqsh 0x2893
|
|
|
|
#define MN_vcmpunord_ssh 0x28a0
|
|
|
|
#define MN_vcmpord_ssh 0x28ae
|
|
|
|
#define MN_vcmpge_ossh 0x28ba
|
|
|
|
#define MN_vcmple_ossh 0x28c6
|
|
|
|
#define MN_vcmpfalse_ossh 0x28d2
|
|
|
|
#define MN_vcmpneq_ossh 0x28e1
|
|
|
|
#define MN_vcmpeq_ossh 0x28ee
|
|
|
|
#define MN_vcmpgt_ossh 0x28fa
|
|
|
|
#define MN_vcmplt_ossh 0x2906
|
|
|
|
#define MN_vfpclasssh 0x2912
|
|
|
|
#define MN_vcmpnge_ussh 0x291d
|
|
|
|
#define MN_vcmpnle_ussh 0x292a
|
|
|
|
#define MN_vcmptrue_ussh 0x2937
|
|
|
|
#define MN_vcmpneq_ussh 0x2945
|
|
|
|
#define MN_vcmpeq_ussh 0x2952
|
|
|
|
#define MN_vcmpngt_ussh 0x295e
|
|
|
|
#define MN_vcmpnlt_ussh 0x296b
|
|
|
|
#define MN_vcmpngtsh 0x2978
|
|
|
|
#define MN_vcmpgtsh 0x2982
|
|
|
|
#define MN_vcmpnltsh 0x298b
|
|
|
|
#define MN_vcmpltsh 0x2995
|
|
|
|
#define MN_vgetmantsh 0x299e
|
|
|
|
#define MN_vrsqrtsh 0x29a9
|
|
|
|
#define MN_vsqrtsh 0x29b2
|
|
|
|
#define MN_clflush 0x29ba
|
|
|
|
#define MN_push 0x29c2
|
|
|
|
#define MN_vdivsh 0x29c7
|
|
|
|
#define MN_vmovsh 0x29ce
|
|
|
|
#define MN_vminmaxsh 0x29d5
|
|
|
|
#define MN_vmaxsh 0x29df
|
|
|
|
#define MN_vucomxsh 0x29e6
|
|
|
|
#define MN_vcomxsh 0x29ef
|
|
|
|
#define MN_blci 0x29f7
|
|
|
|
#define MN_clgi 0x29fc
|
|
|
|
#define MN_stgi 0x2a01
|
|
|
|
#define MN_bzhi 0x2a06
|
|
|
|
#define MN_cli 0x2a0b
|
|
|
|
#define MN_fcomi 0x2a0f
|
|
|
|
#define MN_fucomi 0x2a15
|
|
|
|
#define MN_feni 0x2a1c
|
|
|
|
#define MN_fneni 0x2a21
|
|
|
|
#define MN_cvttpd2pi 0x2a27
|
|
|
|
#define MN_cvtpd2pi 0x2a31
|
|
|
|
#define MN_cvttps2pi 0x2a3a
|
|
|
|
#define MN_cvtps2pi 0x2a44
|
|
|
|
#define MN_fldpi 0x2a4d
|
|
|
|
#define MN_senduipi 0x2a53
|
|
|
|
#define MN_fcompi 0x2a5c
|
|
|
|
#define MN_fucompi 0x2a63
|
|
|
|
#define MN_movdiri 0x2a6b
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pcmpestri (MN_vpcmpestri + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpcmpestri 0x2a73
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pcmpistri (MN_vpcmpistri + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpcmpistri 0x2a7e
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cvttsd2si (MN_vcvttsd2si + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcvttsd2si 0x2a89
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cvtsd2si (MN_vcvtsd2si + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcvtsd2si 0x2a94
|
|
|
|
#define MN_vcvttsh2si 0x2a9e
|
|
|
|
#define MN_vcvtsh2si 0x2aa9
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cvttss2si (MN_vcvttss2si + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcvttss2si 0x2ab3
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cvtss2si (MN_vcvtss2si + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcvtss2si 0x2abe
|
|
|
|
#define MN_fdisi 0x2ac8
|
|
|
|
#define MN_fndisi 0x2ace
|
|
|
|
#define MN_blsi 0x2ad5
|
|
|
|
#define MN_vcvttsd2usi 0x2ada
|
|
|
|
#define MN_vcvtsd2usi 0x2ae6
|
|
|
|
#define MN_vcvttsh2usi 0x2af1
|
|
|
|
#define MN_vcvtsh2usi 0x2afd
|
|
|
|
#define MN_vcvttss2usi 0x2b08
|
|
|
|
#define MN_vcvtss2usi 0x2b14
|
|
|
|
#define MN_movnti 0x2b1f
|
|
|
|
#define MN_sti 0x2b26
|
|
|
|
#define MN_clui 0x2b2a
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_stui (MN_testui + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_testui 0x2b2f
|
|
|
|
#define MN_notrack 0x2b36
|
|
|
|
#define MN_lock 0x2b3e
|
|
|
|
#define MN_bndmk 0x2b43
|
|
|
|
#define MN_xresldtrk 0x2b49
|
|
|
|
#define MN_xsusldtrk 0x2b53
|
|
|
|
#define MN_blcmsk 0x2b5d
|
|
|
|
#define MN_blsmsk 0x2b64
|
|
|
|
#define MN_tzmsk 0x2b6b
|
|
|
|
#define MN_tcvtrowps2bf16l 0x2b71
|
|
|
|
#define MN_sal 0x2b81
|
|
|
|
#define MN_lwpval 0x2b85
|
|
|
|
#define MN_bndcl 0x2b8c
|
|
|
|
#define MN_rcl 0x2b92
|
|
|
|
#define MN_tcvtrowps2phl 0x2b96
|
|
|
|
#define MN_shl 0x2ba4
|
|
|
|
#define MN_jl 0x2ba8
|
|
|
|
#define MN_aesdec256kl 0x2bab
|
|
|
|
#define MN_aesenc256kl 0x2bb7
|
|
|
|
#define MN_aesdecwide256kl 0x2bc3
|
|
|
|
#define MN_aesencwide256kl 0x2bd3
|
|
|
|
#define MN_aesdec128kl 0x2be3
|
|
|
|
#define MN_aesenc128kl 0x2bef
|
|
|
|
#define MN_aesdecwide128kl 0x2bfb
|
|
|
|
#define MN_aesencwide128kl 0x2c0b
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_call (MN_tdcall + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_tdcall 0x2c1b
|
|
|
|
#define MN_lcall 0x2c22
|
|
|
|
#define MN_seamcall 0x2c28
|
|
|
|
#define MN_vmmcall 0x2c31
|
|
|
|
#define MN_vmcall 0x2c39
|
|
|
|
#define MN_syscall 0x2c40
|
|
|
|
#define MN_vzeroall 0x2c48
|
|
|
|
#define MN_fildll 0x2c51
|
|
|
|
#define MN_blcfill 0x2c58
|
|
|
|
#define MN_blsfill 0x2c60
|
|
|
|
#define MN_fistpll 0x2c68
|
|
|
|
#define MN_fisttpll 0x2c70
|
|
|
|
#define MN_jnl 0x2c79
|
|
|
|
#define MN_ccmpnl 0x2c7d
|
|
|
|
#define MN_setnl 0x2c84
|
|
|
|
#define MN_ctestnl 0x2c8a
|
|
|
|
#define MN_setzunl 0x2c92
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_cmovnl (MN_cfcmovnl + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cfcmovnl 0x2c9a
|
|
|
|
#define MN_rol 0x2ca3
|
|
|
|
#define MN_ccmpl 0x2ca7
|
|
|
|
#define MN_arpl 0x2cad
|
|
|
|
#define MN_vpmacsdql 0x2cb2
|
|
|
|
#define MN_vpmacssdql 0x2cbc
|
|
|
|
#define MN_lsl 0x2cc7
|
|
|
|
#define MN_movsl 0x2ccb
|
|
|
|
#define MN_setl 0x2cd1
|
|
|
|
#define MN_ctestl 0x2cd6
|
|
|
|
#define MN_cwtl 0x2cdd
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_mul (MN_fmul + 1)
|
|
|
|
#define MN_fmul (MN_pfmul + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_pfmul 0x2ce2
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_imul (MN_fimul + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_fimul 0x2ce8
|
|
|
|
#define MN_montmul 0x2cee
|
|
|
|
#define MN_setzul 0x2cf6
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_cmovl (MN_cfcmovl + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cfcmovl 0x2cfd
|
|
|
|
#define MN_vpmovb2m 0x2d05
|
|
|
|
#define MN_vpmovd2m 0x2d0e
|
|
|
|
#define MN_vpmovq2m 0x2d17
|
|
|
|
#define MN_vpmovw2m 0x2d20
|
|
|
|
#define MN_aam 0x2d29
|
|
|
|
#define MN_fxam 0x2d2d
|
|
|
|
#define MN_fprem 0x2d32
|
|
|
|
#define MN_fcom 0x2d38
|
|
|
|
#define MN_ficom 0x2d3d
|
|
|
|
#define MN_fucom 0x2d43
|
|
|
|
#define MN_fsetpm 0x2d49
|
|
|
|
#define MN_fnsetpm 0x2d50
|
|
|
|
#define MN_frstpm 0x2d58
|
|
|
|
#define MN_vpperm 0x2d5f
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pcmpestrm (MN_vpcmpestrm + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpcmpestrm 0x2d66
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pcmpistrm (MN_vpcmpistrm + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpcmpistrm 0x2d71
|
|
|
|
#define MN_rsm 0x2d7c
|
|
|
|
#define MN_fpatan 0x2d80
|
|
|
|
#define MN_fptan 0x2d87
|
|
|
|
#define MN_bndcn 0x2d8d
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_andn (MN_pandn + 1)
|
|
|
|
#define MN_pandn (MN_vpandn + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpandn 0x2d93
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_in (MN_xbegin + 4)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_xbegin 0x2d9a
|
|
|
|
#define MN_pfmin 0x2da1
|
|
|
|
#define MN_fsin 0x2da7
|
|
|
|
#define MN_vmxon 0x2dac
|
|
|
|
#define MN_vmrun 0x2db2
|
|
|
|
#define MN_jo 0x2db8
|
|
|
|
#define MN_jno 0x2dbb
|
|
|
|
#define MN_ccmpno 0x2dbf
|
|
|
|
#define MN_setno 0x2dc6
|
|
|
|
#define MN_ctestno 0x2dcc
|
|
|
|
#define MN_setzuno 0x2dd4
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_cmovno (MN_cfcmovno + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cfcmovno 0x2ddc
|
|
|
|
#define MN_jpo 0x2de5
|
|
|
|
#define MN_ccmpo 0x2de9
|
|
|
|
#define MN_setpo 0x2def
|
|
|
|
#define MN_setzupo 0x2df5
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_cmovpo (MN_cfcmovpo + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cfcmovpo 0x2dfd
|
|
|
|
#define MN_cqo 0x2e06
|
|
|
|
#define MN_tilezero 0x2e0a
|
|
|
|
#define MN_clzero 0x2e13
|
|
|
|
#define MN_seto 0x2e1a
|
|
|
|
#define MN_into 0x2e1f
|
|
|
|
#define MN_cqto 0x2e24
|
|
|
|
#define MN_ctesto 0x2e29
|
|
|
|
#define MN_ssto 0x2e30
|
|
|
|
#define MN_setzuo 0x2e35
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_cmovo (MN_cfcmovo + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cfcmovo 0x2e3c
|
|
|
|
#define MN_push2p 0x2e44
|
|
|
|
#define MN_pop2p 0x2e4b
|
|
|
|
#define MN_bswap 0x2e51
|
|
|
|
#define MN_fsubp 0x2e57
|
|
|
|
#define MN_pfrcp 0x2e5d
|
|
|
|
#define MN_rdtscp 0x2e63
|
|
|
|
#define MN_faddp 0x2e6a
|
|
|
|
#define MN_pdep 0x2e70
|
|
|
|
#define MN_ffreep 0x2e75
|
|
|
|
#define MN_rep 0x2e7c
|
|
|
|
#define MN_pushp 0x2e80
|
|
|
|
#define MN_fcomip 0x2e86
|
|
|
|
#define MN_fucomip 0x2e8d
|
|
|
|
#define MN_jp 0x2e95
|
|
|
|
#define MN_fmulp 0x2e98
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmp (MN_scmp + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_scmp 0x2e9e
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_jmp (MN_ljmp + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_ljmp 0x2ea3
|
|
|
|
#define MN_fcomp 0x2ea8
|
|
|
|
#define MN_ficomp 0x2eae
|
|
|
|
#define MN_fucomp 0x2eb5
|
|
|
|
#define MN_jnp 0x2ebc
|
|
|
|
#define MN_setnp 0x2ec0
|
|
|
|
#define MN_setzunp 0x2ec6
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_cmovnp (MN_cfcmovnp + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cfcmovnp 0x2ece
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_nop (MN_fnop + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_fnop 0x2ed7
|
|
|
|
#define MN_loop 0x2edc
|
|
|
|
#define MN_pop 0x2ee1
|
|
|
|
#define MN_fcompp 0x2ee5
|
|
|
|
#define MN_fucompp 0x2eec
|
|
|
|
#define MN_popp 0x2ef4
|
|
|
|
#define MN_fsubrp 0x2ef9
|
|
|
|
#define MN_fdivrp 0x2f00
|
|
|
|
#define MN_rstorssp 0x2f07
|
|
|
|
#define MN_saveprevssp 0x2f10
|
|
|
|
#define MN_setp 0x2f1c
|
|
|
|
#define MN_fbstp 0x2f21
|
|
|
|
#define MN_fdecstp 0x2f27
|
|
|
|
#define MN_fincstp 0x2f2f
|
|
|
|
#define MN_fstp 0x2f37
|
|
|
|
#define MN_fistp 0x2f3c
|
|
|
|
#define MN_fisttp 0x2f42
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movddup (MN_vmovddup + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmovddup 0x2f49
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movshdup (MN_vmovshdup + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmovshdup 0x2f52
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movsldup (MN_vmovsldup + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmovsldup 0x2f5c
|
|
|
|
#define MN_setzup 0x2f66
|
|
|
|
#define MN_fdivp 0x2f6d
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_cmovp (MN_cfcmovp + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cfcmovp 0x2f73
|
|
|
|
#define MN_vpbroadcastmb2q 0x2f7b
|
|
|
|
#define MN_vpermi2q 0x2f8b
|
|
|
|
#define MN_vpmovm2q 0x2f94
|
|
|
|
#define MN_movdq2q 0x2f9d
|
|
|
|
#define MN_vpermt2q 0x2fa5
|
|
|
|
#define MN_vpshaq 0x2fae
|
|
|
|
#define MN_vpsraq 0x2fb5
|
|
|
|
#define MN_vphaddbq 0x2fbc
|
|
|
|
#define MN_vphaddubq 0x2fc5
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_psubq (MN_vpsubq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpsubq 0x2fcf
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmovsxbq (MN_vpmovsxbq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmovsxbq 0x2fd6
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmovzxbq (MN_vpmovzxbq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmovzxbq 0x2fe0
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cvttpd2dq (MN_vcvttpd2dq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcvttpd2dq 0x2fea
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cvtpd2dq (MN_vcvtpd2dq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcvtpd2dq 0x2ff5
|
|
|
|
#define MN_vcvttph2dq 0x2fff
|
|
|
|
#define MN_vcvtph2dq 0x300a
|
|
|
|
#define MN_movq2dq 0x3014
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cvttps2dq (MN_vcvttps2dq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcvttps2dq 0x301c
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cvtps2dq (MN_vcvtps2dq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcvtps2dq 0x3027
|
|
|
|
#define MN_vphsubdq 0x3031
|
|
|
|
#define MN_cdq 0x303a
|
|
|
|
#define MN_kaddq 0x303e
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_paddq (MN_vpaddq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpaddq 0x3044
|
|
|
|
#define MN_vphadddq 0x304b
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_punpckhdq (MN_vpunpckhdq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpunpckhdq 0x3054
|
|
|
|
#define MN_kunpckdq 0x305f
|
|
|
|
#define MN_vpshldq 0x3068
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_punpckldq (MN_vpunpckldq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpunpckldq 0x3070
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pslldq (MN_vpslldq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpslldq 0x307b
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_psrldq (MN_vpsrldq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpsrldq 0x3083
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmuldq (MN_vpmuldq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmuldq 0x308b
|
|
|
|
#define MN_kandq 0x3093
|
|
|
|
#define MN_vpandq 0x3099
|
|
|
|
#define MN_vpexpandq 0x30a0
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_punpckhqdq (MN_vpunpckhqdq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpunpckhqdq 0x30aa
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pclmulhqhqdq (MN_vpclmulhqhqdq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpclmulhqhqdq 0x30b6
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pclmullqhqdq (MN_vpclmullqhqdq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpclmullqhqdq 0x30c4
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_punpcklqdq (MN_vpunpcklqdq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpunpcklqdq 0x30d2
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pclmulhqlqdq (MN_vpclmulhqlqdq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpclmulhqlqdq 0x30de
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pclmullqlqdq (MN_vpclmullqlqdq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpclmullqlqdq 0x30ec
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pclmulqdq (MN_vpclmulqdq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpclmulqdq 0x30fa
|
|
|
|
#define MN_vpgatherdq 0x3105
|
|
|
|
#define MN_vpscatterdq 0x3110
|
|
|
|
#define MN_vpshrdq 0x311c
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movntdq (MN_vmovntdq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmovntdq 0x3124
|
|
|
|
#define MN_vcvttpd2udq 0x312d
|
|
|
|
#define MN_vcvtpd2udq 0x3139
|
|
|
|
#define MN_vcvttph2udq 0x3144
|
|
|
|
#define MN_vcvtph2udq 0x3150
|
|
|
|
#define MN_vcvttps2udq 0x315b
|
|
|
|
#define MN_vcvtps2udq 0x3167
|
|
|
|
#define MN_vphaddudq 0x3172
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmuludq (MN_vpmuludq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmuludq 0x317c
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmovsxdq (MN_vpmovsxdq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmovsxdq 0x3185
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmovzxdq (MN_vpmovzxdq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmovzxdq 0x318f
|
|
|
|
#define MN_vpcomgeq 0x3199
|
|
|
|
#define MN_vpcomleq 0x31a2
|
|
|
|
#define MN_vpcmpnleq 0x31ab
|
|
|
|
#define MN_vpcmpleq 0x31b5
|
|
|
|
#define MN_pfcmpeq 0x31be
|
|
|
|
#define MN_vpcomfalseq 0x31c6
|
|
|
|
#define MN_vpcomtrueq 0x31d2
|
|
|
|
#define MN_vpternlogq 0x31dd
|
|
|
|
#define MN_vpshlq 0x31e8
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_psllq (MN_vpsllq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpsllq 0x31ef
|
|
|
|
#define MN_vpmullq 0x31f6
|
|
|
|
#define MN_vprolq 0x31fe
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_psrlq (MN_vpsrlq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpsrlq 0x3205
|
|
|
|
#define MN_kshiftlq 0x320c
|
|
|
|
#define MN_vpblendmq 0x3215
|
|
|
|
#define MN_vptestnmq 0x321f
|
|
|
|
#define MN_vpcomq 0x3229
|
|
|
|
#define MN_vpermq 0x3230
|
|
|
|
#define MN_vptestmq 0x3237
|
|
|
|
#define MN_kandnq 0x3240
|
|
|
|
#define MN_vpandnq 0x3247
|
|
|
|
#define MN_valignq 0x324f
|
|
|
|
#define MN_vpcmpq 0x3257
|
|
|
|
#define MN_incsspq 0x325e
|
|
|
|
#define MN_rdsspq 0x3266
|
|
|
|
#define MN_vcvttpd2qq 0x326d
|
|
|
|
#define MN_vcvtpd2qq 0x3278
|
|
|
|
#define MN_vcvttph2qq 0x3282
|
|
|
|
#define MN_vcvtph2qq 0x328d
|
|
|
|
#define MN_vcvttps2qq 0x3297
|
|
|
|
#define MN_vcvtps2qq 0x32a2
|
|
|
|
#define MN_vpcomeqq 0x32ac
|
|
|
|
#define MN_vpcomneqq 0x32b5
|
|
|
|
#define MN_vpcmpneqq 0x32bf
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pcmpeqq (MN_vpcmpeqq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpcmpeqq 0x32c9
|
|
|
|
#define MN_vpgatherqq 0x32d2
|
|
|
|
#define MN_vpscatterqq 0x32dd
|
|
|
|
#define MN_vcvttpd2uqq 0x32e9
|
|
|
|
#define MN_vcvtpd2uqq 0x32f5
|
|
|
|
#define MN_vcvttph2uqq 0x3300
|
|
|
|
#define MN_vcvtph2uqq 0x330c
|
|
|
|
#define MN_vcvttps2uqq 0x3317
|
|
|
|
#define MN_vcvtps2uqq 0x3323
|
|
|
|
#define MN_korq 0x332e
|
|
|
|
#define MN_kxnorq 0x3333
|
|
|
|
#define MN_vporq 0x333a
|
|
|
|
#define MN_vprorq 0x3340
|
|
|
|
#define MN_kxorq 0x3347
|
|
|
|
#define MN_vpxorq 0x334d
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pinsrq (MN_vpinsrq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpinsrq 0x3354
|
|
|
|
#define MN_kshiftrq 0x335c
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_extrq (MN_pextrq + 1)
|
|
|
|
#define MN_pextrq (MN_vpextrq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpextrq 0x3365
|
|
|
|
#define MN_vpabsq 0x336d
|
|
|
|
#define MN_vpminsq 0x3374
|
|
|
|
#define MN_vmovrsq 0x337c
|
|
|
|
#define MN_vpcompressq 0x3384
|
|
|
|
#define MN_wrssq 0x3390
|
|
|
|
#define MN_wrussq 0x3396
|
|
|
|
#define MN_vpmaxsq 0x339d
|
|
|
|
#define MN_vp2intersectq 0x33a5
|
|
|
|
#define MN_vpconflictq 0x33b3
|
|
|
|
#define MN_vpcomgtq 0x33bf
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pcmpgtq (MN_vpcmpgtq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpcmpgtq 0x33c8
|
|
|
|
#define MN_cltq 0x33d1
|
|
|
|
#define MN_vpcomltq 0x33d6
|
|
|
|
#define MN_vpcmpnltq 0x33df
|
|
|
|
#define MN_vpcmpltq 0x33e9
|
|
|
|
#define MN_vpopcntq 0x33f2
|
|
|
|
#define MN_vplzcntq 0x33fb
|
|
|
|
#define MN_movntq 0x3404
|
|
|
|
#define MN_knotq 0x340b
|
|
|
|
#define MN_vprotq 0x3411
|
|
|
|
#define MN_insertq 0x3418
|
|
|
|
#define MN_vpbroadcastq 0x3420
|
|
|
|
#define MN_ktestq 0x342d
|
|
|
|
#define MN_kortestq 0x3434
|
|
|
|
#define MN_vpcomgeuq 0x343d
|
|
|
|
#define MN_vpcomleuq 0x3447
|
|
|
|
#define MN_vpcmpnleuq 0x3451
|
|
|
|
#define MN_vpcmpleuq 0x345c
|
|
|
|
#define MN_vpcomfalseuq 0x3466
|
|
|
|
#define MN_vpcomtrueuq 0x3473
|
|
|
|
#define MN_vpmadd52huq 0x347f
|
|
|
|
#define MN_vpmadd52luq 0x348b
|
|
|
|
#define MN_vpcomuq 0x3497
|
|
|
|
#define MN_vpminuq 0x349f
|
|
|
|
#define MN_vpcmpuq 0x34a7
|
|
|
|
#define MN_vpcomequq 0x34af
|
|
|
|
#define MN_vpcomnequq 0x34b9
|
|
|
|
#define MN_vpcmpnequq 0x34c4
|
|
|
|
#define MN_vpcmpequq 0x34cf
|
|
|
|
#define MN_vpcomgtuq 0x34d9
|
|
|
|
#define MN_vpcomltuq 0x34e3
|
|
|
|
#define MN_vpcmpnltuq 0x34ed
|
|
|
|
#define MN_vpcmpltuq 0x34f8
|
|
|
|
#define MN_vpmaxuq 0x3502
|
|
|
|
#define MN_vpsravq 0x350a
|
|
|
|
#define MN_vpshldvq 0x3512
|
|
|
|
#define MN_vpshrdvq 0x351b
|
|
|
|
#define MN_vpsllvq 0x3524
|
|
|
|
#define MN_vprolvq 0x352c
|
|
|
|
#define MN_vpsrlvq 0x3534
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movq (MN_kmovq + 1)
|
|
|
|
#define MN_kmovq (MN_maskmovq + 3)
|
|
|
|
#define MN_maskmovq (MN_vpmaskmovq + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmaskmovq 0x353c
|
|
|
|
#define MN_vmovq 0x3547
|
|
|
|
#define MN_vprorvq 0x354d
|
|
|
|
#define MN_vphaddwq 0x3555
|
|
|
|
#define MN_vphadduwq 0x355e
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmovsxwq (MN_vpmovsxwq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmovsxwq 0x3568
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmovzxwq (MN_vpmovzxwq + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmovzxwq 0x3572
|
|
|
|
#define MN_rex_r 0x357c
|
|
|
|
#define MN_vmclear 0x3582
|
|
|
|
#define MN_lar 0x358a
|
|
|
|
#define MN_sar 0x358e
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_fsubr (MN_pfsubr + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_pfsubr 0x3592
|
|
|
|
#define MN_fisubr 0x3599
|
|
|
|
#define MN_rcr 0x35a0
|
|
|
|
#define MN_vzeroupper 0x35a4
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_enter (MN_sysenter + 3)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_sysenter 0x35af
|
|
|
|
#define MN_shr 0x35b8
|
|
|
|
#define MN_clr 0x35bc
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_palignr (MN_vpalignr + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpalignr 0x35c0
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_or (MN_aor + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_aor 0x35c9
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_por (MN_vpor + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpor 0x35cd
|
|
|
|
#define MN_ror 0x35d2
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_monitor (MN_umonitor + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_umonitor 0x35d6
|
|
|
|
#define MN_frstor 0x35df
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_xrstor (MN_fxrstor + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_fxrstor 0x35e6
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_xor (MN_axor + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_axor 0x35ee
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pxor (MN_vpxor + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpxor 0x35f3
|
|
|
|
#define MN_verr 0x35f9
|
|
|
|
#define MN_bsr 0x35fe
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_ldmxcsr (MN_vldmxcsr + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vldmxcsr 0x3602
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_stmxcsr (MN_vstmxcsr + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vstmxcsr 0x360b
|
|
|
|
#define MN_blsr 0x3614
|
2023-10-31 16:23:53 +08:00
|
|
|
#define MN_rdmsr (MN_urdmsr + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_urdmsr 0x3619
|
2023-10-31 16:23:53 +08:00
|
|
|
#define MN_wrmsr (MN_uwrmsr + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_uwrmsr 0x3620
|
|
|
|
#define MN_btr 0x3627
|
|
|
|
#define MN_xcrypt_ctr 0x362b
|
|
|
|
#define MN_xcryptctr 0x3636
|
|
|
|
#define MN_ltr 0x3640
|
|
|
|
#define MN_str 0x3644
|
|
|
|
#define MN_bextr 0x3648
|
|
|
|
#define MN_fdivr 0x364e
|
|
|
|
#define MN_fidivr 0x3654
|
|
|
|
#define MN_rex_wr 0x365b
|
|
|
|
#define MN_vcvt2ph2bf8s 0x3662
|
|
|
|
#define MN_vcvtbiasph2bf8s 0x366f
|
|
|
|
#define MN_vcvtph2bf8s 0x367f
|
|
|
|
#define MN_vcvt2ph2hf8s 0x368b
|
|
|
|
#define MN_vcvtbiasph2hf8s 0x3698
|
|
|
|
#define MN_vcvtph2hf8s 0x36a8
|
|
|
|
#define MN_aas 0x36b4
|
|
|
|
#define MN_scas 0x36b8
|
|
|
|
#define MN_das 0x36bd
|
|
|
|
#define MN_fabs 0x36c1
|
|
|
|
#define MN_jmpabs 0x36c6
|
|
|
|
#define MN_movabs 0x36cd
|
|
|
|
#define MN_vcvttbf162ibs 0x36d4
|
|
|
|
#define MN_vcvtbf162ibs 0x36e2
|
|
|
|
#define MN_vcvttph2ibs 0x36ef
|
|
|
|
#define MN_vcvtph2ibs 0x36fb
|
|
|
|
#define MN_vcvttps2ibs 0x3706
|
|
|
|
#define MN_vcvtps2ibs 0x3712
|
|
|
|
#define MN_vcvttbf162iubs 0x371d
|
|
|
|
#define MN_vcvtbf162iubs 0x372c
|
|
|
|
#define MN_vcvttph2iubs 0x373a
|
|
|
|
#define MN_vcvtph2iubs 0x3747
|
|
|
|
#define MN_vcvttps2iubs 0x3753
|
|
|
|
#define MN_vcvtps2iubs 0x3760
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cs (MN_blcs + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_blcs 0x376c
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_ds (MN_lds + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_lds 0x3771
|
|
|
|
#define MN_enqcmds 0x3775
|
|
|
|
#define MN_lods 0x377d
|
|
|
|
#define MN_vpdpbssds 0x3782
|
|
|
|
#define MN_vp4dpwssds 0x378c
|
|
|
|
#define MN_vpdpwssds 0x3797
|
|
|
|
#define MN_vpdpbusds 0x37a1
|
|
|
|
#define MN_vpdpwusds 0x37ab
|
|
|
|
#define MN_vpdpbsuds 0x37b5
|
|
|
|
#define MN_vpdpwsuds 0x37bf
|
|
|
|
#define MN_vpdpbuuds 0x37c9
|
|
|
|
#define MN_vpdpwuuds 0x37d3
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_es (MN_les + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_les 0x37dd
|
|
|
|
#define MN_xsaves 0x37e1
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_fs (MN_lfs + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_lfs 0x37e8
|
2023-05-19 19:00:55 +08:00
|
|
|
#define MN_gs (MN_lkgs + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_lkgs 0x37ec
|
|
|
|
#define MN_lgs 0x37f1
|
|
|
|
#define MN_swapgs 0x37f5
|
|
|
|
#define MN_fchs 0x37fc
|
|
|
|
#define MN_vcvttsd2sis 0x3801
|
|
|
|
#define MN_vcvttss2sis 0x380d
|
|
|
|
#define MN_vcvttsd2usis 0x3819
|
|
|
|
#define MN_vcvttss2usis 0x3826
|
|
|
|
#define MN_js 0x3833
|
|
|
|
#define MN_encls 0x3836
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_emms (MN_femms + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_femms 0x383c
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_ins (MN_lwpins + 3)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_lwpins 0x3842
|
|
|
|
#define MN_jns 0x3849
|
|
|
|
#define MN_ccmpns 0x384d
|
|
|
|
#define MN_wrmsrns 0x3854
|
|
|
|
#define MN_setns 0x385c
|
|
|
|
#define MN_ctestns 0x3862
|
|
|
|
#define MN_setzuns 0x386a
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_cmovns (MN_cfcmovns + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cfcmovns 0x3872
|
|
|
|
#define MN_fcos 0x387b
|
|
|
|
#define MN_fsincos 0x3880
|
|
|
|
#define MN_stos 0x3888
|
|
|
|
#define MN_vfmaddsub231ps 0x388d
|
|
|
|
#define MN_vfmsub231ps 0x389c
|
|
|
|
#define MN_vfnmsub231ps 0x38a8
|
|
|
|
#define MN_vfmsubadd231ps 0x38b5
|
|
|
|
#define MN_vfmadd231ps 0x38c4
|
|
|
|
#define MN_vfnmadd231ps 0x38d0
|
|
|
|
#define MN_vfmaddsub132ps 0x38dd
|
|
|
|
#define MN_vfmsub132ps 0x38ec
|
|
|
|
#define MN_vfnmsub132ps 0x38f8
|
|
|
|
#define MN_vfmsubadd132ps 0x3905
|
|
|
|
#define MN_vfmadd132ps 0x3914
|
|
|
|
#define MN_vfnmadd132ps 0x3920
|
2025-01-02 10:17:39 +08:00
|
|
|
#define MN_tmmultf32ps (MN_ttmmultf32ps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_ttmmultf32ps 0x392d
|
|
|
|
#define MN_vcvtneebf162ps 0x393a
|
|
|
|
#define MN_vbcstnebf162ps 0x3949
|
|
|
|
#define MN_vcvtneobf162ps 0x3958
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cvtpd2ps (MN_vcvtpd2ps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcvtpd2ps 0x3967
|
|
|
|
#define MN_tcvtrowd2ps 0x3971
|
|
|
|
#define MN_vcvtneeph2ps 0x397d
|
|
|
|
#define MN_vcvtneoph2ps 0x398a
|
|
|
|
#define MN_vcvtph2ps 0x3997
|
|
|
|
#define MN_vbcstnesh2ps 0x39a1
|
|
|
|
#define MN_vpermi2ps 0x39ae
|
|
|
|
#define MN_cvtpi2ps 0x39b8
|
|
|
|
#define MN_vpermil2ps 0x39c1
|
|
|
|
#define MN_vexp2ps 0x39cc
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cvtdq2ps (MN_vcvtdq2ps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcvtdq2ps 0x39d4
|
|
|
|
#define MN_vcvtudq2ps 0x39de
|
|
|
|
#define MN_vcvtqq2ps 0x39e9
|
|
|
|
#define MN_vcvtuqq2ps 0x39f3
|
|
|
|
#define MN_vpermt2ps 0x39fe
|
|
|
|
#define MN_vfmaddsub213ps 0x3a08
|
|
|
|
#define MN_vfmsub213ps 0x3a17
|
|
|
|
#define MN_vfnmsub213ps 0x3a23
|
|
|
|
#define MN_vfmsubadd213ps 0x3a30
|
|
|
|
#define MN_vfmadd213ps 0x3a3f
|
|
|
|
#define MN_vfnmadd213ps 0x3a4b
|
|
|
|
#define MN_vrcp14ps 0x3a58
|
|
|
|
#define MN_vrsqrt14ps 0x3a61
|
Support Intel AMX-TRANSPOSE
In this patch, we will support AMX-TRANSPOSE. Since AMX-TRANSPOSE
will be used with other CPUIDs very often, we put it into
CPU_FLAGS_COMMON.
To implement TMM pair, we reused ImplicitGroup and adjust the condition
in process_operands for the instructions.
APX_F extension is also handled in this patch, where it extends
T2RPNTLVW[Z0,Z1][,T1] to EVEX.128.NP/66.0F38.W0 6E/6F !(11):rrr:100
with NF=0.
Also, TTDPFP16PS should base on AMX_FP16, not AMX_BF16 in ISE055.
It would be fixed in ISE056.
gas/ChangeLog:
* config/tc-i386.c (cpu_arch): Add amx_transpose.
(_is_cpu): Ditto.
(process_operands): Adjust the condition for AMX-TRANSPOSE.
* doc/c-i386.texi: Document .amx_transpose.
* testsuite/gas/i386/x86-64.exp: Run AMX-TRANSPOSE tests.
* testsuite/gas/i386/x86-64-amx-transpose-bad.d: New test.
* testsuite/gas/i386/x86-64-amx-transpose-bad.s: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose-intel.d: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose-inval.l: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose-inval.s: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose.d: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose.s: Ditto.
opcodes/ChangeLog:
* i386-dis.c (MOD_VEX_0F386E_X86_64_W_0): New.
(MOD_VEX_0F386F_X86_64_W_0): Ditto.
(PREFIX_VEX_0F385F_X86_64_W_0_L_0): Ditto.
(PREFIX_VEX_0F386B_X86_64_W_0_L_0): Ditto.
(PREFIX_VEX_0F386E_X86_64_W_0_M_0_L_0): Ditto.
(PREFIX_VEX_0F386F_X86_64_W_0_M_0_L_0): Ditto.
(X86_64_VEX_0F385F): Ditto.
(X86_64_VEX_0F386B): Ditto.
(X86_64_VEX_0F386E): Ditto.
(X86_64_VEX_0F386F): Ditto.
(VEX_LEN_0F385F_X86_64_W_0): Ditto.
(VEX_LEN_0F386B_X86_64_W_0): Ditto.
(VEX_LEN_0F386E_X86_64_W_0_M_0): Ditto.
(VEX_LEN_0F386F_X86_64_W_0_M_0): Ditto.
(VEX_W_0F385F_X86_64): Ditto.
(VEX_W_0F386B_X86_64): Ditto.
(VEX_W_0F386E_X86_64): Ditto.
(VEX_W_0F386F_X86_64): Ditto.
(mod_table): Add MOD_VEX_0F386E_X86_64_W_0,
MOD_VEX_0F386F_X86_64_W_0.
(prefix_table): Add PREFIX_VEX_0F386E_X86_64_W_0_M_0_L_0,
PREFIX_VEX_0F386F_X86_64_W_0_M_0_L_0.
Add new instructions for PREFIX_VEX_0F386C_X86_64_W_0_L_0.
(x86_64_table): Add X86_64_VEX_0F385F, X86_64_VEX_0F386B,
X86_64_VEX_0F386E, X86_64_VEX_0F386F.
(vex_len_table): Add VEX_LEN_0F385F_X86_64_W_0,
VEX_LEN_0F386B_X86_64_W_0, VEX_LEN_0F386E_X86_64_W_0_M_0,
VEX_LEN_0F386F_X86_64_W_0_M_0.
(vex_w_table): Add VEX_W_0F385F_X86_64, VEX_W_0F386B_X86_64,
VEX_W_0F386E_X86_64, VEX_W_0F386F_X86_64.
* i386-gen.c (cpu_flag_init): Add AMX_TRANSPOSE.
(cpu_flags): Add CpuAMX_TRANSPOSE.
* i386-init.h: Regenerated.
* i386-mnem.h: Ditto.
* i386-opc.h (CpuAMX_TRANSPOSE): New.
(i386_cpu): Add cpuamx_transpose.
* i386-opc.tbl: Add AMX-TRANSPOSE instructions.
* i386-tbl.h: Regenerated.
Co-authored-by: Hu, Lin1 <lin1.hu@intel.com>
2025-01-02 10:14:37 +08:00
|
|
|
#define MN_tdpbf16ps (MN_ttdpbf16ps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_ttdpbf16ps 0x3a6c
|
|
|
|
#define MN_vdpbf16ps 0x3a77
|
Support Intel AMX-TRANSPOSE
In this patch, we will support AMX-TRANSPOSE. Since AMX-TRANSPOSE
will be used with other CPUIDs very often, we put it into
CPU_FLAGS_COMMON.
To implement TMM pair, we reused ImplicitGroup and adjust the condition
in process_operands for the instructions.
APX_F extension is also handled in this patch, where it extends
T2RPNTLVW[Z0,Z1][,T1] to EVEX.128.NP/66.0F38.W0 6E/6F !(11):rrr:100
with NF=0.
Also, TTDPFP16PS should base on AMX_FP16, not AMX_BF16 in ISE055.
It would be fixed in ISE056.
gas/ChangeLog:
* config/tc-i386.c (cpu_arch): Add amx_transpose.
(_is_cpu): Ditto.
(process_operands): Adjust the condition for AMX-TRANSPOSE.
* doc/c-i386.texi: Document .amx_transpose.
* testsuite/gas/i386/x86-64.exp: Run AMX-TRANSPOSE tests.
* testsuite/gas/i386/x86-64-amx-transpose-bad.d: New test.
* testsuite/gas/i386/x86-64-amx-transpose-bad.s: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose-intel.d: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose-inval.l: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose-inval.s: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose.d: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose.s: Ditto.
opcodes/ChangeLog:
* i386-dis.c (MOD_VEX_0F386E_X86_64_W_0): New.
(MOD_VEX_0F386F_X86_64_W_0): Ditto.
(PREFIX_VEX_0F385F_X86_64_W_0_L_0): Ditto.
(PREFIX_VEX_0F386B_X86_64_W_0_L_0): Ditto.
(PREFIX_VEX_0F386E_X86_64_W_0_M_0_L_0): Ditto.
(PREFIX_VEX_0F386F_X86_64_W_0_M_0_L_0): Ditto.
(X86_64_VEX_0F385F): Ditto.
(X86_64_VEX_0F386B): Ditto.
(X86_64_VEX_0F386E): Ditto.
(X86_64_VEX_0F386F): Ditto.
(VEX_LEN_0F385F_X86_64_W_0): Ditto.
(VEX_LEN_0F386B_X86_64_W_0): Ditto.
(VEX_LEN_0F386E_X86_64_W_0_M_0): Ditto.
(VEX_LEN_0F386F_X86_64_W_0_M_0): Ditto.
(VEX_W_0F385F_X86_64): Ditto.
(VEX_W_0F386B_X86_64): Ditto.
(VEX_W_0F386E_X86_64): Ditto.
(VEX_W_0F386F_X86_64): Ditto.
(mod_table): Add MOD_VEX_0F386E_X86_64_W_0,
MOD_VEX_0F386F_X86_64_W_0.
(prefix_table): Add PREFIX_VEX_0F386E_X86_64_W_0_M_0_L_0,
PREFIX_VEX_0F386F_X86_64_W_0_M_0_L_0.
Add new instructions for PREFIX_VEX_0F386C_X86_64_W_0_L_0.
(x86_64_table): Add X86_64_VEX_0F385F, X86_64_VEX_0F386B,
X86_64_VEX_0F386E, X86_64_VEX_0F386F.
(vex_len_table): Add VEX_LEN_0F385F_X86_64_W_0,
VEX_LEN_0F386B_X86_64_W_0, VEX_LEN_0F386E_X86_64_W_0_M_0,
VEX_LEN_0F386F_X86_64_W_0_M_0.
(vex_w_table): Add VEX_W_0F385F_X86_64, VEX_W_0F386B_X86_64,
VEX_W_0F386E_X86_64, VEX_W_0F386F_X86_64.
* i386-gen.c (cpu_flag_init): Add AMX_TRANSPOSE.
(cpu_flags): Add CpuAMX_TRANSPOSE.
* i386-init.h: Regenerated.
* i386-mnem.h: Ditto.
* i386-opc.h (CpuAMX_TRANSPOSE): New.
(i386_cpu): Add cpuamx_transpose.
* i386-opc.tbl: Add AMX-TRANSPOSE instructions.
* i386-tbl.h: Regenerated.
Co-authored-by: Hu, Lin1 <lin1.hu@intel.com>
2025-01-02 10:14:37 +08:00
|
|
|
#define MN_tcmmrlfp16ps (MN_ttcmmrlfp16ps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_ttcmmrlfp16ps 0x3a81
|
Support Intel AMX-TRANSPOSE
In this patch, we will support AMX-TRANSPOSE. Since AMX-TRANSPOSE
will be used with other CPUIDs very often, we put it into
CPU_FLAGS_COMMON.
To implement TMM pair, we reused ImplicitGroup and adjust the condition
in process_operands for the instructions.
APX_F extension is also handled in this patch, where it extends
T2RPNTLVW[Z0,Z1][,T1] to EVEX.128.NP/66.0F38.W0 6E/6F !(11):rrr:100
with NF=0.
Also, TTDPFP16PS should base on AMX_FP16, not AMX_BF16 in ISE055.
It would be fixed in ISE056.
gas/ChangeLog:
* config/tc-i386.c (cpu_arch): Add amx_transpose.
(_is_cpu): Ditto.
(process_operands): Adjust the condition for AMX-TRANSPOSE.
* doc/c-i386.texi: Document .amx_transpose.
* testsuite/gas/i386/x86-64.exp: Run AMX-TRANSPOSE tests.
* testsuite/gas/i386/x86-64-amx-transpose-bad.d: New test.
* testsuite/gas/i386/x86-64-amx-transpose-bad.s: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose-intel.d: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose-inval.l: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose-inval.s: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose.d: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose.s: Ditto.
opcodes/ChangeLog:
* i386-dis.c (MOD_VEX_0F386E_X86_64_W_0): New.
(MOD_VEX_0F386F_X86_64_W_0): Ditto.
(PREFIX_VEX_0F385F_X86_64_W_0_L_0): Ditto.
(PREFIX_VEX_0F386B_X86_64_W_0_L_0): Ditto.
(PREFIX_VEX_0F386E_X86_64_W_0_M_0_L_0): Ditto.
(PREFIX_VEX_0F386F_X86_64_W_0_M_0_L_0): Ditto.
(X86_64_VEX_0F385F): Ditto.
(X86_64_VEX_0F386B): Ditto.
(X86_64_VEX_0F386E): Ditto.
(X86_64_VEX_0F386F): Ditto.
(VEX_LEN_0F385F_X86_64_W_0): Ditto.
(VEX_LEN_0F386B_X86_64_W_0): Ditto.
(VEX_LEN_0F386E_X86_64_W_0_M_0): Ditto.
(VEX_LEN_0F386F_X86_64_W_0_M_0): Ditto.
(VEX_W_0F385F_X86_64): Ditto.
(VEX_W_0F386B_X86_64): Ditto.
(VEX_W_0F386E_X86_64): Ditto.
(VEX_W_0F386F_X86_64): Ditto.
(mod_table): Add MOD_VEX_0F386E_X86_64_W_0,
MOD_VEX_0F386F_X86_64_W_0.
(prefix_table): Add PREFIX_VEX_0F386E_X86_64_W_0_M_0_L_0,
PREFIX_VEX_0F386F_X86_64_W_0_M_0_L_0.
Add new instructions for PREFIX_VEX_0F386C_X86_64_W_0_L_0.
(x86_64_table): Add X86_64_VEX_0F385F, X86_64_VEX_0F386B,
X86_64_VEX_0F386E, X86_64_VEX_0F386F.
(vex_len_table): Add VEX_LEN_0F385F_X86_64_W_0,
VEX_LEN_0F386B_X86_64_W_0, VEX_LEN_0F386E_X86_64_W_0_M_0,
VEX_LEN_0F386F_X86_64_W_0_M_0.
(vex_w_table): Add VEX_W_0F385F_X86_64, VEX_W_0F386B_X86_64,
VEX_W_0F386E_X86_64, VEX_W_0F386F_X86_64.
* i386-gen.c (cpu_flag_init): Add AMX_TRANSPOSE.
(cpu_flags): Add CpuAMX_TRANSPOSE.
* i386-init.h: Regenerated.
* i386-mnem.h: Ditto.
* i386-opc.h (CpuAMX_TRANSPOSE): New.
(i386_cpu): Add cpuamx_transpose.
* i386-opc.tbl: Add AMX-TRANSPOSE instructions.
* i386-tbl.h: Regenerated.
Co-authored-by: Hu, Lin1 <lin1.hu@intel.com>
2025-01-02 10:14:37 +08:00
|
|
|
#define MN_tcmmimfp16ps (MN_tconjtcmmimfp16ps + 5)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_tconjtcmmimfp16ps 0x3a8f
|
|
|
|
#define MN_ttcmmimfp16ps 0x3aa1
|
Support Intel AMX-TRANSPOSE
In this patch, we will support AMX-TRANSPOSE. Since AMX-TRANSPOSE
will be used with other CPUIDs very often, we put it into
CPU_FLAGS_COMMON.
To implement TMM pair, we reused ImplicitGroup and adjust the condition
in process_operands for the instructions.
APX_F extension is also handled in this patch, where it extends
T2RPNTLVW[Z0,Z1][,T1] to EVEX.128.NP/66.0F38.W0 6E/6F !(11):rrr:100
with NF=0.
Also, TTDPFP16PS should base on AMX_FP16, not AMX_BF16 in ISE055.
It would be fixed in ISE056.
gas/ChangeLog:
* config/tc-i386.c (cpu_arch): Add amx_transpose.
(_is_cpu): Ditto.
(process_operands): Adjust the condition for AMX-TRANSPOSE.
* doc/c-i386.texi: Document .amx_transpose.
* testsuite/gas/i386/x86-64.exp: Run AMX-TRANSPOSE tests.
* testsuite/gas/i386/x86-64-amx-transpose-bad.d: New test.
* testsuite/gas/i386/x86-64-amx-transpose-bad.s: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose-intel.d: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose-inval.l: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose-inval.s: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose.d: Ditto.
* testsuite/gas/i386/x86-64-amx-transpose.s: Ditto.
opcodes/ChangeLog:
* i386-dis.c (MOD_VEX_0F386E_X86_64_W_0): New.
(MOD_VEX_0F386F_X86_64_W_0): Ditto.
(PREFIX_VEX_0F385F_X86_64_W_0_L_0): Ditto.
(PREFIX_VEX_0F386B_X86_64_W_0_L_0): Ditto.
(PREFIX_VEX_0F386E_X86_64_W_0_M_0_L_0): Ditto.
(PREFIX_VEX_0F386F_X86_64_W_0_M_0_L_0): Ditto.
(X86_64_VEX_0F385F): Ditto.
(X86_64_VEX_0F386B): Ditto.
(X86_64_VEX_0F386E): Ditto.
(X86_64_VEX_0F386F): Ditto.
(VEX_LEN_0F385F_X86_64_W_0): Ditto.
(VEX_LEN_0F386B_X86_64_W_0): Ditto.
(VEX_LEN_0F386E_X86_64_W_0_M_0): Ditto.
(VEX_LEN_0F386F_X86_64_W_0_M_0): Ditto.
(VEX_W_0F385F_X86_64): Ditto.
(VEX_W_0F386B_X86_64): Ditto.
(VEX_W_0F386E_X86_64): Ditto.
(VEX_W_0F386F_X86_64): Ditto.
(mod_table): Add MOD_VEX_0F386E_X86_64_W_0,
MOD_VEX_0F386F_X86_64_W_0.
(prefix_table): Add PREFIX_VEX_0F386E_X86_64_W_0_M_0_L_0,
PREFIX_VEX_0F386F_X86_64_W_0_M_0_L_0.
Add new instructions for PREFIX_VEX_0F386C_X86_64_W_0_L_0.
(x86_64_table): Add X86_64_VEX_0F385F, X86_64_VEX_0F386B,
X86_64_VEX_0F386E, X86_64_VEX_0F386F.
(vex_len_table): Add VEX_LEN_0F385F_X86_64_W_0,
VEX_LEN_0F386B_X86_64_W_0, VEX_LEN_0F386E_X86_64_W_0_M_0,
VEX_LEN_0F386F_X86_64_W_0_M_0.
(vex_w_table): Add VEX_W_0F385F_X86_64, VEX_W_0F386B_X86_64,
VEX_W_0F386E_X86_64, VEX_W_0F386F_X86_64.
* i386-gen.c (cpu_flag_init): Add AMX_TRANSPOSE.
(cpu_flags): Add CpuAMX_TRANSPOSE.
* i386-init.h: Regenerated.
* i386-mnem.h: Ditto.
* i386-opc.h (CpuAMX_TRANSPOSE): New.
(i386_cpu): Add cpuamx_transpose.
* i386-opc.tbl: Add AMX-TRANSPOSE instructions.
* i386-tbl.h: Regenerated.
Co-authored-by: Hu, Lin1 <lin1.hu@intel.com>
2025-01-02 10:14:37 +08:00
|
|
|
#define MN_tdpfp16ps (MN_ttdpfp16ps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_ttdpfp16ps 0x3aaf
|
|
|
|
#define MN_vrcp28ps 0x3aba
|
|
|
|
#define MN_vrsqrt28ps 0x3ac3
|
|
|
|
#define MN_tdphbf8ps 0x3ace
|
|
|
|
#define MN_tdpbf8ps 0x3ad8
|
|
|
|
#define MN_tdpbhf8ps 0x3ae1
|
|
|
|
#define MN_tdphf8ps 0x3aeb
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movaps (MN_vmovaps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmovaps 0x3af4
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_subps (MN_addsubps + 3)
|
|
|
|
#define MN_addsubps (MN_vfmaddsubps + 3)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vfmaddsubps 0x3afc
|
|
|
|
#define MN_vaddsubps 0x3b08
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_hsubps (MN_vhsubps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vhsubps 0x3b12
|
|
|
|
#define MN_vfmsubps 0x3b1a
|
|
|
|
#define MN_vfnmsubps 0x3b23
|
|
|
|
#define MN_vsubps 0x3b2d
|
|
|
|
#define MN_vgatherpf0dps 0x3b34
|
|
|
|
#define MN_vscatterpf0dps 0x3b42
|
|
|
|
#define MN_vgatherpf1dps 0x3b51
|
|
|
|
#define MN_vscatterpf1dps 0x3b5f
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_addps (MN_vfmsubaddps + 6)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vfmsubaddps 0x3b6e
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_haddps (MN_vhaddps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vhaddps 0x3b7a
|
|
|
|
#define MN_v4fmaddps 0x3b82
|
|
|
|
#define MN_vfmaddps 0x3b8c
|
|
|
|
#define MN_v4fnmaddps 0x3b95
|
|
|
|
#define MN_vfnmaddps 0x3ba0
|
|
|
|
#define MN_vaddps 0x3baa
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_andps (MN_vexpandps + 4)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vexpandps 0x3bb1
|
|
|
|
#define MN_vandps 0x3bbb
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_blendps (MN_vblendps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vblendps 0x3bc2
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_roundps (MN_vroundps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vroundps 0x3bcb
|
|
|
|
#define MN_vgatherdps 0x3bd4
|
|
|
|
#define MN_vscatterdps 0x3bdf
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpunordps (MN_vcmpunordps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpunordps 0x3beb
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpordps (MN_vcmpordps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpordps 0x3bf7
|
|
|
|
#define MN_vreduceps 0x3c01
|
|
|
|
#define MN_vrangeps 0x3c0b
|
|
|
|
#define MN_vcmpngeps 0x3c14
|
|
|
|
#define MN_vcmpgeps 0x3c1e
|
|
|
|
#define MN_vrndscaleps 0x3c27
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpnleps (MN_vcmpnleps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpnleps 0x3c33
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpleps (MN_vcmpleps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpleps 0x3c3d
|
|
|
|
#define MN_vcmpfalseps 0x3c46
|
|
|
|
#define MN_vcmptrueps 0x3c52
|
|
|
|
#define MN_vscalefps 0x3c5d
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_shufps (MN_vshufps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vshufps 0x3c67
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_unpckhps (MN_vunpckhps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vunpckhps 0x3c6f
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movlhps (MN_vmovlhps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmovlhps 0x3c79
|
|
|
|
#define MN_vdpphps 0x3c82
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movhps (MN_vmovhps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmovhps 0x3c8a
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movmskps (MN_vmovmskps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmovmskps 0x3c92
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movhlps (MN_vmovhlps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmovhlps 0x3c9c
|
|
|
|
#define MN_vpermilps 0x3ca5
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_unpcklps (MN_vunpcklps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vunpcklps 0x3caf
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_mulps (MN_vmulps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmulps 0x3cb9
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movlps (MN_vmovlps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmovlps 0x3cc0
|
Support APX CCMP and CTEST
CCMP and CTEST are two new sets of instructions for conditional CMP
and TEST, SCC and OSZC flags are given as suffixes of CCMP or CTEST
in the instruction mnemonic, e.g.:
ccmp<cc> { dfv=sf , cf , of } %eax, %ecx
also add
{evex} cmp/test %eax, %ecx
as an alias for ccmpt.
For the encoder part, add function check_Scc_OszcOperation to parse
'{ dfv=of , sf, sf, cf}', store scc in the lower 4 bits of base_opcode,
and adjust base_opcode to its normal meaning in install_template.
For the decoder part, add 'SC' and 'DF' macros to add scc and oszc flags
suffixes.
gas/ChangeLog:
* config/tc-i386.c (OSZC_CF): New.
(OSZC_ZF): Ditto.
(OSZC_SF): Ditto.
(OSZC_OF): Ditto.
(set_oszc_flags): Set oszc flags and report error for using the same oszc flags twice.
(check_Scc_OszcOperations): Handle SCC OSZC flags.
(install_template): Add scc and oszc_flags.
(build_apx_evex_prefix): Encode SCC and oszc flags bits.
(parse_insn): Handle check_Scc_OszcOperations.
* testsuite/gas/i386/x86-64-apx-evex-promoted-bad.d: Add ivalid test case.
* testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s: Ditto.
* testsuite/gas/i386/x86-64.exp: Add test for ccmp and ctest.
* testsuite/gas/i386/x86-64-apx-ccmp-ctest-intel.d: New test.
* testsuite/gas/i386/x86-64-apx-ccmp-ctest-inval.l: Ditto.
* testsuite/gas/i386/x86-64-apx-ccmp-ctest-inval.s: Ditto.
* testsuite/gas/i386/x86-64-apx-ccmp-ctest.d: Ditto.
* testsuite/gas/i386/x86-64-apx-ccmp-ctest.s: Ditto.
opcodes/ChangeLog:
* i386-dis-evex-reg.h: Add ccmp and ctest.
* i386-dis-evex.h: Ditto.
* i386-dis.c (struct instr_info): add scc.
(struct dis386): Add new micro 'NE','SC' and'DF'.
(get_valid_dis386): Get scc value and move MAP4 invalid check to print_insn.
(putop): Handle %NE, %SC and %DF.
* i386-opc.h (SCC): New.
* i386-opc.tbl: Add ccmp/ctest and evex format for cmp/test.
* i386-mnem.h: Regenerated.
* i386-tbl.h: Ditto.
2024-06-18 10:45:49 +08:00
|
|
|
#define MN_cmps (MN_ccmps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_ccmps 0x3cc8
|
|
|
|
#define MN_vblendmps 0x3cce
|
|
|
|
#define MN_vfixupimmps 0x3cd8
|
|
|
|
#define MN_vpermps 0x3ce4
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_andnps (MN_vandnps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vandnps 0x3cec
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_minps (MN_vminps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vminps 0x3cf4
|
|
|
|
#define MN_seamops 0x3cfb
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_rcpps (MN_vrcpps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vrcpps 0x3d03
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_dpps (MN_vdpps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vdpps 0x3d0a
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpps (MN_vcmpps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpps 0x3d10
|
|
|
|
#define MN_vgetexpps 0x3d17
|
|
|
|
#define MN_vgatherpf0qps 0x3d21
|
|
|
|
#define MN_vscatterpf0qps 0x3d2f
|
|
|
|
#define MN_vgatherpf1qps 0x3d3e
|
|
|
|
#define MN_vscatterpf1qps 0x3d4c
|
|
|
|
#define MN_vcmpunord_qps 0x3d5b
|
|
|
|
#define MN_vcmpord_qps 0x3d69
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpneqps (MN_vcmpneqps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpneqps 0x3d75
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpeqps (MN_vcmpeqps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpeqps 0x3d7f
|
|
|
|
#define MN_vcmpge_oqps 0x3d88
|
|
|
|
#define MN_vcmple_oqps 0x3d94
|
|
|
|
#define MN_vcmpfalse_oqps 0x3da0
|
|
|
|
#define MN_vcmpneq_oqps 0x3daf
|
|
|
|
#define MN_vcmpeq_oqps 0x3dbc
|
|
|
|
#define MN_vcmpgt_oqps 0x3dc8
|
|
|
|
#define MN_vcmplt_oqps 0x3dd4
|
|
|
|
#define MN_vgatherqps 0x3de0
|
|
|
|
#define MN_vscatterqps 0x3deb
|
|
|
|
#define MN_vcmpnge_uqps 0x3df7
|
|
|
|
#define MN_vcmpnle_uqps 0x3e04
|
|
|
|
#define MN_vcmptrue_uqps 0x3e11
|
|
|
|
#define MN_vcmpneq_uqps 0x3e1f
|
|
|
|
#define MN_vcmpeq_uqps 0x3e2c
|
|
|
|
#define MN_vcmpngt_uqps 0x3e38
|
|
|
|
#define MN_vcmpnlt_uqps 0x3e45
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_orps (MN_vorps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vorps 0x3e52
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_xorps (MN_vxorps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vxorps 0x3e58
|
|
|
|
#define MN_vcmpunord_sps 0x3e5f
|
|
|
|
#define MN_vcmpord_sps 0x3e6d
|
|
|
|
#define MN_vcmpge_osps 0x3e79
|
|
|
|
#define MN_vcmple_osps 0x3e85
|
|
|
|
#define MN_vcmpfalse_osps 0x3e91
|
|
|
|
#define MN_vcmpneq_osps 0x3ea0
|
|
|
|
#define MN_vcmpeq_osps 0x3ead
|
|
|
|
#define MN_vcmpgt_osps 0x3eb9
|
|
|
|
#define MN_vcmplt_osps 0x3ec5
|
|
|
|
#define MN_vfpclassps 0x3ed1
|
|
|
|
#define MN_vcompressps 0x3edc
|
|
|
|
#define MN_vcmpnge_usps 0x3ee8
|
|
|
|
#define MN_vcmpnle_usps 0x3ef5
|
|
|
|
#define MN_vcmptrue_usps 0x3f02
|
|
|
|
#define MN_vcmpneq_usps 0x3f10
|
|
|
|
#define MN_vcmpeq_usps 0x3f1d
|
|
|
|
#define MN_vcmpngt_usps 0x3f29
|
|
|
|
#define MN_vcmpnlt_usps 0x3f36
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_extractps (MN_vextractps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vextractps 0x3f43
|
|
|
|
#define MN_vcmpngtps 0x3f4e
|
|
|
|
#define MN_vcmpgtps 0x3f58
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpnltps (MN_vcmpnltps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpnltps 0x3f61
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpltps (MN_vcmpltps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpltps 0x3f6b
|
|
|
|
#define MN_vgetmantps 0x3f74
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movntps (MN_vmovntps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmovntps 0x3f7f
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_insertps (MN_vinsertps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vinsertps 0x3f88
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_sqrtps (MN_rsqrtps + 1)
|
|
|
|
#define MN_rsqrtps (MN_vrsqrtps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vrsqrtps 0x3f92
|
|
|
|
#define MN_vsqrtps 0x3f9b
|
|
|
|
#define MN_vtestps 0x3fa3
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movups (MN_vmovups + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmovups 0x3fab
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_blendvps (MN_vblendvps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vblendvps 0x3fb3
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_divps (MN_vdivps + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vdivps 0x3fbd
|
|
|
|
#define MN_vmaskmovps 0x3fc4
|
Support Intel AVX10.2 minmax, vector copy and compare instructions
In this patch, we will support AVX10.2 minmax, vector copy and compare
instructions. This will finish the new instruction form support for
AVX10.2. Most of them are new instructions forms except for vmovd
and vmovw, which are extended usage from the old ones.
gas/ChangeLog:
* NEWS: Mention AVX10.2.
* testsuite/gas/i386/i386.exp: Add AVX10.2 tests.
* testsuite/gas/i386/x86-64.exp: Ditto.
* testsuite/gas/i386/avx10_2-256-5-intel.d: New test.
* testsuite/gas/i386/avx10_2-256-miscs.d: Ditto.
* testsuite/gas/i386/avx10_2-256-miscs.s: Ditto.
* testsuite/gas/i386/avx10_2-512-miscs-intel.d: Ditto.
* testsuite/gas/i386/avx10_2-512-miscs.d: Ditto.
* testsuite/gas/i386/avx10_2-512-miscs.s: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-256-miscs-intel.d: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-256-miscs.d: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-256-miscs.s: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-512-miscs-intel.d: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-512-miscs.d: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-512-miscs.s: Ditto.
opcodes/ChangeLog:
* i386-dis-evex-len.h: Add EVEX_LEN_0F7E_P_1_W_1,
EVEX_LEN_0FD6_P_2_W_0, EVEX_LEN_MAP5_6E and EVEX_LEN_MAP5_7E.
* i386-dis-evex-prefix.h: Add PREFIX_EVEX_0F2E, PREFIX_EVEX_0F2F,
PREFIX_EVEX_0F3A52, PREFIX_EVEX_0F3A53, PREFIX_EVEX_MAP5_2E,
PREFIX_EVEX_MAP5_2F, PREFIX_EVEX_MAP5_6E and PREFIX_EVEX_MAP5_7E.
* i386-dis-evex-w.h: Adjust EVEX_W_0F3A42, EVEX_W_0F7E_P_1
and EVEX_W_0FD6. Add EVEX_W_MAP5_6E_P_1 and EVEX_W_MAP5_7E_P_1.
* i386-dis-evex.h: Add and adjust table entries for AVX10.2.
* i386-dis.c (PREFIX_EVEX_0F2E): New.
(PREFIX_EVEX_0F2F): Ditto.
(PREFIX_EVEX_0F3A52): Ditto.
(PREFIX_EVEX_0F3A53): Ditto.
(PREFIX_EVEX_MAP5_2E): Ditto.
(PREFIX_EVEX_MAP5_2F): Ditto.
(PREFIX_EVEX_MAP5_6E_L_0): Ditto.
(PREFIX_EVEX_MAP5_7E_L_0): Ditto.
(EVEX_LEN_0F7E_P_1_W_1): Ditto.
(EVEX_LEN_0FD6_P_2_W_0): Ditto.
(EVEX_LEN_MAP5_6E): Ditto.
(EVEX_LEN_MAP5_7E): Ditto.
(EVEX_W_MAP5_6E_P_1): Ditto.
(EVEX_W_MAP5_7E_P_1): Ditto.
* i386-opc.tbl: Add AVX10.2 instructions.
* i386-mnem.h: Regenerated.
* i386-tbl.h: Ditto.
Co-authored-by: Jun Zhang <jun.zhang@intel.com>
Co-authored-by: Zewei Mo <zewei.mo@intel.com>
2024-12-23 11:32:03 +08:00
|
|
|
#define MN_maxps (MN_vminmaxps + 4)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vminmaxps 0x3fcf
|
|
|
|
#define MN_vmaxps 0x3fd9
|
|
|
|
#define MN_vfrczps 0x3fe0
|
|
|
|
#define MN_vcvttpd2dqs 0x3fe8
|
|
|
|
#define MN_vcvttps2dqs 0x3ff4
|
|
|
|
#define MN_vcvttpd2udqs 0x4000
|
|
|
|
#define MN_vcvttps2udqs 0x400d
|
|
|
|
#define MN_vcvttpd2qqs 0x401a
|
|
|
|
#define MN_vcvttps2qqs 0x4026
|
|
|
|
#define MN_vcvttpd2uqqs 0x4032
|
|
|
|
#define MN_vcvttps2uqqs 0x403f
|
|
|
|
#define MN_t2rpntlvwz0rs 0x404c
|
|
|
|
#define MN_t2rpntlvwz1rs 0x405a
|
|
|
|
#define MN_tileloaddrs 0x4068
|
|
|
|
#define MN_xrstors 0x4074
|
|
|
|
#define MN_movrs 0x407c
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_ss (MN_vfmsub231ss + 9)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vfmsub231ss 0x4082
|
|
|
|
#define MN_vfnmsub231ss 0x408e
|
|
|
|
#define MN_vfmadd231ss 0x409b
|
|
|
|
#define MN_vfnmadd231ss 0x40a7
|
|
|
|
#define MN_vfmsub132ss 0x40b4
|
|
|
|
#define MN_vfnmsub132ss 0x40c0
|
|
|
|
#define MN_vfmadd132ss 0x40cd
|
|
|
|
#define MN_vfnmadd132ss 0x40d9
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cvtsd2ss (MN_vcvtsd2ss + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcvtsd2ss 0x40e6
|
|
|
|
#define MN_vcvtsh2ss 0x40f0
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cvtsi2ss (MN_vcvtsi2ss + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcvtsi2ss 0x40fa
|
|
|
|
#define MN_vcvtusi2ss 0x4104
|
|
|
|
#define MN_vfmsub213ss 0x410f
|
|
|
|
#define MN_vfnmsub213ss 0x411b
|
|
|
|
#define MN_vfmadd213ss 0x4128
|
|
|
|
#define MN_vfnmadd213ss 0x4134
|
|
|
|
#define MN_vrcp14ss 0x4141
|
|
|
|
#define MN_vrsqrt14ss 0x414a
|
|
|
|
#define MN_vrcp28ss 0x4155
|
|
|
|
#define MN_vrsqrt28ss 0x415e
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_subss (MN_vfmsubss + 3)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vfmsubss 0x4169
|
|
|
|
#define MN_vfnmsubss 0x4172
|
|
|
|
#define MN_vsubss 0x417c
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_addss (MN_v4fmaddss + 4)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_v4fmaddss 0x4183
|
|
|
|
#define MN_vfmaddss 0x418d
|
|
|
|
#define MN_v4fnmaddss 0x4196
|
|
|
|
#define MN_vfnmaddss 0x41a1
|
|
|
|
#define MN_vaddss 0x41ab
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_roundss (MN_vroundss + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vroundss 0x41b2
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpunordss (MN_vcmpunordss + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpunordss 0x41bb
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpordss (MN_vcmpordss + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpordss 0x41c7
|
|
|
|
#define MN_vreducess 0x41d1
|
|
|
|
#define MN_vrangess 0x41db
|
|
|
|
#define MN_vcmpngess 0x41e4
|
|
|
|
#define MN_vcmpgess 0x41ee
|
|
|
|
#define MN_vrndscaless 0x41f7
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpnless (MN_vcmpnless + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpnless 0x4203
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpless (MN_vcmpless + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpless 0x420d
|
|
|
|
#define MN_vcmpfalsess 0x4216
|
|
|
|
#define MN_vcmptruess 0x4222
|
|
|
|
#define MN_vscalefss 0x422d
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_comiss (MN_ucomiss + 1)
|
|
|
|
#define MN_ucomiss (MN_vucomiss + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vucomiss 0x4237
|
|
|
|
#define MN_vcomiss 0x4240
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_lss (MN_mulss + 2)
|
|
|
|
#define MN_mulss (MN_vmulss + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmulss 0x4248
|
|
|
|
#define MN_vfixupimmss 0x424f
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_minss (MN_vminss + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vminss 0x425b
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_rcpss (MN_vrcpss + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vrcpss 0x4262
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpss (MN_vcmpss + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpss 0x4269
|
|
|
|
#define MN_vgetexpss 0x4270
|
|
|
|
#define MN_vcmpunord_qss 0x427a
|
|
|
|
#define MN_vcmpord_qss 0x4288
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpneqss (MN_vcmpneqss + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpneqss 0x4294
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpeqss (MN_vcmpeqss + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpeqss 0x429e
|
|
|
|
#define MN_vcmpge_oqss 0x42a7
|
|
|
|
#define MN_vcmple_oqss 0x42b3
|
|
|
|
#define MN_vcmpfalse_oqss 0x42bf
|
|
|
|
#define MN_vcmpneq_oqss 0x42ce
|
|
|
|
#define MN_vcmpeq_oqss 0x42db
|
|
|
|
#define MN_vcmpgt_oqss 0x42e7
|
|
|
|
#define MN_vcmplt_oqss 0x42f3
|
|
|
|
#define MN_vcmpnge_uqss 0x42ff
|
|
|
|
#define MN_vcmpnle_uqss 0x430c
|
|
|
|
#define MN_vcmptrue_uqss 0x4319
|
|
|
|
#define MN_vcmpneq_uqss 0x4327
|
|
|
|
#define MN_vcmpeq_uqss 0x4334
|
|
|
|
#define MN_vcmpngt_uqss 0x4340
|
|
|
|
#define MN_vcmpnlt_uqss 0x434d
|
|
|
|
#define MN_vcmpunord_sss 0x435a
|
|
|
|
#define MN_vcmpord_sss 0x4368
|
|
|
|
#define MN_vcmpge_osss 0x4374
|
|
|
|
#define MN_vcmple_osss 0x4380
|
|
|
|
#define MN_vcmpfalse_osss 0x438c
|
|
|
|
#define MN_vcmpneq_osss 0x439b
|
|
|
|
#define MN_vcmpeq_osss 0x43a8
|
|
|
|
#define MN_vcmpgt_osss 0x43b4
|
|
|
|
#define MN_vcmplt_osss 0x43c0
|
|
|
|
#define MN_vfpclassss 0x43cc
|
|
|
|
#define MN_vcmpnge_usss 0x43d7
|
|
|
|
#define MN_vcmpnle_usss 0x43e4
|
|
|
|
#define MN_vcmptrue_usss 0x43f1
|
|
|
|
#define MN_vcmpneq_usss 0x43ff
|
|
|
|
#define MN_vcmpeq_usss 0x440c
|
|
|
|
#define MN_vcmpngt_usss 0x4418
|
|
|
|
#define MN_vcmpnlt_usss 0x4425
|
|
|
|
#define MN_vcmpngtss 0x4432
|
|
|
|
#define MN_vcmpgtss 0x443c
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpnltss (MN_vcmpnltss + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpnltss 0x4445
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_cmpltss (MN_vcmpltss + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vcmpltss 0x444f
|
|
|
|
#define MN_vgetmantss 0x4458
|
|
|
|
#define MN_movntss 0x4463
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_sqrtss (MN_rsqrtss + 1)
|
|
|
|
#define MN_rsqrtss (MN_vrsqrtss + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vrsqrtss 0x446b
|
|
|
|
#define MN_vsqrtss 0x4474
|
|
|
|
#define MN_vbroadcastss 0x447c
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_divss (MN_vdivss + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vdivss 0x4489
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movss (MN_vmovss + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmovss 0x4490
|
Support Intel AVX10.2 minmax, vector copy and compare instructions
In this patch, we will support AVX10.2 minmax, vector copy and compare
instructions. This will finish the new instruction form support for
AVX10.2. Most of them are new instructions forms except for vmovd
and vmovw, which are extended usage from the old ones.
gas/ChangeLog:
* NEWS: Mention AVX10.2.
* testsuite/gas/i386/i386.exp: Add AVX10.2 tests.
* testsuite/gas/i386/x86-64.exp: Ditto.
* testsuite/gas/i386/avx10_2-256-5-intel.d: New test.
* testsuite/gas/i386/avx10_2-256-miscs.d: Ditto.
* testsuite/gas/i386/avx10_2-256-miscs.s: Ditto.
* testsuite/gas/i386/avx10_2-512-miscs-intel.d: Ditto.
* testsuite/gas/i386/avx10_2-512-miscs.d: Ditto.
* testsuite/gas/i386/avx10_2-512-miscs.s: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-256-miscs-intel.d: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-256-miscs.d: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-256-miscs.s: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-512-miscs-intel.d: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-512-miscs.d: Ditto.
* testsuite/gas/i386/x86-64-avx10_2-512-miscs.s: Ditto.
opcodes/ChangeLog:
* i386-dis-evex-len.h: Add EVEX_LEN_0F7E_P_1_W_1,
EVEX_LEN_0FD6_P_2_W_0, EVEX_LEN_MAP5_6E and EVEX_LEN_MAP5_7E.
* i386-dis-evex-prefix.h: Add PREFIX_EVEX_0F2E, PREFIX_EVEX_0F2F,
PREFIX_EVEX_0F3A52, PREFIX_EVEX_0F3A53, PREFIX_EVEX_MAP5_2E,
PREFIX_EVEX_MAP5_2F, PREFIX_EVEX_MAP5_6E and PREFIX_EVEX_MAP5_7E.
* i386-dis-evex-w.h: Adjust EVEX_W_0F3A42, EVEX_W_0F7E_P_1
and EVEX_W_0FD6. Add EVEX_W_MAP5_6E_P_1 and EVEX_W_MAP5_7E_P_1.
* i386-dis-evex.h: Add and adjust table entries for AVX10.2.
* i386-dis.c (PREFIX_EVEX_0F2E): New.
(PREFIX_EVEX_0F2F): Ditto.
(PREFIX_EVEX_0F3A52): Ditto.
(PREFIX_EVEX_0F3A53): Ditto.
(PREFIX_EVEX_MAP5_2E): Ditto.
(PREFIX_EVEX_MAP5_2F): Ditto.
(PREFIX_EVEX_MAP5_6E_L_0): Ditto.
(PREFIX_EVEX_MAP5_7E_L_0): Ditto.
(EVEX_LEN_0F7E_P_1_W_1): Ditto.
(EVEX_LEN_0FD6_P_2_W_0): Ditto.
(EVEX_LEN_MAP5_6E): Ditto.
(EVEX_LEN_MAP5_7E): Ditto.
(EVEX_W_MAP5_6E_P_1): Ditto.
(EVEX_W_MAP5_7E_P_1): Ditto.
* i386-opc.tbl: Add AVX10.2 instructions.
* i386-mnem.h: Regenerated.
* i386-tbl.h: Ditto.
Co-authored-by: Jun Zhang <jun.zhang@intel.com>
Co-authored-by: Zewei Mo <zewei.mo@intel.com>
2024-12-23 11:32:03 +08:00
|
|
|
#define MN_maxss (MN_vminmaxss + 4)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vminmaxss 0x4497
|
|
|
|
#define MN_vmaxss 0x44a1
|
|
|
|
#define MN_vucomxss 0x44a8
|
|
|
|
#define MN_vcomxss 0x44b1
|
|
|
|
#define MN_vfrczss 0x44b9
|
|
|
|
#define MN_bts 0x44c1
|
|
|
|
#define MN_erets 0x44c5
|
|
|
|
#define MN_sets 0x44cb
|
|
|
|
#define MN_clts 0x44d0
|
|
|
|
#define MN_ctests 0x44d5
|
|
|
|
#define MN_outs 0x44dc
|
|
|
|
#define MN_setzus 0x44e1
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movs (MN_cmovs + 1)
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_cmovs (MN_cfcmovs + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cfcmovs 0x44e8
|
|
|
|
#define MN_fldl2t 0x44f0
|
|
|
|
#define MN_xlat 0x44f7
|
|
|
|
#define MN_bt 0x44fc
|
|
|
|
#define MN_fxtract 0x44ff
|
|
|
|
#define MN_lgdt 0x4507
|
|
|
|
#define MN_sgdt 0x450c
|
|
|
|
#define MN_lidt 0x4511
|
|
|
|
#define MN_sidt 0x4516
|
|
|
|
#define MN_fldt 0x451b
|
|
|
|
#define MN_lldt 0x4520
|
|
|
|
#define MN_sldt 0x4525
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_ret (MN_iret + 1)
|
|
|
|
#define MN_iret (MN_uiret + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_uiret 0x452a
|
|
|
|
#define MN_lret 0x4530
|
|
|
|
#define MN_seamret 0x4535
|
|
|
|
#define MN_sysret 0x453d
|
|
|
|
#define MN_hreset 0x4544
|
|
|
|
#define MN_pfcmpgt 0x454b
|
|
|
|
#define MN_ht 0x4553
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_wait (MN_fwait + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_fwait 0x4556
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_mwait (MN_umwait + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_umwait 0x455c
|
|
|
|
#define MN_mcommit 0x4563
|
|
|
|
#define MN_finit 0x456b
|
|
|
|
#define MN_skinit 0x4571
|
|
|
|
#define MN_fninit 0x4578
|
|
|
|
#define MN_vmgexit 0x457f
|
|
|
|
#define MN_sysexit 0x4587
|
|
|
|
#define MN_hlt 0x458f
|
|
|
|
#define MN_popcnt 0x4593
|
|
|
|
#define MN_lzcnt 0x459a
|
|
|
|
#define MN_tzcnt 0x45a0
|
|
|
|
#define MN_hnt 0x45a6
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_int (MN_frndint + 4)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_frndint 0x45aa
|
|
|
|
#define MN_not 0x45b2
|
|
|
|
#define MN_invept 0x45b6
|
|
|
|
#define MN_ccmpt 0x45bd
|
|
|
|
#define MN_xsaveopt 0x45c3
|
|
|
|
#define MN_clflushopt 0x45cc
|
|
|
|
#define MN_fstpt 0x45d7
|
|
|
|
#define MN_xabort 0x45dd
|
|
|
|
#define MN_fsqrt 0x45e4
|
|
|
|
#define MN_pfrsqrt 0x45ea
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_aesdeclast (MN_vaesdeclast + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vaesdeclast 0x45f2
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_aesenclast (MN_vaesenclast + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vaesenclast 0x45fe
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_test (MN_ptest + 1)
|
|
|
|
#define MN_ptest (MN_vptest + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vptest 0x460a
|
|
|
|
#define MN_xtest 0x4611
|
|
|
|
#define MN_fst 0x4617
|
|
|
|
#define MN_fist 0x461b
|
|
|
|
#define MN_rdmsrlist 0x4620
|
|
|
|
#define MN_wrmsrlist 0x462a
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_aeskeygenassist (MN_vaeskeygenassist + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vaeskeygenassist 0x4634
|
|
|
|
#define MN_vmptrst 0x4645
|
|
|
|
#define MN_ftst 0x464d
|
|
|
|
#define MN_rmpadjust 0x4652
|
|
|
|
#define MN_ctestt 0x465c
|
|
|
|
#define MN_out 0x4663
|
|
|
|
#define MN_pext 0x4667
|
|
|
|
#define MN_bndcu 0x466c
|
|
|
|
#define MN_enclu 0x4672
|
|
|
|
#define MN_fcmovnu 0x4678
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_lddqu (MN_vlddqu + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vlddqu 0x4680
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_movdqu (MN_maskmovdqu + 4)
|
|
|
|
#define MN_maskmovdqu (MN_vmaskmovdqu + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmaskmovdqu 0x4687
|
|
|
|
#define MN_vmovdqu 0x4693
|
|
|
|
#define MN_rdpkru 0x469b
|
|
|
|
#define MN_wrpkru 0x46a2
|
|
|
|
#define MN_rdpru 0x46a9
|
|
|
|
#define MN_eretu 0x46af
|
|
|
|
#define MN_fcmovu 0x46b5
|
|
|
|
#define MN_imulzu 0x46bc
|
|
|
|
#define MN_xgetbv 0x46c3
|
|
|
|
#define MN_xsetbv 0x46ca
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_div (MN_fdiv + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_fdiv 0x46d1
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_idiv (MN_fidiv + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_fidiv 0x46d6
|
|
|
|
#define MN_enclv 0x46dc
|
|
|
|
#define MN_fldenv 0x46e2
|
|
|
|
#define MN_fstenv 0x46e9
|
|
|
|
#define MN_fnstenv 0x46f0
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_mov (MN_vpcmov + 3)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpcmov 0x46f8
|
|
|
|
#define MN_bndmov 0x46ff
|
|
|
|
#define MN_smov 0x4706
|
|
|
|
#define MN_rex_w 0x470b
|
|
|
|
#define MN_vcvttph2w 0x4711
|
|
|
|
#define MN_vcvtph2w 0x471b
|
|
|
|
#define MN_vpermi2w 0x4724
|
|
|
|
#define MN_vpmovm2w 0x472d
|
|
|
|
#define MN_vpermt2w 0x4736
|
|
|
|
#define MN_vpshaw 0x473f
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_psraw (MN_vpsraw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpsraw 0x4746
|
|
|
|
#define MN_vphsubbw 0x474d
|
|
|
|
#define MN_cbw 0x4756
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_psadbw (MN_vdbpsadbw + 3)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vdbpsadbw 0x475a
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_mpsadbw (MN_vmpsadbw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vmpsadbw 0x4764
|
|
|
|
#define MN_vpsadbw 0x476d
|
|
|
|
#define MN_vphaddbw 0x4775
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_punpckhbw (MN_vpunpckhbw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpunpckhbw 0x477e
|
|
|
|
#define MN_kunpckbw 0x4789
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_punpcklbw (MN_vpunpcklbw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpunpcklbw 0x4792
|
|
|
|
#define MN_vphaddubw 0x479d
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_phsubw (MN_vphsubw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vphsubw 0x47a7
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_psubw (MN_vpsubw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpsubw 0x47af
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmovsxbw (MN_vpmovsxbw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmovsxbw 0x47b6
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmovzxbw (MN_vpmovzxbw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmovzxbw 0x47c0
|
|
|
|
#define MN_fldcw 0x47ca
|
|
|
|
#define MN_fstcw 0x47d0
|
|
|
|
#define MN_fnstcw 0x47d6
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_phaddw (MN_vphaddw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vphaddw 0x47dd
|
|
|
|
#define MN_kaddw 0x47e5
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_paddw (MN_vpaddw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpaddw 0x47eb
|
|
|
|
#define MN_vpshldw 0x47f2
|
|
|
|
#define MN_kandw 0x47fa
|
|
|
|
#define MN_vpexpandw 0x4800
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pblendw (MN_vpblendw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpblendw 0x480a
|
|
|
|
#define MN_vpshrdw 0x4813
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_packssdw (MN_vpackssdw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpackssdw 0x481b
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_packusdw (MN_vpackusdw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpackusdw 0x4825
|
|
|
|
#define MN_vpmovusdw 0x482f
|
|
|
|
#define MN_vpmovsdw 0x4839
|
|
|
|
#define MN_vpmovdw 0x4842
|
|
|
|
#define MN_vpcomgew 0x484a
|
|
|
|
#define MN_vpcomlew 0x4853
|
|
|
|
#define MN_vpcmpnlew 0x485c
|
|
|
|
#define MN_vpcmplew 0x4866
|
|
|
|
#define MN_vpcomfalsew 0x486f
|
|
|
|
#define MN_vpcomtruew 0x487b
|
|
|
|
#define MN_pi2fw 0x4886
|
|
|
|
#define MN_pshufw 0x488c
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pavgw (MN_vpavgw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpavgw 0x4893
|
|
|
|
#define MN_prefetchw 0x489a
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pshufhw (MN_vpshufhw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpshufhw 0x48a4
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmulhw (MN_vpmulhw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmulhw 0x48ad
|
|
|
|
#define MN_pf2iw 0x48b5
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pshuflw (MN_vpshuflw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpshuflw 0x48bb
|
|
|
|
#define MN_vpshlw 0x48c4
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_psllw (MN_vpsllw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpsllw 0x48cb
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmullw (MN_vpmullw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmullw 0x48d2
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_psrlw (MN_vpsrlw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpsrlw 0x48da
|
|
|
|
#define MN_kshiftlw 0x48e1
|
|
|
|
#define MN_vpblendmw 0x48ea
|
|
|
|
#define MN_vptestnmw 0x48f4
|
|
|
|
#define MN_vpcomw 0x48fe
|
|
|
|
#define MN_vpermw 0x4905
|
|
|
|
#define MN_vptestmw 0x490c
|
|
|
|
#define MN_kandnw 0x4915
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_psignw (MN_vpsignw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpsignw 0x491c
|
|
|
|
#define MN_tilemovrow 0x4924
|
|
|
|
#define MN_vpcmpw 0x492f
|
|
|
|
#define MN_vpcomeqw 0x4936
|
|
|
|
#define MN_vpcomneqw 0x493f
|
|
|
|
#define MN_vpcmpneqw 0x4949
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pcmpeqw (MN_vpcmpeqw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpcmpeqw 0x4953
|
|
|
|
#define MN_vpmovusqw 0x495c
|
|
|
|
#define MN_vpmovsqw 0x4966
|
|
|
|
#define MN_vpmovqw 0x496f
|
|
|
|
#define MN_verw 0x4977
|
|
|
|
#define MN_pmulhrw 0x497c
|
|
|
|
#define MN_korw 0x4984
|
|
|
|
#define MN_kxnorw 0x4989
|
|
|
|
#define MN_kxorw 0x4990
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pinsrw (MN_vpinsrw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpinsrw 0x4996
|
|
|
|
#define MN_kshiftrw 0x499e
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pextrw (MN_vpextrw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpextrw 0x49a7
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pabsw (MN_vpabsw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpabsw 0x49af
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmaddubsw (MN_vpmaddubsw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmaddubsw 0x49b6
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_phsubsw (MN_vphsubsw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vphsubsw 0x49c1
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_psubsw (MN_vpsubsw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpsubsw 0x49ca
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_phaddsw (MN_vphaddsw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vphaddsw 0x49d2
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_paddsw (MN_vpaddsw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpaddsw 0x49db
|
|
|
|
#define MN_lmsw 0x49e3
|
|
|
|
#define MN_smsw 0x49e8
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pminsw (MN_vpminsw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpminsw 0x49ed
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmulhrsw (MN_vpmulhrsw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmulhrsw 0x49f5
|
|
|
|
#define MN_vmovrsw 0x49ff
|
|
|
|
#define MN_vpcompressw 0x4a07
|
|
|
|
#define MN_fstsw 0x4a13
|
|
|
|
#define MN_fnstsw 0x4a19
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_psubusw (MN_vpsubusw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpsubusw 0x4a20
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_paddusw (MN_vpaddusw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpaddusw 0x4a29
|
|
|
|
#define MN_movsw 0x4a32
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmaxsw (MN_vpmaxsw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmaxsw 0x4a38
|
|
|
|
#define MN_cbtw 0x4a40
|
|
|
|
#define MN_vpcomgtw 0x4a45
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pcmpgtw (MN_vpcmpgtw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpcmpgtw 0x4a4e
|
|
|
|
#define MN_vpcomltw 0x4a57
|
|
|
|
#define MN_vpcmpnltw 0x4a60
|
|
|
|
#define MN_vpcmpltw 0x4a6a
|
|
|
|
#define MN_vpopcntw 0x4a73
|
|
|
|
#define MN_knotw 0x4a7c
|
|
|
|
#define MN_vprotw 0x4a82
|
|
|
|
#define MN_vpbroadcastw 0x4a89
|
|
|
|
#define MN_ktestw 0x4a96
|
|
|
|
#define MN_kortestw 0x4a9d
|
|
|
|
#define MN_vcvttph2uw 0x4aa6
|
|
|
|
#define MN_vcvtph2uw 0x4ab1
|
|
|
|
#define MN_vpcomgeuw 0x4abb
|
|
|
|
#define MN_vpcomleuw 0x4ac5
|
|
|
|
#define MN_vpcmpnleuw 0x4acf
|
|
|
|
#define MN_vpcmpleuw 0x4ada
|
|
|
|
#define MN_vpcomfalseuw 0x4ae4
|
|
|
|
#define MN_vpcomtrueuw 0x4af1
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmulhuw (MN_vpmulhuw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmulhuw 0x4afd
|
|
|
|
#define MN_vpcomuw 0x4b06
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pminuw (MN_vpminuw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpminuw 0x4b0e
|
|
|
|
#define MN_vpcmpuw 0x4b16
|
|
|
|
#define MN_vpcomequw 0x4b1e
|
|
|
|
#define MN_vpcomnequw 0x4b28
|
|
|
|
#define MN_vpcmpnequw 0x4b33
|
|
|
|
#define MN_vpcmpequw 0x4b3e
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_phminposuw (MN_vphminposuw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vphminposuw 0x4b48
|
|
|
|
#define MN_vpcomgtuw 0x4b54
|
|
|
|
#define MN_vpcomltuw 0x4b5e
|
|
|
|
#define MN_vpcmpnltuw 0x4b68
|
|
|
|
#define MN_vpcmpltuw 0x4b73
|
2023-01-20 10:16:17 +01:00
|
|
|
#define MN_pmaxuw (MN_vpmaxuw + 1)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_vpmaxuw 0x4b7d
|
|
|
|
#define MN_vpsravw 0x4b85
|
|
|
|
#define MN_vpshldvw 0x4b8d
|
|
|
|
#define MN_vpshrdvw 0x4b96
|
|
|
|
#define MN_vpsllvw 0x4b9f
|
|
|
|
#define MN_vpsrlvw 0x4ba7
|
|
|
|
#define MN_kmovw 0x4baf
|
|
|
|
#define MN_vmovw 0x4bb5
|
|
|
|
#define MN_vpmacsww 0x4bbb
|
|
|
|
#define MN_vpmacssww 0x4bc4
|
|
|
|
#define MN_movzw 0x4bce
|
|
|
|
#define MN_rex_x 0x4bd4
|
|
|
|
#define MN_fyl2x 0x4bda
|
|
|
|
#define MN_rex64x 0x4be0
|
|
|
|
#define MN_vcvtneps2bf16x 0x4be7
|
|
|
|
#define MN_vfpclassbf16x 0x4bf6
|
|
|
|
#define MN_vcvtph2bf8x 0x4c04
|
|
|
|
#define MN_vcvtph2hf8x 0x4c10
|
|
|
|
#define MN_pfmax 0x4c1c
|
|
|
|
#define MN_adcx 0x4c22
|
|
|
|
#define MN_bndldx 0x4c27
|
|
|
|
#define MN_vfpclasspdx 0x4c2e
|
|
|
|
#define MN_fclex 0x4c3a
|
|
|
|
#define MN_fnclex 0x4c40
|
|
|
|
#define MN_rex 0x4c47
|
|
|
|
#define MN_vcvtpd2phx 0x4c4b
|
|
|
|
#define MN_vcvtdq2phx 0x4c56
|
|
|
|
#define MN_vcvtudq2phx 0x4c61
|
|
|
|
#define MN_vcvtqq2phx 0x4c6d
|
|
|
|
#define MN_vcvtuqq2phx 0x4c78
|
|
|
|
#define MN_vcvt2ps2phx 0x4c84
|
|
|
|
#define MN_vcvtps2phx 0x4c90
|
|
|
|
#define MN_vfpclassphx 0x4c9b
|
|
|
|
#define MN_shlx 0x4ca7
|
|
|
|
#define MN_mulx 0x4cac
|
|
|
|
#define MN_adox 0x4cb1
|
|
|
|
#define MN_vcvttpd2dqx 0x4cb6
|
|
|
|
#define MN_vcvtpd2dqx 0x4cc2
|
|
|
|
#define MN_vcvttpd2udqx 0x4ccd
|
|
|
|
#define MN_vcvtpd2udqx 0x4cda
|
|
|
|
#define MN_rex_rx 0x4ce6
|
|
|
|
#define MN_sarx 0x4ced
|
|
|
|
#define MN_shrx 0x4cf2
|
|
|
|
#define MN_rorx 0x4cf7
|
|
|
|
#define MN_monitorx 0x4cfc
|
|
|
|
#define MN_rex_wrx 0x4d05
|
|
|
|
#define MN_vcvtph2bf8sx 0x4d0d
|
|
|
|
#define MN_vcvtph2hf8sx 0x4d1a
|
|
|
|
#define MN_vcvtpd2psx 0x4d27
|
|
|
|
#define MN_vcvtph2psx 0x4d32
|
|
|
|
#define MN_vcvtqq2psx 0x4d3d
|
|
|
|
#define MN_vcvtuqq2psx 0x4d48
|
|
|
|
#define MN_vfpclasspsx 0x4d54
|
|
|
|
#define MN_vcvttpd2dqsx 0x4d60
|
|
|
|
#define MN_vcvttpd2udqsx 0x4d6d
|
|
|
|
#define MN_movsx 0x4d7b
|
|
|
|
#define MN_mwaitx 0x4d81
|
|
|
|
#define MN_bndstx 0x4d88
|
|
|
|
#define MN_rex_wx 0x4d8f
|
|
|
|
#define MN_rexx 0x4d96
|
|
|
|
#define MN_vcvtps2phxx 0x4d9b
|
|
|
|
#define MN_movzx 0x4da7
|
|
|
|
#define MN_rex64y 0x4dad
|
|
|
|
#define MN_vcvtneps2bf16y 0x4db4
|
|
|
|
#define MN_vfpclassbf16y 0x4dc3
|
|
|
|
#define MN_vcvtph2bf8y 0x4dd1
|
|
|
|
#define MN_vcvtph2hf8y 0x4ddd
|
|
|
|
#define MN_vfpclasspdy 0x4de9
|
|
|
|
#define MN_loadiwkey 0x4df5
|
|
|
|
#define MN_vcvtpd2phy 0x4dff
|
|
|
|
#define MN_vcvtdq2phy 0x4e0a
|
|
|
|
#define MN_vcvtudq2phy 0x4e15
|
|
|
|
#define MN_vcvtqq2phy 0x4e21
|
|
|
|
#define MN_vcvtuqq2phy 0x4e2c
|
|
|
|
#define MN_vfpclassphy 0x4e38
|
|
|
|
#define MN_vcvttpd2dqy 0x4e44
|
|
|
|
#define MN_vcvtpd2dqy 0x4e50
|
|
|
|
#define MN_vcvttpd2udqy 0x4e5b
|
|
|
|
#define MN_vcvtpd2udqy 0x4e68
|
|
|
|
#define MN_rmpquery 0x4e74
|
|
|
|
#define MN_vcvtph2bf8sy 0x4e7d
|
|
|
|
#define MN_vcvtph2hf8sy 0x4e8a
|
|
|
|
#define MN_clrssbsy 0x4e97
|
|
|
|
#define MN_setssbsy 0x4ea0
|
|
|
|
#define MN_vcvtpd2psy 0x4ea9
|
|
|
|
#define MN_vcvtqq2psy 0x4eb4
|
|
|
|
#define MN_vcvtuqq2psy 0x4ebf
|
|
|
|
#define MN_vfpclasspsy 0x4ecb
|
|
|
|
#define MN_vcvttpd2dqsy 0x4ed7
|
|
|
|
#define MN_vcvttpd2udqsy 0x4ee4
|
|
|
|
#define MN_rex64xy 0x4ef2
|
|
|
|
#define MN_rexy 0x4efa
|
|
|
|
#define MN_vcvtps2phxy 0x4eff
|
|
|
|
#define MN_rexxy 0x4f0b
|
|
|
|
#define MN_rex64z 0x4f11
|
|
|
|
#define MN_vfpclassbf16z 0x4f18
|
|
|
|
#define MN_fldz 0x4f26
|
|
|
|
#define MN_vfpclasspdz 0x4f2b
|
|
|
|
#define MN_vcvtpd2phz 0x4f37
|
|
|
|
#define MN_vcvtqq2phz 0x4f42
|
|
|
|
#define MN_vcvtuqq2phz 0x4f4d
|
|
|
|
#define MN_vfpclassphz 0x4f59
|
|
|
|
#define MN_jz 0x4f65
|
|
|
|
#define MN_jnz 0x4f68
|
|
|
|
#define MN_repnz 0x4f6c
|
|
|
|
#define MN_ccmpnz 0x4f72
|
|
|
|
#define MN_loopnz 0x4f79
|
|
|
|
#define MN_setnz 0x4f80
|
|
|
|
#define MN_ctestnz 0x4f86
|
|
|
|
#define MN_setzunz 0x4f8e
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_cmovnz (MN_cfcmovnz + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cfcmovnz 0x4f96
|
|
|
|
#define MN_repz 0x4f9f
|
|
|
|
#define MN_ccmpz 0x4fa4
|
|
|
|
#define MN_loopz 0x4faa
|
|
|
|
#define MN_vfpclasspsz 0x4fb0
|
|
|
|
#define MN_setz 0x4fbc
|
|
|
|
#define MN_ctestz 0x4fc1
|
|
|
|
#define MN_setzuz 0x4fc8
|
2024-07-04 15:49:16 +08:00
|
|
|
#define MN_cmovz (MN_cfcmovz + 2)
|
2025-01-31 10:06:02 +01:00
|
|
|
#define MN_cfcmovz 0x4fcf
|
|
|
|
#define MN_rex64xz 0x4fd7
|
|
|
|
#define MN_jecxz 0x4fdf
|
|
|
|
#define MN_jcxz 0x4fe5
|
|
|
|
#define MN_jrcxz 0x4fea
|
|
|
|
#define MN_rexz 0x4ff0
|
|
|
|
#define MN_rexxz 0x4ff5
|
|
|
|
#define MN_rex64yz 0x4ffb
|
|
|
|
#define MN_rex64xyz 0x5003
|
|
|
|
#define MN_rexyz 0x500c
|
|
|
|
#define MN_rexxyz 0x5012
|
|
|
|
#define MN__disp32_ 0x5019
|
|
|
|
#define MN__rex2_ 0x5022
|
|
|
|
#define MN__vex2_ 0x5029
|
|
|
|
#define MN__vex3_ 0x5030
|
|
|
|
#define MN__disp16_ 0x5037
|
|
|
|
#define MN__disp8_ 0x5040
|
|
|
|
#define MN__load_ 0x5048
|
|
|
|
#define MN__store_ 0x504f
|
|
|
|
#define MN__nooptimize_ 0x5057
|
|
|
|
#define MN__nf_ 0x5064
|
|
|
|
#define MN__rex_ 0x5069
|
|
|
|
#define MN__evex_ 0x506f
|
|
|
|
#define MN__vex_ 0x5076
|
|
|
|
#define MN__insn 0x507c
|