]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
include/opcode/
authorJan Beulich <jbeulich@novell.com>
Mon, 11 Apr 2005 12:58:16 +0000 (12:58 +0000)
committerJan Beulich <jbeulich@novell.com>
Mon, 11 Apr 2005 12:58:16 +0000 (12:58 +0000)
2005-03-15  Jan Beulich  <jbeulich@novell.com>

* i386.h (i386_optab): Add rdtscp.

opcodes/
2005-03-15  Jan Beulich  <jbeulich@novell.com>

* i386-dis.c (INVLPG_Fixup): Decode rdtscp; change code to allow for
easier future additions.

include/opcode/ChangeLog
include/opcode/i386.h
opcodes/ChangeLog
opcodes/i386-dis.c

index 7844fee9f8b85e590fcb3acc4ad06e4b1770711a..2152ae57e70d866eb824f4b0e5fb35c1d0b0ed59 100644 (file)
@@ -1,3 +1,7 @@
+2005-03-15  Jan Beulich  <jbeulich@novell.com>
+
+       * i386.h (i386_optab): Add rdtscp.
+
 2005-02-09  Jan Beulich  <jbeulich@novell.com>
 
        PR gas/707
index 052f1272c8d6281129c457fa3b052f10ac06951d..07163f0775437353ab827973172417561c340ae9 100644 (file)
@@ -1369,6 +1369,7 @@ static const template i386_optab[] =
 {"syscall",  0, 0x0f05,    X, CpuK6,   NoSuf,                  { 0, 0, 0} },
 {"sysret",   0, 0x0f07,    X, CpuK6,   lq_Suf|DefaultSize,     { 0, 0, 0} },
 {"swapgs",   0, 0x0f01, 0xf8, Cpu64,   NoSuf|ImmExt,           { 0, 0, 0} },
+{"rdtscp",   0, 0x0f01, 0xf9, CpuSledgehammer,NoSuf|ImmExt,    { 0, 0, 0} },
 
 /* VIA PadLock extensions.  */
 {"xstorerng", 0, 0x000fa7c0, X, Cpu686|CpuPadLock, NoSuf|IsString, { 0, 0, 0} },
index 71c4097512fa7ab3097961df62e0f431a16d281f..08d6475fce83e13ed17aaabd6f79a747f1d61905 100644 (file)
@@ -1,3 +1,8 @@
+2005-03-15  Jan Beulich  <jbeulich@novell.com>
+
+       * i386-dis.c (INVLPG_Fixup): Decode rdtscp; change code to allow for
+       easier future additions.
+
 2005-03-19  Hans-Peter Nilsson  <hp@bitrange.com>
 
        * mmix-opc.c (O, Z): Force expression as unsigned long.
index 24e5a393ed211e9712ea1fd71810a87f0ca5f897..7fbd27f3240d0e35c9faf2e9ad8f05d14a65f5ce 100644 (file)
@@ -4392,16 +4392,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