mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2025-01-28 20:42:18 +00:00
* i386-dis.c: Describe cmpxchg8b operand, and spell the opcode name correctly.
This commit is contained in:
parent
cd22144a90
commit
726257a8b8
@ -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>
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user