op[0]);
}
SYNTAX("brk");
-#line 957 "rx-decode.opc"
+#line 951 "rx-decode.opc"
ID(brk);
}
op[0]);
}
SYNTAX("dbt");
-#line 960 "rx-decode.opc"
+#line 954 "rx-decode.opc"
ID(dbt);
}
op[0], op[1]);
}
SYNTAX("int #%1");
-#line 963 "rx-decode.opc"
+#line 957 "rx-decode.opc"
ID(int); SC(IMM(1));
}
break;
+ case 0x70:
+ GETBYTE ();
+ switch (op[2] & 0xf0)
+ {
+ case 0x00:
+ {
+ /** 0111 0101 0111 0000 0000 immm mvtipl #%1 */
+#line 924 "rx-decode.opc"
+ int immm AU = op[2] & 0x0f;
+ if (trace)
+ {
+ printf ("\033[33m%s\033[0m %02x %02x %02x\n",
+ "/** 0111 0101 0111 0000 0000 immm mvtipl #%1 */",
+ op[0], op[1], op[2]);
+ printf (" immm = 0x%x\n", immm);
+ }
+ SYNTAX("mvtipl #%1");
+#line 924 "rx-decode.opc"
+ ID(mvtipl); SC(immm);
+
+ }
+ break;
+ default: UNSUPPORTED(); break;
+ }
+ break;
default: UNSUPPORTED(); break;
}
break;
case 0xd0:
{
/** 0111 1110 110 crsrc pushc %1 */
-#line 927 "rx-decode.opc"
+#line 930 "rx-decode.opc"
int crsrc AU = op[1] & 0x1f;
if (trace)
{
printf (" crsrc = 0x%x\n", crsrc);
}
SYNTAX("pushc %1");
-#line 927 "rx-decode.opc"
+#line 930 "rx-decode.opc"
ID(mov); OP(0, RX_Operand_Predec, 0, 0); SR(crsrc + 16);
}
case 0xf0:
{
/** 0111 1110 111 crdst popc %0 */
-#line 924 "rx-decode.opc"
+#line 927 "rx-decode.opc"
int crdst AU = op[1] & 0x1f;
if (trace)
{
printf (" crdst = 0x%x\n", crdst);
}
SYNTAX("popc %0");
-#line 924 "rx-decode.opc"
+#line 927 "rx-decode.opc"
ID(mov); OP(1, RX_Operand_Postinc, 0, 0); DR(crdst + 16);
}
op[0], op[1]);
}
SYNTAX("rtfi");
-#line 951 "rx-decode.opc"
+#line 945 "rx-decode.opc"
ID(rtfi);
}
op[0], op[1]);
}
SYNTAX("rte");
-#line 954 "rx-decode.opc"
+#line 948 "rx-decode.opc"
ID(rte);
}
op[0], op[1]);
}
SYNTAX("wait");
-#line 966 "rx-decode.opc"
+#line 960 "rx-decode.opc"
ID(wait);
/*----------------------------------------------------------------------*/
op_semantics_68:
{
/** 1111 1100 1101 sz sd rdst cond sc%1%s %0 */
-#line 972 "rx-decode.opc"
+#line 966 "rx-decode.opc"
int sz AU = (op[1] >> 2) & 0x03;
-#line 972 "rx-decode.opc"
+#line 966 "rx-decode.opc"
int sd AU = op[1] & 0x03;
-#line 972 "rx-decode.opc"
+#line 966 "rx-decode.opc"
int rdst AU = (op[2] >> 4) & 0x0f;
-#line 972 "rx-decode.opc"
+#line 966 "rx-decode.opc"
int cond AU = op[2] & 0x0f;
if (trace)
{
printf (" cond = 0x%x\n", cond);
}
SYNTAX("sc%1%s %0");
-#line 972 "rx-decode.opc"
+#line 966 "rx-decode.opc"
ID(sccnd); BWL(sz); DD (sd, rdst, sz); Scc(cond);
}
op_semantics_74:
{
/** 1111 1101 0110 100c rsrc rdst mvtc %1, %0 */
-#line 933 "rx-decode.opc"
+#line 936 "rx-decode.opc"
int c AU = op[1] & 0x01;
-#line 933 "rx-decode.opc"
+#line 936 "rx-decode.opc"
int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 933 "rx-decode.opc"
+#line 936 "rx-decode.opc"
int rdst AU = op[2] & 0x0f;
if (trace)
{
printf (" rdst = 0x%x\n", rdst);
}
SYNTAX("mvtc %1, %0");
-#line 933 "rx-decode.opc"
+#line 936 "rx-decode.opc"
ID(mov); SR(rsrc); DR(c*16+rdst + 16);
}
op_semantics_75:
{
/** 1111 1101 0110 101s rsrc rdst mvfc %1, %0 */
-#line 936 "rx-decode.opc"
+#line 939 "rx-decode.opc"
int s AU = op[1] & 0x01;
-#line 936 "rx-decode.opc"
+#line 939 "rx-decode.opc"
int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 936 "rx-decode.opc"
+#line 939 "rx-decode.opc"
int rdst AU = op[2] & 0x0f;
if (trace)
{
printf (" rdst = 0x%x\n", rdst);
}
SYNTAX("mvfc %1, %0");
-#line 936 "rx-decode.opc"
+#line 939 "rx-decode.opc"
ID(mov); SR((s*16+rsrc) + 16); DR(rdst);
+ /*----------------------------------------------------------------------*/
+ /* INTERRUPTS */
+
}
break;
}
op_semantics_89:
{
/** 1111 1101 0111 im11 000crdst mvtc #%1, %0 */
-#line 930 "rx-decode.opc"
+#line 933 "rx-decode.opc"
int im AU = (op[1] >> 2) & 0x03;
-#line 930 "rx-decode.opc"
+#line 933 "rx-decode.opc"
int crdst AU = op[2] & 0x1f;
if (trace)
{
printf (" crdst = 0x%x\n", crdst);
}
SYNTAX("mvtc #%1, %0");
-#line 930 "rx-decode.opc"
+#line 933 "rx-decode.opc"
ID(mov); SC(IMMex(im)); DR(crdst + 16);
}
break;
default: UNSUPPORTED(); break;
}
-#line 975 "rx-decode.opc"
+#line 969 "rx-decode.opc"
return rx->n_bytes;
}