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:
Jan Beulich 2018-07-11 10:28:56 +02:00 committed by Jan Beulich
parent bd59a6313d
commit 2fb5be8dac
5 changed files with 15 additions and 21 deletions

View File

@ -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

View File

@ -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,
&reg16_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;
}

View File

@ -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.

View File

@ -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",

View File

@ -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, \