gas/
[deliverable/binutils-gdb.git] / gas / config / tc-i386.c
index cdca39a3f5d8162e3624f694a8313b3b09ee045f..1786b1d17c8f2c2826f97b8477aa6168dc15650d 100644 (file)
@@ -1294,6 +1294,7 @@ md_begin ()
 #endif
     digit_chars['-'] = '-';
     mnemonic_chars['-'] = '-';
+    mnemonic_chars['.'] = '.';
     identifier_chars['_'] = '_';
     identifier_chars['.'] = '.';
 
@@ -2983,7 +2984,7 @@ process_suffix (void)
          if (i.operands != 2
              || i.types [0] != (Acc | Reg64)
              || i.types [1] != (Acc | Reg64)
-             || strcmp (i.tm.name, "xchg") != 0)
+             || i.tm.base_opcode != 0x90)
          i.rex |= REX_W;
        }
 
@@ -3411,7 +3412,7 @@ build_modrm_byte (void)
         destination operand, then we assume the source operand may
         sometimes be a memory operand and so we need to store the
         destination in the i.rm.reg field.  */
-      if ((i.tm.operand_types[dest] & AnyMem) == 0)
+      if ((i.tm.operand_types[dest] & (AnyMem | RegMem)) == 0)
        {
          i.rm.reg = i.op[dest].regs->reg_num;
          i.rm.regmem = i.op[source].regs->reg_num;
This page took 0.024385 seconds and 4 git commands to generate.