A missing 'r' (or wrong 'e') register prefix needs to be complained
about if the template allows for a 64-bit register, not a 32-bit one.
I assume this was a copy-and-paste type of mistake
(from check_long_reg()).
+2016-07-04  Jan Beulich  <jbeulich@suse.com>
+
+       * config/tc-i386.c (check_qword_reg): Correct register kind
+       checked.
+       * testsuite/gas/i386/x86-64-suffix-bad.s: Add q-suffix with
+       16-bit register cases.
+       * testsuite/gas/i386/x86-64-suffix-bad.l: Adjust expectations.
+
+
 2016-07-02  Maciej W. Rozycki  <macro@imgtec.com>
 
        * testsuite/gas/mips/ecoff@ld.d: Remove test.
 
     /* Warn if the r prefix on a general reg is missing.  */
     else if ((i.types[op].bitfield.reg16
              || i.types[op].bitfield.reg32)
-            && (i.tm.operand_types[op].bitfield.reg32
+            && (i.tm.operand_types[op].bitfield.reg64
                 || i.tm.operand_types[op].bitfield.acc))
       {
        /* Prohibit these changes in the 64bit mode, since the
 
 .*:15: Error: .*
 .*:16: Error: .*
 .*:17: Error: .*
+.*:19: Error: .*
+.*:20: Error: .*
+.*:21: Error: .*
+.*:22: Error: .*
 
        orb     %rax, (%rax)
        orw     %rax, (%rax)
        orl     %rax, (%rax)
+
+       pushq   %ax
+       popq    %ax
+       callq   *%ax
+       jmpq    *%ax