| Index: opcodes/i386-opc.h
|
| diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h
|
| index 8d5dade9ab2121895200ecee8efb895b62a6287a..598b22027289660586123b6fadb72271ab10f062 100644
|
| --- a/opcodes/i386-opc.h
|
| +++ b/opcodes/i386-opc.h
|
| @@ -1,5 +1,5 @@
|
| /* Declarations for Intel 80386 opcode table
|
| - Copyright 2007, 2008, 2009, 2010
|
| + Copyright 2007, 2008, 2009, 2010, 2012
|
| Free Software Foundation, Inc.
|
|
|
| This file is part of the GNU opcodes library.
|
| @@ -134,10 +134,22 @@ enum
|
| CpuBMI2,
|
| /* LZCNT support required */
|
| CpuLZCNT,
|
| + /* HLE support required */
|
| + CpuHLE,
|
| + /* RTM support required */
|
| + CpuRTM,
|
| /* INVPCID Instructions required */
|
| CpuINVPCID,
|
| + /* VMFUNC Instruction required */
|
| + CpuVMFUNC,
|
| /* 64bit support available, used by -march= in assembler. */
|
| CpuLM,
|
| + /* RDRSEED instruction required. */
|
| + CpuRDSEED,
|
| + /* Multi-presisionn add-carry instructions are required. */
|
| + CpuADX,
|
| + /* Supports prefetchw instruction. */
|
| + CpuPRFCHW,
|
| /* 64bit support required */
|
| Cpu64,
|
| /* Not supported in the 64bit mode */
|
| @@ -212,8 +224,14 @@ typedef union i386_cpu_flags
|
| unsigned int cpuf16c:1;
|
| unsigned int cpubmi2:1;
|
| unsigned int cpulzcnt:1;
|
| + unsigned int cpuhle:1;
|
| + unsigned int cpurtm:1;
|
| unsigned int cpuinvpcid:1;
|
| + unsigned int cpuvmfunc:1;
|
| unsigned int cpulm:1;
|
| + unsigned int cpurdseed:1;
|
| + unsigned int cpuadx:1;
|
| + unsigned int cpuprfchw:1;
|
| unsigned int cpu64:1;
|
| unsigned int cpuno64:1;
|
| #ifdef CpuUnused
|
| @@ -290,6 +308,18 @@ enum
|
| FirstXmm0,
|
| /* An implicit xmm0 as the first operand */
|
| Implicit1stXmm0,
|
| + /* The HLE prefix is OK:
|
| + 1. With a LOCK prefix.
|
| + 2. With or without a LOCK prefix.
|
| + 3. With a RELEASE (0xf3) prefix.
|
| + */
|
| +#define HLEPrefixNone 0
|
| +#define HLEPrefixLock 1
|
| +#define HLEPrefixAny 2
|
| +#define HLEPrefixRelease 3
|
| + HLEPrefixOk,
|
| + /* An instruction on which a "rep" prefix is acceptable. */
|
| + RepPrefixOk,
|
| /* Convert to DWORD */
|
| ToDword,
|
| /* Convert to QWORD */
|
| @@ -319,7 +349,7 @@ enum
|
| 0: VEX.vvvv must be 1111b.
|
| 1: VEX.NDS. Register-only source is encoded in VEX.vvvv where
|
| the content of source registers will be preserved.
|
| - VEX.DDS. The second register operand is encoded in VEX.vvvv
|
| + VEX.DDS. The second register operand is encoded in VEX.vvvv
|
| where the content of first source register will be overwritten
|
| by the result.
|
| VEX.NDD2. The second destination register operand is encoded in
|
| @@ -423,6 +453,8 @@ typedef struct i386_opcode_modifier
|
| unsigned int regkludge:1;
|
| unsigned int firstxmm0:1;
|
| unsigned int implicit1stxmm0:1;
|
| + unsigned int hleprefixok:2;
|
| + unsigned int repprefixok:1;
|
| unsigned int todword:1;
|
| unsigned int toqword:1;
|
| unsigned int addrprefixop0:1;
|
| @@ -642,7 +674,7 @@ typedef struct insn_template
|
| /* extension_opcode is the 3 bit extension for group <n> insns.
|
| This field is also used to store the 8-bit opcode suffix for the
|
| AMD 3DNow! instructions.
|
| - If this template has no extension opcode (the usual case) use None
|
| + If this template has no extension opcode (the usual case) use None
|
| Instructions */
|
| unsigned int extension_opcode;
|
| #define None 0xffff /* If no extension_opcode is possible. */
|
|
|