]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
opcodes/
authorJan Beulich <jbeulich@novell.com>
Mon, 11 Apr 2005 13:06:48 +0000 (13:06 +0000)
committerJan Beulich <jbeulich@novell.com>
Mon, 11 Apr 2005 13:06:48 +0000 (13:06 +0000)
2005-03-15  Jan Beulich  <jbeulich@novell.com>

* i386-dis.c (PNI_Fixup): Neither mwait nor monitor have any
visible operands in Intel mode. The first operand of monitor is
%rax in 64-bit mode.

opcodes/ChangeLog
opcodes/i386-dis.c

index 08d6475fce83e13ed17aaabd6f79a747f1d61905..9085878e62c2bf7f34dfeaa13a8c0b0d56fe5dfb 100644 (file)
@@ -1,3 +1,9 @@
+2005-03-15  Jan Beulich  <jbeulich@novell.com>
+
+       * i386-dis.c (PNI_Fixup): Neither mwait nor monitor have any
+       visible operands in Intel mode. The first operand of monitor is
+       %rax in 64-bit mode.
+
 2005-03-15  Jan Beulich  <jbeulich@novell.com>
 
        * i386-dis.c (INVLPG_Fixup): Decode rdtscp; change code to allow for
index 7fbd27f3240d0e35c9faf2e9ad8f05d14a65f5ce..1ddf1134ab17b434edb931b98153b391d90b7924 100644 (file)
@@ -4372,16 +4372,32 @@ PNI_Fixup (int extrachar ATTRIBUTE_UNUSED, int sizeflag)
        {
          /* mwait %eax,%ecx  */
          strcpy (p, "mwait");
+         if (!intel_syntax)
+           strcpy (op1out, names32[0]);
        }
       else
        {
          /* monitor %eax,%ecx,%edx"  */
          strcpy (p, "monitor");
-         strcpy (op3out, names32[2]);
+         if (!intel_syntax)
+           {
+             if (!mode_64bit)
+               strcpy (op1out, names32[0]);
+             else if (!(prefixes & PREFIX_ADDR))
+               strcpy (op1out, names64[0]);
+             else
+               {
+                 strcpy (op1out, names32[0]);
+                 used_prefixes |= PREFIX_ADDR;
+               }
+             strcpy (op3out, names32[2]);
+           }
+       }
+      if (!intel_syntax)
+       {
+         strcpy (op2out, names32[1]);
+         two_source_ops = 1;
        }
-      strcpy (op1out, names32[0]);
-      strcpy (op2out, names32[1]);
-      two_source_ops = 1;
 
       codep++;
     }