aboutsummaryrefslogtreecommitdiff
path: root/opcodes
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2006-12-15 13:11:56 +0000
committerH.J. Lu <hjl.tools@gmail.com>2006-12-15 13:11:56 +0000
commitfb9c77c70e3dab434c1e4b7cd65f029ecb01dbe4 (patch)
tree4f6cba1dad0d0124cf2edbeb699d6bcb6259c1d8 /opcodes
parenta6c73b34d023bad03cf779d6b252596c6f0f16ff (diff)
downloadfsf-binutils-gdb-fb9c77c70e3dab434c1e4b7cd65f029ecb01dbe4.zip
fsf-binutils-gdb-fb9c77c70e3dab434c1e4b7cd65f029ecb01dbe4.tar.gz
fsf-binutils-gdb-fb9c77c70e3dab434c1e4b7cd65f029ecb01dbe4.tar.bz2
gas/testsuite/
2006-12-15 H.J. Lu <hongjiu.lu@intel.com> * gas/i386/x86-64-inval.s: cmpxchg16b needs oword ptr, instead of xmmword ptr. * gas/i386/x86_64.s: Likewise. * gas/i386/x86-64-inval.l: Updated. opcodes/ 2006-12-15 H.J. Lu <hongjiu.lu@intel.com> * i386-dis.c (o_mode): New for 16-byte operand. (intel_operand_size): Generate "OWORD PTR " for o_mode. (CMPXCHG8B_Fixup): Set bytemode to o_mode instead of x_mode.
Diffstat (limited to 'opcodes')
-rw-r--r--opcodes/ChangeLog6
-rw-r--r--opcodes/i386-dis.c6
2 files changed, 11 insertions, 1 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 9bebc48..ee62f00 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,9 @@
+2006-12-15 H.J. Lu <hongjiu.lu@intel.com>
+
+ * i386-dis.c (o_mode): New for 16-byte operand.
+ (intel_operand_size): Generate "OWORD PTR " for o_mode.
+ (CMPXCHG8B_Fixup): Set bytemode to o_mode instead of x_mode.
+
2006-12-14 H.J. Lu <hongjiu.lu@intel.com>
* i386-dis.c (CMPXCHG8B_Fixup): New.
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 009d0f6..eb751bc 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -356,6 +356,7 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr)
#define const_1_mode 14
#define stack_v_mode 15 /* v_mode for stack-related opcodes. */
#define z_mode 16 /* non-quad operand size depends on prefixes */
+#define o_mode 17 /* 16-byte operand */
#define es_reg 100
#define cs_reg 101
@@ -4183,6 +4184,9 @@ intel_operand_size (int bytemode, int sizeflag)
case x_mode:
oappend ("XMMWORD PTR ");
break;
+ case o_mode:
+ oappend ("OWORD PTR ");
+ break;
default:
break;
}
@@ -5778,7 +5782,7 @@ CMPXCHG8B_Fixup (int bytemode, int sizeflag)
/* Change cmpxchg8b to cmpxchg16b. */
char *p = obuf + strlen (obuf) - 2;
strcpy (p, "16b");
- bytemode = x_mode;
+ bytemode = o_mode;
}
OP_M (bytemode, sizeflag);
}