X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Fconfig%2Ftc-i386.c;h=1786b1d17c8f2c2826f97b8477aa6168dc15650d;hb=e72cf3ec8eab6e6ca2528279a556c1370c4dd900;hp=cdca39a3f5d8162e3624f694a8313b3b09ee045f;hpb=161a04f6302c9d85934b2bef64bfce569eaec28a;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index cdca39a3f5..1786b1d17c 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -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;