summaryrefslogtreecommitdiff
path: root/opcodes/i386-gen.c
diff options
context:
space:
mode:
Diffstat (limited to 'opcodes/i386-gen.c')
-rw-r--r--opcodes/i386-gen.c35
1 files changed, 33 insertions, 2 deletions
diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c
index e2857badb4c..115b2739250 100644
--- a/opcodes/i386-gen.c
+++ b/opcodes/i386-gen.c
@@ -127,7 +127,7 @@ static initializer cpu_flag_init[] =
{ "CPU_SSE4_2_FLAGS",
"CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1|CpuSSE4_2" },
{ "CPU_ANY_SSE_FLAGS",
- "CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1|CpuSSE4_2|CpuSSE4a|CpuAVX|CpuAVX2" },
+ "CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1|CpuSSE4_2|CpuSSE4a|CpuAVX|CpuAVX2|CpuAVX512F|CpuAVX512CD|CpuAVX512ER|CpuAVX512PF" },
{ "CPU_VMX_FLAGS",
"CpuVMX" },
{ "CPU_SMX_FLAGS",
@@ -194,8 +194,16 @@ static initializer cpu_flag_init[] =
"CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1|CpuSSE4_2|CpuAVX" },
{ "CPU_AVX2_FLAGS",
"CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1|CpuSSE4_2|CpuAVX|CpuAVX2" },
+ { "CPU_AVX512F_FLAGS",
+ "CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1|CpuSSE4_2|CpuAVX|CpuAVX2|CpuAVX512F" },
+ { "CPU_AVX512CD_FLAGS",
+ "CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1|CpuSSE4_2|CpuAVX|CpuAVX2|CpuAVX512F|CpuAVX512CD" },
+ { "CPU_AVX512ER_FLAGS",
+ "CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1|CpuSSE4_2|CpuAVX|CpuAVX2|CpuAVX512F|CpuAVX512ER" },
+ { "CPU_AVX512PF_FLAGS",
+ "CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1|CpuSSE4_2|CpuAVX|CpuAVX2|CpuAVX512F|CpuAVX512PF" },
{ "CPU_ANY_AVX_FLAGS",
- "CpuAVX|CpuAVX2" },
+ "CpuAVX|CpuAVX2|CpuAVX512F|CpuAVX512CD|CpuAVX512ER|CpuAVX512PF" },
{ "CPU_L1OM_FLAGS",
"unknown" },
{ "CPU_K1OM_FLAGS",
@@ -280,6 +288,10 @@ static initializer operand_type_init[] =
"RegXMM" },
{ "OPERAND_TYPE_REGYMM",
"RegYMM" },
+ { "OPERAND_TYPE_REGZMM",
+ "RegZMM" },
+ { "OPERAND_TYPE_REGMASK",
+ "RegMask" },
{ "OPERAND_TYPE_ESSEG",
"EsSeg" },
{ "OPERAND_TYPE_ACC32",
@@ -314,6 +326,8 @@ static initializer operand_type_init[] =
"Vec_Imm4" },
{ "OPERAND_TYPE_REGBND",
"RegBND" },
+ { "OPERAND_TYPE_VEC_DISP8",
+ "Vec_Disp8" },
};
typedef struct bitfield
@@ -350,6 +364,10 @@ static bitfield cpu_flags[] =
BITFIELD (CpuSSE4_2),
BITFIELD (CpuAVX),
BITFIELD (CpuAVX2),
+ BITFIELD (CpuAVX512F),
+ BITFIELD (CpuAVX512CD),
+ BITFIELD (CpuAVX512ER),
+ BITFIELD (CpuAVX512PF),
BITFIELD (CpuL1OM),
BITFIELD (CpuK1OM),
BITFIELD (CpuSSE4a),
@@ -389,6 +407,7 @@ static bitfield cpu_flags[] =
BITFIELD (CpuPRFCHW),
BITFIELD (CpuSMAP),
BITFIELD (CpuSHA),
+ BITFIELD (CpuVREX),
BITFIELD (Cpu64),
BITFIELD (CpuNo64),
BITFIELD (CpuMPX),
@@ -449,6 +468,14 @@ static bitfield opcode_modifiers[] =
BITFIELD (VecSIB),
BITFIELD (SSE2AVX),
BITFIELD (NoAVX),
+ BITFIELD (EVex),
+ BITFIELD (Masking),
+ BITFIELD (VecESize),
+ BITFIELD (Broadcast),
+ BITFIELD (StaticRounding),
+ BITFIELD (SAE),
+ BITFIELD (Disp8MemShift),
+ BITFIELD (NoDefMask),
BITFIELD (OldGcc),
BITFIELD (ATTMnemonic),
BITFIELD (ATTSyntax),
@@ -465,6 +492,8 @@ static bitfield operand_types[] =
BITFIELD (RegMMX),
BITFIELD (RegXMM),
BITFIELD (RegYMM),
+ BITFIELD (RegZMM),
+ BITFIELD (RegMask),
BITFIELD (Imm1),
BITFIELD (Imm8),
BITFIELD (Imm8S),
@@ -499,10 +528,12 @@ static bitfield operand_types[] =
BITFIELD (Tbyte),
BITFIELD (Xmmword),
BITFIELD (Ymmword),
+ BITFIELD (Zmmword),
BITFIELD (Unspecified),
BITFIELD (Anysize),
BITFIELD (Vec_Imm4),
BITFIELD (RegBND),
+ BITFIELD (Vec_Disp8),
#ifdef OTUnused
BITFIELD (OTUnused),
#endif