* m68k-opc.c (m68k_opcodes): Add coldfire support.
authorJ.T. Conklin <jtc@acorntoolworks.com>
Wed, 3 Jul 1996 21:28:05 +0000 (21:28 +0000)
committerJ.T. Conklin <jtc@acorntoolworks.com>
Wed, 3 Jul 1996 21:28:05 +0000 (21:28 +0000)
opcodes/ChangeLog
opcodes/m68k-opc.c

index 4178beb..1464199 100644 (file)
@@ -1,3 +1,7 @@
+Wed Jul  3 14:21:18 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
+
+       * m68k-opc.c (m68k_opcodes): Add coldfire support.
+
 Fri Jun 28 15:53:51 1996  Doug Evans  <dje@canuck.cygnus.com>
 
        * sparc-opc.c (asi_table): Add #ASI_N, #ASI_N_L, #ASI_NUCLEUS,
index 707d6af..d5bc773 100644 (file)
@@ -1,5 +1,5 @@
 /* Opcode table for m680[01234]0/m6888[12]/m68851.
-   Copyright 1989, 1991, 1992, 1993, 1994, 1995 Free Software Foundation.
+   Copyright 1989, 91, 92, 93, 94, 95, 1996 Free Software Foundation.
 
 This file is part of GDB, GAS, and the GNU binutils.
 
@@ -30,151 +30,151 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 
 const struct m68k_opcode m68k_opcodes[] =
 {
-{"abcd",       one(0140400),           one(0170770), "DsDd", m68000up },
-{"abcd",       one(0140410),           one(0170770), "-s-d", m68000up },
+{"abcd",       one(0140400),   one(0170770), "DsDd", m68000up },
+{"abcd",       one(0140410),   one(0170770), "-s-d", m68000up },
 
-{"addaw",      one(0150300),           one(0170700), "*wAd", m68000up },
-{"addal",      one(0150700),           one(0170700), "*lAd", m68000up },
+{"addaw",      one(0150300),   one(0170700), "*wAd", m68000up },
+{"addal",      one(0150700),   one(0170700), "*lAd", m68000up | mcf5200 },
 
-{"addib",      one(0003000),           one(0177700), "#b$b", m68000up },
-{"addiw",      one(0003100),           one(0177700), "#w$w", m68000up },
-{"addil",      one(0003200),           one(0177700), "#l$l", m68000up },
+{"addib",      one(0003000),   one(0177700), "#b$b", m68000up },
+{"addiw",      one(0003100),   one(0177700), "#w$w", m68000up },
+{"addil",      one(0003200),   one(0177700), "#l$l", m68000up | mcf5200 },
 
-{"addqb",      one(0050000),           one(0170700), "Qd$b", m68000up },
-{"addqw",      one(0050100),           one(0170700), "Qd%w", m68000up },
-{"addql",      one(0050200),           one(0170700), "Qd%l", m68000up },
+{"addqb",      one(0050000),   one(0170700), "Qd$b", m68000up },
+{"addqw",      one(0050100),   one(0170700), "Qd%w", m68000up },
+{"addql",      one(0050200),   one(0170700), "Qd%l", m68000up | mcf5200 },
 
 /* The add opcode can generate the adda, addi, and addq instructions.  */
-{"addb",       one(0050000),           one(0170700), "Qd$b", m68000up },
-{"addb",       one(0003000),           one(0177700), "#b$b", m68000up },
-{"addb",       one(0150000),           one(0170700), ";bDd", m68000up },
-{"addb",       one(0150400),           one(0170700), "Dd~b", m68000up },
-{"addw",       one(0050100),           one(0170700), "Qd%w", m68000up },
-{"addw",       one(0150300),           one(0170700), "*wAd", m68000up },
-{"addw",       one(0003100),           one(0177700), "#w$w", m68000up },
-{"addw",       one(0150100),           one(0170700), "*wDd", m68000up },
-{"addw",       one(0150500),           one(0170700), "Dd~w", m68000up },
-{"addl",       one(0050200),           one(0170700), "Qd%l", m68000up },
-{"addl",       one(0003200),           one(0177700), "#l$l", m68000up },
-{"addl",       one(0150700),           one(0170700), "*lAd", m68000up },
-{"addl",       one(0150200),           one(0170700), "*lDd", m68000up },
-{"addl",       one(0150600),           one(0170700), "Dd~l", m68000up },
-
-{"addxb",      one(0150400),           one(0170770), "DsDd", m68000up },
-{"addxb",      one(0150410),           one(0170770), "-s-d", m68000up },
-{"addxw",      one(0150500),           one(0170770), "DsDd", m68000up },
-{"addxw",      one(0150510),           one(0170770), "-s-d", m68000up },
-{"addxl",      one(0150600),           one(0170770), "DsDd", m68000up },
-{"addxl",      one(0150610),           one(0170770), "-s-d", m68000up },
-
-{"andib",      one(0001000),           one(0177700), "#b$b", m68000up },
-{"andib",      one(0001074),           one(0177777), "#bCb", m68000up },
-{"andiw",      one(0001100),           one(0177700), "#w$w", m68000up },
-{"andiw",      one(0001174),           one(0177777), "#wSw", m68000up },
-{"andil",      one(0001200),           one(0177700), "#l$l", m68000up },
-{"andi",       one(0001100),           one(0177700), "#w$w", m68000up },
-{"andi",       one(0001074),           one(0177777), "#bCb", m68000up },
-{"andi",       one(0001174),           one(0177777), "#wSw", m68000up },
+{"addb",       one(0050000),   one(0170700), "Qd$b", m68000up },
+{"addb",       one(0003000),   one(0177700), "#b$b", m68000up },
+{"addb",       one(0150000),   one(0170700), ";bDd", m68000up },
+{"addb",       one(0150400),   one(0170700), "Dd~b", m68000up },
+{"addw",       one(0050100),   one(0170700), "Qd%w", m68000up },
+{"addw",       one(0150300),   one(0170700), "*wAd", m68000up },
+{"addw",       one(0003100),   one(0177700), "#w$w", m68000up },
+{"addw",       one(0150100),   one(0170700), "*wDd", m68000up },
+{"addw",       one(0150500),   one(0170700), "Dd~w", m68000up },
+{"addl",       one(0050200),   one(0170700), "Qd%l", m68000up | mcf5200 },
+{"addl",       one(0003200),   one(0177700), "#l$l", m68000up | mcf5200 },
+{"addl",       one(0150700),   one(0170700), "*lAd", m68000up | mcf5200 },
+{"addl",       one(0150200),   one(0170700), "*lDd", m68000up | mcf5200 },
+{"addl",       one(0150600),   one(0170700), "Dd~l", m68000up | mcf5200 },
+
+{"addxb",      one(0150400),   one(0170770), "DsDd", m68000up },
+{"addxb",      one(0150410),   one(0170770), "-s-d", m68000up },
+{"addxw",      one(0150500),   one(0170770), "DsDd", m68000up },
+{"addxw",      one(0150510),   one(0170770), "-s-d", m68000up },
+{"addxl",      one(0150600),   one(0170770), "DsDd", m68000up | mcf5200 },
+{"addxl",      one(0150610),   one(0170770), "-s-d", m68000up },
+
+{"andib",      one(0001000),   one(0177700), "#b$b", m68000up },
+{"andib",      one(0001074),   one(0177777), "#bCb", m68000up },
+{"andiw",      one(0001100),   one(0177700), "#w$w", m68000up },
+{"andiw",      one(0001174),   one(0177777), "#wSw", m68000up },
+{"andil",      one(0001200),   one(0177700), "#l$l", m68000up | mcf5200 },
+{"andi",       one(0001100),   one(0177700), "#w$w", m68000up },
+{"andi",       one(0001074),   one(0177777), "#bCb", m68000up },
+{"andi",       one(0001174),   one(0177777), "#wSw", m68000up },
 
 /* The and opcode can generate the andi instruction.  */
-{"andb",       one(0001000),           one(0177700), "#b$b", m68000up },
-{"andb",       one(0001074),           one(0177777), "#bCb", m68000up },
-{"andb",       one(0140000),           one(0170700), ";bDd", m68000up },
-{"andb",       one(0140400),           one(0170700), "Dd~b", m68000up },
-{"andw",       one(0001100),           one(0177700), "#w$w", m68000up },
-{"andw",       one(0001174),           one(0177777), "#wSw", m68000up },
-{"andw",       one(0140100),           one(0170700), ";wDd", m68000up },
-{"andw",       one(0140500),           one(0170700), "Dd~w", m68000up },
-{"andl",       one(0001200),           one(0177700), "#l$l", m68000up },
-{"andl",       one(0140200),           one(0170700), ";lDd", m68000up },
-{"andl",       one(0140600),           one(0170700), "Dd~l", m68000up },
-{"and",                one(0001100),           one(0177700), "#w$w", m68000up },
-{"and",                one(0001074),           one(0177777), "#bCb", m68000up },
-{"and",                one(0001174),           one(0177777), "#wSw", m68000up },
-{"and",                one(0140100),           one(0170700), ";wDd", m68000up },
-{"and",                one(0140500),           one(0170700), "Dd~w", m68000up },
-
-{"aslb",       one(0160400),           one(0170770), "QdDs", m68000up },
-{"aslb",       one(0160440),           one(0170770), "DdDs", m68000up },
-{"aslw",       one(0160500),           one(0170770), "QdDs", m68000up },
-{"aslw",       one(0160540),           one(0170770), "DdDs", m68000up },
-{"aslw",       one(0160700),           one(0177700), "~s",   m68000up },
-{"asll",       one(0160600),           one(0170770), "QdDs", m68000up },
-{"asll",       one(0160640),           one(0170770), "DdDs", m68000up },
-
-{"asrb",       one(0160000),           one(0170770), "QdDs", m68000up },
-{"asrb",       one(0160040),           one(0170770), "DdDs", m68000up },
-{"asrw",       one(0160100),           one(0170770), "QdDs", m68000up },
-{"asrw",       one(0160140),           one(0170770), "DdDs", m68000up },
-{"asrw",       one(0160300),           one(0177700), "~s",   m68000up },
-{"asrl",       one(0160200),           one(0170770), "QdDs", m68000up },
-{"asrl",       one(0160240),           one(0170770), "DdDs", m68000up },
-
-{"bhiw",       one(0061000),           one(0177777), "BW", m68000up },
-{"blsw",       one(0061400),           one(0177777), "BW", m68000up },
-{"bccw",       one(0062000),           one(0177777), "BW", m68000up },
-{"bcsw",       one(0062400),           one(0177777), "BW", m68000up },
-{"bnew",       one(0063000),           one(0177777), "BW", m68000up },
-{"beqw",       one(0063400),           one(0177777), "BW", m68000up },
-{"bvcw",       one(0064000),           one(0177777), "BW", m68000up },
-{"bvsw",       one(0064400),           one(0177777), "BW", m68000up },
-{"bplw",       one(0065000),           one(0177777), "BW", m68000up },
-{"bmiw",       one(0065400),           one(0177777), "BW", m68000up },
-{"bgew",       one(0066000),           one(0177777), "BW", m68000up },
-{"bltw",       one(0066400),           one(0177777), "BW", m68000up },
-{"bgtw",       one(0067000),           one(0177777), "BW", m68000up },
-{"blew",       one(0067400),           one(0177777), "BW", m68000up },
-
-{"bhil",       one(0061377),           one(0177777), "BL", m68020up | cpu32 },
-{"blsl",       one(0061777),           one(0177777), "BL", m68020up | cpu32 },
-{"bccl",       one(0062377),           one(0177777), "BL", m68020up | cpu32 },
-{"bcsl",       one(0062777),           one(0177777), "BL", m68020up | cpu32 },
-{"bnel",       one(0063377),           one(0177777), "BL", m68020up | cpu32 },
-{"beql",       one(0063777),           one(0177777), "BL", m68020up | cpu32 },
-{"bvcl",       one(0064377),           one(0177777), "BL", m68020up | cpu32 },
-{"bvsl",       one(0064777),           one(0177777), "BL", m68020up | cpu32 },
-{"bpll",       one(0065377),           one(0177777), "BL", m68020up | cpu32 },
-{"bmil",       one(0065777),           one(0177777), "BL", m68020up | cpu32 },
-{"bgel",       one(0066377),           one(0177777), "BL", m68020up | cpu32 },
-{"bltl",       one(0066777),           one(0177777), "BL", m68020up | cpu32 },
-{"bgtl",       one(0067377),           one(0177777), "BL", m68020up | cpu32 },
-{"blel",       one(0067777),           one(0177777), "BL", m68020up | cpu32 },
-
-{"bhis",       one(0061000),           one(0177400), "BB", m68000up },
-{"blss",       one(0061400),           one(0177400), "BB", m68000up },
-{"bccs",       one(0062000),           one(0177400), "BB", m68000up },
-{"bcss",       one(0062400),           one(0177400), "BB", m68000up },
-{"bnes",       one(0063000),           one(0177400), "BB", m68000up },
-{"beqs",       one(0063400),           one(0177400), "BB", m68000up },
-{"bvcs",       one(0064000),           one(0177400), "BB", m68000up },
-{"bvss",       one(0064400),           one(0177400), "BB", m68000up },
-{"bpls",       one(0065000),           one(0177400), "BB", m68000up },
-{"bmis",       one(0065400),           one(0177400), "BB", m68000up },
-{"bges",       one(0066000),           one(0177400), "BB", m68000up },
-{"blts",       one(0066400),           one(0177400), "BB", m68000up },
-{"bgts",       one(0067000),           one(0177400), "BB", m68000up },
-{"bles",       one(0067400),           one(0177400), "BB", m68000up },
-
-{"jhi",                one(0061000),           one(0177400), "Bg", m68000up },
-{"jls",                one(0061400),           one(0177400), "Bg", m68000up },
-{"jcc",                one(0062000),           one(0177400), "Bg", m68000up },
-{"jcs",                one(0062400),           one(0177400), "Bg", m68000up },
-{"jne",                one(0063000),           one(0177400), "Bg", m68000up },
-{"jeq",                one(0063400),           one(0177400), "Bg", m68000up },
-{"jvc",                one(0064000),           one(0177400), "Bg", m68000up },
-{"jvs",                one(0064400),           one(0177400), "Bg", m68000up },
-{"jpl",                one(0065000),           one(0177400), "Bg", m68000up },
-{"jmi",                one(0065400),           one(0177400), "Bg", m68000up },
-{"jge",                one(0066000),           one(0177400), "Bg", m68000up },
-{"jlt",                one(0066400),           one(0177400), "Bg", m68000up },
-{"jgt",                one(0067000),           one(0177400), "Bg", m68000up },
-{"jle",                one(0067400),           one(0177400), "Bg", m68000up },
-
-{"bchg",       one(0000500),           one(0170700), "Dd$s", m68000up },
-{"bchg",       one(0004100),           one(0177700), "#b$s", m68000up },
-
-{"bclr",       one(0000600),           one(0170700), "Dd$s", m68000up },
-{"bclr",       one(0004200),           one(0177700), "#b$s", m68000up },
+{"andb",       one(0001000),   one(0177700), "#b$b", m68000up },
+{"andb",       one(0001074),   one(0177777), "#bCb", m68000up },
+{"andb",       one(0140000),   one(0170700), ";bDd", m68000up },
+{"andb",       one(0140400),   one(0170700), "Dd~b", m68000up },
+{"andw",       one(0001100),   one(0177700), "#w$w", m68000up },
+{"andw",       one(0001174),   one(0177777), "#wSw", m68000up },
+{"andw",       one(0140100),   one(0170700), ";wDd", m68000up },
+{"andw",       one(0140500),   one(0170700), "Dd~w", m68000up },
+{"andl",       one(0001200),   one(0177700), "#l$l", m68000up | mcf5200 },
+{"andl",       one(0140200),   one(0170700), ";lDd", m68000up | mcf5200 },
+{"andl",       one(0140600),   one(0170700), "Dd~l", m68000up | mcf5200 },
+{"and",                one(0001100),   one(0177700), "#w$w", m68000up },
+{"and",                one(0001074),   one(0177777), "#bCb", m68000up },
+{"and",                one(0001174),   one(0177777), "#wSw", m68000up },
+{"and",                one(0140100),   one(0170700), ";wDd", m68000up },
+{"and",                one(0140500),   one(0170700), "Dd~w", m68000up },
+
+{"aslb",       one(0160400),   one(0170770), "QdDs", m68000up },
+{"aslb",       one(0160440),   one(0170770), "DdDs", m68000up },
+{"aslw",       one(0160500),   one(0170770), "QdDs", m68000up },
+{"aslw",       one(0160540),   one(0170770), "DdDs", m68000up },
+{"aslw",       one(0160700),   one(0177700), "~s",   m68000up },
+{"asll",       one(0160600),   one(0170770), "QdDs", m68000up | mcf5200 },
+{"asll",       one(0160640),   one(0170770), "DdDs", m68000up | mcf5200 },
+
+{"asrb",       one(0160000),   one(0170770), "QdDs", m68000up },
+{"asrb",       one(0160040),   one(0170770), "DdDs", m68000up },
+{"asrw",       one(0160100),   one(0170770), "QdDs", m68000up },
+{"asrw",       one(0160140),   one(0170770), "DdDs", m68000up },
+{"asrw",       one(0160300),   one(0177700), "~s",   m68000up },
+{"asrl",       one(0160200),   one(0170770), "QdDs", m68000up | mcf5200 },
+{"asrl",       one(0160240),   one(0170770), "DdDs", m68000up | mcf5200 },
+
+{"bhiw",       one(0061000),   one(0177777), "BW", m68000up | mcf5200 },
+{"blsw",       one(0061400),   one(0177777), "BW", m68000up | mcf5200 },
+{"bccw",       one(0062000),   one(0177777), "BW", m68000up | mcf5200 },
+{"bcsw",       one(0062400),   one(0177777), "BW", m68000up | mcf5200 },
+{"bnew",       one(0063000),   one(0177777), "BW", m68000up | mcf5200 },
+{"beqw",       one(0063400),   one(0177777), "BW", m68000up | mcf5200 },
+{"bvcw",       one(0064000),   one(0177777), "BW", m68000up | mcf5200 },
+{"bvsw",       one(0064400),   one(0177777), "BW", m68000up | mcf5200 },
+{"bplw",       one(0065000),   one(0177777), "BW", m68000up | mcf5200 },
+{"bmiw",       one(0065400),   one(0177777), "BW", m68000up | mcf5200 },
+{"bgew",       one(0066000),   one(0177777), "BW", m68000up | mcf5200 },
+{"bltw",       one(0066400),   one(0177777), "BW", m68000up | mcf5200 },
+{"bgtw",       one(0067000),   one(0177777), "BW", m68000up | mcf5200 },
+{"blew",       one(0067400),   one(0177777), "BW", m68000up | mcf5200 },
+
+{"bhil",       one(0061377),   one(0177777), "BL", m68020up | cpu32 | mcf5200 },
+{"blsl",       one(0061777),   one(0177777), "BL", m68020up | cpu32 | mcf5200 },
+{"bccl",       one(0062377),   one(0177777), "BL", m68020up | cpu32 | mcf5200 },
+{"bcsl",       one(0062777),   one(0177777), "BL", m68020up | cpu32 | mcf5200 },
+{"bnel",       one(0063377),   one(0177777), "BL", m68020up | cpu32 | mcf5200 },
+{"beql",       one(0063777),   one(0177777), "BL", m68020up | cpu32 | mcf5200 },
+{"bvcl",       one(0064377),   one(0177777), "BL", m68020up | cpu32 | mcf5200 },
+{"bvsl",       one(0064777),   one(0177777), "BL", m68020up | cpu32 | mcf5200 },
+{"bpll",       one(0065377),   one(0177777), "BL", m68020up | cpu32 | mcf5200 },
+{"bmil",       one(0065777),   one(0177777), "BL", m68020up | cpu32 | mcf5200 },
+{"bgel",       one(0066377),   one(0177777), "BL", m68020up | cpu32 | mcf5200 },
+{"bltl",       one(0066777),   one(0177777), "BL", m68020up | cpu32 | mcf5200 },
+{"bgtl",       one(0067377),   one(0177777), "BL", m68020up | cpu32 | mcf5200 },
+{"blel",       one(0067777),   one(0177777), "BL", m68020up | cpu32 | mcf5200 },
+
+{"bhis",       one(0061000),   one(0177400), "BB", m68000up },
+{"blss",       one(0061400),   one(0177400), "BB", m68000up },
+{"bccs",       one(0062000),   one(0177400), "BB", m68000up },
+{"bcss",       one(0062400),   one(0177400), "BB", m68000up },
+{"bnes",       one(0063000),   one(0177400), "BB", m68000up },
+{"beqs",       one(0063400),   one(0177400), "BB", m68000up },
+{"bvcs",       one(0064000),   one(0177400), "BB", m68000up },
+{"bvss",       one(0064400),   one(0177400), "BB", m68000up },
+{"bpls",       one(0065000),   one(0177400), "BB", m68000up },
+{"bmis",       one(0065400),   one(0177400), "BB", m68000up },
+{"bges",       one(0066000),   one(0177400), "BB", m68000up },
+{"blts",       one(0066400),   one(0177400), "BB", m68000up },
+{"bgts",       one(0067000),   one(0177400), "BB", m68000up },
+{"bles",       one(0067400),   one(0177400), "BB", m68000up },
+
+{"jhi",                one(0061000),   one(0177400), "Bg", m68000up | mcf5200 },
+{"jls",                one(0061400),   one(0177400), "Bg", m68000up | mcf5200 },
+{"jcc",                one(0062000),   one(0177400), "Bg", m68000up | mcf5200 },
+{"jcs",                one(0062400),   one(0177400), "Bg", m68000up | mcf5200 },
+{"jne",                one(0063000),   one(0177400), "Bg", m68000up | mcf5200 },
+{"jeq",                one(0063400),   one(0177400), "Bg", m68000up | mcf5200 },
+{"jvc",                one(0064000),   one(0177400), "Bg", m68000up | mcf5200 },
+{"jvs",                one(0064400),   one(0177400), "Bg", m68000up | mcf5200 },
+{"jpl",                one(0065000),   one(0177400), "Bg", m68000up | mcf5200 },
+{"jmi",                one(0065400),   one(0177400), "Bg", m68000up | mcf5200 },
+{"jge",                one(0066000),   one(0177400), "Bg", m68000up | mcf5200 },
+{"jlt",                one(0066400),   one(0177400), "Bg", m68000up | mcf5200 },
+{"jgt",                one(0067000),   one(0177400), "Bg", m68000up | mcf5200 },
+{"jle",                one(0067400),   one(0177400), "Bg", m68000up | mcf5200 },
+
+{"bchg",       one(0000500),   one(0170700), "Dd$s", m68000up | mcf5200 },
+{"bchg",       one(0004100),   one(0177700), "#b$s", m68000up | mcf5200 },
+
+{"bclr",       one(0000600),   one(0170700), "Dd$s", m68000up | mcf5200 },
+{"bclr",       one(0004200),   one(0177700), "#b$s", m68000up | mcf5200 },
 
 {"bfchg",      two(0165300, 0), two(0177700, 0170000), "?sO2O3",   m68020up },
 {"bfclr",      two(0166300, 0), two(0177700, 0170000), "?sO2O3",   m68020up },
@@ -187,21 +187,21 @@ const struct m68k_opcode m68k_opcodes[] =
 
 {"bgnd",       one(0045372),           one(0177777), "", cpu32 },
 
-{"bkpt",       one(0044110),           one(0177770), "ts", m68020up | cpu32 },
+{"bkpt",       one(0044110),           one(0177770), "ts", m68010up },
 
-{"braw",       one(0060000),           one(0177777), "BW", m68000up },
-{"bral",       one(0060377),           one(0177777), "BL", m68020up | cpu32 },
-{"bras",       one(0060000),           one(0177400), "BB", m68000up },
+{"braw",       one(0060000),   one(0177777), "BW", m68000up | mcf5200 },
+{"bral",       one(0060377),   one(0177777), "BL", m68020up | cpu32 },
+{"bras",       one(0060000),   one(0177400), "BB", m68000up | mcf5200 },
 
-{"bset",       one(0000700),           one(0170700), "Dd$s", m68000up },
-{"bset",       one(0004300),           one(0177700), "#b$s", m68000up },
+{"bset",       one(0000700),   one(0170700), "Dd$s", m68000up | mcf5200 },
+{"bset",       one(0004300),   one(0177700), "#b$s", m68000up | mcf5200 },
 
-{"bsrw",       one(0060400),           one(0177777), "BW", m68000up },
-{"bsrl",       one(0060777),           one(0177777), "BL", m68020up | cpu32 },
-{"bsrs",       one(0060400),           one(0177400), "BB", m68000up },
+{"bsrw",       one(0060400),   one(0177777), "BW", m68000up | mcf5200 },
+{"bsrl",       one(0060777),   one(0177777), "BL", m68020up | cpu32 },
+{"bsrs",       one(0060400),   one(0177400), "BB", m68000up | mcf5200 },
 
-{"btst",       one(0000400),           one(0170700), "Dd@s", m68000up },
-{"btst",       one(0004000),           one(0177700), "#b@s", m68000up },
+{"btst",       one(0000400),   one(0170700), "Dd@s", m68000up | mcf5200 },
+{"btst",       one(0004000),   one(0177700), "#b@s", m68000up | mcf5200 },
 
 {"callm",      one(0003300),           one(0177700), "#b!s", m68020 },
 
@@ -237,54 +237,54 @@ const struct m68k_opcode m68k_opcodes[] =
 #undef SCOPE_PAGE
 #undef SCOPE_ALL
 
-{"clrb",       one(0041000),           one(0177700), "$s", m68000up },
-{"clrw",       one(0041100),           one(0177700), "$s", m68000up },
-{"clrl",       one(0041200),           one(0177700), "$s", m68000up },
+{"clrb",       one(0041000),   one(0177700), "$s", m68000up | mcf5200 },
+{"clrw",       one(0041100),   one(0177700), "$s", m68000up | mcf5200 },
+{"clrl",       one(0041200),   one(0177700), "$s", m68000up | mcf5200 },
 
 {"cmp2b",      two(0000300,0), two(0177700,07777), "!sR1", m68020up | cpu32 },
 {"cmp2w",      two(0001300,0), two(0177700,07777), "!sR1", m68020up | cpu32 },
 {"cmp2l",      two(0002300,0), two(0177700,07777), "!sR1", m68020up | cpu32 },
 
-{"cmpaw",      one(0130300),           one(0170700), "*wAd", m68000up },
-{"cmpal",      one(0130700),           one(0170700), "*lAd", m68000up },
+{"cmpaw",      one(0130300),   one(0170700), "*wAd", m68000up },
+{"cmpal",      one(0130700),   one(0170700), "*lAd", m68000up | mcf5200 },
 
-{"cmpib",      one(0006000),           one(0177700), "#b;b", m68000up },
-{"cmpiw",      one(0006100),           one(0177700), "#w;w", m68000up },
-{"cmpil",      one(0006200),           one(0177700), "#l;l", m68000up },
+{"cmpib",      one(0006000),   one(0177700), "#b;b", m68000up },
+{"cmpiw",      one(0006100),   one(0177700), "#w;w", m68000up },
+{"cmpil",      one(0006200),   one(0177700), "#l;l", m68000up | mcf5200 },
 
-{"cmpmb",      one(0130410),           one(0170770), "+s+d", m68000up },
-{"cmpmw",      one(0130510),           one(0170770), "+s+d", m68000up },
-{"cmpml",      one(0130610),           one(0170770), "+s+d", m68000up },
+{"cmpmb",      one(0130410),   one(0170770), "+s+d", m68000up },
+{"cmpmw",      one(0130510),   one(0170770), "+s+d", m68000up },
+{"cmpml",      one(0130610),   one(0170770), "+s+d", m68000up | mcf5200 },
 
 /* The cmp opcode can generate the cmpa, cmpm, and cmpi instructions.  */
-{"cmpb",       one(0006000),           one(0177700), "#b;b", m68000up },
-{"cmpb",       one(0130410),           one(0170770), "+s+d", m68000up },
-{"cmpb",       one(0130000),           one(0170700), ";bDd", m68000up },
-{"cmpw",       one(0130300),           one(0170700), "*wAd", m68000up },
-{"cmpw",       one(0006100),           one(0177700), "#w;w", m68000up },
-{"cmpw",       one(0130510),           one(0170770), "+s+d", m68000up },
-{"cmpw",       one(0130100),           one(0170700), "*wDd", m68000up },
-{"cmpl",       one(0130700),           one(0170700), "*lAd", m68000up },
-{"cmpl",       one(0006200),           one(0177700), "#l;l", m68000up },
-{"cmpl",       one(0130610),           one(0170770), "+s+d", m68000up },
-{"cmpl",       one(0130200),           one(0170700), "*lDd", m68000up },
-
-{"dbcc",       one(0052310),           one(0177770), "DsBw", m68000up },
-{"dbcs",       one(0052710),           one(0177770), "DsBw", m68000up },
-{"dbeq",       one(0053710),           one(0177770), "DsBw", m68000up },
-{"dbf",                one(0050710),           one(0177770), "DsBw", m68000up },
-{"dbge",       one(0056310),           one(0177770), "DsBw", m68000up },
-{"dbgt",       one(0057310),           one(0177770), "DsBw", m68000up },
-{"dbhi",       one(0051310),           one(0177770), "DsBw", m68000up },
-{"dble",       one(0057710),           one(0177770), "DsBw", m68000up },
-{"dbls",       one(0051710),           one(0177770), "DsBw", m68000up },
-{"dblt",       one(0056710),           one(0177770), "DsBw", m68000up },
-{"dbmi",       one(0055710),           one(0177770), "DsBw", m68000up },
-{"dbne",       one(0053310),           one(0177770), "DsBw", m68000up },
-{"dbpl",       one(0055310),           one(0177770), "DsBw", m68000up },
-{"dbt",                one(0050310),           one(0177770), "DsBw", m68000up },
-{"dbvc",       one(0054310),           one(0177770), "DsBw", m68000up },
-{"dbvs",       one(0054710),           one(0177770), "DsBw", m68000up },
+{"cmpb",       one(0006000),   one(0177700), "#b;b", m68000up },
+{"cmpb",       one(0130410),   one(0170770), "+s+d", m68000up },
+{"cmpb",       one(0130000),   one(0170700), ";bDd", m68000up },
+{"cmpw",       one(0130300),   one(0170700), "*wAd", m68000up },
+{"cmpw",       one(0006100),   one(0177700), "#w;w", m68000up },
+{"cmpw",       one(0130510),   one(0170770), "+s+d", m68000up },
+{"cmpw",       one(0130100),   one(0170700), "*wDd", m68000up },
+{"cmpl",       one(0130700),   one(0170700), "*lAd", m68000up | mcf5200 },
+{"cmpl",       one(0006200),   one(0177700), "#l;l", m68000up | mcf5200 },
+{"cmpl",       one(0130610),   one(0170770), "+s+d", m68000up | mcf5200 },
+{"cmpl",       one(0130200),   one(0170700), "*lDd", m68000up | mcf5200 },
+
+{"dbcc",       one(0052310),   one(0177770), "DsBw", m68000up },
+{"dbcs",       one(0052710),   one(0177770), "DsBw", m68000up },
+{"dbeq",       one(0053710),   one(0177770), "DsBw", m68000up },
+{"dbf",                one(0050710),   one(0177770), "DsBw", m68000up },
+{"dbge",       one(0056310),   one(0177770), "DsBw", m68000up },
+{"dbgt",       one(0057310),   one(0177770), "DsBw", m68000up },
+{"dbhi",       one(0051310),   one(0177770), "DsBw", m68000up },
+{"dble",       one(0057710),   one(0177770), "DsBw", m68000up },
+{"dbls",       one(0051710),   one(0177770), "DsBw", m68000up },
+{"dblt",       one(0056710),   one(0177770), "DsBw", m68000up },
+{"dbmi",       one(0055710),   one(0177770), "DsBw", m68000up },
+{"dbne",       one(0053310),   one(0177770), "DsBw", m68000up },
+{"dbpl",       one(0055310),   one(0177770), "DsBw", m68000up },
+{"dbt",                one(0050310),   one(0177770), "DsBw", m68000up },
+{"dbvc",       one(0054310),   one(0177770), "DsBw", m68000up },
+{"dbvs",       one(0054710),   one(0177770), "DsBw", m68000up },
 
 {"divsw",      one(0100700),           one(0170700), ";wDd", m68000up },
 
@@ -302,37 +302,37 @@ const struct m68k_opcode m68k_opcodes[] =
 {"divull", two(0046100,0000000),two(0177700,0107770),";lD3D1",m68020up|cpu32 },
 {"divull", two(0046100,0000000),two(0177700,0107770),";lDD",  m68020up|cpu32 },
 
-{"eorib",      one(0005000),           one(0177700), "#b$s", m68000up },
-{"eorib",      one(0005074),           one(0177777), "#bCs", m68000up },
-{"eoriw",      one(0005100),           one(0177700), "#w$s", m68000up },
-{"eoriw",      one(0005174),           one(0177777), "#wSs", m68000up },
-{"eoril",      one(0005200),           one(0177700), "#l$s", m68000up },
-{"eori",       one(0005074),           one(0177777), "#bCs", m68000up },
-{"eori",       one(0005174),           one(0177777), "#wSs", m68000up },
-{"eori",       one(0005100),           one(0177700), "#w$s", m68000up },
+{"eorib",      one(0005000),   one(0177700), "#b$s", m68000up },
+{"eorib",      one(0005074),   one(0177777), "#bCs", m68000up },
+{"eoriw",      one(0005100),   one(0177700), "#w$s", m68000up },
+{"eoriw",      one(0005174),   one(0177777), "#wSs", m68000up },
+{"eoril",      one(0005200),   one(0177700), "#l$s", m68000up | mcf5200 },
+{"eori",       one(0005074),   one(0177777), "#bCs", m68000up },
+{"eori",       one(0005174),   one(0177777), "#wSs", m68000up },
+{"eori",       one(0005100),   one(0177700), "#w$s", m68000up },
 
 /* The eor opcode can generate the eori instruction.  */
-{"eorb",       one(0005000),           one(0177700), "#b$s", m68000up },
-{"eorb",       one(0005074),           one(0177777), "#bCs", m68000up },
-{"eorb",       one(0130400),           one(0170700), "Dd$s", m68000up },
-{"eorw",       one(0005100),           one(0177700), "#w$s", m68000up },
-{"eorw",       one(0005174),           one(0177777), "#wSs", m68000up },
-{"eorw",       one(0130500),           one(0170700), "Dd$s", m68000up },
-{"eorl",       one(0005200),           one(0177700), "#l$s", m68000up },
-{"eorl",       one(0130600),           one(0170700), "Dd$s", m68000up },
-{"eor",                one(0005074),           one(0177777), "#bCs", m68000up },
-{"eor",                one(0005174),           one(0177777), "#wSs", m68000up },
-{"eor",                one(0005100),           one(0177700), "#w$s", m68000up },
-{"eor",                one(0130500),           one(0170700), "Dd$s", m68000up },
-
-{"exg",                one(0140500),           one(0170770), "DdDs", m68000up },
-{"exg",                one(0140510),           one(0170770), "AdAs", m68000up },
-{"exg",                one(0140610),           one(0170770), "DdAs", m68000up },
-{"exg",                one(0140610),           one(0170770), "AsDd", m68000up },
-
-{"extw",       one(0044200),           one(0177770), "Ds", m68000up },
-{"extl",       one(0044300),           one(0177770), "Ds", m68000up },
-{"extbl",      one(0044700),           one(0177770), "Ds", m68020up | cpu32 },
+{"eorb",       one(0005000),   one(0177700), "#b$s", m68000up },
+{"eorb",       one(0005074),   one(0177777), "#bCs", m68000up },
+{"eorb",       one(0130400),   one(0170700), "Dd$s", m68000up },
+{"eorw",       one(0005100),   one(0177700), "#w$s", m68000up },
+{"eorw",       one(0005174),   one(0177777), "#wSs", m68000up },
+{"eorw",       one(0130500),   one(0170700), "Dd$s", m68000up },
+{"eorl",       one(0005200),   one(0177700), "#l$s", m68000up | mcf5200 },
+{"eorl",       one(0130600),   one(0170700), "Dd$s", m68000up | mcf5200 },
+{"eor",                one(0005074),   one(0177777), "#bCs", m68000up },
+{"eor",                one(0005174),   one(0177777), "#wSs", m68000up },
+{"eor",                one(0005100),   one(0177700), "#w$s", m68000up },
+{"eor",                one(0130500),   one(0170700), "Dd$s", m68000up },
+
+{"exg",                one(0140500),   one(0170770), "DdDs", m68000up },
+{"exg",                one(0140510),   one(0170770), "AdAs", m68000up },
+{"exg",                one(0140610),   one(0170770), "DdAs", m68000up },
+{"exg",                one(0140610),   one(0170770), "AsDd", m68000up },
+
+{"extw",       one(0044200),   one(0177770), "Ds", m68000up | mcf5200 },
+{"extl",       one(0044300),   one(0177770), "Ds", m68000up | mcf5200 },
+{"extbl",      one(0044700),   one(0177770), "Ds", m68020up | cpu32 | mcf5200 },
 
 /* float stuff starts here */
 
@@ -784,12 +784,12 @@ const struct m68k_opcode m68k_opcodes[] =
 {"fmovemx",    two(0xF018, 0xD000), two(0xF1F8, 0xFF00), "Id+sl3", mfloat },
 {"fmovemx",    two(0xF018, 0xD000), two(0xF1F8, 0xFF00), "Id+s#3", mfloat },
 
+{"fmoveml",    two(0xF000, 0xA000), two(0xF1C0, 0xE3FF), "Iis8%s", mfloat },
 {"fmoveml",    two(0xF000, 0xA000), two(0xF1C0, 0xE3FF), "IiL8~s", mfloat },
-{"fmoveml",    two(0xF000, 0xA000), two(0xF1C0, 0xE3FF), "Ii#8~s", mfloat },
-{"fmoveml",    two(0xF000, 0xA000), two(0xF1C0, 0xE3FF), "Iis8~s", mfloat },
-{"fmoveml",    two(0xF000, 0x8000), two(0xF2C0, 0xE3FF), "Ii*sL8", mfloat },
-{"fmoveml",    two(0xF000, 0x8000), two(0xF1C0, 0xE3FF), "Ii*s#8", mfloat },
-{"fmoveml",    two(0xF000, 0x8000), two(0xF1C0, 0xE3FF), "Ii*ss8", mfloat },
+/* FIXME: In the next instruction, we should only permit %dn if the
+   target is a single register.  We should only permit %an if the
+   target is a single %fpiar.  */
+{"fmoveml",    two(0xF000, 0x8000), two(0xF1C0, 0xE3FF), "Ii*lL8", mfloat },
 
 {"fmovem",     two(0xF020, 0xE000), two(0xF1F8, 0xFF00), "IdL3-s", mfloat },
 {"fmovem",     two(0xF000, 0xF000), two(0xF1C0, 0xFF00), "Idl3&s", mfloat },
@@ -1184,96 +1184,106 @@ const struct m68k_opcode m68k_opcodes[] =
 {"ftwotoxx",   two(0xF000, 0x4811), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
 {"ftwotoxx",   two(0xF000, 0x0011), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
 
-{"illegal",    one(0045374),           one(0177777), "",     m68000up },
+{"halt",       one(0045310),   one(0177777), "",     mcf5200 },
 
-{"jmp",                one(0047300),           one(0177700), "!s",   m68000up },
+{"illegal",    one(0045374),   one(0177777), "",     m68000up },
 
-{"jra",                one(0060000),           one(0177400), "Bg", m68000up },
-{"jra",                one(0047300),           one(0177700), "!s", m68000up },
+{"jmp",                one(0047300),   one(0177700), "!s", m68000up | mcf5200 },
 
-{"jsr",                one(0047200),           one(0177700), "!s",   m68000up },
+{"jra",                one(0060000),   one(0177400), "Bg", m68000up | mcf5200 },
+{"jra",                one(0047300),   one(0177700), "!s", m68000up | mcf5200 },
 
-{"jbsr",       one(0060400),           one(0177400), "Bg", m68000up },
-{"jbsr",       one(0047200),           one(0177700), "!s", m68000up },
+{"jsr",                one(0047200),   one(0177700), "!s", m68000up | mcf5200 },
 
-{"lea",                one(0040700),           one(0170700), "!sAd", m68000up },
+{"jbsr",       one(0060400),   one(0177400), "Bg", m68000up | mcf5200 },
+{"jbsr",       one(0047200),   one(0177700), "!s", m68000up | mcf5200 },
+
+{"lea",                one(0040700),   one(0170700), "!sAd", m68000up | mcf5200 },
 
 {"lpstop",     two(0174000,0000700), two(0177777,0177777), "", cpu32|m68060 },
 
-{"linkw",      one(0047120),   one(0177770), "As#w", m68000up },
+{"linkw",      one(0047120),   one(0177770), "As#w", m68000up | mcf5200 },
 {"linkl",      one(0044010),   one(0177770), "As#l", m68020up | cpu32 },
-{"link",       one(0047120),   one(0177770), "As#W", m68000up },
+{"link",       one(0047120),   one(0177770), "As#W", m68000up | mcf5200 },
 {"link",       one(0044010),   one(0177770), "As#l", m68020up | cpu32 },
 
-{"lslb",       one(0160410),           one(0170770), "QdDs", m68000up },
-{"lslb",       one(0160450),           one(0170770), "DdDs", m68000up },
-{"lslw",       one(0160510),           one(0170770), "QdDs", m68000up },
-{"lslw",       one(0160550),           one(0170770), "DdDs", m68000up },
-{"lslw",       one(0161700),           one(0177700), "~s",   m68000up },
-{"lsll",       one(0160610),           one(0170770), "QdDs", m68000up },
-{"lsll",       one(0160650),           one(0170770), "DdDs", m68000up },
-
-{"lsrb",       one(0160010),           one(0170770), "QdDs", m68000up },
-{"lsrb",       one(0160050),           one(0170770), "DdDs", m68000up },
-{"lsrw",       one(0160110),           one(0170770), "QdDs", m68000up },
-{"lsrw",       one(0160150),           one(0170770), "DdDs", m68000up },
-{"lsrw",       one(0161300),           one(0177700), "~s",   m68000up },
-{"lsrl",       one(0160210),           one(0170770), "QdDs", m68000up },
-{"lsrl",       one(0160250),           one(0170770), "DdDs", m68000up },
-
-{"moveal",     one(0020100),           one(0170700), "*lAd", m68000up },
-{"moveaw",     one(0030100),           one(0170700), "*wAd", m68000up },
-
-{"movec",      one(0047173),           one(0177777), "R1Jj", m68010up },
-{"movec",      one(0047173),           one(0177777), "R1#j", m68010up },
-{"movec",      one(0047172),           one(0177777), "JjR1", m68010up },
-{"movec",      one(0047172),           one(0177777), "#jR1", m68010up },
-
-{"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 },
-{"moveml",     one(0044340),           one(0177770), "lw-s", m68000up },
-{"moveml",     one(0046300),           one(0177700), "!sLw", m68000up },
-{"moveml",     one(0046330),           one(0177770), "+sLw", m68000up },
-{"moveml",     one(0044300),           one(0177700), "#w&s", m68000up },
-{"moveml",     one(0044340),           one(0177770), "#w-s", m68000up },
-{"moveml",     one(0046300),           one(0177700), "!s#w", m68000up },
-{"moveml",     one(0046330),           one(0177770), "+s#w", m68000up },
-
-{"movepw",     one(0000410),           one(0170770), "dsDd", m68000up },
-{"movepw",     one(0000610),           one(0170770), "Ddds", m68000up },
-{"movepl",     one(0000510),           one(0170770), "dsDd", m68000up },
-{"movepl",     one(0000710),           one(0170770), "Ddds", m68000up },
-
-{"moveq",      one(0070000),           one(0170400), "MsDd", m68000up },
+{"lslb",       one(0160410),   one(0170770), "QdDs", m68000up },
+{"lslb",       one(0160450),   one(0170770), "DdDs", m68000up },
+{"lslw",       one(0160510),   one(0170770), "QdDs", m68000up },
+{"lslw",       one(0160550),   one(0170770), "DdDs", m68000up },
+{"lslw",       one(0161700),   one(0177700), "~s",   m68000up },
+{"lsll",       one(0160610),   one(0170770), "QdDs", m68000up | mcf5200 },
+{"lsll",       one(0160650),   one(0170770), "DdDs", m68000up | mcf5200 },
+
+{"lsrb",       one(0160010),   one(0170770), "QdDs", m68000up },
+{"lsrb",       one(0160050),   one(0170770), "DdDs", m68000up },
+{"lsrw",       one(0160110),   one(0170770), "QdDs", m68000up },
+{"lsrw",       one(0160150),   one(0170770), "DdDs", m68000up },
+{"lsrw",       one(0161300),   one(0177700), "~s",   m68000up },
+{"lsrl",       one(0160210),   one(0170770), "QdDs", m68000up | mcf5200 },
+{"lsrl",       one(0160250),   one(0170770), "DdDs", m68000up | mcf5200 },
+
+{"moveal",     one(0020100),   one(0170700), "*lAd", m68000up | mcf5200 },
+{"moveaw",     one(0030100),   one(0170700), "*wAd", m68000up | mcf5200 },
+
+{"movec",      one(0047173),   one(0177777), "R1Jj", m68010up | mcf5200 },
+{"movec",      one(0047173),   one(0177777), "R1#j", m68010up | mcf5200 },
+{"movec",      one(0047172),   one(0177777), "JjR1", m68010up },
+{"movec",      one(0047172),   one(0177777), "#jR1", m68010up },
+
+{"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 },
+
+{"movepw",     one(0000410),   one(0170770), "dsDd", m68000up },
+{"movepw",     one(0000610),   one(0170770), "Ddds", m68000up },
+{"movepl",     one(0000510),   one(0170770), "dsDd", m68000up },
+{"movepl",     one(0000710),   one(0170770), "Ddds", m68000up },
+
+{"moveq",      one(0070000),   one(0170400), "MsDd", m68000up | mcf5200 },
 
 /* The move opcode can generate the movea and moveq instructions.  */
-{"moveb",      one(0010000),           one(0170000), ";b$d", m68000up },
-{"movew",      one(0030000),           one(0170000), "*w$d", m68000up },
-{"movew",      one(0030100),           one(0170700), "*wAd", m68000up },
-{"movew",      one(0040300),           one(0177700), "Ss$s", m68000up },
-{"movew",      one(0041300),           one(0177700), "Cs$s", m68010up },
-{"movew",      one(0042300),           one(0177700), ";wCd", m68000up },
-{"movew",      one(0043300),           one(0177700), ";wSd", m68000up },
-{"movel",      one(0070000),           one(0170400), "MsDd", m68000up },
-{"movel",      one(0020000),           one(0170000), "*l$d", m68000up },
-{"movel",      one(0020100),           one(0170700), "*lAd", m68000up },
-{"movel",      one(0047140),           one(0177770), "AsUd", m68000up },
-{"movel",      one(0047150),           one(0177770), "UdAs", m68000up },
-{"move",       one(0030000),           one(0170000), "*w$d", m68000up },
-{"move",       one(0030100),           one(0170700), "*wAd", m68000up },
-{"move",       one(0040300),           one(0177700), "Ss$s", m68000up },
-{"move",       one(0041300),           one(0177700), "Cs$s", m68010up },
-{"move",       one(0042300),           one(0177700), ";wCd", m68000up },
-{"move",       one(0043300),           one(0177700), ";wSd", m68000up },
-{"move",       one(0047140),           one(0177770), "AsUd", m68000up },
-{"move",       one(0047150),           one(0177770), "UdAs", m68000up },
+{"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(0177700), "SsDs", mcf5200 },
+{"movew",      one(0041300),   one(0177700), "CsDs", mcf5200 },
+{"movew",      one(0040300),   one(0177700), "Ss$s", m68000up },
+{"movew",      one(0041300),   one(0177700), "Cs$s", m68010up },
+{"movew",      one(0042300),   one(0177700), ";wCd", m68000up | mcf5200 },
+{"movew",      one(0043300),   one(0177700), ";wSd", m68000up | 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(0177700), "SsDs", mcf5200 },
+{"move",       one(0041300),   one(0177700), "CsDs", mcf5200 },
+{"move",       one(0040300),   one(0177700), "Ss$s", m68000up },
+{"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(0047140),   one(0177770), "AsUd", m68000up | mcf5200 },
+{"move",       one(0047150),   one(0177770), "UdAs", m68000up | mcf5200 },
 
 {"movesb",     two(0007000, 0),     two(0177700, 07777), "~sR1", m68010up },
 {"movesb",     two(0007000, 04000), two(0177700, 07777), "R1~s", m68010up },
@@ -1288,59 +1298,59 @@ const struct m68k_opcode m68k_opcodes[] =
 {"move16",     one(0xf610),            one(0xfff8), "as_L", m68040up },
 {"move16",     one(0xf618),            one(0xfff8), "_Las", m68040up },
 
-{"mulsw",      one(0140700),           one(0170700), ";wDd", m68000up },
-{"mulsl", two(0046000,004000), two(0177700,0107770), ";lD1", m68020up|cpu32 },
-{"mulsl", two(0046000,006000), two(0177700,0107770), ";lD3D1",m68020up|cpu32 },
+{"mulsw",      one(0140700),           one(0170700), ";wDd", m68000up|mcf5200 },
+{"mulsl",      two(0046000,004000), two(0177700,0107770), ";lD1", m68020up|cpu32|mcf5200 },
+{"mulsl",      two(0046000,006000), two(0177700,0107770), ";lD3D1",m68020up|cpu32 },
 
-{"muluw",      one(0140300),           one(0170700), ";wDd", m68000up },
-{"mulul", two(0046000,000000), two(0177700,0107770), ";lD1", m68020up|cpu32 },
-{"mulul", two(0046000,002000), two(0177700,0107770), ";lD3D1",m68020up|cpu32 },
+{"muluw",      one(0140300),           one(0170700), ";wDd", m68000up|mcf5200 },
+{"mulul",      two(0046000,000000), two(0177700,0107770), ";lD1", m68020up|cpu32|mcf5200 },
+{"mulul",      two(0046000,002000), two(0177700,0107770), ";lD3D1",m68020up|cpu32 },
 
-{"nbcd",       one(0044000),           one(0177700), "$s", m68000up },
+{"nbcd",       one(0044000),   one(0177700), "$s", m68000up },
 
-{"negb",       one(0042000),           one(0177700), "$s", m68000up },
-{"negw",       one(0042100),           one(0177700), "$s", m68000up },
-{"negl",       one(0042200),           one(0177700), "$s", m68000up },
+{"negb",       one(0042000),   one(0177700), "$s", m68000up },
+{"negw",       one(0042100),   one(0177700), "$s", m68000up },
+{"negl",       one(0042200),   one(0177700), "$s", m68000up | mcf5200},
 
-{"negxb",      one(0040000),           one(0177700), "$s", m68000up },
-{"negxw",      one(0040100),           one(0177700), "$s", m68000up },
-{"negxl",      one(0040200),           one(0177700), "$s", m68000up },
+{"negxb",      one(0040000),   one(0177700), "$s", m68000up },
+{"negxw",      one(0040100),   one(0177700), "$s", m68000up },
+{"negxl",      one(0040200),   one(0177700), "$s", m68000up | mcf5200},
 
-{"nop",                one(0047161),           one(0177777), "", m68000up },
+{"nop",                one(0047161),   one(0177777), "", m68000up | mcf5200},
 
-{"notb",       one(0043000),           one(0177700), "$s", m68000up },
-{"notw",       one(0043100),           one(0177700), "$s", m68000up },
-{"notl",       one(0043200),           one(0177700), "$s", m68000up },
+{"notb",       one(0043000),   one(0177700), "$s", m68000up },
+{"notw",       one(0043100),   one(0177700), "$s", m68000up },
+{"notl",       one(0043200),   one(0177700), "$s", m68000up | mcf5200},
 
-{"orib",       one(0000000),           one(0177700), "#b$s", m68000up },
-{"orib",       one(0000074),           one(0177777), "#bCs", m68000up },
-{"oriw",       one(0000100),           one(0177700), "#w$s", m68000up },
-{"oriw",       one(0000174),           one(0177777), "#wSs", m68000up },
-{"oril",       one(0000200),           one(0177700), "#l$s", m68000up },
-{"ori",                one(0000074),           one(0177777), "#bCs", m68000up },
-{"ori",                one(0000100),           one(0177700), "#w$s", m68000up },
-{"ori",                one(0000174),           one(0177777), "#wSs", m68000up },
+{"orib",       one(0000000),   one(0177700), "#b$s", m68000up },
+{"orib",       one(0000074),   one(0177777), "#bCs", m68000up },
+{"oriw",       one(0000100),   one(0177700), "#w$s", m68000up },
+{"oriw",       one(0000174),   one(0177777), "#wSs", m68000up },
+{"oril",       one(0000200),   one(0177700), "#l$s", m68000up | mcf5200 },
+{"ori",                one(0000074),   one(0177777), "#bCs", m68000up },
+{"ori",                one(0000100),   one(0177700), "#w$s", m68000up },
+{"ori",                one(0000174),   one(0177777), "#wSs", m68000up },
 
 /* The or opcode can generate the ori instruction.  */
-{"orb",                one(0000000),           one(0177700), "#b$s", m68000up },
-{"orb",                one(0000074),           one(0177777), "#bCs", m68000up },
-{"orb",                one(0100000),           one(0170700), ";bDd", m68000up },
-{"orb",                one(0100400),           one(0170700), "Dd~s", m68000up },
-{"orw",                one(0000100),           one(0177700), "#w$s", m68000up },
-{"orw",                one(0000174),           one(0177777), "#wSs", m68000up },
-{"orw",                one(0100100),           one(0170700), ";wDd", m68000up },
-{"orw",                one(0100500),           one(0170700), "Dd~s", m68000up },
-{"orl",                one(0000200),           one(0177700), "#l$s", m68000up },
-{"orl",                one(0100200),           one(0170700), ";lDd", m68000up },
-{"orl",                one(0100600),           one(0170700), "Dd~s", m68000up },
-{"or",         one(0000074),           one(0177777), "#bCs", m68000up },
-{"or",         one(0000100),           one(0177700), "#w$s", m68000up },
-{"or",         one(0000174),           one(0177777), "#wSs", m68000up },
-{"or",         one(0100100),           one(0170700), ";wDd", m68000up },
-{"or",         one(0100500),           one(0170700), "Dd~s", m68000up },
-
-{"pack",       one(0100500),           one(0170770), "DsDd#w", m68020up },
-{"pack",       one(0100510),           one(0170770), "-s-d#w", m68020up },
+{"orb",                one(0000000),   one(0177700), "#b$s", m68000up },
+{"orb",                one(0000074),   one(0177777), "#bCs", m68000up },
+{"orb",                one(0100000),   one(0170700), ";bDd", m68000up },
+{"orb",                one(0100400),   one(0170700), "Dd~s", m68000up },
+{"orw",                one(0000100),   one(0177700), "#w$s", m68000up },
+{"orw",                one(0000174),   one(0177777), "#wSs", m68000up },
+{"orw",                one(0100100),   one(0170700), ";wDd", m68000up },
+{"orw",                one(0100500),   one(0170700), "Dd~s", m68000up },
+{"orl",                one(0000200),   one(0177700), "#l$s", m68000up | mcf5200 },
+{"orl",                one(0100200),   one(0170700), ";lDd", m68000up | mcf5200 },
+{"orl",                one(0100600),   one(0170700), "Dd~s", m68000up | mcf5200 },
+{"or",         one(0000074),   one(0177777), "#bCs", m68000up },
+{"or",         one(0000100),   one(0177700), "#w$s", m68000up },
+{"or",         one(0000174),   one(0177777), "#wSs", m68000up },
+{"or",         one(0100100),   one(0170700), ";wDd", m68000up },
+{"or",         one(0100500),   one(0170700), "Dd~s", m68000up },
+
+{"pack",       one(0100500),   one(0170770), "DsDd#w", m68020up },
+{"pack",       one(0100510),   one(0170770), "-s-d#w", m68020up },
 
 {"pbac",       one(0xf087),            one(0xffbf), "Bc", m68851 },
 {"pbacw",      one(0xf087),            one(0xffff), "BW", m68851 },
@@ -1392,7 +1402,7 @@ const struct m68k_opcode m68k_opcodes[] =
 {"pdbwc",      two(0xf048, 0x0009),    two(0xfff8, 0xffff), "DsBw", m68851 },
 {"pdbws",      two(0xf048, 0x0008),    two(0xfff8, 0xffff), "DsBw", m68851 },
 
-{"pea",                one(0044100),           one(0177700), "!s", m68000up },
+{"pea",                one(0044100),           one(0177700), "!s", m68000up | mcf5200 },
 
 {"pflusha",    two(0xf000,0x2400), two(0xffff,0xffff), "", m68030 | m68851 },
 {"pflusha",    one(0xf518),            one(0xfff8), "", m68040up },
@@ -1552,6 +1562,8 @@ const struct m68k_opcode m68k_opcodes[] =
 {"ptrapwsl",   two(0xf07b, 0x0008),    two(0xffff, 0xffff), "#l", m68851 },
 {"ptrapws",    two(0xf07c, 0x0008),    two(0xffff, 0xffff), "",   m68851 },
 
+{"pulse",      one(0045314),           one(0177777), "", mcf5200 },
+
 {"pvalid",     two(0xf000, 0x2800),    two(0xffc0, 0xffff), "Vs&s", m68851 },
 {"pvalid",     two(0xf000, 0x2c00),    two(0xffc0, 0xfff8), "A3&s", m68851 },
 
@@ -1591,71 +1603,71 @@ const struct m68k_opcode m68k_opcodes[] =
 
 {"rtd",                one(0047164),           one(0177777), "#w", m68010up },
 
-{"rte",                one(0047163),           one(0177777), "",   m68000up },
+{"rte",                one(0047163),           one(0177777), "",   m68000up | mcf5200 },
 
 {"rtm",                one(0003300),           one(0177760), "Rs", m68020 },
 
 {"rtr",                one(0047167),           one(0177777), "",   m68000up },
 
-{"rts",                one(0047165),           one(0177777), "",   m68000up },
+{"rts",                one(0047165),           one(0177777), "",   m68000up | mcf5200 },
 
 {"sbcd",       one(0100400),           one(0170770), "DsDd", m68000up },
 {"sbcd",       one(0100410),           one(0170770), "-s-d", m68000up },
 
-{"scc",                one(0052300),           one(0177700), "$s", m68000up },
-{"scs",                one(0052700),           one(0177700), "$s", m68000up },
-{"seq",                one(0053700),           one(0177700), "$s", m68000up },
-{"sf",         one(0050700),           one(0177700), "$s", m68000up },
-{"sge",                one(0056300),           one(0177700), "$s", m68000up },
-{"sgt",                one(0057300),           one(0177700), "$s", m68000up },
-{"shi",                one(0051300),           one(0177700), "$s", m68000up },
-{"sle",                one(0057700),           one(0177700), "$s", m68000up },
-{"sls",                one(0051700),           one(0177700), "$s", m68000up },
-{"slt",                one(0056700),           one(0177700), "$s", m68000up },
-{"smi",                one(0055700),           one(0177700), "$s", m68000up },
-{"sne",                one(0053300),           one(0177700), "$s", m68000up },
-{"spl",                one(0055300),           one(0177700), "$s", m68000up },
-{"st",         one(0050300),           one(0177700), "$s", m68000up },
-{"svc",                one(0054300),           one(0177700), "$s", m68000up },
-{"svs",                one(0054700),           one(0177700), "$s", m68000up },
-
-{"stop",       one(0047162),           one(0177777), "#w", m68000up },
-
-{"subal",      one(0110700),           one(0170700), "*lAd", m68000up },
-{"subaw",      one(0110300),           one(0170700), "*wAd", m68000up },
-
-{"subib",      one(0002000),           one(0177700), "#b$s", m68000up },
-{"subiw",      one(0002100),           one(0177700), "#w$s", m68000up },
-{"subil",      one(0002200),           one(0177700), "#l$s", m68000up },
-
-{"subqb",      one(0050400),           one(0170700), "Qd%s", m68000up },
-{"subqw",      one(0050500),           one(0170700), "Qd%s", m68000up },
-{"subql",      one(0050600),           one(0170700), "Qd%s", m68000up },
+{"scc",                one(0052300),   one(0177700), "$s", m68000up | mcf5200 },
+{"scs",                one(0052700),   one(0177700), "$s", m68000up | mcf5200 },
+{"seq",                one(0053700),   one(0177700), "$s", m68000up | mcf5200 },
+{"sf",         one(0050700),   one(0177700), "$s", m68000up | mcf5200 },
+{"sge",                one(0056300),   one(0177700), "$s", m68000up | mcf5200 },
+{"sgt",                one(0057300),   one(0177700), "$s", m68000up | mcf5200 },
+{"shi",                one(0051300),   one(0177700), "$s", m68000up | mcf5200 },
+{"sle",                one(0057700),   one(0177700), "$s", m68000up | mcf5200 },
+{"sls",                one(0051700),   one(0177700), "$s", m68000up | mcf5200 },
+{"slt",                one(0056700),   one(0177700), "$s", m68000up | mcf5200 },
+{"smi",                one(0055700),   one(0177700), "$s", m68000up | mcf5200 },
+{"sne",                one(0053300),   one(0177700), "$s", m68000up | mcf5200 },
+{"spl",                one(0055300),   one(0177700), "$s", m68000up | mcf5200 },
+{"st",         one(0050300),   one(0177700), "$s", m68000up | mcf5200 },
+{"svc",                one(0054300),   one(0177700), "$s", m68000up | mcf5200 },
+{"svs",                one(0054700),   one(0177700), "$s", m68000up | mcf5200 },
+
+{"stop",       one(0047162),   one(0177777), "#w", m68000up | mcf5200 },
+
+{"subal",      one(0110700),   one(0170700), "*lAd", m68000up | mcf5200 },
+{"subaw",      one(0110300),   one(0170700), "*wAd", m68000up },
+
+{"subib",      one(0002000),   one(0177700), "#b$s", m68000up },
+{"subiw",      one(0002100),   one(0177700), "#w$s", m68000up },
+{"subil",      one(0002200),   one(0177700), "#l$s", m68000up | mcf5200 },
+
+{"subqb",      one(0050400),   one(0170700), "Qd%s", m68000up },
+{"subqw",      one(0050500),   one(0170700), "Qd%s", m68000up },
+{"subql",      one(0050600),   one(0170700), "Qd%s", m68000up | mcf5200 },
 
 /* The sub opcode can generate the suba, subi, and subq instructions.  */
-{"subb",       one(0050400),           one(0170700), "Qd%s", m68000up },
-{"subb",       one(0002000),           one(0177700), "#b$s", m68000up },
-{"subb",       one(0110000),           one(0170700), ";bDd", m68000up },
-{"subb",       one(0110400),           one(0170700), "Dd~s", m68000up },
-{"subw",       one(0050500),           one(0170700), "Qd%s", m68000up },
-{"subw",       one(0002100),           one(0177700), "#w$s", m68000up },
-{"subw",       one(0110300),           one(0170700), "*wAd", m68000up },
-{"subw",       one(0110100),           one(0170700), "*wDd", m68000up },
-{"subw",       one(0110500),           one(0170700), "Dd~s", m68000up },
-{"subl",       one(0050600),           one(0170700), "Qd%s", m68000up },
-{"subl",       one(0002200),           one(0177700), "#l$s", m68000up },
-{"subl",       one(0110700),           one(0170700), "*lAd", m68000up },
-{"subl",       one(0110200),           one(0170700), "*lDd", m68000up },
-{"subl",       one(0110600),           one(0170700), "Dd~s", m68000up },
-
-{"subxb",      one(0110400),           one(0170770), "DsDd", m68000up },
-{"subxb",      one(0110410),           one(0170770), "-s-d", m68000up },
-{"subxw",      one(0110500),           one(0170770), "DsDd", m68000up },
-{"subxw",      one(0110510),           one(0170770), "-s-d", m68000up },
-{"subxl",      one(0110600),           one(0170770), "DsDd", m68000up },
-{"subxl",      one(0110610),           one(0170770), "-s-d", m68000up },
-
-{"swap",       one(0044100),           one(0177770), "Ds", m68000up },
+{"subb",       one(0050400),   one(0170700), "Qd%s", m68000up },
+{"subb",       one(0002000),   one(0177700), "#b$s", m68000up },
+{"subb",       one(0110000),   one(0170700), ";bDd", m68000up },
+{"subb",       one(0110400),   one(0170700), "Dd~s", m68000up },
+{"subw",       one(0050500),   one(0170700), "Qd%s", m68000up },
+{"subw",       one(0002100),   one(0177700), "#w$s", m68000up },
+{"subw",       one(0110300),   one(0170700), "*wAd", m68000up },
+{"subw",       one(0110100),   one(0170700), "*wDd", m68000up },
+{"subw",       one(0110500),   one(0170700), "Dd~s", m68000up },
+{"subl",       one(0050600),   one(0170700), "Qd%s", m68000up | mcf5200 },
+{"subl",       one(0002200),   one(0177700), "#l$s", m68000up | mcf5200 },
+{"subl",       one(0110700),   one(0170700), "*lAd", m68000up | mcf5200 },
+{"subl",       one(0110200),   one(0170700), "*lDd", m68000up | mcf5200 },
+{"subl",       one(0110600),   one(0170700), "Dd~s", m68000up | mcf5200 },
+
+{"subxb",      one(0110400),   one(0170770), "DsDd", m68000up },
+{"subxb",      one(0110410),   one(0170770), "-s-d", m68000up },
+{"subxw",      one(0110500),   one(0170770), "DsDd", m68000up },
+{"subxw",      one(0110510),   one(0170770), "-s-d", m68000up },
+{"subxl",      one(0110600),   one(0170770), "DsDd", m68000up | mcf5200 },
+{"subxl",      one(0110610),   one(0170770), "-s-d", m68000up | mcf5200 },
+
+{"swap",       one(0044100),   one(0177770), "Ds", m68000up | mcf5200 },
 
 {"tas",                one(0045300),           one(0177700), "$s", m68000up },
 
@@ -1671,69 +1683,74 @@ TBL("tblsnb", "tblsnw", "tblsnl", 1, 0),
 TBL("tblub", "tbluw", "tblul", 0, 1),
 TBL("tblunb", "tblunw", "tblunl", 0, 0),
 
-{"trap",       one(0047100),           one(0177760), "Ts", m68000up },
-
-{"trapcc",     one(0052374),           one(0177777), "", m68020up | cpu32 },
-{"trapcs",     one(0052774),           one(0177777), "", m68020up | cpu32 },
-{"trapeq",     one(0053774),           one(0177777), "", m68020up | cpu32 },
-{"trapf",      one(0050774),           one(0177777), "", m68020up | cpu32 },
-{"trapge",     one(0056374),           one(0177777), "", m68020up | cpu32 },
-{"trapgt",     one(0057374),           one(0177777), "", m68020up | cpu32 },
-{"traphi",     one(0051374),           one(0177777), "", m68020up | cpu32 },
-{"traple",     one(0057774),           one(0177777), "", m68020up | cpu32 },
-{"trapls",     one(0051774),           one(0177777), "", m68020up | cpu32 },
-{"traplt",     one(0056774),           one(0177777), "", m68020up | cpu32 },
-{"trapmi",     one(0055774),           one(0177777), "", m68020up | cpu32 },
-{"trapne",     one(0053374),           one(0177777), "", m68020up | cpu32 },
-{"trappl",     one(0055374),           one(0177777), "", m68020up | cpu32 },
-{"trapt",      one(0050374),           one(0177777), "", m68020up | cpu32 },
-{"trapvc",     one(0054374),           one(0177777), "", m68020up | cpu32 },
-{"trapvs",     one(0054774),           one(0177777), "", m68020up | cpu32 },
-
-{"trapccw",    one(0052372),           one(0177777), "#w", m68020up | cpu32 },
-{"trapcsw",    one(0052772),           one(0177777), "#w", m68020up | cpu32 },
-{"trapeqw",    one(0053772),           one(0177777), "#w", m68020up | cpu32 },
-{"trapfw",     one(0050772),           one(0177777), "#w", m68020up | cpu32 },
-{"trapgew",    one(0056372),           one(0177777), "#w", m68020up | cpu32 },
-{"trapgtw",    one(0057372),           one(0177777), "#w", m68020up | cpu32 },
-{"traphiw",    one(0051372),           one(0177777), "#w", m68020up | cpu32 },
-{"traplew",    one(0057772),           one(0177777), "#w", m68020up | cpu32 },
-{"traplsw",    one(0051772),           one(0177777), "#w", m68020up | cpu32 },
-{"trapltw",    one(0056772),           one(0177777), "#w", m68020up | cpu32 },
-{"trapmiw",    one(0055772),           one(0177777), "#w", m68020up | cpu32 },
-{"trapnew",    one(0053372),           one(0177777), "#w", m68020up | cpu32 },
-{"trapplw",    one(0055372),           one(0177777), "#w", m68020up | cpu32 },
-{"traptw",     one(0050372),           one(0177777), "#w", m68020up | cpu32 },
-{"trapvcw",    one(0054372),           one(0177777), "#w", m68020up | cpu32 },
-{"trapvsw",    one(0054772),           one(0177777), "#w", m68020up | cpu32 },
-
-{"trapccl",    one(0052373),           one(0177777), "#l", m68020up | cpu32 },
-{"trapcsl",    one(0052773),           one(0177777), "#l", m68020up | cpu32 },
-{"trapeql",    one(0053773),           one(0177777), "#l", m68020up | cpu32 },
-{"trapfl",     one(0050773),           one(0177777), "#l", m68020up | cpu32 },
-{"trapgel",    one(0056373),           one(0177777), "#l", m68020up | cpu32 },
-{"trapgtl",    one(0057373),           one(0177777), "#l", m68020up | cpu32 },
-{"traphil",    one(0051373),           one(0177777), "#l", m68020up | cpu32 },
-{"traplel",    one(0057773),           one(0177777), "#l", m68020up | cpu32 },
-{"traplsl",    one(0051773),           one(0177777), "#l", m68020up | cpu32 },
-{"trapltl",    one(0056773),           one(0177777), "#l", m68020up | cpu32 },
-{"trapmil",    one(0055773),           one(0177777), "#l", m68020up | cpu32 },
-{"trapnel",    one(0053373),           one(0177777), "#l", m68020up | cpu32 },
-{"trappll",    one(0055373),           one(0177777), "#l", m68020up | cpu32 },
-{"traptl",     one(0050373),           one(0177777), "#l", m68020up | cpu32 },
-{"trapvcl",    one(0054373),           one(0177777), "#l", m68020up | cpu32 },
-{"trapvsl",    one(0054773),           one(0177777), "#l", m68020up | cpu32 },
-
-{"trapv",      one(0047166),           one(0177777), "", m68000up },
-
-{"tstb",       one(0045000),           one(0177700), ";b", m68000up },
-{"tstw",       one(0045100),           one(0177700), "*w", m68000up },
-{"tstl",       one(0045200),           one(0177700), "*l", m68000up },
-
-{"unlk",       one(0047130),           one(0177770), "As", m68000up },
-
-{"unpk",       one(0100600),           one(0170770), "DsDd#w", m68020up },
-{"unpk",       one(0100610),           one(0170770), "-s-d#w", m68020up },
+{"trap",       one(0047100),   one(0177760), "Ts", m68000up | mcf5200 },
+
+{"trapcc",     one(0052374),   one(0177777), "", m68020up | cpu32 },
+{"trapcs",     one(0052774),   one(0177777), "", m68020up | cpu32 },
+{"trapeq",     one(0053774),   one(0177777), "", m68020up | cpu32 },
+{"trapf",      one(0050774),   one(0177777), "", m68020up | cpu32 | mcf5200 },
+{"trapge",     one(0056374),   one(0177777), "", m68020up | cpu32 },
+{"trapgt",     one(0057374),   one(0177777), "", m68020up | cpu32 },
+{"traphi",     one(0051374),   one(0177777), "", m68020up | cpu32 },
+{"traple",     one(0057774),   one(0177777), "", m68020up | cpu32 },
+{"trapls",     one(0051774),   one(0177777), "", m68020up | cpu32 },
+{"traplt",     one(0056774),   one(0177777), "", m68020up | cpu32 },
+{"trapmi",     one(0055774),   one(0177777), "", m68020up | cpu32 },
+{"trapne",     one(0053374),   one(0177777), "", m68020up | cpu32 },
+{"trappl",     one(0055374),   one(0177777), "", m68020up | cpu32 },
+{"trapt",      one(0050374),   one(0177777), "", m68020up | cpu32 },
+{"trapvc",     one(0054374),   one(0177777), "", m68020up | cpu32 },
+{"trapvs",     one(0054774),   one(0177777), "", m68020up | cpu32 },
+
+{"trapccw",    one(0052372),   one(0177777), "#w", m68020up | cpu32 },
+{"trapcsw",    one(0052772),   one(0177777), "#w", m68020up | cpu32 },
+{"trapeqw",    one(0053772),   one(0177777), "#w", m68020up | cpu32 },
+{"trapfw",     one(0050772),   one(0177777), "#w", m68020up | cpu32 | mcf5200},
+{"trapgew",    one(0056372),   one(0177777), "#w", m68020up | cpu32 },
+{"trapgtw",    one(0057372),   one(0177777), "#w", m68020up | cpu32 },
+{"traphiw",    one(0051372),   one(0177777), "#w", m68020up | cpu32 },
+{"traplew",    one(0057772),   one(0177777), "#w", m68020up | cpu32 },
+{"traplsw",    one(0051772),   one(0177777), "#w", m68020up | cpu32 },
+{"trapltw",    one(0056772),   one(0177777), "#w", m68020up | cpu32 },
+{"trapmiw",    one(0055772),   one(0177777), "#w", m68020up | cpu32 },
+{"trapnew",    one(0053372),   one(0177777), "#w", m68020up | cpu32 },
+{"trapplw",    one(0055372),   one(0177777), "#w", m68020up | cpu32 },
+{"traptw",     one(0050372),   one(0177777), "#w", m68020up | cpu32 },
+{"trapvcw",    one(0054372),   one(0177777), "#w", m68020up | cpu32 },
+{"trapvsw",    one(0054772),   one(0177777), "#w", m68020up | cpu32 },
+
+{"trapccl",    one(0052373),   one(0177777), "#l", m68020up | cpu32 },
+{"trapcsl",    one(0052773),   one(0177777), "#l", m68020up | cpu32 },
+{"trapeql",    one(0053773),   one(0177777), "#l", m68020up | cpu32 },
+{"trapfl",     one(0050773),   one(0177777), "#l", m68020up | cpu32 },
+{"trapgel",    one(0056373),   one(0177777), "#l", m68020up | cpu32 | mcf5200},
+{"trapgtl",    one(0057373),   one(0177777), "#l", m68020up | cpu32 },
+{"traphil",    one(0051373),   one(0177777), "#l", m68020up | cpu32 },
+{"traplel",    one(0057773),   one(0177777), "#l", m68020up | cpu32 },
+{"traplsl",    one(0051773),   one(0177777), "#l", m68020up | cpu32 },
+{"trapltl",    one(0056773),   one(0177777), "#l", m68020up | cpu32 },
+{"trapmil",    one(0055773),   one(0177777), "#l", m68020up | cpu32 },
+{"trapnel",    one(0053373),   one(0177777), "#l", m68020up | cpu32 },
+{"trappll",    one(0055373),   one(0177777), "#l", m68020up | cpu32 },
+{"traptl",     one(0050373),   one(0177777), "#l", m68020up | cpu32 },
+{"trapvcl",    one(0054373),   one(0177777), "#l", m68020up | cpu32 },
+{"trapvsl",    one(0054773),   one(0177777), "#l", m68020up | cpu32 },
+
+{"trapv",      one(0047166),   one(0177777), "", m68000up },
+
+{"tstb",       one(0045000),   one(0177700), ";b", m68000up | mcf5200 },
+{"tstw",       one(0045100),   one(0177700), "*w", m68000up | mcf5200 },
+{"tstl",       one(0045200),   one(0177700), "*l", m68000up | mcf5200 },
+
+{"unlk",       one(0047130),   one(0177770), "As", m68000up | mcf5200 },
+
+{"unpk",       one(0100600),   one(0170770), "DsDd#w", m68020up },
+{"unpk",       one(0100610),   one(0170770), "-s-d#w", m68020up },
+
+{"wddatab",    one(0172000),   one(0177700), "~s", mcf5200 },
+{"wddataw",    one(0172040),   one(0177700), "~s", mcf5200 },
+{"wddatal",    one(0172100),   one(0177700), "~s", mcf5200 },
+
 };
 
 const int m68k_numopcodes = sizeof m68k_opcodes / sizeof m68k_opcodes[0];