[PATCH] x86: drop {,reg16_}inoutportreg variables

Jan Beulich JBeulich@suse.com
Tue Jul 10 13:35:00 GMT 2018


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[].

gas/
2018-07-10  Jan Beulich  <jbeulich@suse.com>

	* config/tc-i386.c (inoutportreg, reg16_inoutportreg): Delete.
	(i386_att_operand): Replace uses of reg16_inoutportreg and
	inoutportreg.

opcodes/
2018-07-10  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.

--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -1832,10 +1832,6 @@ operand_type_xor (i386_operand_type x, i
 
 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;
 	}
 
--- a/opcodes/i386-gen.c
+++ b/opcodes/i386-gen.c
@@ -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",






More information about the Binutils mailing list