gas/testsuite/
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 15 Dec 2006 13:11:56 +0000 (13:11 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 15 Dec 2006 13:11:56 +0000 (13:11 +0000)
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.

gas/testsuite/ChangeLog
gas/testsuite/gas/i386/x86-64-inval.l
gas/testsuite/gas/i386/x86-64-inval.s
gas/testsuite/gas/i386/x86_64.s
opcodes/ChangeLog
opcodes/i386-dis.c

index cfd50e7524122784a10efd063e7913537d56f529..42ee1ca046fdfdca021c2b1a1a5e052f4e483149 100644 (file)
@@ -1,3 +1,10 @@
+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.
+
 2006-12-14  H.J. Lu  <hongjiu.lu@intel.com>
 
        * gas/i386/x86-64-inval.s: Add cmpxchg16b.
index 2cbb867cdbe7520d5e9b96355151de12506cfda2..87503e5bbde04becd88ccda1aed46fc289a5dcb3 100644 (file)
@@ -106,4 +106,4 @@ GAS LISTING .*
   51 [         ]*retl          # can't have 32-bit stack operands
   52 [         ]*insertq \$4,\$2,%xmm2,%ebx # The last operand must be XMM register.
   53 [         ]*.intel_syntax noprefix
-  54 [         ]*cmpxchg16b dword ptr \[rax\] # Must be xmmword
+  54 [         ]*cmpxchg16b dword ptr \[rax\] # Must be oword
index 7178edeb0bad54faa5fffab816746718db74ffa5..f7a4379ad407be28604246b1d151cf40084c3cec 100644 (file)
@@ -51,4 +51,4 @@ foo:  jcxz foo        # No prefix exists to select CX as a counter
        retl            # can't have 32-bit stack operands
        insertq $4,$2,%xmm2,%ebx # The last operand must be XMM register.
        .intel_syntax noprefix
-       cmpxchg16b dword ptr [rax] # Must be xmmword
+       cmpxchg16b dword ptr [rax] # Must be oword
index c89d3934844fb6e02964a394a14648fd77c58518..aad9b2737754d355c4b3f99c8ddde08102527d4a 100644 (file)
@@ -191,7 +191,7 @@ movq %rax,0xffffffffff332211
 cmpxchg16b (%rax)
 
 .intel_syntax noprefix
-cmpxchg16b xmmword ptr [rax]
+cmpxchg16b oword ptr [rax]
 
 # Get a good alignment.
  .p2align      4,0
index 9bebc480cd23de0ac53957adec77453404e85f11..ee62f002fee7e5a7bdf47f6ac6b21e764425e974 100644 (file)
@@ -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.
index 009d0f6358967a34e48358733cffec970d324013..eb751bce81b0e098a82fb40e50bdf3cb0ee16d40 100644 (file)
@@ -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);
 }