diff options
author | Jan Beulich <jbeulich@novell.com> | 2005-04-01 16:03:40 +0000 |
---|---|---|
committer | Jan Beulich <jbeulich@novell.com> | 2005-04-01 16:03:40 +0000 |
commit | 373ff435a8f7f34725507ede084998d63d80d624 (patch) | |
tree | c704104e79777246704f69584276df37fc10edda /opcodes/i386-dis.c | |
parent | a7d61044b2f3e1562c1fc94cb9139eb156273c9c (diff) | |
download | fsf-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/i386-dis.c')
-rw-r--r-- | opcodes/i386-dis.c | 23 |
1 files changed, 15 insertions, 8 deletions
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 |