x86: remove stray uses of xmmq_mode
authorJan Beulich <jbeulich@suse.com>
Thu, 11 Mar 2021 15:20:37 +0000 (16:20 +0100)
committerJan Beulich <jbeulich@suse.com>
Thu, 11 Mar 2021 15:20:37 +0000 (16:20 +0100)
xmmq_mode is documented to not allow for broadcast - don't include it in
respective checks in OP_E_memory().

opcodes/ChangeLog
opcodes/i386-dis.c

index 4f76456d3e234ed7eec428bf04a226adaacbdb5e..54c69d856246ff002d3f99223a542b712862793d 100644 (file)
@@ -1,3 +1,8 @@
+2021-03-11  Jan Beulich  <jbeulich@suse.com>
+
+       * i386-dis.c (OP_E_memory): Drop xmmq_mode from broadcast
+       checks. Move case label past broadcast check.
+
 2021-03-10  Jan Beulich  <jbeulich@suse.com>
 
        * opcodes/i386-dis.c (MVexVSIBDQWpX, MVexVSIBQDWpX,
index 6300ab9d7b13b120801de404e16b832e7866eaae..eb91c5df4a60a8d02ce7d0fa1f61bb8058489d90 100644 (file)
@@ -11418,7 +11418,6 @@ OP_E_memory (int bytemode, int sizeflag)
       /* In EVEX, if operand doesn't allow broadcast, vex.b should be 0.  */
       if (vex.b
          && bytemode != x_mode
-         && bytemode != xmmq_mode
          && bytemode != evex_half_bcst_xmmq_mode)
        {
          BadOp ();
@@ -11455,7 +11454,6 @@ OP_E_memory (int bytemode, int sizeflag)
          break;
        case x_mode:
        case evex_half_bcst_xmmq_mode:
-       case xmmq_mode:
          if (vex.b)
            {
              shift = vex.w ? 3 : 2;
@@ -11464,6 +11462,7 @@ OP_E_memory (int bytemode, int sizeflag)
          /* Fall through.  */
        case xmmqd_mode:
        case xmmdw_mode:
+       case xmmq_mode:
        case ymmq_mode:
        case evex_x_nobcst_mode:
        case x_swap_mode:
@@ -11848,11 +11847,9 @@ OP_E_memory (int bytemode, int sizeflag)
     }
   if (vex.evex && vex.b
       && (bytemode == x_mode
-         || bytemode == xmmq_mode
          || bytemode == evex_half_bcst_xmmq_mode))
     {
       if (vex.w
-         || bytemode == xmmq_mode
          || bytemode == evex_half_bcst_xmmq_mode)
        {
          switch (vex.length)