CpuFMA,
/* FMA4 support required */
CpuFMA4,
+ /* XOP support required */
+ CpuXOP,
+ /* LWP support required */
+ CpuLWP,
/* MOVBE Instuction support required */
CpuMovbe,
/* EPT Instructions required */
unsigned int cpupclmul:1;
unsigned int cpufma:1;
unsigned int cpufma4:1;
+ unsigned int cpuxop:1;
+ unsigned int cpulwp:1;
unsigned int cpumovbe:1;
unsigned int cpuept:1;
unsigned int cpurdtscp:1;
FWait,
/* quick test for string instructions */
IsString,
+ /* quick test for lockable instructions */
+ IsLockable,
/* fake an extra reg operand for clr, imul and special register
processing for some instructions. */
RegKludge,
1: 128bit VEX prefix.
2: 256bit VEX prefix.
*/
+#define VEX128 1
+#define VEX256 2
Vex,
/* insn has VEX NDS. Register-only source is encoded in Vex prefix.
We use VexNDS on insns with VEX DDS since the register-only source
VexNDS,
/* insn has VEX NDD. Register destination is encoded in Vex prefix. */
VexNDD,
+ /* insn has VEX NDD. Register destination is encoded in Vex prefix
+ and one of the operands can access a memory location. */
+ VexLWP,
/* insn has VEX W0. */
VexW0,
/* insn has VEX W1. */
Vex0F38,
/* insn has VEX 0x0F3A opcode prefix. */
Vex0F3A,
- /* insn has VEX prefix with 3 soures. */
+ /* insn has XOP 0x08 opcode prefix. */
+ XOP08,
+ /* insn has XOP 0x09 opcode prefix. */
+ XOP09,
+ /* insn has XOP 0x0A opcode prefix. */
+ XOP0A,
+ /* insn has VEX prefix with 2 sources. */
+ Vex2Sources,
+ /* insn has VEX prefix with 3 sources. */
Vex3Sources,
/* instruction has VEX 8 bit imm */
VexImmExt,
unsigned int no_ldsuf:1;
unsigned int fwait:1;
unsigned int isstring:1;
+ unsigned int islockable:1;
unsigned int regkludge:1;
unsigned int firstxmm0:1;
unsigned int implicit1stxmm0:1;
unsigned int vex:2;
unsigned int vexnds:1;
unsigned int vexndd:1;
+ unsigned int vexlwp:1;
unsigned int vexw0:1;
unsigned int vexw1:1;
unsigned int vex0f:1;
unsigned int vex0f38:1;
unsigned int vex0f3a:1;
+ unsigned int xop08:1;
+ unsigned int xop09:1;
+ unsigned int xop0a:1;
+ unsigned int vex2sources:1;
unsigned int vex3sources:1;
unsigned int veximmext:1;
unsigned int sse2avx:1;