mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-27 06:17:47 +08:00
x86: drop FloatReg and FloatAcc
Express them as Reg|Tbyte and Acc|Tbyte respectively.
This commit is contained in:
@ -1,3 +1,13 @@
|
|||||||
|
2017-12-18 Jan Beulich <jbeulich@suse.com>
|
||||||
|
|
||||||
|
* config/tc-i386.c (operand_type_check): Extend comment.
|
||||||
|
(match_reg_size): Also check .tbyte.
|
||||||
|
(match_mem_size): No longer check .tbyte here.
|
||||||
|
(md_assemble): Drop .floatacc check.
|
||||||
|
(check_byte_reg): Drop .floatreg and .floatacc checks.
|
||||||
|
(process_operands, parse_real_register): Replace .floatreg
|
||||||
|
check.
|
||||||
|
|
||||||
2017-12-18 Jan Beulich <jbeulich@suse.com>
|
2017-12-18 Jan Beulich <jbeulich@suse.com>
|
||||||
|
|
||||||
* config/tc-i386.c (operand_type_check, pi): Switch .reg<N> to
|
* config/tc-i386.c (operand_type_check, pi): Switch .reg<N> to
|
||||||
|
@ -1807,7 +1807,7 @@ operand_type_check (i386_operand_type t, enum operand_type c)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return 1 if there is no conflict in 8bit/16bit/32bit/64bit on
|
/* Return 1 if there is no conflict in 8bit/16bit/32bit/64bit/80bit on
|
||||||
operand J for instruction template T. */
|
operand J for instruction template T. */
|
||||||
|
|
||||||
static INLINE int
|
static INLINE int
|
||||||
@ -1820,7 +1820,9 @@ match_reg_size (const insn_template *t, unsigned int j)
|
|||||||
|| (i.types[j].bitfield.dword
|
|| (i.types[j].bitfield.dword
|
||||||
&& !t->operand_types[j].bitfield.dword)
|
&& !t->operand_types[j].bitfield.dword)
|
||||||
|| (i.types[j].bitfield.qword
|
|| (i.types[j].bitfield.qword
|
||||||
&& !t->operand_types[j].bitfield.qword));
|
&& !t->operand_types[j].bitfield.qword)
|
||||||
|
|| (i.types[j].bitfield.tbyte
|
||||||
|
&& !t->operand_types[j].bitfield.tbyte));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return 1 if there is no conflict in any size on operand J for
|
/* Return 1 if there is no conflict in any size on operand J for
|
||||||
@ -1835,8 +1837,6 @@ match_mem_size (const insn_template *t, unsigned int j)
|
|||||||
&& !t->operand_types[j].bitfield.unspecified)
|
&& !t->operand_types[j].bitfield.unspecified)
|
||||||
|| (i.types[j].bitfield.fword
|
|| (i.types[j].bitfield.fword
|
||||||
&& !t->operand_types[j].bitfield.fword)
|
&& !t->operand_types[j].bitfield.fword)
|
||||||
|| (i.types[j].bitfield.tbyte
|
|
||||||
&& !t->operand_types[j].bitfield.tbyte)
|
|
||||||
|| (i.types[j].bitfield.xmmword
|
|| (i.types[j].bitfield.xmmword
|
||||||
&& !t->operand_types[j].bitfield.xmmword)
|
&& !t->operand_types[j].bitfield.xmmword)
|
||||||
|| (i.types[j].bitfield.ymmword
|
|| (i.types[j].bitfield.ymmword
|
||||||
@ -3768,8 +3768,7 @@ md_assemble (char *line)
|
|||||||
for (j = 0; j < i.operands; j++)
|
for (j = 0; j < i.operands; j++)
|
||||||
if (i.types[j].bitfield.inoutportreg
|
if (i.types[j].bitfield.inoutportreg
|
||||||
|| i.types[j].bitfield.shiftcount
|
|| i.types[j].bitfield.shiftcount
|
||||||
|| i.types[j].bitfield.acc
|
|| i.types[j].bitfield.acc)
|
||||||
|| i.types[j].bitfield.floatacc)
|
|
||||||
i.reg_operands--;
|
i.reg_operands--;
|
||||||
|
|
||||||
/* ImmExt should be processed after SSE2AVX. */
|
/* ImmExt should be processed after SSE2AVX. */
|
||||||
@ -5661,9 +5660,7 @@ check_byte_reg (void)
|
|||||||
|| i.types[op].bitfield.sreg3
|
|| i.types[op].bitfield.sreg3
|
||||||
|| i.types[op].bitfield.control
|
|| i.types[op].bitfield.control
|
||||||
|| i.types[op].bitfield.debug
|
|| i.types[op].bitfield.debug
|
||||||
|| i.types[op].bitfield.test
|
|| i.types[op].bitfield.test)
|
||||||
|| i.types[op].bitfield.floatreg
|
|
||||||
|| i.types[op].bitfield.floatacc)
|
|
||||||
{
|
{
|
||||||
as_bad (_("`%s%s' not allowed with `%s%c'"),
|
as_bad (_("`%s%s' not allowed with `%s%c'"),
|
||||||
register_prefix,
|
register_prefix,
|
||||||
@ -6122,7 +6119,7 @@ duplicate:
|
|||||||
0 or 1. */
|
0 or 1. */
|
||||||
unsigned int op;
|
unsigned int op;
|
||||||
|
|
||||||
if (i.types[0].bitfield.floatreg
|
if ((i.types[0].bitfield.reg && i.types[0].bitfield.tbyte)
|
||||||
|| operand_type_check (i.types[0], reg))
|
|| operand_type_check (i.types[0], reg))
|
||||||
op = 0;
|
op = 0;
|
||||||
else
|
else
|
||||||
@ -9774,7 +9771,7 @@ parse_real_register (char *reg_string, char **end_op)
|
|||||||
&& !cpu_arch_flags.bitfield.cpui386)
|
&& !cpu_arch_flags.bitfield.cpui386)
|
||||||
return (const reg_entry *) NULL;
|
return (const reg_entry *) NULL;
|
||||||
|
|
||||||
if (r->reg_type.bitfield.floatreg
|
if (r->reg_type.bitfield.tbyte
|
||||||
&& !cpu_arch_flags.bitfield.cpu8087
|
&& !cpu_arch_flags.bitfield.cpu8087
|
||||||
&& !cpu_arch_flags.bitfield.cpu287
|
&& !cpu_arch_flags.bitfield.cpu287
|
||||||
&& !cpu_arch_flags.bitfield.cpu387)
|
&& !cpu_arch_flags.bitfield.cpu387)
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
2017-12-18 Jan Beulich <jbeulich@suse.com>
|
||||||
|
|
||||||
|
* i386-gen.c (operand_type_shorthands): Add FloatAcc and
|
||||||
|
FloatReg.
|
||||||
|
(operand_types): Drop FloatAcc and FloatReg.
|
||||||
|
* i386-opc.h (enum of operand types): Likewise. Extend comment.
|
||||||
|
(union i386_operand_type): Drop floatacc and floatreg.
|
||||||
|
* i386-reg.tbl (st, st(0)): Replace FloatAcc by Acc.
|
||||||
|
* i386-init.h, i386-tbl.h: Re-generate.
|
||||||
|
|
||||||
2017-12-18 Jan Beulich <jbeulich@suse.com>
|
2017-12-18 Jan Beulich <jbeulich@suse.com>
|
||||||
|
|
||||||
* i386-gen.c (operand_type_shorthands): New.
|
* i386-gen.c (operand_type_shorthands): New.
|
||||||
|
@ -341,6 +341,8 @@ static const initializer operand_type_shorthands[] =
|
|||||||
{ "Reg16", "Reg|Word" },
|
{ "Reg16", "Reg|Word" },
|
||||||
{ "Reg32", "Reg|Dword" },
|
{ "Reg32", "Reg|Dword" },
|
||||||
{ "Reg64", "Reg|Qword" },
|
{ "Reg64", "Reg|Qword" },
|
||||||
|
{ "FloatAcc", "Acc|Tbyte" },
|
||||||
|
{ "FloatReg", "Reg|Tbyte" },
|
||||||
};
|
};
|
||||||
|
|
||||||
static initializer operand_type_init[] =
|
static initializer operand_type_init[] =
|
||||||
@ -640,7 +642,6 @@ static bitfield opcode_modifiers[] =
|
|||||||
static bitfield operand_types[] =
|
static bitfield operand_types[] =
|
||||||
{
|
{
|
||||||
BITFIELD (Reg),
|
BITFIELD (Reg),
|
||||||
BITFIELD (FloatReg),
|
|
||||||
BITFIELD (RegMMX),
|
BITFIELD (RegMMX),
|
||||||
BITFIELD (RegXMM),
|
BITFIELD (RegXMM),
|
||||||
BITFIELD (RegYMM),
|
BITFIELD (RegYMM),
|
||||||
@ -667,7 +668,6 @@ static bitfield operand_types[] =
|
|||||||
BITFIELD (SReg2),
|
BITFIELD (SReg2),
|
||||||
BITFIELD (SReg3),
|
BITFIELD (SReg3),
|
||||||
BITFIELD (Acc),
|
BITFIELD (Acc),
|
||||||
BITFIELD (FloatAcc),
|
|
||||||
BITFIELD (JumpAbsolute),
|
BITFIELD (JumpAbsolute),
|
||||||
BITFIELD (EsSeg),
|
BITFIELD (EsSeg),
|
||||||
BITFIELD (RegMem),
|
BITFIELD (RegMem),
|
||||||
|
@ -1174,254 +1174,254 @@
|
|||||||
#define OPERAND_TYPE_NONE \
|
#define OPERAND_TYPE_NONE \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_REG8 \
|
#define OPERAND_TYPE_REG8 \
|
||||||
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_REG16 \
|
#define OPERAND_TYPE_REG16 \
|
||||||
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_REG32 \
|
#define OPERAND_TYPE_REG32 \
|
||||||
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_REG64 \
|
#define OPERAND_TYPE_REG64 \
|
||||||
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_IMM1 \
|
#define OPERAND_TYPE_IMM1 \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_IMM8 \
|
#define OPERAND_TYPE_IMM8 \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_IMM8S \
|
#define OPERAND_TYPE_IMM8S \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_IMM16 \
|
#define OPERAND_TYPE_IMM16 \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_IMM32 \
|
#define OPERAND_TYPE_IMM32 \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_IMM32S \
|
#define OPERAND_TYPE_IMM32S \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_IMM64 \
|
#define OPERAND_TYPE_IMM64 \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_BASEINDEX \
|
#define OPERAND_TYPE_BASEINDEX \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_DISP8 \
|
#define OPERAND_TYPE_DISP8 \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_DISP16 \
|
#define OPERAND_TYPE_DISP16 \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
|
||||||
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_DISP32 \
|
#define OPERAND_TYPE_DISP32 \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_DISP32S \
|
#define OPERAND_TYPE_DISP32S \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_DISP64 \
|
#define OPERAND_TYPE_DISP64 \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_INOUTPORTREG \
|
#define OPERAND_TYPE_INOUTPORTREG \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_SHIFTCOUNT \
|
#define OPERAND_TYPE_SHIFTCOUNT \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_CONTROL \
|
#define OPERAND_TYPE_CONTROL \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_TEST \
|
#define OPERAND_TYPE_TEST \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_DEBUG \
|
#define OPERAND_TYPE_DEBUG \
|
||||||
{ { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_FLOATREG \
|
#define OPERAND_TYPE_FLOATREG \
|
||||||
{ { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_FLOATACC \
|
#define OPERAND_TYPE_FLOATACC \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_SREG2 \
|
#define OPERAND_TYPE_SREG2 \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_SREG3 \
|
#define OPERAND_TYPE_SREG3 \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_ACC \
|
#define OPERAND_TYPE_ACC \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_JUMPABSOLUTE \
|
#define OPERAND_TYPE_JUMPABSOLUTE \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_REGMMX \
|
#define OPERAND_TYPE_REGMMX \
|
||||||
{ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_REGXMM \
|
#define OPERAND_TYPE_REGXMM \
|
||||||
{ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_REGYMM \
|
#define OPERAND_TYPE_REGYMM \
|
||||||
{ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_REGZMM \
|
#define OPERAND_TYPE_REGZMM \
|
||||||
{ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_REGMASK \
|
#define OPERAND_TYPE_REGMASK \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_ESSEG \
|
#define OPERAND_TYPE_ESSEG \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_ACC32 \
|
#define OPERAND_TYPE_ACC32 \
|
||||||
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
|
0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_ACC64 \
|
#define OPERAND_TYPE_ACC64 \
|
||||||
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
|
0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_INOUTPORTREG \
|
#define OPERAND_TYPE_INOUTPORTREG \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_REG16_INOUTPORTREG \
|
#define OPERAND_TYPE_REG16_INOUTPORTREG \
|
||||||
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_DISP16_32 \
|
#define OPERAND_TYPE_DISP16_32 \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
|
||||||
1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_ANYDISP \
|
#define OPERAND_TYPE_ANYDISP \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, \
|
||||||
1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_IMM16_32 \
|
#define OPERAND_TYPE_IMM16_32 \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_IMM16_32S \
|
#define OPERAND_TYPE_IMM16_32S \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_IMM16_32_32S \
|
#define OPERAND_TYPE_IMM16_32_32S \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_IMM32_64 \
|
#define OPERAND_TYPE_IMM32_64 \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_IMM32_32S_DISP32 \
|
#define OPERAND_TYPE_IMM32_32S_DISP32 \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
|
||||||
0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_IMM64_DISP64 \
|
#define OPERAND_TYPE_IMM64_DISP64 \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
|
||||||
0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_IMM32_32S_64_DISP32 \
|
#define OPERAND_TYPE_IMM32_32S_64_DISP32 \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
|
||||||
0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_IMM32_32S_64_DISP32_64 \
|
#define OPERAND_TYPE_IMM32_32S_64_DISP32_64 \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
|
||||||
0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0 } }
|
0, 0, 0, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_VEC_IMM4 \
|
#define OPERAND_TYPE_VEC_IMM4 \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 1, 0, 0 } }
|
0, 0, 1, 0, 0 } }
|
||||||
|
|
||||||
#define OPERAND_TYPE_REGBND \
|
#define OPERAND_TYPE_REGBND \
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||||
0, 0, 0, 0, 0, 1, 0 } }
|
0, 0, 0, 1, 0 } }
|
||||||
|
@ -687,8 +687,6 @@ enum
|
|||||||
{
|
{
|
||||||
/* Register (qualified by Byte, Word, etc) */
|
/* Register (qualified by Byte, Word, etc) */
|
||||||
Reg = 0,
|
Reg = 0,
|
||||||
/* Floating pointer stack register */
|
|
||||||
FloatReg,
|
|
||||||
/* MMX register */
|
/* MMX register */
|
||||||
RegMMX,
|
RegMMX,
|
||||||
/* SSE register */
|
/* SSE register */
|
||||||
@ -740,10 +738,8 @@ enum
|
|||||||
Disp32S,
|
Disp32S,
|
||||||
/* 64 bit displacement */
|
/* 64 bit displacement */
|
||||||
Disp64,
|
Disp64,
|
||||||
/* Accumulator %al/%ax/%eax/%rax */
|
/* Accumulator %al/%ax/%eax/%rax/%st(0) */
|
||||||
Acc,
|
Acc,
|
||||||
/* Floating pointer top stack register %st(0) */
|
|
||||||
FloatAcc,
|
|
||||||
/* Register which can be used for base or index in memory operand. */
|
/* Register which can be used for base or index in memory operand. */
|
||||||
BaseIndex,
|
BaseIndex,
|
||||||
/* Register to hold in/out port addr = dx */
|
/* Register to hold in/out port addr = dx */
|
||||||
@ -809,7 +805,6 @@ typedef union i386_operand_type
|
|||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
unsigned int reg:1;
|
unsigned int reg:1;
|
||||||
unsigned int floatreg:1;
|
|
||||||
unsigned int regmmx:1;
|
unsigned int regmmx:1;
|
||||||
unsigned int regxmm:1;
|
unsigned int regxmm:1;
|
||||||
unsigned int regymm:1;
|
unsigned int regymm:1;
|
||||||
@ -833,7 +828,6 @@ typedef union i386_operand_type
|
|||||||
unsigned int disp32s:1;
|
unsigned int disp32s:1;
|
||||||
unsigned int disp64:1;
|
unsigned int disp64:1;
|
||||||
unsigned int acc:1;
|
unsigned int acc:1;
|
||||||
unsigned int floatacc:1;
|
|
||||||
unsigned int baseindex:1;
|
unsigned int baseindex:1;
|
||||||
unsigned int inoutportreg:1;
|
unsigned int inoutportreg:1;
|
||||||
unsigned int shiftcount:1;
|
unsigned int shiftcount:1;
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
// 02110-1301, USA.
|
// 02110-1301, USA.
|
||||||
|
|
||||||
// Make %st first as we test for it.
|
// Make %st first as we test for it.
|
||||||
st, FloatReg|FloatAcc, 0, 0, 11, 33
|
st, FloatReg|Acc, 0, 0, 11, 33
|
||||||
// 8 bit regs
|
// 8 bit regs
|
||||||
al, Reg8|Acc, 0, 0, Dw2Inval, Dw2Inval
|
al, Reg8|Acc, 0, 0, Dw2Inval, Dw2Inval
|
||||||
cl, Reg8|ShiftCount, 0, 1, Dw2Inval, Dw2Inval
|
cl, Reg8|ShiftCount, 0, 1, Dw2Inval, Dw2Inval
|
||||||
@ -292,7 +292,7 @@ eip, BaseIndex, RegRex64, RegEip, 8, Dw2Inval
|
|||||||
riz, BaseIndex, RegRex64, RegRiz, Dw2Inval, Dw2Inval
|
riz, BaseIndex, RegRex64, RegRiz, Dw2Inval, Dw2Inval
|
||||||
eiz, BaseIndex, 0, RegEiz, Dw2Inval, Dw2Inval
|
eiz, BaseIndex, 0, RegEiz, Dw2Inval, Dw2Inval
|
||||||
// fp regs.
|
// fp regs.
|
||||||
st(0), FloatReg|FloatAcc, 0, 0, 11, 33
|
st(0), FloatReg|Acc, 0, 0, 11, 33
|
||||||
st(1), FloatReg, 0, 1, 12, 34
|
st(1), FloatReg, 0, 1, 12, 34
|
||||||
st(2), FloatReg, 0, 2, 13, 35
|
st(2), FloatReg, 0, 2, 13, 35
|
||||||
st(3), FloatReg, 0, 3, 14, 36
|
st(3), FloatReg, 0, 3, 14, 36
|
||||||
|
66318
opcodes/i386-tbl.h
66318
opcodes/i386-tbl.h
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user