| Index: opcodes/i386-gen.c
|
| diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c
|
| index 722bb1552217b3c75e1fafad72dee577ae3cc160..62cfbadf5737da652f86fc4bc04befaebc4377d1 100644
|
| --- a/opcodes/i386-gen.c
|
| +++ b/opcodes/i386-gen.c
|
| @@ -1,4 +1,4 @@
|
| -/* Copyright 2007, 2008, 2009, 2010, 2011, 2012
|
| +/* Copyright 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
| Free Software Foundation, Inc.
|
|
|
| This file is part of the GNU opcodes library.
|
| @@ -71,17 +71,17 @@ static initializer cpu_flag_init[] =
|
| { "CPU_P4_FLAGS",
|
| "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuClflush|Cpu387|Cpu687|CpuNop|CpuMMX|CpuSSE|CpuSSE2" },
|
| { "CPU_NOCONA_FLAGS",
|
| - "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuClflush|Cpu387|Cpu687|CpuFISTTP|CpuNop|CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuLM" },
|
| + "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuClflush|Cpu387|Cpu687|CpuFISTTP|CpuNop|CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuLM|CpuCX16" },
|
| { "CPU_CORE_FLAGS",
|
| - "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuClflush|Cpu387|Cpu687|CpuFISTTP|CpuNop|CpuMMX|CpuSSE|CpuSSE2|CpuSSE3" },
|
| + "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuClflush|Cpu387|Cpu687|CpuFISTTP|CpuNop|CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuCX16" },
|
| { "CPU_CORE2_FLAGS",
|
| - "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuClflush|Cpu387|Cpu687|CpuFISTTP|CpuNop|CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuLM" },
|
| + "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuClflush|Cpu387|Cpu687|CpuFISTTP|CpuNop|CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuLM|CpuCX16" },
|
| { "CPU_COREI7_FLAGS",
|
| - "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuClflush|Cpu387|Cpu687|CpuFISTTP|CpuNop|CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1|CpuSSE4_2|CpuRdtscp|CpuLM" },
|
| + "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuClflush|Cpu387|Cpu687|CpuFISTTP|CpuNop|CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1|CpuSSE4_2|CpuRdtscp|CpuLM|CpuCX16" },
|
| { "CPU_K6_FLAGS",
|
| "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|CpuSYSCALL|Cpu387|CpuMMX" },
|
| { "CPU_K6_2_FLAGS",
|
| - "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|CpuSYSCALL|Cpu387|CpuNop|CpuMMX|Cpu3dnow" },
|
| + "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|CpuSYSCALL|Cpu387|CpuMMX|Cpu3dnow" },
|
| { "CPU_ATHLON_FLAGS",
|
| "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuSYSCALL|Cpu387|Cpu687|CpuNop|CpuMMX|Cpu3dnow|Cpu3dnowA" },
|
| { "CPU_K8_FLAGS",
|
| @@ -89,9 +89,17 @@ static initializer cpu_flag_init[] =
|
| { "CPU_AMDFAM10_FLAGS",
|
| "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuSYSCALL|CpuRdtscp|Cpu387|Cpu687|CpuFISTTP|CpuNop|CpuMMX|Cpu3dnow|Cpu3dnowA|CpuSSE|CpuSSE2|CpuSSE3|CpuSSE4a|CpuABM|CpuLM" },
|
| { "CPU_BDVER1_FLAGS",
|
| - "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuSYSCALL|CpuRdtscp|Cpu387|Cpu687|CpuFISTTP|CpuNop|CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSE4a|CpuABM|CpuLM|CpuFMA4|CpuXOP|CpuLWP" },
|
| + "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuSYSCALL|CpuRdtscp|Cpu387|Cpu687|CpuFISTTP|CpuNop|CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSE4a|CpuABM|CpuLM|CpuFMA4|CpuXOP|CpuLWP|CpuCX16|CpuClflush|CpuSSSE3|CpuSVME|CpuSSE4_1|CpuSSE4_2|CpuXsave|CpuAES|CpuAVX|CpuPCLMUL|CpuLZCNT|CpuPRFCHW" },
|
| { "CPU_BDVER2_FLAGS",
|
| - "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuSYSCALL|CpuRdtscp|Cpu387|Cpu687|CpuFISTTP|CpuNop|CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSE4a|CpuABM|CpuLM|CpuFMA4|CpuXOP|CpuLWP|CpuBMI|CpuTBM|CpuF16C" },
|
| + "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuSYSCALL|CpuRdtscp|Cpu387|Cpu687|CpuFISTTP|CpuNop|CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSE4a|CpuABM|CpuLM|CpuFMA|CpuFMA4|CpuXOP|CpuLWP|CpuBMI|CpuTBM|CpuF16C|CpuCX16|CpuClflush|CpuSSSE3|CpuSVME|CpuSSE4_1|CpuSSE4_2|CpuXsave|CpuAES|CpuAVX|CpuPCLMUL|CpuLZCNT|CpuPRFCHW" },
|
| + { "CPU_BDVER3_FLAGS",
|
| + "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuSYSCALL|CpuRdtscp|Cpu387|Cpu687|CpuFISTTP|CpuNop|CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSE4a|CpuABM|CpuLM|CpuFMA|CpuFMA4|CpuXOP|CpuLWP|CpuBMI|CpuTBM|CpuF16C|CpuCX16|CpuClflush|CpuSSSE3|CpuSVME|CpuSSE4_1|CpuSSE4_2|CpuAES|CpuAVX|CpuPCLMUL|CpuLZCNT|CpuPRFCHW|CpuXsave|CpuXsaveopt|CpuFSGSBase" },
|
| + { "CPU_BDVER4_FLAGS",
|
| + "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuSYSCALL|CpuRdtscp|Cpu387|Cpu687|CpuFISTTP|CpuNop|CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSE4a|CpuABM|CpuLM|CpuFMA|CpuFMA4|CpuXOP|CpuLWP|CpuBMI|CpuTBM|CpuF16C|CpuCX16|CpuClflush|CpuSSSE3|CpuSVME|CpuSSE4_1|CpuSSE4_2|CpuAES|CpuAVX|CpuPCLMUL|CpuLZCNT|CpuPRFCHW|CpuXsave|CpuXsaveopt|CpuFSGSBase|CpuAVX2|CpuMovbe|CpuBMI2|CpuRdRnd" },
|
| + { "CPU_BTVER1_FLAGS",
|
| + "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuSYSCALL|CpuRdtscp|Cpu387|Cpu687|CpuNop|CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4a|CpuABM|CpuLM|CpuPRFCHW|CpuCX16|CpuClflush|CpuFISTTP|CpuSVME|CpuLZCNT" },
|
| + { "CPU_BTVER2_FLAGS",
|
| + "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuSYSCALL|CpuRdtscp|Cpu387|Cpu687|CpuNop|CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4a|CpuSSE4_1|CpuSSE4_2|CpuABM|CpuLM|CpuBMI|CpuF16C|CpuAES|CpuPCLMUL|CpuAVX|CpuMovbe|CpuXsave|CpuXsaveopt|CpuPRFCHW|CpuCX16|CpuClflush|CpuFISTTP|CpuSVME|CpuLZCNT" },
|
| { "CPU_8087_FLAGS",
|
| "Cpu8087" },
|
| { "CPU_287_FLAGS",
|
| @@ -121,7 +129,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",
|
| @@ -148,6 +156,8 @@ static initializer cpu_flag_init[] =
|
| "CpuTBM" },
|
| { "CPU_MOVBE_FLAGS",
|
| "CpuMovbe" },
|
| + { "CPU_CX16_FLAGS",
|
| + "CpuCX16" },
|
| { "CPU_RDTSCP_FLAGS",
|
| "CpuRdtscp" },
|
| { "CPU_EPT_FLAGS",
|
| @@ -186,8 +196,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",
|
| @@ -198,6 +216,12 @@ static initializer cpu_flag_init[] =
|
| "CpuRdSeed" },
|
| { "CPU_PRFCHW_FLAGS",
|
| "CpuPRFCHW" },
|
| + { "CPU_SMAP_FLAGS",
|
| + "CpuSMAP" },
|
| + { "CPU_MPX_FLAGS",
|
| + "CpuMPX" },
|
| + { "CPU_SHA_FLAGS",
|
| + "CpuSHA" },
|
| };
|
|
|
| static initializer operand_type_init[] =
|
| @@ -266,6 +290,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",
|
| @@ -286,6 +314,8 @@ static initializer operand_type_init[] =
|
| "Imm16|Imm32S" },
|
| { "OPERAND_TYPE_IMM16_32_32S",
|
| "Imm16|Imm32|Imm32S" },
|
| + { "OPERAND_TYPE_IMM32_64",
|
| + "Imm32|Imm64" },
|
| { "OPERAND_TYPE_IMM32_32S_DISP32",
|
| "Imm32|Imm32S|Disp32" },
|
| { "OPERAND_TYPE_IMM64_DISP64",
|
| @@ -296,6 +326,10 @@ static initializer operand_type_init[] =
|
| "Imm32|Imm32S|Imm64|Disp32|Disp64" },
|
| { "OPERAND_TYPE_VEC_IMM4",
|
| "Vec_Imm4" },
|
| + { "OPERAND_TYPE_REGBND",
|
| + "RegBND" },
|
| + { "OPERAND_TYPE_VEC_DISP8",
|
| + "Vec_Disp8" },
|
| };
|
|
|
| typedef struct bitfield
|
| @@ -332,6 +366,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),
|
| @@ -354,6 +392,7 @@ static bitfield cpu_flags[] =
|
| BITFIELD (CpuTBM),
|
| BITFIELD (CpuLM),
|
| BITFIELD (CpuMovbe),
|
| + BITFIELD (CpuCX16),
|
| BITFIELD (CpuEPT),
|
| BITFIELD (CpuRdtscp),
|
| BITFIELD (CpuFSGSBase),
|
| @@ -368,8 +407,12 @@ static bitfield cpu_flags[] =
|
| BITFIELD (CpuRDSEED),
|
| BITFIELD (CpuADX),
|
| BITFIELD (CpuPRFCHW),
|
| + BITFIELD (CpuSMAP),
|
| + BITFIELD (CpuSHA),
|
| + BITFIELD (CpuVREX),
|
| BITFIELD (Cpu64),
|
| BITFIELD (CpuNo64),
|
| + BITFIELD (CpuMPX),
|
| #ifdef CpuUnused
|
| BITFIELD (CpuUnused),
|
| #endif
|
| @@ -403,6 +446,7 @@ static bitfield opcode_modifiers[] =
|
| BITFIELD (No_ldSuf),
|
| BITFIELD (FWait),
|
| BITFIELD (IsString),
|
| + BITFIELD (BNDPrefixOk),
|
| BITFIELD (IsLockable),
|
| BITFIELD (RegKludge),
|
| BITFIELD (FirstXmm0),
|
| @@ -426,6 +470,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),
|
| @@ -442,6 +494,8 @@ static bitfield operand_types[] =
|
| BITFIELD (RegMMX),
|
| BITFIELD (RegXMM),
|
| BITFIELD (RegYMM),
|
| + BITFIELD (RegZMM),
|
| + BITFIELD (RegMask),
|
| BITFIELD (Imm1),
|
| BITFIELD (Imm8),
|
| BITFIELD (Imm8S),
|
| @@ -476,9 +530,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
|
| @@ -510,7 +567,7 @@ static void
|
| process_copyright (FILE *fp)
|
| {
|
| fprintf (fp, "/* This file is automatically generated by i386-gen. Do not edit! */\n\
|
| -/* Copyright 2007, 2008, 2009, 2010, 2011\n\
|
| +/* Copyright 2007, 2008, 2009, 2010, 2011, 2012, 2013\n\
|
| Free Software Foundation, Inc.\n\
|
| \n\
|
| This file is part of the GNU opcodes library.\n\
|
|
|