summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2005-04-11 13:06:48 +0000
committerJan Beulich <jbeulich@novell.com>2005-04-11 13:06:48 +0000
commit981ea677c7cd7b1625c9f687683a9f059f11e069 (patch)
tree043a86803b20ed861627eac1e3173fe1111f2d77
parentee36df2857d39a10e88119afd5ccd2be324f9165 (diff)
downloadgdb-981ea677c7cd7b1625c9f687683a9f059f11e069.tar.gz
opcodes/
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.
-rw-r--r--opcodes/ChangeLog6
-rw-r--r--opcodes/i386-dis.c24
2 files changed, 26 insertions, 4 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 08d6475fce8..9085878e62c 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,5 +1,11 @@
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
easier future additions.
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 7fbd27f3240..1ddf1134ab1 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -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++;
}