summaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2007-03-29 04:27:54 +0000
committerH.J. Lu <hjl.tools@gmail.com>2007-03-29 04:27:54 +0000
commite72cf3ec8eab6e6ca2528279a556c1370c4dd900 (patch)
treeedb512cc450a71ccee0092ff41797b8683ef3b5b /gas
parent947844a311f5d5c33bfae4dbd6801570f2fc696c (diff)
downloadbinutils-gdb-e72cf3ec8eab6e6ca2528279a556c1370c4dd900.tar.gz
gas/
2007-03-28 H.J. Lu <hongjiu.lu@intel.com> * config/tc-i386.c (build_modrm_byte): For instructions with 2 register operands, encode destination in i.rm.regmem if its RegMem bit is set. opcodes/ 2007-03-28 H.J. Lu <hongjiu.lu@intel.com> * i386-opc.c (i386_optab): Change InvMem to RegMem for mov and movq. Remove InvMem from sldt, smsw and str. * i386-opc.h (InvMem): Renamed to ... (RegMem): Update comments. (AnyMem): Remove InvMem.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-i386.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 2a1f586790f..648a162dba9 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2007-03-28 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/tc-i386.c (build_modrm_byte): For instructions with 2
+ register operands, encode destination in i.rm.regmem if its
+ RegMem bit is set.
+
2007-03-28 Richard Sandiford <richard@codesourcery.com>
Phil Edwards <phil@codesourcery.com>
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index f0b65b22544..1786b1d17c8 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -3412,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;