aboutsummaryrefslogtreecommitdiff
path: root/opcodes
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2005-04-01 16:03:40 +0000
committerJan Beulich <jbeulich@novell.com>2005-04-01 16:03:40 +0000
commit373ff435a8f7f34725507ede084998d63d80d624 (patch)
treec704104e79777246704f69584276df37fc10edda /opcodes
parenta7d61044b2f3e1562c1fc94cb9139eb156273c9c (diff)
downloadfsf-binutils-gdb-373ff435a8f7f34725507ede084998d63d80d624.zip
fsf-binutils-gdb-373ff435a8f7f34725507ede084998d63d80d624.tar.gz
fsf-binutils-gdb-373ff435a8f7f34725507ede084998d63d80d624.tar.bz2
include/opcode/
2005-04-01 Jan Beulich <jbeulich@novell.com> * i386.h (i386_optab): Add rdtscp. opcodes/ 2005-04-01 Jan Beulich <jbeulich@novell.com> * i386-dis.c (INVLPG_Fixup): Decode rdtscp; change code to allow for easier future additions.
Diffstat (limited to 'opcodes')
-rw-r--r--opcodes/ChangeLog5
-rw-r--r--opcodes/i386-dis.c23
2 files changed, 20 insertions, 8 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index bf5ae35..b1ea875 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,8 @@
+2005-04-01 Jan Beulich <jbeulich@novell.com>
+
+ * i386-dis.c (INVLPG_Fixup): Decode rdtscp; change code to allow for
+ easier future additions.
+
2005-03-31 Jerome Guitton <guitton@gnat.com>
* configure.in: Check for basename.
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index a2a5a06..d48e6de 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -4394,16 +4394,23 @@ PNI_Fixup (int extrachar ATTRIBUTE_UNUSED, int sizeflag)
static void
INVLPG_Fixup (int bytemode, int sizeflag)
{
- if (*codep == 0xf8)
- {
- char *p = obuf + strlen (obuf);
+ const char *alt;
- /* Override "invlpg". */
- strcpy (p - 6, "swapgs");
- codep++;
+ switch (*codep)
+ {
+ case 0xf8:
+ alt = "swapgs";
+ break;
+ case 0xf9:
+ alt = "rdtscp";
+ break;
+ default:
+ OP_E (bytemode, sizeflag);
+ return;
}
- else
- OP_E (bytemode, sizeflag);
+ /* Override "invlpg". */
+ strcpy (obuf + strlen (obuf) - 6, alt);
+ codep++;
}
static void