* i386-dis.c: Describe cmpxchg8b operand, and spell the opcode name correctly.

This commit is contained in:
Ken Raeburn 1995-10-06 02:17:12 +00:00
parent cd22144a90
commit 726257a8b8
2 changed files with 33 additions and 12 deletions

View 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>

View 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;