[PATCH 2/4] x86: correct operand_types[] used in build_vex_prefix()

Jan Beulich <[email protected]> Fri, 24 Jul 2026 12:14:28 +0200
Newsgroups gmane.comp.gnu.binutils
Message-ID <[email protected]>
While benign at the moment, using t's ->operand_types[] isn't really
correct: Closer to the top of the function we may have installed t[1] for
use by the insn. Hence we should also use its .operand_types[], which now
are in i.tm_types[].

--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -4402,8 +4402,8 @@ build_vex_prefix (const insn_template *t
 	 operand.  */
       vector_length = 0;
       for (op = t->operands; op--;)
-	if (t->operand_types[op].bitfield.xmmword
-	    && t->operand_types[op].bitfield.ymmword
+	if (i.tm_types[op].bitfield.xmmword
+	    && i.tm_types[op].bitfield.ymmword
 	    && i.types[op].bitfield.ymmword)
 	  {
 	    vector_length = 1;