diff options
author | cvs2svn <> | 2004-07-09 22:42:15 +0400 |
---|---|---|
committer | cvs2svn <> | 2004-07-09 22:42:15 +0400 |
commit | dc7425d645c73447937870b89138b40d2dfd2879 (patch) | |
tree | 53cd2ddf6fe790a55bf456828c09da3673bc19bb /include/opcode/m68k.h | |
parent | f3a88e3bd25802e6acc3fb5d716ad12b4e67f494 (diff) |
This commit was manufactured by cvs2svn to create branch 'gdb_6_2-branch'.jimb-gdb_6_2-e500-branchpointgdb_6_2-20040730-releasegdb_6_2-2004-07-10-gmt-branchpointgdb_6_2-branch
Sprout from ezannoni_pie-20040323-branch 2004-03-23 23:05:53 UTC cvs2svn 'This commit was manufactured by cvs2svn to create branch'
Cherrypick from master 2004-07-09 18:42:14 UTC Andreas Schwab <schwab@linux-m68k.org> 'binutils/testsuite/:':
ChangeLog
MAINTAINERS
Makefile.def
Makefile.in
Makefile.tpl
config-ml.in
config.sub
config/ChangeLog
config/acx.m4
configure
configure.in
include/ChangeLog
include/bfdlink.h
include/coff/ChangeLog
include/coff/ecoff.h
include/coff/internal.h
include/coff/mips.h
include/demangle.h
include/dis-asm.h
include/elf/ChangeLog
include/elf/common.h
include/elf/cr16c.h
include/elf/crx.h
include/elf/m32r.h
include/elf/mips.h
include/elf/sh.h
include/gdb/ChangeLog
include/gdb/callback.h
include/hashtab.h
include/opcode/ChangeLog
include/opcode/crx.h
include/opcode/i386.h
include/opcode/m68k.h
include/splay-tree.h
src-release
Delete:
include/mpw/ChangeLog
include/mpw/README
include/mpw/dir.h
include/mpw/dirent.h
include/mpw/fcntl.h
include/mpw/grp.h
include/mpw/mpw.h
include/mpw/pwd.h
include/mpw/spin.h
include/mpw/stat.h
include/mpw/sys/file.h
include/mpw/sys/param.h
include/mpw/sys/resource.h
include/mpw/sys/stat.h
include/mpw/sys/time.h
include/mpw/sys/types.h
include/mpw/utime.h
include/mpw/varargs.h
mpw-README
mpw-build.in
mpw-config.in
mpw-configure
mpw-install
Diffstat (limited to 'include/opcode/m68k.h')
-rw-r--r-- | include/opcode/m68k.h | 63 |
1 files changed, 43 insertions, 20 deletions
diff --git a/include/opcode/m68k.h b/include/opcode/m68k.h index 3f189841d..014495b97 100644 --- a/include/opcode/m68k.h +++ b/include/opcode/m68k.h @@ -1,6 +1,6 @@ /* Opcode table header for m680[01234]0/m6888[12]/m68851. Copyright 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999, 2001, - 2003 Free Software Foundation, Inc. + 2003, 2004 Free Software Foundation, Inc. This file is part of GDB, GAS, and the GNU binutils. @@ -35,13 +35,27 @@ #define m68881 0x040 #define m68882 m68881 /* Synonym for -m68881. otherwise unused. */ #define m68851 0x080 -#define cpu32 0x100 /* e.g., 68332 */ -#define mcf5200 0x200 -#define mcf5206e 0x400 -#define mcf5307 0x800 -#define mcf5407 0x1000 -#define mcfv4e 0x2000 -#define mcf528x 0x4000 +#define cpu32 0x100 /* e.g., 68332 */ + +#define mcfmac 0x200 /* ColdFire MAC. */ +#define mcfemac 0x400 /* ColdFire EMAC. */ +#define cfloat 0x800 /* ColdFire FPU. */ +#define mcfhwdiv 0x1000 /* ColdFire hardware divide. */ + +#define mcfisa_a 0x2000 /* ColdFire ISA_A. */ +#define mcfisa_aa 0x4000 /* ColdFire ISA_A+. */ +#define mcfisa_b 0x8000 /* ColdFire ISA_B. */ +#define mcfusp 0x10000 /* ColdFire USP instructions. */ + +#define mcf5200 0x20000 +#define mcf5206e 0x40000 +#define mcf521x 0x80000 +#define mcf5249 0x100000 +#define mcf528x 0x200000 +#define mcf5307 0x400000 +#define mcf5407 0x800000 +#define mcf5470 0x1000000 +#define mcf5480 0x2000000 /* Handy aliases. */ #define m68040up (m68040 | m68060) @@ -49,13 +63,7 @@ #define m68020up (m68020 | m68030up) #define m68010up (m68010 | cpu32 | m68020up) #define m68000up (m68000 | m68010up) -#define mcf (mcf5200 | mcf5206e | mcf528x | mcf5307 | mcf5407 | mcfv4e) -#define mcf5206eup (mcf5206e | mcf528x | mcf5307 | mcf5407 | mcfv4e) -#define mcf5307up (mcf5307 | mcf5407 | mcfv4e) -#define mcfv4up (mcf5407 | mcfv4e) -#define mcfv4eup (mcfv4e) -#define cfloat (mcfv4e) #define mfloat (m68881 | m68882 | m68040 | m68060) #define mmmu (m68851 | m68030 | m68040 | m68060) @@ -65,6 +73,9 @@ struct m68k_opcode { /* The opcode name. */ const char *name; + /* The pseudo-size of the instruction(in bytes). Used to determine + number of bytes necessary to disassemble the instruction. */ + unsigned int size; /* The opcode itself. */ unsigned long opcode; /* The mask used by the disassembler. */ @@ -99,7 +110,7 @@ struct m68k_opcode_alias operand; the second, the place it is stored. */ /* Kinds of operands: - Characters used: AaBbCcDdEFfGHIJkLlMmnOopQqRrSsTtU VvWwXxYyZz0123|*~%;@!&$?/<>#^+- + Characters used: AaBbCcDdEeFfGgHIiJkLlMmnOopQqRrSsTtU VvWwXxYyZz01234|*~%;@!&$?/<>#^+- D data register only. Stored as 3 bits. A address register only. Stored as 3 bits. @@ -133,9 +144,12 @@ struct m68k_opcode_alias C the CCR. No need to store it; this is just for filtering validity. S the SR. No need to store, just as with CCR. U the USP. No need to store, just as with CCR. - E the ACC. No need to store, just as with CCR. - G the MACSR. No need to store, just as with CCR. + E the MAC ACC. No need to store, just as with CCR. + e the EMAC ACC[0123]. + G the MAC/EMAC MACSR. No need to store, just as with CCR. + g the EMAC ACCEXT{01,23}. H the MASK. No need to store, just as with CCR. + i the MAC/EMAC scale factor. I Coprocessor ID. Not printed if 1. The Coprocessor ID is always extracted from the 'd' field of word one, which means that an extended @@ -205,7 +219,7 @@ struct m68k_opcode_alias ! control (modes 2,5,6,7.0-3) (not 0,1,3,4,7.4) & alterable control (modes 2,5,6,7.0,7.1) - (not 0,1,7.2-4) + (not 0,1,3,4,7.2-4) $ alterable data (modes 0,2-6,7.0,7.1) (not 1,7.2-4) ? alterable control, or data register (modes 0,2,5,6,7.0,7.1) @@ -230,7 +244,9 @@ struct m68k_opcode_alias w (modes 2-5,7.2) y (modes 2,5) z (modes 2,5,7.2) - x mov3q immediate operand. */ + x mov3q immediate operand. + 4 (modes 2,3,4,5) + */ /* For the 68851: */ /* I didn't use much imagination in choosing the @@ -283,7 +299,7 @@ struct m68k_opcode_alias */ /* Places to put an operand, for non-general operands: - Characters used: BbCcDdghijkLlMmNnostWw123456789 + Characters used: BbCcDdFfGgHhIijkLlMmNnostWw123456789/ s source, low bits of first word. d dest, shifted 9 in first word @@ -348,6 +364,13 @@ struct m68k_opcode_alias F double precision float, low bit of 1st word, immediate uses 8 bytes x extended precision float, low bit of 1st word, immediate uses 12 bytes p packed float, low bit of 1st word, immediate uses 12 bytes + G EMAC accumulator, load (bit 4 2nd word, !bit8 first word) + H EMAC accumulator, non load (bit 4 2nd word, bit 8 first word) + F EMAC ACCx + f EMAC ACCy + I MAC/EMAC scale factor + / Like 's', but set 2nd word, bit 5 if trailing_ampersand set + ] first word, bit 10 */ extern const struct m68k_opcode m68k_opcodes[]; |