mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-02-07 23:10:31 +08:00
Add support for ColdFire MAC instructions and tidy up support for other m68k
variants.
This commit is contained in:
parent
1a4b7623f4
commit
fe97afbbb3
@ -1,3 +1,11 @@
|
|||||||
|
2004-04-22 Peter Barada <peter@the-baradas.com>
|
||||||
|
|
||||||
|
* m68k.h: Add mcfmac/mcfemac definitions. Update operand
|
||||||
|
descriptions for new EMAC cases.
|
||||||
|
Remove ColdFire macmw/macml/msacmw/msacmw hacks and properly
|
||||||
|
handle Motorola MAC syntax.
|
||||||
|
Allow disassembly of ColdFire V4e object files.
|
||||||
|
|
||||||
2004-03-16 Alan Modra <amodra@bigpond.net.au>
|
2004-03-16 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
* ppc.h (PPC_OPERAND_GPR_0): Define. Bump other operand defines.
|
* ppc.h (PPC_OPERAND_GPR_0): Define. Bump other operand defines.
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* Opcode table header for m680[01234]0/m6888[12]/m68851.
|
/* Opcode table header for m680[01234]0/m6888[12]/m68851.
|
||||||
Copyright 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999, 2001,
|
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.
|
This file is part of GDB, GAS, and the GNU binutils.
|
||||||
|
|
||||||
@ -42,6 +42,8 @@
|
|||||||
#define mcf5407 0x1000
|
#define mcf5407 0x1000
|
||||||
#define mcfv4e 0x2000
|
#define mcfv4e 0x2000
|
||||||
#define mcf528x 0x4000
|
#define mcf528x 0x4000
|
||||||
|
#define mcfmac 0x8000
|
||||||
|
#define mcfemac 0x10000
|
||||||
|
|
||||||
/* Handy aliases. */
|
/* Handy aliases. */
|
||||||
#define m68040up (m68040 | m68060)
|
#define m68040up (m68040 | m68060)
|
||||||
@ -99,7 +101,7 @@ struct m68k_opcode_alias
|
|||||||
operand; the second, the place it is stored. */
|
operand; the second, the place it is stored. */
|
||||||
|
|
||||||
/* Kinds of operands:
|
/* Kinds of operands:
|
||||||
Characters used: AaBbCcDdEFfGHIJkLlMmnOopQqRrSsTtU VvWwXxYyZz0123|*~%;@!&$?/<>#^+-
|
Characters used: AaBbCcDdEeFfGgHIiJkLlMmnOopQqRrSsTtU VvWwXxYyZz01234|*~%;@!&$?/<>#^+-
|
||||||
|
|
||||||
D data register only. Stored as 3 bits.
|
D data register only. Stored as 3 bits.
|
||||||
A address register only. Stored as 3 bits.
|
A address register only. Stored as 3 bits.
|
||||||
@ -133,9 +135,12 @@ struct m68k_opcode_alias
|
|||||||
C the CCR. No need to store it; this is just for filtering validity.
|
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.
|
S the SR. No need to store, just as with CCR.
|
||||||
U the USP. 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.
|
E the MAC ACC. No need to store, just as with CCR.
|
||||||
G the MACSR. 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.
|
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
|
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
|
extracted from the 'd' field of word one, which means that an extended
|
||||||
@ -230,7 +235,9 @@ struct m68k_opcode_alias
|
|||||||
w (modes 2-5,7.2)
|
w (modes 2-5,7.2)
|
||||||
y (modes 2,5)
|
y (modes 2,5)
|
||||||
z (modes 2,5,7.2)
|
z (modes 2,5,7.2)
|
||||||
x mov3q immediate operand. */
|
x mov3q immediate operand.
|
||||||
|
4 (modes 2,3,4,5)
|
||||||
|
*/
|
||||||
|
|
||||||
/* For the 68851: */
|
/* For the 68851: */
|
||||||
/* I didn't use much imagination in choosing the
|
/* I didn't use much imagination in choosing the
|
||||||
@ -283,7 +290,7 @@ struct m68k_opcode_alias
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* Places to put an operand, for non-general operands:
|
/* Places to put an operand, for non-general operands:
|
||||||
Characters used: BbCcDdghijkLlMmNnostWw123456789
|
Characters used: BbCcDdFfGgHhIijkLlMmNnostWw123456789/
|
||||||
|
|
||||||
s source, low bits of first word.
|
s source, low bits of first word.
|
||||||
d dest, shifted 9 in first word
|
d dest, shifted 9 in first word
|
||||||
@ -348,6 +355,13 @@ struct m68k_opcode_alias
|
|||||||
F double precision float, low bit of 1st word, immediate uses 8 bytes
|
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
|
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
|
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[];
|
extern const struct m68k_opcode m68k_opcodes[];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user