x86: drop a few redundant EVEX-related checks

vex.b can only be set when vex.evex is also set. Similarly vex.evex can
only be set when need_vex is also set.
This commit is contained in:
Jan Beulich
2021-03-11 16:21:19 +01:00
parent da944c8a70
commit ac7a231133
2 changed files with 10 additions and 4 deletions

View File

@ -1,3 +1,10 @@
2021-03-11 Jan Beulich <jbeulich@suse.com>
* i386-dis.c (putop): Drop need_vex check when also checking
vex.evex.
(intel_operand_size, OP_E_memory): Drop vex.evex check when also
checking vex.b.
2021-03-11 Jan Beulich <jbeulich@suse.com> 2021-03-11 Jan Beulich <jbeulich@suse.com>
* i386-dis.c (OP_E_memory): Drop xmmq_mode from broadcast * i386-dis.c (OP_E_memory): Drop xmmq_mode from broadcast

View File

@ -10749,7 +10749,7 @@ putop (const char *in_template, int sizeflag)
} }
else if (l == 1 && last[0] == 'X') else if (l == 1 && last[0] == 'X')
{ {
if (!need_vex || !vex.evex) if (!vex.evex)
abort (); abort ();
if (intel_syntax if (intel_syntax
|| ((modrm.mod == 3 || vex.b) && !(sizeflag & SUFFIX_ALWAYS))) || ((modrm.mod == 3 || vex.b) && !(sizeflag & SUFFIX_ALWAYS)))
@ -10951,8 +10951,7 @@ print_displacement (char *buf, bfd_vma disp)
static void static void
intel_operand_size (int bytemode, int sizeflag) intel_operand_size (int bytemode, int sizeflag)
{ {
if (vex.evex if (vex.b
&& vex.b
&& (bytemode == x_mode && (bytemode == x_mode
|| bytemode == evex_half_bcst_xmmq_mode)) || bytemode == evex_half_bcst_xmmq_mode))
{ {
@ -11845,7 +11844,7 @@ OP_E_memory (int bytemode, int sizeflag)
oappend (scratchbuf); oappend (scratchbuf);
} }
} }
if (vex.evex && vex.b if (vex.b
&& (bytemode == x_mode && (bytemode == x_mode
|| bytemode == evex_half_bcst_xmmq_mode)) || bytemode == evex_half_bcst_xmmq_mode))
{ {