* 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.
This commit is contained in:
J.T. Conklin 1996-11-25 22:33:46 +00:00
parent a1e48de01d
commit 09d205d155
2 changed files with 71 additions and 34 deletions

View 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

View 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 },