-/* Opcode table for m680[01234]0/m6888[12]/m68851.
- Copyright 1989, 91, 92, 93, 94, 95, 1996 Free Software Foundation.
+/* Opcode table for m680[012346]0/m6888[12]/m68851/mcf5200.
+ Copyright 1989, 91, 92, 93, 94, 95, 96, 1997 Free Software Foundation.
This file is part of GDB, GAS, and the GNU binutils.
{"cmpib", one(0006000), one(0177700), "#b;s", m68000up },
{"cmpiw", one(0006100), one(0177700), "#w;s", m68000up },
{"cmpil", one(0006200), one(0177700), "#l;s", m68000up },
-{"cmpil", one(0006200), one(0177700), "#l;s", m68000up },
{"cmpil", one(0006200), one(0177700), "#lDs", mcf5200 },
{"cmpmb", one(0130410), one(0170770), "+s+d", m68000up },
{"fremx", two(0xF000, 0x0025), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
{"fremx", two(0xF000, 0x4825), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
-{"frestore", one(0xF140), one(0xF1C0), "Id&s", mfloat },
-{"frestore", one(0xF158), one(0xF1F8), "Id+s", mfloat },
+{"frestore", one(0xF140), one(0xF1C0), "Id<s", mfloat },
-{"fsave", one(0xF100), one(0xF1C0), "Id&s", mfloat },
-{"fsave", one(0xF120), one(0xF1F8), "Id-s", mfloat },
+{"fsave", one(0xF100), one(0xF1C0), "Id>s", mfloat },
{"fscaleb", two(0xF000, 0x5826), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
{"fscaled", two(0xF000, 0x5426), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
{"movemw", one(0044200), one(0177700), "Lw&s", m68000up },
{"movemw", one(0044240), one(0177770), "lw-s", m68000up },
-{"movemw", one(0046200), one(0177700), "!sLw", m68000up },
-{"movemw", one(0046230), one(0177770), "+sLw", m68000up },
-{"movemw", one(0044200), one(0177700), "#w&s", m68000up },
-{"movemw", one(0044240), one(0177770), "#w-s", m68000up },
-{"movemw", one(0046200), one(0177700), "!s#w", m68000up },
-{"movemw", one(0046230), one(0177770), "+s#w", m68000up },
-{"moveml", one(0044300), one(0177700), "Lw&s", m68000up | mcf5200 },
-{"moveml", one(0044340), one(0177770), "lw-s", m68000up | mcf5200 },
-{"moveml", one(0046300), one(0177700), "!sLw", m68000up | mcf5200 },
-{"moveml", one(0046330), one(0177770), "+sLw", m68000up | mcf5200 },
-{"moveml", one(0044300), one(0177700), "#w&s", m68000up | mcf5200 },
-{"moveml", one(0044340), one(0177770), "#w-s", m68000up | mcf5200 },
-{"moveml", one(0046300), one(0177700), "!s#w", m68000up | mcf5200 },
-{"moveml", one(0046330), one(0177770), "+s#w", m68000up | mcf5200 },
+{"movemw", one(0044200), one(0177700), "#w>s", m68000up },
+{"movemw", one(0046200), one(0177700), "<sLw", m68000up },
+{"movemw", one(0046200), one(0177700), "<s#w", m68000up },
+{"moveml", one(0044300), one(0177700), "Lw&s", m68000up },
+{"moveml", one(0044340), one(0177770), "lw-s", m68000up },
+{"moveml", one(0044300), one(0177700), "#w>s", m68000up },
+{"moveml", one(0046300), one(0177700), "<sLw", m68000up },
+{"moveml", one(0046300), one(0177700), "<s#w", m68000up },
+/* FIXME: need specifier for mode 2 and 5 to simplify below insn patterns */
+{"moveml", one(0044320), one(0177770), "Lwas", mcf5200 },
+{"moveml", one(0044320), one(0177770), "#was", mcf5200 },
+{"moveml", one(0044350), one(0177770), "Lwds", mcf5200 },
+{"moveml", one(0044350), one(0177770), "#wds", mcf5200 },
+{"moveml", one(0046320), one(0177770), "asLw", mcf5200 },
+{"moveml", one(0046320), one(0177770), "as#w", mcf5200 },
+{"moveml", one(0046350), one(0177770), "dsLw", mcf5200 },
+{"moveml", one(0046350), one(0177770), "ds#w", mcf5200 },
{"movepw", one(0000410), one(0170770), "dsDd", m68000up },
{"movepw", one(0000610), one(0170770), "Ddds", m68000up },
{"movepl", one(0000710), one(0170770), "Ddds", m68000up },
{"moveq", one(0070000), one(0170400), "MsDd", m68000up | mcf5200 },
+{"moveq", one(0070000), one(0170400), "#BDd", m68000up | mcf5200 },
/* The move opcode can generate the movea and moveq instructions. */
-{"moveb", one(0010000), one(0170000), ";b$d", m68000up | mcf5200 },
-{"movew", one(0030000), one(0170000), "*w$d", m68000up | mcf5200 },
-{"movew", one(0030100), one(0170700), "*wAd", m68000up | mcf5200 },
-
-{"movew", one(0040300), one(0177770), "SsDs", mcf5200 },
-{"movew", one(0041300), one(0177770), "CsDs", mcf5200 },
+{"moveb", one(0010000), one(0170000), ";b$d", m68000up },
+{"moveb", one(0010000), one(0170000), "ms%d", mcf5200 },
+{"moveb", one(0010000), one(0170000), "nspd", mcf5200 },
+{"moveb", one(0010000), one(0170000), "obmd", mcf5200 },
+
+{"movew", one(0030000), one(0170000), "*w%d", m68000up },
+{"movew", one(0030000), one(0170000), "ms%d", mcf5200 },
+{"movew", one(0030000), one(0170000), "nspd", mcf5200 },
+{"movew", one(0030000), one(0170000), "owmd", mcf5200 },
{"movew", one(0040300), one(0177700), "Ss$s", m68000up },
+{"movew", one(0040300), one(0177770), "SsDs", mcf5200 },
{"movew", one(0041300), one(0177700), "Cs$s", m68010up },
-{"movew", one(0042300), one(0177700), ";wCd", m68000up | mcf5200 },
-{"movew", one(0043300), one(0177700), ";wSd", m68000up | mcf5200 },
+{"movew", one(0041300), one(0177770), "CsDs", mcf5200 },
+{"movew", one(0042300), one(0177700), ";wCd", m68000up },
+{"movew", one(0042300), one(0177700), "DsCd", mcf5200 },
+{"movew", one(0042300), one(0177700), "#wCd", mcf5200 },
+{"movew", one(0043300), one(0177700), ";wSd", m68000up },
+{"movew", one(0043300), one(0177700), "DsSd", mcf5200 },
+{"movew", one(0043300), one(0177700), "#wSd", mcf5200 },
{"movel", one(0070000), one(0170400), "MsDd", m68000up | mcf5200 },
-{"movel", one(0020000), one(0170000), "*l$d", m68000up | mcf5200 },
-{"movel", one(0020100), one(0170700), "*lAd", m68000up | mcf5200 },
-{"movel", one(0047140), one(0177770), "AsUd", m68000up | mcf5200 },
-{"movel", one(0047150), one(0177770), "UdAs", m68000up | mcf5200 },
-{"move", one(0030000), one(0170000), "*w$d", m68000up | mcf5200 },
-{"move", one(0030100), one(0170700), "*wAd", m68000up | mcf5200 },
-
-{"move", one(0040300), one(0177770), "SsDs", mcf5200 },
-{"move", one(0041300), one(0177770), "CsDs", mcf5200 },
+{"movel", one(0020000), one(0170000), "*l%d", m68000up },
+{"movel", one(0020000), one(0170000), "ms%d", mcf5200 },
+{"movel", one(0020000), one(0170000), "nspd", mcf5200 },
+{"movel", one(0020000), one(0170000), "olmd", mcf5200 },
+{"movel", one(0047140), one(0177770), "AsUd", m68000up },
+{"movel", one(0047150), one(0177770), "UdAs", m68000up },
+
+{"move", one(0030000), one(0170000), "*w%d", m68000up },
+{"move", one(0030000), one(0170000), "ms%d", mcf5200 },
+{"move", one(0030000), one(0170000), "nspd", mcf5200 },
+{"move", one(0030000), one(0170000), "owmd", mcf5200 },
{"move", one(0040300), one(0177700), "Ss$s", m68000up },
+{"move", one(0040300), one(0177770), "SsDs", mcf5200 },
{"move", one(0041300), one(0177700), "Cs$s", m68010up },
-{"move", one(0042300), one(0177700), ";wCd", m68000up | mcf5200 },
-{"move", one(0043300), one(0177700), ";wSd", m68000up | mcf5200 },
+{"move", one(0041300), one(0177770), "CsDs", mcf5200 },
+{"move", one(0042300), one(0177700), ";wCd", m68000up },
+{"move", one(0042300), one(0177700), "DsCd", mcf5200 },
+{"move", one(0042300), one(0177700), "#wCd", mcf5200 },
+{"move", one(0043300), one(0177700), ";wSd", m68000up },
+{"move", one(0043300), one(0177700), "DsSd", mcf5200 },
+{"move", one(0043300), one(0177700), "#wSd", mcf5200 },
-{"move", one(0047140), one(0177770), "AsUd", m68000up | mcf5200 },
-{"move", one(0047150), one(0177770), "UdAs", m68000up | mcf5200 },
+{"move", one(0047140), one(0177770), "AsUd", m68000up },
+{"move", one(0047150), one(0177770), "UdAs", m68000up },
{"movesb", two(0007000, 0), two(0177700, 07777), "~sR1", m68010up },
{"movesb", two(0007000, 04000), two(0177700, 07777), "R1~s", m68010up },
{"pmovefd", two(0xf000, 0x4100), two(0xffc0, 0xe3ff), "|sW8", m68030 },
{"pmovefd", two(0xf000, 0x0900), two(0xffc0, 0xfbff), "*l38", m68030 },
-{"prestore", one(0xf140), one(0xffc0), "&s", m68851 },
-{"prestore", one(0xf158), one(0xfff8), "+s", m68851 },
+{"prestore", one(0xf140), one(0xffc0), "<s", m68851 },
-{"psave", one(0xf100), one(0xffc0), "&s", m68851 },
-{"psave", one(0xf120), one(0xfff8), "-s", m68851 },
+{"psave", one(0xf100), one(0xffc0), ">s", m68851 },
{"psac", two(0xf040, 0x0007), two(0xffc0, 0xffff), "$s", m68851 },
{"psas", two(0xf040, 0x0006), two(0xffc0, 0xffff), "$s", m68851 },
{"roxrb", one(0160020), one(0170770), "QdDs", m68000up },
{"roxrb", one(0160060), one(0170770), "DdDs", m68000up },
-{"roxrw", one(0160120), one(0170770),"QdDs", m68000up },
+{"roxrw", one(0160120), one(0170770), "QdDs", m68000up },
{"roxrw", one(0160160), one(0170770), "DdDs", m68000up },
-{"roxrw", one(0162300), one(0177700),"~s", m68000up },
+{"roxrw", one(0162300), one(0177700), "~s", m68000up },
{"roxrl", one(0160220), one(0170770), "QdDs", m68000up },
{"roxrl", one(0160260), one(0170770), "DdDs", m68000up },