[PATCH] x86: drop vex_encoding_vex2 enumerator
Jan Beulich
jbeulich@suse.com
Wed Jan 15 07:42:00 GMT 2020
Documentation clearly says "prefer {2,3}-byte VEX prefix for VEX
instruction", as opposed to "encode with EVEX prefix" for {evex}. Hence
there not being a way to VEX-encode an insn should not be an error (not
even a warning), and with this the separate enumerator becomes unneeded.
(Really I'm having trouble seeing what {vex2} would be useful for when
it's just a suggestion hint, not one allowing the programmer to mandate
the used encoding.)
gas/
2020-01-XX Jan Beulich <jbeulich@suse.com>
* config/tc-i386.c (struct _i386_insn): Drop vex_encoding_vex2
enumerator from vec_encoding enumeration.
(parse_insn): Use vex_encoding_default for {vex2}.
(VEX_check_operands): Don't error when {vex2} or {vex3} cannot
be honored.
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -419,7 +419,6 @@ struct _i386_insn
enum
{
vex_encoding_default = 0,
- vex_encoding_vex2,
vex_encoding_vex3,
vex_encoding_evex
} vec_encoding;
@@ -4723,7 +4722,7 @@ parse_insn (char *line, char *mnemonic)
break;
case 0x4:
/* {vex2} */
- i.vec_encoding = vex_encoding_vex2;
+ i.vec_encoding = vex_encoding_default;
break;
case 0x5:
/* {vex3} */
@@ -5707,15 +5706,7 @@ VEX_check_operands (const insn_template
}
if (!t->opcode_modifier.vex)
- {
- /* This instruction template doesn't have VEX prefix. */
- if (i.vec_encoding != vex_encoding_default)
- {
- i.error = unsupported;
- return 1;
- }
- return 0;
- }
+ return 0;
/* Check the special Imm4 cases; must be the first operand. */
if (t->cpu_flags.bitfield.cpuxop && t->operands == 5)
More information about the Binutils
mailing list