FWait,
/* quick test for string instructions */
IsString,
+ /* RegMem is for instructions with a modrm byte where the register
+ destination operand should be encoded in the mod and regmem fields.
+ Normally, it will be encoded in the reg field. We add a RegMem
+ flag to indicate that it should be encoded in the regmem field. */
+ RegMem,
/* quick test if branch instruction is MPX supported */
BNDPrefixOk,
/* quick test if NOTRACK prefix is supported */
/* Intel64. */
Intel64,
/* The last bitfield in i386_opcode_modifier. */
- Opcode_Modifier_Max
+ Opcode_Modifier_Num
};
typedef struct i386_opcode_modifier
unsigned int no_ldsuf:1;
unsigned int fwait:1;
unsigned int isstring:1;
+ unsigned int regmem:1;
unsigned int bndprefixok:1;
unsigned int notrackprefixok:1;
unsigned int islockable:1;
Debug,
/* Test register */
Test,
- /* 2 bit segment register */
- SReg2,
- /* 3 bit segment register */
- SReg3,
+ /* Segment register */
+ SReg,
/* 1 bit immediate */
Imm1,
/* 8 bit immediate */
JumpAbsolute,
/* String insn operand with fixed es segment */
EsSeg,
- /* RegMem is for instructions with a modrm byte where the register
- destination operand should be encoded in the mod and regmem fields.
- Normally, it will be encoded in the reg field. We add a RegMem
- flag to the destination register operand to indicate that it should
- be encoded in the regmem field. */
- RegMem,
- /* Memory. */
- Mem,
/* BYTE size. */
Byte,
/* WORD size. 2 byte */
/* Any memory size. */
Anysize,
- /* Vector 4 bit immediate. */
- Vec_Imm4,
-
/* Bound register. */
RegBND,
unsigned int control:1;
unsigned int debug:1;
unsigned int test:1;
- unsigned int sreg2:1;
- unsigned int sreg3:1;
+ unsigned int sreg:1;
unsigned int imm1:1;
unsigned int imm8:1;
unsigned int imm8s:1;
unsigned int shiftcount:1;
unsigned int jumpabsolute:1;
unsigned int esseg:1;
- unsigned int regmem:1;
unsigned int byte:1;
unsigned int word:1;
unsigned int dword:1;
unsigned int zmmword:1;
unsigned int unspecified:1;
unsigned int anysize:1;
- unsigned int vec_imm4:1;
unsigned int regbnd:1;
#ifdef OTUnused
unsigned int unused:(OTNumOfBits - OTUnused);