Line 1... |
Line 1... |
/* Print instructions for the Motorola 88000, for GDB and GNU Binutils.
|
/* Print instructions for the Motorola 88000, for GDB and GNU Binutils.
|
Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1993, 1998, 2000, 2001,
|
Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1993, 1998, 2000, 2001,
|
2002, 2005, 2007 Free Software Foundation, Inc.
|
2002, 2005, 2007, 2008 Free Software Foundation, Inc.
|
Contributed by Data General Corporation, November 1989.
|
Contributed by Data General Corporation, November 1989.
|
Partially derived from an earlier printcmd.c.
|
Partially derived from an earlier printcmd.c.
|
|
|
This file is part of the GNU opcodes library.
|
This file is part of the GNU opcodes library.
|
|
|
Line 694... |
Line 694... |
{
|
{
|
static int ihashtab_initialized = 0;
|
static int ihashtab_initialized = 0;
|
unsigned int opcode;
|
unsigned int opcode;
|
const HASHTAB *entry_ptr;
|
const HASHTAB *entry_ptr;
|
int opmask;
|
int opmask;
|
unsigned int class;
|
unsigned int in_class;
|
|
|
if (! ihashtab_initialized)
|
if (! ihashtab_initialized)
|
{
|
{
|
init_disasm ();
|
init_disasm ();
|
ihashtab_initialized = 1;
|
ihashtab_initialized = 1;
|
}
|
}
|
|
|
/* Create the appropriate mask to isolate the opcode. */
|
/* Create the appropriate mask to isolate the opcode. */
|
opmask = DEFMASK;
|
opmask = DEFMASK;
|
class = instruction & DEFMASK;
|
in_class = instruction & DEFMASK;
|
if ((class >= SFU0) && (class <= SFU7))
|
if ((in_class >= SFU0) && (in_class <= SFU7))
|
{
|
{
|
if (instruction < SFU1)
|
if (instruction < SFU1)
|
opmask = CTRLMASK;
|
opmask = CTRLMASK;
|
else
|
else
|
opmask = SFUMASK;
|
opmask = SFUMASK;
|
}
|
}
|
else if (class == RRR)
|
else if (in_class == RRR)
|
opmask = RRRMASK;
|
opmask = RRRMASK;
|
else if (class == RRI10)
|
else if (in_class == RRI10)
|
opmask = RRI10MASK;
|
opmask = RRI10MASK;
|
|
|
/* Isolate the opcode. */
|
/* Isolate the opcode. */
|
opcode = instruction & opmask;
|
opcode = instruction & opmask;
|
|
|