diff options
-rw-r--r-- | opcodes/rl78-decode.c | 307 |
1 files changed, 162 insertions, 145 deletions
diff --git a/opcodes/rl78-decode.c b/opcodes/rl78-decode.c index d6e2339..cb54bd4 100644 --- a/opcodes/rl78-decode.c +++ b/opcodes/rl78-decode.c @@ -263,7 +263,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("xch a, x"); -#line 1205 "rl78-decode.opc" +#line 1210 "rl78-decode.opc" ID(xch); DR(A); SR(X); /*----------------------------------------------------------------------*/ @@ -586,7 +586,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("subw %0, #%1"); -#line 1169 "rl78-decode.opc" +#line 1174 "rl78-decode.opc" ID(sub); W(); DR(SP); SC(IMMU(1)); Fzac; /*----------------------------------------------------------------------*/ @@ -599,7 +599,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x27: { /** 0010 0rw1 subw %0, %1 */ -#line 1163 "rl78-decode.opc" +#line 1168 "rl78-decode.opc" int rw AU = (op[0] >> 1) & 0x03; if (trace) { @@ -609,7 +609,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" rw = 0x%x\n", rw); } SYNTAX("subw %0, %1"); -#line 1163 "rl78-decode.opc" +#line 1168 "rl78-decode.opc" ID(sub); W(); DR(AX); SRW(rw); Fzac; } @@ -624,7 +624,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("subw %0, %e1%!1"); -#line 1154 "rl78-decode.opc" +#line 1159 "rl78-decode.opc" ID(sub); W(); DR(AX); SM(None, IMMU(2)); Fzac; } @@ -639,7 +639,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("subw %0, #%1"); -#line 1160 "rl78-decode.opc" +#line 1165 "rl78-decode.opc" ID(sub); W(); DR(AX); SC(IMMU(2)); Fzac; } @@ -654,7 +654,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("subw %0, %1"); -#line 1166 "rl78-decode.opc" +#line 1171 "rl78-decode.opc" ID(sub); W(); DR(AX); SM(None, SADDR); Fzac; } @@ -699,7 +699,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("sub %0, #%1"); -#line 1117 "rl78-decode.opc" +#line 1122 "rl78-decode.opc" ID(sub); DM(None, SADDR); SC(IMMU(1)); Fzac; /*----------------------------------------------------------------------*/ @@ -716,7 +716,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("sub %0, %1"); -#line 1111 "rl78-decode.opc" +#line 1116 "rl78-decode.opc" ID(sub); DR(A); SM(None, SADDR); Fzac; } @@ -731,7 +731,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("sub %0, #%1"); -#line 1105 "rl78-decode.opc" +#line 1110 "rl78-decode.opc" ID(sub); DR(A); SC(IMMU(1)); Fzac; } @@ -746,7 +746,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("sub %0, %e1%1"); -#line 1093 "rl78-decode.opc" +#line 1098 "rl78-decode.opc" ID(sub); DR(A); SM(HL, 0); Fzac; } @@ -761,7 +761,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("sub %0, %e1%1"); -#line 1099 "rl78-decode.opc" +#line 1104 "rl78-decode.opc" ID(sub); DR(A); SM(HL, IMMU(1)); Fzac; } @@ -776,7 +776,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("sub %0, %e1%!1"); -#line 1090 "rl78-decode.opc" +#line 1095 "rl78-decode.opc" ID(sub); DR(A); SM(None, IMMU(2)); Fzac; } @@ -923,7 +923,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x07: { /** 0011 0001 0cnt 0111 shl %0, %1 */ -#line 1046 "rl78-decode.opc" +#line 1051 "rl78-decode.opc" int cnt AU = (op[1] >> 4) & 0x07; if (trace) { @@ -933,7 +933,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" cnt = 0x%x\n", cnt); } SYNTAX("shl %0, %1"); -#line 1046 "rl78-decode.opc" +#line 1051 "rl78-decode.opc" ID(shl); DR(C); SC(cnt); } @@ -941,7 +941,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x08: { /** 0011 0001 0cnt 1000 shl %0, %1 */ -#line 1043 "rl78-decode.opc" +#line 1048 "rl78-decode.opc" int cnt AU = (op[1] >> 4) & 0x07; if (trace) { @@ -951,7 +951,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" cnt = 0x%x\n", cnt); } SYNTAX("shl %0, %1"); -#line 1043 "rl78-decode.opc" +#line 1048 "rl78-decode.opc" ID(shl); DR(B); SC(cnt); } @@ -959,7 +959,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x09: { /** 0011 0001 0cnt 1001 shl %0, %1 */ -#line 1040 "rl78-decode.opc" +#line 1045 "rl78-decode.opc" int cnt AU = (op[1] >> 4) & 0x07; if (trace) { @@ -969,7 +969,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" cnt = 0x%x\n", cnt); } SYNTAX("shl %0, %1"); -#line 1040 "rl78-decode.opc" +#line 1045 "rl78-decode.opc" ID(shl); DR(A); SC(cnt); } @@ -977,7 +977,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x0a: { /** 0011 0001 0cnt 1010 shr %0, %1 */ -#line 1057 "rl78-decode.opc" +#line 1062 "rl78-decode.opc" int cnt AU = (op[1] >> 4) & 0x07; if (trace) { @@ -987,7 +987,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" cnt = 0x%x\n", cnt); } SYNTAX("shr %0, %1"); -#line 1057 "rl78-decode.opc" +#line 1062 "rl78-decode.opc" ID(shr); DR(A); SC(cnt); } @@ -995,7 +995,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x0b: { /** 0011 0001 0cnt 1011 sar %0, %1 */ -#line 1004 "rl78-decode.opc" +#line 1009 "rl78-decode.opc" int cnt AU = (op[1] >> 4) & 0x07; if (trace) { @@ -1005,7 +1005,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" cnt = 0x%x\n", cnt); } SYNTAX("sar %0, %1"); -#line 1004 "rl78-decode.opc" +#line 1009 "rl78-decode.opc" ID(sar); DR(A); SC(cnt); } @@ -1014,7 +1014,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x8c: { /** 0011 0001 wcnt 1100 shlw %0, %1 */ -#line 1052 "rl78-decode.opc" +#line 1057 "rl78-decode.opc" int wcnt AU = (op[1] >> 4) & 0x0f; if (trace) { @@ -1024,7 +1024,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" wcnt = 0x%x\n", wcnt); } SYNTAX("shlw %0, %1"); -#line 1052 "rl78-decode.opc" +#line 1057 "rl78-decode.opc" ID(shl); W(); DR(BC); SC(wcnt); /*----------------------------------------------------------------------*/ @@ -1035,7 +1035,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x8d: { /** 0011 0001 wcnt 1101 shlw %0, %1 */ -#line 1049 "rl78-decode.opc" +#line 1054 "rl78-decode.opc" int wcnt AU = (op[1] >> 4) & 0x0f; if (trace) { @@ -1045,7 +1045,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" wcnt = 0x%x\n", wcnt); } SYNTAX("shlw %0, %1"); -#line 1049 "rl78-decode.opc" +#line 1054 "rl78-decode.opc" ID(shl); W(); DR(AX); SC(wcnt); } @@ -1054,7 +1054,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x8e: { /** 0011 0001 wcnt 1110 shrw %0, %1 */ -#line 1060 "rl78-decode.opc" +#line 1065 "rl78-decode.opc" int wcnt AU = (op[1] >> 4) & 0x0f; if (trace) { @@ -1064,7 +1064,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" wcnt = 0x%x\n", wcnt); } SYNTAX("shrw %0, %1"); -#line 1060 "rl78-decode.opc" +#line 1065 "rl78-decode.opc" ID(shr); W(); DR(AX); SC(wcnt); /*----------------------------------------------------------------------*/ @@ -1075,7 +1075,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x8f: { /** 0011 0001 wcnt 1111 sarw %0, %1 */ -#line 1007 "rl78-decode.opc" +#line 1012 "rl78-decode.opc" int wcnt AU = (op[1] >> 4) & 0x0f; if (trace) { @@ -1085,7 +1085,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" wcnt = 0x%x\n", wcnt); } SYNTAX("sarw %0, %1"); -#line 1007 "rl78-decode.opc" +#line 1012 "rl78-decode.opc" ID(sar); W(); DR(AX); SC(wcnt); /*----------------------------------------------------------------------*/ @@ -1208,7 +1208,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x37: { /** 0011 0ra1 xchw %0, %1 */ -#line 1210 "rl78-decode.opc" +#line 1215 "rl78-decode.opc" int ra AU = (op[0] >> 1) & 0x03; if (trace) { @@ -1218,7 +1218,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" ra = 0x%x\n", ra); } SYNTAX("xchw %0, %1"); -#line 1210 "rl78-decode.opc" +#line 1215 "rl78-decode.opc" ID(xch); W(); DR(AX); SRW(ra); /*----------------------------------------------------------------------*/ @@ -1265,7 +1265,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("subc %0, #%1"); -#line 1149 "rl78-decode.opc" +#line 1154 "rl78-decode.opc" ID(subc); DM(None, SADDR); SC(IMMU(1)); Fzac; /*----------------------------------------------------------------------*/ @@ -1282,7 +1282,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("subc %0, %1"); -#line 1146 "rl78-decode.opc" +#line 1151 "rl78-decode.opc" ID(subc); DR(A); SM(None, SADDR); Fzac; } @@ -1297,7 +1297,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("subc %0, #%1"); -#line 1137 "rl78-decode.opc" +#line 1142 "rl78-decode.opc" ID(subc); DR(A); SC(IMMU(1)); Fzac; } @@ -1312,7 +1312,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("subc %0, %e1%1"); -#line 1125 "rl78-decode.opc" +#line 1130 "rl78-decode.opc" ID(subc); DR(A); SM(HL, 0); Fzac; } @@ -1327,7 +1327,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("subc %0, %e1%1"); -#line 1134 "rl78-decode.opc" +#line 1139 "rl78-decode.opc" ID(subc); DR(A); SM(HL, IMMU(1)); Fzac; } @@ -1342,7 +1342,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("subc %0, %e1%!1"); -#line 1122 "rl78-decode.opc" +#line 1127 "rl78-decode.opc" ID(subc); DR(A); SM(None, IMMU(2)); Fzac; } @@ -1864,7 +1864,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x27: { /** 0110 0001 0010 0reg sub %0, %1 */ -#line 1114 "rl78-decode.opc" +#line 1119 "rl78-decode.opc" int reg AU = op[1] & 0x07; if (trace) { @@ -1874,7 +1874,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" reg = 0x%x\n", reg); } SYNTAX("sub %0, %1"); -#line 1114 "rl78-decode.opc" +#line 1119 "rl78-decode.opc" ID(sub); DRB(reg); SR(A); Fzac; } @@ -1888,7 +1888,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x2f: { /** 0110 0001 0010 1rba sub %0, %1 */ -#line 1108 "rl78-decode.opc" +#line 1113 "rl78-decode.opc" int rba AU = op[1] & 0x07; if (trace) { @@ -1898,7 +1898,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" rba = 0x%x\n", rba); } SYNTAX("sub %0, %1"); -#line 1108 "rl78-decode.opc" +#line 1113 "rl78-decode.opc" ID(sub); DR(A); SRB(rba); Fzac; } @@ -1913,7 +1913,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("subw %0, %e1%1"); -#line 1157 "rl78-decode.opc" +#line 1162 "rl78-decode.opc" ID(sub); W(); DR(AX); SM(HL, IMMU(1)); Fzac; } @@ -1928,7 +1928,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x37: { /** 0110 0001 0011 0reg subc %0, %1 */ -#line 1143 "rl78-decode.opc" +#line 1148 "rl78-decode.opc" int reg AU = op[1] & 0x07; if (trace) { @@ -1938,7 +1938,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" reg = 0x%x\n", reg); } SYNTAX("subc %0, %1"); -#line 1143 "rl78-decode.opc" +#line 1148 "rl78-decode.opc" ID(subc); DRB(reg); SR(A); Fzac; } @@ -1952,7 +1952,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x3f: { /** 0110 0001 0011 1rba subc %0, %1 */ -#line 1140 "rl78-decode.opc" +#line 1145 "rl78-decode.opc" int rba AU = op[1] & 0x07; if (trace) { @@ -1962,7 +1962,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" rba = 0x%x\n", rba); } SYNTAX("subc %0, %1"); -#line 1140 "rl78-decode.opc" +#line 1145 "rl78-decode.opc" ID(subc); DR(A); SRB(rba); Fzac; } @@ -2105,7 +2105,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x67: { /** 0110 0001 0110 0reg or %0, %1 */ -#line 932 "rl78-decode.opc" +#line 937 "rl78-decode.opc" int reg AU = op[1] & 0x07; if (trace) { @@ -2115,7 +2115,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" reg = 0x%x\n", reg); } SYNTAX("or %0, %1"); -#line 932 "rl78-decode.opc" +#line 937 "rl78-decode.opc" ID(or); DRB(reg); SR(A); Fz; } @@ -2129,7 +2129,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x6f: { /** 0110 0001 0110 1rba or %0, %1 */ -#line 929 "rl78-decode.opc" +#line 934 "rl78-decode.opc" int rba AU = op[1] & 0x07; if (trace) { @@ -2139,7 +2139,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" rba = 0x%x\n", rba); } SYNTAX("or %0, %1"); -#line 929 "rl78-decode.opc" +#line 934 "rl78-decode.opc" ID(or); DR(A); SRB(rba); Fz; } @@ -2169,7 +2169,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x77: { /** 0110 0001 0111 0reg xor %0, %1 */ -#line 1236 "rl78-decode.opc" +#line 1241 "rl78-decode.opc" int reg AU = op[1] & 0x07; if (trace) { @@ -2179,7 +2179,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" reg = 0x%x\n", reg); } SYNTAX("xor %0, %1"); -#line 1236 "rl78-decode.opc" +#line 1241 "rl78-decode.opc" ID(xor); DRB(reg); SR(A); Fz; } @@ -2193,7 +2193,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x7f: { /** 0110 0001 0111 1rba xor %0, %1 */ -#line 1233 "rl78-decode.opc" +#line 1238 "rl78-decode.opc" int rba AU = op[1] & 0x07; if (trace) { @@ -2203,7 +2203,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" rba = 0x%x\n", rba); } SYNTAX("xor %0, %1"); -#line 1233 "rl78-decode.opc" +#line 1238 "rl78-decode.opc" ID(xor); DR(A); SRB(rba); Fz; } @@ -2317,7 +2317,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x8f: { /** 0110 0001 1000 1reg xch %0, %1 */ -#line 1195 "rl78-decode.opc" +#line 1200 "rl78-decode.opc" int reg AU = op[1] & 0x07; if (trace) { @@ -2327,7 +2327,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" reg = 0x%x\n", reg); } SYNTAX("xch %0, %1"); -#line 1195 "rl78-decode.opc" +#line 1200 "rl78-decode.opc" /* Note: DECW uses reg == X, so this must follow DECW */ ID(xch); DR(A); SRB(reg); @@ -2389,7 +2389,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("sub %0, %e1%1"); -#line 1096 "rl78-decode.opc" +#line 1101 "rl78-decode.opc" ID(sub); DR(A); SM2(HL, B, 0); Fzac; } @@ -2404,7 +2404,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("sub %0, %e1%1"); -#line 1102 "rl78-decode.opc" +#line 1107 "rl78-decode.opc" ID(sub); DR(A); SM2(HL, C, 0); Fzac; } @@ -2419,7 +2419,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("xch %0, %1"); -#line 1199 "rl78-decode.opc" +#line 1204 "rl78-decode.opc" ID(xch); DR(A); SM(None, SADDR); } @@ -2434,7 +2434,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("xch %0, %e1%1"); -#line 1192 "rl78-decode.opc" +#line 1197 "rl78-decode.opc" ID(xch); DR(A); SM2(HL, C, 0); } @@ -2449,7 +2449,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("xch %0, %e1%!1"); -#line 1174 "rl78-decode.opc" +#line 1179 "rl78-decode.opc" ID(xch); DR(A); SM(None, IMMU(2)); } @@ -2464,7 +2464,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("xch %0, %1"); -#line 1202 "rl78-decode.opc" +#line 1207 "rl78-decode.opc" ID(xch); DR(A); SM(None, SFR); } @@ -2479,7 +2479,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("xch %0, %e1%1"); -#line 1183 "rl78-decode.opc" +#line 1188 "rl78-decode.opc" ID(xch); DR(A); SM(HL, 0); } @@ -2494,7 +2494,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("xch %0, %e1%1"); -#line 1189 "rl78-decode.opc" +#line 1194 "rl78-decode.opc" ID(xch); DR(A); SM(HL, IMMU(1)); } @@ -2509,7 +2509,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("xch %0, %e1%1"); -#line 1177 "rl78-decode.opc" +#line 1182 "rl78-decode.opc" ID(xch); DR(A); SM(DE, 0); } @@ -2524,7 +2524,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("xch %0, %e1%1"); -#line 1180 "rl78-decode.opc" +#line 1185 "rl78-decode.opc" ID(xch); DR(A); SM(DE, IMMU(1)); } @@ -2539,7 +2539,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("subc %0, %e1%1"); -#line 1128 "rl78-decode.opc" +#line 1133 "rl78-decode.opc" ID(subc); DR(A); SM2(HL, B, 0); Fzac; } @@ -2554,7 +2554,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("subc %0, %e1%1"); -#line 1131 "rl78-decode.opc" +#line 1136 "rl78-decode.opc" ID(subc); DR(A); SM2(HL, C, 0); Fzac; } @@ -2584,7 +2584,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("xch %0, %e1%1"); -#line 1186 "rl78-decode.opc" +#line 1191 "rl78-decode.opc" ID(xch); DR(A); SM2(HL, B, 0); } @@ -2644,7 +2644,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("sk%c1"); -#line 1065 "rl78-decode.opc" +#line 1070 "rl78-decode.opc" ID(skip); COND(C); } @@ -2729,7 +2729,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("pop %s0"); -#line 960 "rl78-decode.opc" +#line 965 "rl78-decode.opc" ID(mov); W(); DR(PSW); SPOP(); /*----------------------------------------------------------------------*/ @@ -2759,7 +2759,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0xff: { /** 0110 0001 11rb 1111 sel rb%1 */ -#line 1012 "rl78-decode.opc" +#line 1017 "rl78-decode.opc" int rb AU = (op[1] >> 4) & 0x03; if (trace) { @@ -2769,7 +2769,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" rb = 0x%x\n", rb); } SYNTAX("sel rb%1"); -#line 1012 "rl78-decode.opc" +#line 1017 "rl78-decode.opc" ID(sel); SC(rb); /*----------------------------------------------------------------------*/ @@ -2831,7 +2831,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("sk%c1"); -#line 1071 "rl78-decode.opc" +#line 1076 "rl78-decode.opc" ID(skip); COND(NC); } @@ -2861,7 +2861,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("ror %0, %1"); -#line 993 "rl78-decode.opc" +#line 998 "rl78-decode.opc" ID(ror); DR(A); SC(1); } @@ -2876,7 +2876,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("rolc %0, %1"); -#line 987 "rl78-decode.opc" +#line 992 "rl78-decode.opc" ID(rolc); DR(A); SC(1); } @@ -2891,7 +2891,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("push %s1"); -#line 968 "rl78-decode.opc" +#line 973 "rl78-decode.opc" ID(mov); W(); DPUSH(); SR(PSW); /*----------------------------------------------------------------------*/ @@ -2925,7 +2925,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("or %0, %e1%1"); -#line 917 "rl78-decode.opc" +#line 922 "rl78-decode.opc" ID(or); DR(A); SM2(HL, B, 0); Fz; } @@ -2940,7 +2940,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("or %0, %e1%1"); -#line 923 "rl78-decode.opc" +#line 928 "rl78-decode.opc" ID(or); DR(A); SM2(HL, C, 0); Fz; } @@ -2955,7 +2955,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("sk%c1"); -#line 1068 "rl78-decode.opc" +#line 1073 "rl78-decode.opc" ID(skip); COND(H); } @@ -2970,7 +2970,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("sk%c1"); -#line 1080 "rl78-decode.opc" +#line 1085 "rl78-decode.opc" ID(skip); COND(Z); /*----------------------------------------------------------------------*/ @@ -3002,7 +3002,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("rol %0, %1"); -#line 984 "rl78-decode.opc" +#line 989 "rl78-decode.opc" ID(rol); DR(A); SC(1); } @@ -3017,7 +3017,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("retb"); -#line 979 "rl78-decode.opc" +#line 984 "rl78-decode.opc" ID(reti); /*----------------------------------------------------------------------*/ @@ -3045,7 +3045,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0xfe: { /** 0110 0001 111r 1110 rolwc %0, %1 */ -#line 990 "rl78-decode.opc" +#line 995 "rl78-decode.opc" int r AU = (op[1] >> 4) & 0x01; if (trace) { @@ -3055,7 +3055,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" r = 0x%x\n", r); } SYNTAX("rolwc %0, %1"); -#line 990 "rl78-decode.opc" +#line 995 "rl78-decode.opc" ID(rolc); W(); DRW(r); SC(1); } @@ -3070,7 +3070,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("xor %0, %e1%1"); -#line 1221 "rl78-decode.opc" +#line 1226 "rl78-decode.opc" ID(xor); DR(A); SM2(HL, B, 0); Fz; } @@ -3085,7 +3085,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("xor %0, %e1%1"); -#line 1227 "rl78-decode.opc" +#line 1232 "rl78-decode.opc" ID(xor); DR(A); SM2(HL, C, 0); Fz; } @@ -3100,7 +3100,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("sk%c1"); -#line 1074 "rl78-decode.opc" +#line 1079 "rl78-decode.opc" ID(skip); COND(NH); } @@ -3115,7 +3115,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("sk%c1"); -#line 1077 "rl78-decode.opc" +#line 1082 "rl78-decode.opc" ID(skip); COND(NZ); } @@ -3145,7 +3145,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("rorc %0, %1"); -#line 996 "rl78-decode.opc" +#line 1001 "rl78-decode.opc" ID(rorc); DR(A); SC(1); /*----------------------------------------------------------------------*/ @@ -3165,7 +3165,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("reti"); -#line 976 "rl78-decode.opc" +#line 981 "rl78-decode.opc" ID(reti); } @@ -3180,7 +3180,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("stop"); -#line 1085 "rl78-decode.opc" +#line 1090 "rl78-decode.opc" ID(stop); /*----------------------------------------------------------------------*/ @@ -3230,7 +3230,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("or %0, #%1"); -#line 938 "rl78-decode.opc" +#line 943 "rl78-decode.opc" ID(or); DM(None, SADDR); SC(IMMU(1)); Fz; /*----------------------------------------------------------------------*/ @@ -3247,7 +3247,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("or %0, %1"); -#line 935 "rl78-decode.opc" +#line 940 "rl78-decode.opc" ID(or); DR(A); SM(None, SADDR); Fz; } @@ -3262,7 +3262,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("or %0, #%1"); -#line 926 "rl78-decode.opc" +#line 931 "rl78-decode.opc" ID(or); DR(A); SC(IMMU(1)); Fz; } @@ -3277,7 +3277,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("or %0, %e1%1"); -#line 914 "rl78-decode.opc" +#line 919 "rl78-decode.opc" ID(or); DR(A); SM(HL, 0); Fz; } @@ -3292,7 +3292,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("or %0, %e1%1"); -#line 920 "rl78-decode.opc" +#line 925 "rl78-decode.opc" ID(or); DR(A); SM(HL, IMMU(1)); Fz; } @@ -3307,7 +3307,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("or %0, %e1%!1"); -#line 911 "rl78-decode.opc" +#line 916 "rl78-decode.opc" ID(or); DR(A); SM(None, IMMU(2)); Fz; } @@ -3350,7 +3350,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x70: { /** 0111 0001 0bit 0000 set1 %e0%!0 */ -#line 1017 "rl78-decode.opc" +#line 1022 "rl78-decode.opc" int bit AU = (op[1] >> 4) & 0x07; if (trace) { @@ -3360,7 +3360,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" bit = 0x%x\n", bit); } SYNTAX("set1 %e0%!0"); -#line 1017 "rl78-decode.opc" +#line 1022 "rl78-decode.opc" ID(mov); DM(None, IMMU(2)); DB(bit); SC(1); } @@ -3400,7 +3400,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x72: { /** 0111 0001 0bit 0010 set1 %0 */ -#line 1035 "rl78-decode.opc" +#line 1040 "rl78-decode.opc" int bit AU = (op[1] >> 4) & 0x07; if (trace) { @@ -3410,7 +3410,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" bit = 0x%x\n", bit); } SYNTAX("set1 %0"); -#line 1035 "rl78-decode.opc" +#line 1040 "rl78-decode.opc" ID(mov); DM(None, SADDR); DB(bit); SC(1); /*----------------------------------------------------------------------*/ @@ -3509,7 +3509,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x76: { /** 0111 0001 0bit 0110 or1 cy, %s1 */ -#line 952 "rl78-decode.opc" +#line 957 "rl78-decode.opc" int bit AU = (op[1] >> 4) & 0x07; if (trace) { @@ -3519,7 +3519,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" bit = 0x%x\n", bit); } SYNTAX("or1 cy, %s1"); -#line 952 "rl78-decode.opc" +#line 957 "rl78-decode.opc" ID(or); DCY(); SM(None, SADDR); SB(bit); /*----------------------------------------------------------------------*/ @@ -3536,7 +3536,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x77: { /** 0111 0001 0bit 0111 xor1 cy, %s1 */ -#line 1256 "rl78-decode.opc" +#line 1261 "rl78-decode.opc" int bit AU = (op[1] >> 4) & 0x07; if (trace) { @@ -3546,7 +3546,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" bit = 0x%x\n", bit); } SYNTAX("xor1 cy, %s1"); -#line 1256 "rl78-decode.opc" +#line 1261 "rl78-decode.opc" ID(xor); DCY(); SM(None, SADDR); SB(bit); /*----------------------------------------------------------------------*/ @@ -3615,7 +3615,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x7a: { /** 0111 0001 0bit 1010 set1 %s0 */ -#line 1029 "rl78-decode.opc" +#line 1034 "rl78-decode.opc" int bit AU = (op[1] >> 4) & 0x07; if (trace) { @@ -3625,7 +3625,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" bit = 0x%x\n", bit); } SYNTAX("set1 %s0"); -#line 1029 "rl78-decode.opc" +#line 1034 "rl78-decode.opc" op0 = SFR; ID(mov); DM(None, op0); DB(bit); SC(1); if (op0 == RL78_SFR_PSW && bit == 7) @@ -3721,7 +3721,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x7e: { /** 0111 0001 0bit 1110 or1 cy, %s1 */ -#line 949 "rl78-decode.opc" +#line 954 "rl78-decode.opc" int bit AU = (op[1] >> 4) & 0x07; if (trace) { @@ -3731,7 +3731,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" bit = 0x%x\n", bit); } SYNTAX("or1 cy, %s1"); -#line 949 "rl78-decode.opc" +#line 954 "rl78-decode.opc" ID(or); DCY(); SM(None, SFR); SB(bit); } @@ -3746,7 +3746,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0x7f: { /** 0111 0001 0bit 1111 xor1 cy, %s1 */ -#line 1253 "rl78-decode.opc" +#line 1258 "rl78-decode.opc" int bit AU = (op[1] >> 4) & 0x07; if (trace) { @@ -3756,7 +3756,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" bit = 0x%x\n", bit); } SYNTAX("xor1 cy, %s1"); -#line 1253 "rl78-decode.opc" +#line 1258 "rl78-decode.opc" ID(xor); DCY(); SM(None, SFR); SB(bit); } @@ -3771,7 +3771,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("set1 cy"); -#line 1026 "rl78-decode.opc" +#line 1031 "rl78-decode.opc" ID(mov); DCY(); SC(1); } @@ -3811,7 +3811,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0xf2: { /** 0111 0001 1bit 0010 set1 %e0%0 */ -#line 1020 "rl78-decode.opc" +#line 1025 "rl78-decode.opc" int bit AU = (op[1] >> 4) & 0x07; if (trace) { @@ -3821,7 +3821,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" bit = 0x%x\n", bit); } SYNTAX("set1 %e0%0"); -#line 1020 "rl78-decode.opc" +#line 1025 "rl78-decode.opc" ID(mov); DM(HL, 0); DB(bit); SC(1); } @@ -3911,7 +3911,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0xf6: { /** 0111 0001 1bit 0110 or1 cy, %e1%1 */ -#line 943 "rl78-decode.opc" +#line 948 "rl78-decode.opc" int bit AU = (op[1] >> 4) & 0x07; if (trace) { @@ -3921,7 +3921,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" bit = 0x%x\n", bit); } SYNTAX("or1 cy, %e1%1"); -#line 943 "rl78-decode.opc" +#line 948 "rl78-decode.opc" ID(or); DCY(); SM(HL, 0); SB(bit); } @@ -3936,7 +3936,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0xf7: { /** 0111 0001 1bit 0111 xor1 cy, %e1%1 */ -#line 1247 "rl78-decode.opc" +#line 1252 "rl78-decode.opc" int bit AU = (op[1] >> 4) & 0x07; if (trace) { @@ -3946,7 +3946,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" bit = 0x%x\n", bit); } SYNTAX("xor1 cy, %e1%1"); -#line 1247 "rl78-decode.opc" +#line 1252 "rl78-decode.opc" ID(xor); DCY(); SM(HL, 0); SB(bit); } @@ -4001,7 +4001,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0xfa: { /** 0111 0001 1bit 1010 set1 %0 */ -#line 1023 "rl78-decode.opc" +#line 1028 "rl78-decode.opc" int bit AU = (op[1] >> 4) & 0x07; if (trace) { @@ -4011,7 +4011,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" bit = 0x%x\n", bit); } SYNTAX("set1 %0"); -#line 1023 "rl78-decode.opc" +#line 1028 "rl78-decode.opc" ID(mov); DR(A); DB(bit); SC(1); } @@ -4101,7 +4101,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0xfe: { /** 0111 0001 1bit 1110 or1 cy, %1 */ -#line 946 "rl78-decode.opc" +#line 951 "rl78-decode.opc" int bit AU = (op[1] >> 4) & 0x07; if (trace) { @@ -4111,7 +4111,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" bit = 0x%x\n", bit); } SYNTAX("or1 cy, %1"); -#line 946 "rl78-decode.opc" +#line 951 "rl78-decode.opc" ID(or); DCY(); SR(A); SB(bit); } @@ -4126,7 +4126,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0xff: { /** 0111 0001 1bit 1111 xor1 cy, %1 */ -#line 1250 "rl78-decode.opc" +#line 1255 "rl78-decode.opc" int bit AU = (op[1] >> 4) & 0x07; if (trace) { @@ -4136,11 +4136,28 @@ rl78_decode_opcode (unsigned long pc AU, printf (" bit = 0x%x\n", bit); } SYNTAX("xor1 cy, %1"); -#line 1250 "rl78-decode.opc" +#line 1255 "rl78-decode.opc" ID(xor); DCY(); SR(A); SB(bit); } break; + case 0xc0: + { + /** 0111 0001 1100 0000 not1 cy */ + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x\n", + "/** 0111 0001 1100 0000 not1 cy */", + op[0], op[1]); + } + SYNTAX("not1 cy"); +#line 892 "rl78-decode.opc" + ID(xor); DCY(); SC(1); + + /*----------------------------------------------------------------------*/ + + } + break; default: UNSUPPORTED(); break; } break; @@ -4184,7 +4201,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("xor %0, #%1"); -#line 1242 "rl78-decode.opc" +#line 1247 "rl78-decode.opc" ID(xor); DM(None, SADDR); SC(IMMU(1)); Fz; /*----------------------------------------------------------------------*/ @@ -4201,7 +4218,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("xor %0, %1"); -#line 1239 "rl78-decode.opc" +#line 1244 "rl78-decode.opc" ID(xor); DR(A); SM(None, SADDR); Fz; } @@ -4216,7 +4233,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("xor %0, #%1"); -#line 1230 "rl78-decode.opc" +#line 1235 "rl78-decode.opc" ID(xor); DR(A); SC(IMMU(1)); Fz; } @@ -4231,7 +4248,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("xor %0, %e1%1"); -#line 1218 "rl78-decode.opc" +#line 1223 "rl78-decode.opc" ID(xor); DR(A); SM(HL, 0); Fz; } @@ -4246,7 +4263,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("xor %0, %e1%1"); -#line 1224 "rl78-decode.opc" +#line 1229 "rl78-decode.opc" ID(xor); DR(A); SM(HL, IMMU(1)); Fz; } @@ -4261,7 +4278,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("xor %0, %e1%!1"); -#line 1215 "rl78-decode.opc" +#line 1220 "rl78-decode.opc" ID(xor); DR(A); SM(None, IMMU(2)); Fz; } @@ -4977,7 +4994,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0xc6: { /** 1100 0rg0 pop %0 */ -#line 957 "rl78-decode.opc" +#line 962 "rl78-decode.opc" int rg AU = (op[0] >> 1) & 0x03; if (trace) { @@ -4987,7 +5004,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" rg = 0x%x\n", rg); } SYNTAX("pop %0"); -#line 957 "rl78-decode.opc" +#line 962 "rl78-decode.opc" ID(mov); W(); DRW(rg); SPOP(); } @@ -4998,7 +5015,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0xc7: { /** 1100 0rg1 push %1 */ -#line 965 "rl78-decode.opc" +#line 970 "rl78-decode.opc" int rg AU = (op[0] >> 1) & 0x03; if (trace) { @@ -5008,7 +5025,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" rg = 0x%x\n", rg); } SYNTAX("push %1"); -#line 965 "rl78-decode.opc" +#line 970 "rl78-decode.opc" ID(mov); W(); DPUSH(); SRW(rg); } @@ -5237,7 +5254,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("ret"); -#line 973 "rl78-decode.opc" +#line 978 "rl78-decode.opc" ID(ret); } @@ -5380,7 +5397,7 @@ rl78_decode_opcode (unsigned long pc AU, case 0xe3: { /** 1110 00rg oneb %0 */ -#line 895 "rl78-decode.opc" +#line 900 "rl78-decode.opc" int rg AU = op[0] & 0x03; if (trace) { @@ -5390,7 +5407,7 @@ rl78_decode_opcode (unsigned long pc AU, printf (" rg = 0x%x\n", rg); } SYNTAX("oneb %0"); -#line 895 "rl78-decode.opc" +#line 900 "rl78-decode.opc" ID(mov); DRB(rg); SC(1); } @@ -5405,7 +5422,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("oneb %0"); -#line 898 "rl78-decode.opc" +#line 903 "rl78-decode.opc" ID(mov); DM(None, SADDR); SC(1); /*----------------------------------------------------------------------*/ @@ -5422,7 +5439,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("oneb %e0%!0"); -#line 892 "rl78-decode.opc" +#line 897 "rl78-decode.opc" ID(mov); DM(None, IMMU(2)); SC(1); } @@ -5437,7 +5454,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("onew %0"); -#line 903 "rl78-decode.opc" +#line 908 "rl78-decode.opc" ID(mov); DR(AX); SC(1); } @@ -5452,7 +5469,7 @@ rl78_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("onew %0"); -#line 906 "rl78-decode.opc" +#line 911 "rl78-decode.opc" ID(mov); DR(BC); SC(1); /*----------------------------------------------------------------------*/ @@ -5725,7 +5742,7 @@ rl78_decode_opcode (unsigned long pc AU, } break; } -#line 1261 "rl78-decode.opc" +#line 1266 "rl78-decode.opc" return rl78->n_bytes; } |