x86: drop {,reg16_}inoutportreg variables
The checking against reg16_inoutportreg can be had with a simple test of a bit, and the value setting from inoutportreg can be replaced by using the actual register's reg_type field. Note that the so far redundant 2nd instance of OPERAND_TYPE_INOUTPORTREG is left in place, for its use in type_names[].
This commit is contained in:
parent
bd59a6313d
commit
2fb5be8dac
@ -1,3 +1,9 @@
|
||||
2018-07-11 Jan Beulich <jbeulich@suse.com>
|
||||
|
||||
* config/tc-i386.c (inoutportreg, reg16_inoutportreg): Delete.
|
||||
(i386_att_operand): Replace uses of reg16_inoutportreg and
|
||||
inoutportreg.
|
||||
|
||||
2018-07-11 Jan Beulich <jbeulich@suse.com>
|
||||
|
||||
* config/tc-i386.c (output_insn): Remove check_prefix label and
|
||||
|
@ -1832,10 +1832,6 @@ operand_type_xor (i386_operand_type x, i386_operand_type y)
|
||||
|
||||
static const i386_operand_type acc32 = OPERAND_TYPE_ACC32;
|
||||
static const i386_operand_type acc64 = OPERAND_TYPE_ACC64;
|
||||
static const i386_operand_type inoutportreg
|
||||
= OPERAND_TYPE_INOUTPORTREG;
|
||||
static const i386_operand_type reg16_inoutportreg
|
||||
= OPERAND_TYPE_REG16_INOUTPORTREG;
|
||||
static const i386_operand_type disp16 = OPERAND_TYPE_DISP16;
|
||||
static const i386_operand_type disp32 = OPERAND_TYPE_DISP32;
|
||||
static const i386_operand_type disp32s = OPERAND_TYPE_DISP32S;
|
||||
@ -9637,14 +9633,13 @@ i386_att_operand (char *operand_string)
|
||||
|
||||
/* Special case for (%dx) while doing input/output op. */
|
||||
if (i.base_reg
|
||||
&& operand_type_equal (&i.base_reg->reg_type,
|
||||
®16_inoutportreg)
|
||||
&& i.base_reg->reg_type.bitfield.inoutportreg
|
||||
&& i.index_reg == 0
|
||||
&& i.log2_scale_factor == 0
|
||||
&& i.seg[i.mem_operands] == 0
|
||||
&& !operand_type_check (i.types[this_operand], disp))
|
||||
{
|
||||
i.types[this_operand] = inoutportreg;
|
||||
i.types[this_operand] = i.base_reg->reg_type;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,10 @@
|
||||
2018-07-11 Jan Beulich <jbeulich@suse.com>
|
||||
|
||||
* i386-gen.c (operand_type_init): Remove
|
||||
OPERAND_TYPE_REG16_INOUTPORTREG entry and one instance of
|
||||
OPERAND_TYPE_INOUTPORTREG.
|
||||
* i386-init.h: Re-generate.
|
||||
|
||||
2018-07-11 Jan Beulich <jbeulich@suse.com>
|
||||
|
||||
* i386-opc.tbl (wrssd, wrussd): Add Dword.
|
||||
|
@ -444,10 +444,6 @@ static initializer operand_type_init[] =
|
||||
"Reg32|Acc|Dword" },
|
||||
{ "OPERAND_TYPE_ACC64",
|
||||
"Reg64|Acc|Qword" },
|
||||
{ "OPERAND_TYPE_INOUTPORTREG",
|
||||
"InOutPortReg" },
|
||||
{ "OPERAND_TYPE_REG16_INOUTPORTREG",
|
||||
"Reg16|InOutPortReg" },
|
||||
{ "OPERAND_TYPE_DISP16_32",
|
||||
"Disp16|Disp32" },
|
||||
{ "OPERAND_TYPE_ANYDISP",
|
||||
|
@ -1452,16 +1452,6 @@
|
||||
0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
|
||||
0, 0, 0 } }
|
||||
|
||||
#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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||
0, 0, 0 } }
|
||||
|
||||
#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, \
|
||||
0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
||||
0, 0, 0 } }
|
||||
|
||||
#define OPERAND_TYPE_DISP16_32 \
|
||||
{ { 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, \
|
||||
|
Loading…
Reference in New Issue
Block a user