* m68k-opc.c (m68k-opcodes): The coldfire (mcf5200) can only use
authorJ.T. Conklin <jtc@acorntoolworks.com>
Mon, 25 Nov 1996 22:33:46 +0000 (22:33 +0000)
committerJ.T. Conklin <jtc@acorntoolworks.com>
Mon, 25 Nov 1996 22:33:46 +0000 (22:33 +0000)
register operands for immediate arithmetic, not, neg, negx, and
set according to condition instructions.

opcodes/ChangeLog
opcodes/m68k-opc.c

index b820558..682ab0f 100644 (file)
@@ -1,5 +1,9 @@
-Mon Nov 25 13:08:40 1996  J.T. Conklin  <jtc@cygnus.com>
+Mon Nov 25 14:24:18 1996  J.T. Conklin  <jtc@cygnus.com>
 
+       * m68k-opc.c (m68k-opcodes): The coldfire (mcf5200) can only use
+       register operands for immediate arithmetic, not, neg, negx, and
+       set according to condition instructions.
+       
        * m68k-opc.c (m68k_opcodes): Consistantly Use "s" as the storage
        specifier of the effective-address operand in immediate forms of
        arithmetic instructions.  The specifier for the immediate operand
index bc01f7a..e9db5cb 100644 (file)
@@ -38,7 +38,8 @@ const struct m68k_opcode m68k_opcodes[] =
 
 {"addib",      one(0003000),   one(0177700), "#b$s", m68000up },
 {"addiw",      one(0003100),   one(0177700), "#w$s", m68000up },
-{"addil",      one(0003200),   one(0177700), "#l$s", m68000up | mcf5200 },
+{"addil",      one(0003200),   one(0177700), "#l$s", m68000up },
+{"addil",      one(0003200),   one(0177700), "#lDs", mcf5200 },
 
 {"addqb",      one(0050000),   one(0170700), "Qd$b", m68000up },
 {"addqw",      one(0050100),   one(0170700), "Qd%w", m68000up },
@@ -55,7 +56,8 @@ const struct m68k_opcode m68k_opcodes[] =
 {"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$s", m68000up | mcf5200 },
+{"addl",       one(0003200),   one(0177700), "#l$s", m68000up },
+{"addl",       one(0003200),   one(0177700), "#lDs", 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 },
@@ -71,7 +73,8 @@ const struct m68k_opcode m68k_opcodes[] =
 {"andib",      one(0001074),   one(0177777), "#bCs", m68000up },
 {"andiw",      one(0001100),   one(0177700), "#w$s", m68000up },
 {"andiw",      one(0001174),   one(0177777), "#wSs", m68000up },
-{"andil",      one(0001200),   one(0177700), "#l$s", m68000up | mcf5200 },
+{"andil",      one(0001200),   one(0177700), "#l$s", m68000up },
+{"andil",      one(0001200),   one(0177700), "#lDs", mcf5200 },
 {"andi",       one(0001100),   one(0177700), "#w$s", m68000up },
 {"andi",       one(0001074),   one(0177777), "#bCs", m68000up },
 {"andi",       one(0001174),   one(0177777), "#wSs", m68000up },
@@ -85,7 +88,8 @@ const struct m68k_opcode m68k_opcodes[] =
 {"andw",       one(0001174),   one(0177777), "#wSs", m68000up },
 {"andw",       one(0140100),   one(0170700), ";wDd", m68000up },
 {"andw",       one(0140500),   one(0170700), "Dd~w", m68000up },
-{"andl",       one(0001200),   one(0177700), "#l$s", m68000up | mcf5200 },
+{"andl",       one(0001200),   one(0177700), "#l$s", m68000up },
+{"andl",       one(0001200),   one(0177700), "#lDs", 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 },
@@ -251,11 +255,13 @@ const struct m68k_opcode m68k_opcodes[] =
 
 {"cmpib",      one(0006000),   one(0177700), "#b;s", m68000up },
 {"cmpiw",      one(0006100),   one(0177700), "#w;s", m68000up },
-{"cmpil",      one(0006200),   one(0177700), "#l;s", m68000up | mcf5200 },
+{"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 },
 {"cmpmw",      one(0130510),   one(0170770), "+s+d", m68000up },
-{"cmpml",      one(0130610),   one(0170770), "+s+d", m68000up | mcf5200 },
+{"cmpml",      one(0130610),   one(0170770), "+s+d", m68000up },
 
 /* The cmp opcode can generate the cmpa, cmpm, and cmpi instructions.  */
 {"cmpb",       one(0006000),   one(0177700), "#b;s", m68000up },
@@ -266,8 +272,9 @@ const struct m68k_opcode m68k_opcodes[] =
 {"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;s", m68000up | mcf5200 },
-{"cmpl",       one(0130610),   one(0170770), "+s+d", m68000up | mcf5200 },
+{"cmpl",       one(0006200),   one(0177700), "#l;s", m68000up },
+{"cmpl",       one(0006200),   one(0177700), "#lDs", mcf5200 },
+{"cmpl",       one(0130610),   one(0170770), "+s+d", m68000up },
 {"cmpl",       one(0130200),   one(0170700), "*lDd", m68000up | mcf5200 },
 
 {"dbcc",       one(0052310),   one(0177770), "DsBw", m68000up },
@@ -307,7 +314,8 @@ const struct m68k_opcode m68k_opcodes[] =
 {"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 },
+{"eoril",      one(0005200),   one(0177700), "#l$s", m68000up },
+{"eoril",      one(0005200),   one(0177700), "#lDs", mcf5200 },
 {"eori",       one(0005074),   one(0177777), "#bCs", m68000up },
 {"eori",       one(0005174),   one(0177777), "#wSs", m68000up },
 {"eori",       one(0005100),   one(0177700), "#w$s", m68000up },
@@ -319,7 +327,8 @@ const struct m68k_opcode m68k_opcodes[] =
 {"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(0005200),   one(0177700), "#l$s", m68000up },
+{"eorl",       one(0005200),   one(0177700), "#lDs", mcf5200 },
 {"eorl",       one(0130600),   one(0170700), "Dd$s", m68000up | mcf5200 },
 {"eor",                one(0005074),   one(0177777), "#bCs", m68000up },
 {"eor",                one(0005174),   one(0177777), "#wSs", m68000up },
@@ -1311,23 +1320,27 @@ const struct m68k_opcode m68k_opcodes[] =
 
 {"negb",       one(0042000),   one(0177700), "$s", m68000up },
 {"negw",       one(0042100),   one(0177700), "$s", m68000up },
-{"negl",       one(0042200),   one(0177700), "$s", m68000up | mcf5200},
+{"negl",       one(0042200),   one(0177700), "$s", m68000up },
+{"negl",       one(0042200),   one(0177700), "Ds", mcf5200},
 
 {"negxb",      one(0040000),   one(0177700), "$s", m68000up },
 {"negxw",      one(0040100),   one(0177700), "$s", m68000up },
-{"negxl",      one(0040200),   one(0177700), "$s", m68000up | mcf5200},
+{"negxl",      one(0040200),   one(0177700), "$s", m68000up },
+{"negxl",      one(0040200),   one(0177700), "Ds", mcf5200},
 
 {"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 | mcf5200},
+{"notl",       one(0043200),   one(0177700), "$s", m68000up },
+{"notl",       one(0043200),   one(0177700), "Ds", 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 | mcf5200 },
+{"oril",       one(0000200),   one(0177700), "#l$s", m68000up },
+{"oril",       one(0000200),   one(0177700), "#lDs", mcf5200 },
 {"ori",                one(0000074),   one(0177777), "#bCs", m68000up },
 {"ori",                one(0000100),   one(0177700), "#w$s", m68000up },
 {"ori",                one(0000174),   one(0177777), "#wSs", m68000up },
@@ -1341,7 +1354,8 @@ const struct m68k_opcode m68k_opcodes[] =
 {"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(0000200),   one(0177700), "#l$s", m68000up },
+{"orl",                one(0000200),   one(0177700), "#lDs", 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 },
@@ -1615,22 +1629,39 @@ const struct m68k_opcode m68k_opcodes[] =
 {"sbcd",       one(0100400),           one(0170770), "DsDd", m68000up },
 {"sbcd",       one(0100410),           one(0170770), "-s-d", 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 },
+
+{"scc",                one(0052300),   one(0177700), "$s", m68000up },
+{"scc",                one(0052300),   one(0177700), "Ds", mcf5200 },
+{"scs",                one(0052700),   one(0177700), "$s", m68000up },
+{"scs",                one(0052700),   one(0177700), "Ds", mcf5200 },
+{"seq",                one(0053700),   one(0177700), "$s", m68000up },
+{"seq",                one(0053700),   one(0177700), "Ds", mcf5200 },
+{"sf",         one(0050700),   one(0177700), "$s", m68000up },
+{"sf",         one(0050700),   one(0177700), "Ds", mcf5200 },
+{"sge",                one(0056300),   one(0177700), "$s", m68000up },
+{"sge",                one(0056300),   one(0177700), "Ds", mcf5200 },
+{"sgt",                one(0057300),   one(0177700), "$s", m68000up },
+{"sgt",                one(0057300),   one(0177700), "Ds", mcf5200 },
+{"shi",                one(0051300),   one(0177700), "$s", m68000up },
+{"shi",                one(0051300),   one(0177700), "Ds", mcf5200 },
+{"sle",                one(0057700),   one(0177700), "$s", m68000up },
+{"sle",                one(0057700),   one(0177700), "Ds", mcf5200 },
+{"sls",                one(0051700),   one(0177700), "$s", m68000up },
+{"sls",                one(0051700),   one(0177700), "Ds", mcf5200 },
+{"slt",                one(0056700),   one(0177700), "$s", m68000up },
+{"slt",                one(0056700),   one(0177700), "Ds", mcf5200 },
+{"smi",                one(0055700),   one(0177700), "$s", m68000up },
+{"smi",                one(0055700),   one(0177700), "Ds", mcf5200 },
+{"sne",                one(0053300),   one(0177700), "$s", m68000up },
+{"sne",                one(0053300),   one(0177700), "Ds", mcf5200 },
+{"spl",                one(0055300),   one(0177700), "$s", m68000up },
+{"spl",                one(0055300),   one(0177700), "Ds", mcf5200 },
+{"st",         one(0050300),   one(0177700), "$s", m68000up },
+{"st",         one(0050300),   one(0177700), "Ds", mcf5200 },
+{"svc",                one(0054300),   one(0177700), "$s", m68000up },
+{"svc",                one(0054300),   one(0177700), "Ds", mcf5200 },
+{"svs",                one(0054700),   one(0177700), "$s", m68000up },
+{"svs",                one(0054700),   one(0177700), "Ds", mcf5200 },
 
 {"stop",       one(0047162),   one(0177777), "#w", m68000up | mcf5200 },
 
@@ -1639,7 +1670,8 @@ const struct m68k_opcode m68k_opcodes[] =
 
 {"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 },
+{"subil",      one(0002200),   one(0177700), "#l$s", m68000up },
+{"subil",      one(0002200),   one(0177700), "#lDs", mcf5200 },
 
 {"subqb",      one(0050400),   one(0170700), "Qd%s", m68000up },
 {"subqw",      one(0050500),   one(0170700), "Qd%s", m68000up },
@@ -1656,7 +1688,8 @@ const struct m68k_opcode m68k_opcodes[] =
 {"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(0002200),   one(0177700), "#l$s", m68000up },
+{"subl",       one(0002200),   one(0177700), "#lDs", 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 },