From 726257a8b899e3d5e83f8d454a5d7788f8318d6e Mon Sep 17 00:00:00 2001 From: Ken Raeburn Date: Fri, 6 Oct 1995 02:17:12 +0000 Subject: * i386-dis.c: Describe cmpxchg8b operand, and spell the opcode name correctly. --- opcodes/i386-dis.c | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) (limited to 'opcodes/i386-dis.c') diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 3be5ac7..7bbd765 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -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 +#include "sysdep.h" #define MAXLEN 20 #include -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; -- cgit v1.1