Fix shift for AVX512F gather/scatter instructions
[binutils-gdb.git] / opcodes / i386-dis.c
index 2c28e52cc89666bf64da9b141a0050c03adbf4a8..3645daf3add3c9119d512a935cefb966b9742735 100644 (file)
@@ -12645,7 +12645,7 @@ print_insn (bfd_vma pc, disassemble_info *info)
     }
 
   /* Check if the REX prefix is used.  */
-  if (rex_ignored == 0 && (rex ^ rex_used) == 0)
+  if (rex_ignored == 0 && (rex ^ rex_used) == 0 && last_rex_prefix >= 0)
     all_prefixes[last_rex_prefix] = 0;
 
   /* Check if the SEG prefix is used.  */
@@ -14206,13 +14206,11 @@ OP_E_memory (int bytemode, int sizeflag)
       switch (bytemode)
        {
        case vex_vsib_d_w_dq_mode:
+       case vex_vsib_q_w_dq_mode:
        case evex_x_gscat_mode:
        case xmm_mdq_mode:
          shift = vex.w ? 3 : 2;
          break;
-       case vex_vsib_q_w_dq_mode:
-         shift = 3;
-         break;
        case x_mode:
        case evex_half_bcst_xmmq_mode:
          if (vex.b)