* i386-dis.c: Describe cmpxchg8b operand, and spell the opcode name correctly.
authorKen Raeburn <raeburn@cygnus>
Fri, 6 Oct 1995 02:17:12 +0000 (02:17 +0000)
committerKen Raeburn <raeburn@cygnus>
Fri, 6 Oct 1995 02:17:12 +0000 (02:17 +0000)
opcodes/ChangeLog
opcodes/i386-dis.c

index 6a962c06ac61e3cf387a92e31ea48f38e734e7f9..7d7849f4b16944e83847b44700fedb77f3d4262b 100644 (file)
@@ -1,3 +1,8 @@
+Thu Oct  5 22:16:20 1995  Ken Raeburn  <raeburn@cygnus.com>
+
+       * i386-dis.c: Describe cmpxchg8b operand, and spell the opcode
+       name correctly.
+
 Tue Oct  3 08:30:20 1995  steve chamberlain  <sac@slash.cygnus.com>
 
        From David Mosberger-Tang  <davidm@azstarnet.com>
index 3be5ac745f8179243cf992b5426eafdbfb2211da..7bbd765226346550dbb83ae39b0d5472d57e3459 100644 (file)
@@ -1,5 +1,5 @@
 /* Print i386 instructions for GDB, the GNU debugger.
-   Copyright (C) 1988, 1989, 1991, 1993, 1994 Free Software Foundation, Inc.
+   Copyright (C) 1988, 1989, 1991, 1993, 1994, 1995 Free Software Foundation, Inc.
 
 This file is part of GDB.
 
@@ -15,7 +15,7 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 /*
  * 80386 instruction printer by Pace Willisson (pace@prep.ai.mit.edu)
@@ -33,13 +33,13 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
  */
 
 #include "dis-asm.h"
-#include <string.h>
+#include "sysdep.h"
 
 #define MAXLEN 20
 
 #include <setjmp.h>
 
-struct private
+struct dis_private
 {
   /* Points to first byte not fetched.  */
   bfd_byte *max_fetched;
@@ -52,7 +52,7 @@ struct private
    to ADDR (exclusive) are valid.  Returns 1 for success, longjmps
    on error.  */
 #define FETCH_DATA(info, addr) \
-  ((addr) <= ((struct private *)(info->private_data))->max_fetched \
+  ((addr) <= ((struct dis_private *)(info->private_data))->max_fetched \
    ? 1 : fetch_data ((info), (addr)))
 
 static int
@@ -61,7 +61,7 @@ fetch_data (info, addr)
      bfd_byte *addr;
 {
   int status;
-  struct private *priv = (struct private *)info->private_data;
+  struct dis_private *priv = (struct dis_private *)info->private_data;
   bfd_vma start = priv->insn_start + (priv->max_fetched - priv->the_buffer);
 
   status = (*info->read_memory_func) (start,
@@ -205,6 +205,7 @@ static int get16 (), get32 ();
 #define GRP6  NULL, NULL, 13
 #define GRP7 NULL, NULL, 14
 #define GRP8 NULL, NULL, 15
+#define GRP9 NULL, NULL, 16
 
 #define FLOATCODE 50
 #define FLOAT NULL, NULL, FLOATCODE
@@ -545,7 +546,7 @@ struct dis386 dis386_twobyte[] = {
   { "(bad)" },  { "(bad)" },  { "(bad)" },  { "(bad)" },  
   { "(bad)" },  { "(bad)" },  { "(bad)" },  { "(bad)" },  
   /* 30 */
-  { "(bad)" },  { "(bad)" },  { "(bad)" },  { "(bad)" },  
+  { "wrmsr" },  { "rdtsc" },  { "rdmsr" },  { "(bad)" },  
   { "(bad)" },  { "(bad)" },  { "(bad)" },  { "(bad)" },  
   /* 38 */
   { "(bad)" },  { "(bad)" },  { "(bad)" },  { "(bad)" },  
@@ -613,7 +614,7 @@ struct dis386 dis386_twobyte[] = {
   /* a0 */
   { "pushl", fs },
   { "popl", fs },
-  { "(bad)" },
+  { "cpuid" },
   { "btS", Ev, Gv },  
   { "shldS", Ev, Gv, Ib },
   { "shldS", Ev, Gv, CL },
@@ -622,7 +623,7 @@ struct dis386 dis386_twobyte[] = {
   /* a8 */
   { "pushl", gs },
   { "popl", gs },
-  { "(bad)" },
+  { "rsm" },
   { "btsS", Ev, Gv },  
   { "shrdS", Ev, Gv, Ib },
   { "shrdS", Ev, Gv, CL },
@@ -649,8 +650,12 @@ struct dis386 dis386_twobyte[] = {
   /* c0 */
   { "xaddb", Eb, Gb },
   { "xaddS", Ev, Gv },
-  { "(bad)" },  { "(bad)" },  
-  { "(bad)" },  { "(bad)" },  { "(bad)" },  { "(bad)" },  
+  { "(bad)" },
+  { "(bad)" },  
+  { "(bad)" },
+  { "(bad)" },
+  { "(bad)" },
+  { GRP9 },  
   /* c8 */
   { "bswap", eAX },
   { "bswap", eCX },
@@ -880,6 +885,17 @@ struct dis386 grps[][8] = {
     { "btsS",  Ev, Ib },
     { "btrS",  Ev, Ib },
     { "btcS",  Ev, Ib },
+  },
+  /* GRP9 */
+  {
+    { "(bad)" },
+    { "cmpxch8b", Ev },
+    { "(bad)" },
+    { "(bad)" },
+    { "(bad)" },
+    { "(bad)" },
+    { "(bad)" },
+    { "(bad)" },
   }
 };
 
@@ -978,7 +994,7 @@ print_insn_i386 (pc, info)
   char *first, *second, *third;
   int needcomma;
   
-  struct private priv;
+  struct dis_private priv;
   bfd_byte *inbuf = priv.the_buffer;
 
   info->private_data = (PTR) &priv;