op[0]);
}
SYNTAX("brk");
-#line 976 "rx-decode.opc"
+#line 984 "rx-decode.opc"
ID(brk);
}
op[0]);
}
SYNTAX("dbt");
-#line 979 "rx-decode.opc"
+#line 987 "rx-decode.opc"
ID(dbt);
}
op[0], op[1]);
}
SYNTAX("int #%1");
-#line 982 "rx-decode.opc"
+#line 990 "rx-decode.opc"
ID(int); SC(IMM(1));
}
case 0x00:
{
/** 0111 0101 0111 0000 0000 immm mvtipl #%1 */
-#line 949 "rx-decode.opc"
+#line 957 "rx-decode.opc"
int immm AU = op[2] & 0x0f;
if (trace)
{
printf (" immm = 0x%x\n", immm);
}
SYNTAX("mvtipl #%1");
-#line 949 "rx-decode.opc"
+#line 957 "rx-decode.opc"
ID(mvtipl); SC(immm);
}
op_semantics_35:
{
/** 0111 100b ittt rdst bset #%1, %0 */
-#line 900 "rx-decode.opc"
+#line 902 "rx-decode.opc"
int b AU = op[0] & 0x01;
-#line 900 "rx-decode.opc"
+#line 902 "rx-decode.opc"
int ittt AU = (op[1] >> 4) & 0x0f;
-#line 900 "rx-decode.opc"
+#line 902 "rx-decode.opc"
int rdst AU = op[1] & 0x0f;
if (trace)
{
printf (" rdst = 0x%x\n", rdst);
}
SYNTAX("bset #%1, %0");
-#line 900 "rx-decode.opc"
+#line 902 "rx-decode.opc"
ID(bset); BWL(LSIZE); SC(b*16+ittt); DR(rdst); F_____;
op_semantics_36:
{
/** 0111 101b ittt rdst bclr #%1, %0 */
-#line 910 "rx-decode.opc"
+#line 914 "rx-decode.opc"
int b AU = op[0] & 0x01;
-#line 910 "rx-decode.opc"
+#line 914 "rx-decode.opc"
int ittt AU = (op[1] >> 4) & 0x0f;
-#line 910 "rx-decode.opc"
+#line 914 "rx-decode.opc"
int rdst AU = op[1] & 0x0f;
if (trace)
{
printf (" rdst = 0x%x\n", rdst);
}
SYNTAX("bclr #%1, %0");
-#line 910 "rx-decode.opc"
+#line 914 "rx-decode.opc"
ID(bclr); BWL(LSIZE); SC(b*16+ittt); DR(rdst); F_____;
op_semantics_37:
{
/** 0111 110b ittt rdst btst #%2, %1 */
-#line 920 "rx-decode.opc"
+#line 926 "rx-decode.opc"
int b AU = op[0] & 0x01;
-#line 920 "rx-decode.opc"
+#line 926 "rx-decode.opc"
int ittt AU = (op[1] >> 4) & 0x0f;
-#line 920 "rx-decode.opc"
+#line 926 "rx-decode.opc"
int rdst AU = op[1] & 0x0f;
if (trace)
{
printf (" rdst = 0x%x\n", rdst);
}
SYNTAX("btst #%2, %1");
-#line 920 "rx-decode.opc"
+#line 926 "rx-decode.opc"
ID(btst); BWL(LSIZE); S2C(b*16+ittt); SR(rdst); F___ZC;
case 0xd0:
{
/** 0111 1110 110 crsrc pushc %1 */
-#line 955 "rx-decode.opc"
+#line 963 "rx-decode.opc"
int crsrc AU = op[1] & 0x1f;
if (trace)
{
printf (" crsrc = 0x%x\n", crsrc);
}
SYNTAX("pushc %1");
-#line 955 "rx-decode.opc"
+#line 963 "rx-decode.opc"
ID(mov); OP(0, RX_Operand_Predec, 0, 0); SR(crsrc + 16);
}
case 0xf0:
{
/** 0111 1110 111 crdst popc %0 */
-#line 952 "rx-decode.opc"
+#line 960 "rx-decode.opc"
int crdst AU = op[1] & 0x1f;
if (trace)
{
printf (" crdst = 0x%x\n", crdst);
}
SYNTAX("popc %0");
-#line 952 "rx-decode.opc"
+#line 960 "rx-decode.opc"
ID(mov); OP(1, RX_Operand_Postinc, 0, 0); DR(crdst + 16);
}
op[0], op[1]);
}
SYNTAX("rtfi");
-#line 970 "rx-decode.opc"
+#line 978 "rx-decode.opc"
ID(rtfi);
}
op[0], op[1]);
}
SYNTAX("rte");
-#line 973 "rx-decode.opc"
+#line 981 "rx-decode.opc"
ID(rte);
}
op[0], op[1]);
}
SYNTAX("wait");
-#line 985 "rx-decode.opc"
+#line 993 "rx-decode.opc"
ID(wait);
/*----------------------------------------------------------------------*/
case 0xaf:
{
/** 0111 1111 1010 rdst setpsw %0 */
-#line 946 "rx-decode.opc"
+#line 954 "rx-decode.opc"
int rdst AU = op[1] & 0x0f;
if (trace)
{
printf (" rdst = 0x%x\n", rdst);
}
SYNTAX("setpsw %0");
-#line 946 "rx-decode.opc"
+#line 954 "rx-decode.opc"
ID(setpsw); DF(rdst);
}
case 0xbf:
{
/** 0111 1111 1011 rdst clrpsw %0 */
-#line 943 "rx-decode.opc"
+#line 951 "rx-decode.opc"
int rdst AU = op[1] & 0x0f;
if (trace)
{
printf (" rdst = 0x%x\n", rdst);
}
SYNTAX("clrpsw %0");
-#line 943 "rx-decode.opc"
+#line 951 "rx-decode.opc"
ID(clrpsw); DF(rdst);
}
op_semantics_43:
{
/** 1111 00sd rdst 1bit bclr #%1, %0%S0 */
-#line 904 "rx-decode.opc"
+#line 906 "rx-decode.opc"
int sd AU = op[0] & 0x03;
-#line 904 "rx-decode.opc"
+#line 906 "rx-decode.opc"
int rdst AU = (op[1] >> 4) & 0x0f;
-#line 904 "rx-decode.opc"
+#line 906 "rx-decode.opc"
int bit AU = op[1] & 0x07;
if (trace)
{
printf (" bit = 0x%x\n", bit);
}
SYNTAX("bclr #%1, %0%S0");
-#line 904 "rx-decode.opc"
+#line 906 "rx-decode.opc"
ID(bclr); BWL(BSIZE); SC(bit); DD(sd, rdst, BSIZE); F_____;
}
op_semantics_44:
{
/** 1111 01sd rdst 0bit btst #%2, %1%S1 */
-#line 914 "rx-decode.opc"
+#line 918 "rx-decode.opc"
int sd AU = op[0] & 0x03;
-#line 914 "rx-decode.opc"
+#line 918 "rx-decode.opc"
int rdst AU = (op[1] >> 4) & 0x0f;
-#line 914 "rx-decode.opc"
+#line 918 "rx-decode.opc"
int bit AU = op[1] & 0x07;
if (trace)
{
printf (" bit = 0x%x\n", bit);
}
SYNTAX("btst #%2, %1%S1");
-#line 914 "rx-decode.opc"
+#line 918 "rx-decode.opc"
ID(btst); BWL(BSIZE); S2C(bit); SD(sd, rdst, BSIZE); F___ZC;
}
SYNTAX("bset %1, %0%S0");
#line 897 "rx-decode.opc"
ID(bset); BWL(BSIZE); SR(rsrc); DD(sd, rdst, BSIZE); F_____;
+ if (sd == 3) /* bset reg,reg */
+ BWL(LSIZE);
}
break;
op_semantics_58:
{
/** 1111 1100 0110 01sd rdst rsrc bclr %1, %0%S0 */
-#line 907 "rx-decode.opc"
+#line 909 "rx-decode.opc"
int sd AU = op[1] & 0x03;
-#line 907 "rx-decode.opc"
+#line 909 "rx-decode.opc"
int rdst AU = (op[2] >> 4) & 0x0f;
-#line 907 "rx-decode.opc"
+#line 909 "rx-decode.opc"
int rsrc AU = op[2] & 0x0f;
if (trace)
{
printf (" rsrc = 0x%x\n", rsrc);
}
SYNTAX("bclr %1, %0%S0");
-#line 907 "rx-decode.opc"
+#line 909 "rx-decode.opc"
ID(bclr); BWL(BSIZE); SR(rsrc); DD(sd, rdst, BSIZE); F_____;
+ if (sd == 3) /* bset reg,reg */
+ BWL(LSIZE);
}
break;
op_semantics_59:
{
/** 1111 1100 0110 10sd rdst rsrc btst %2, %1%S1 */
-#line 917 "rx-decode.opc"
+#line 921 "rx-decode.opc"
int sd AU = op[1] & 0x03;
-#line 917 "rx-decode.opc"
+#line 921 "rx-decode.opc"
int rdst AU = (op[2] >> 4) & 0x0f;
-#line 917 "rx-decode.opc"
+#line 921 "rx-decode.opc"
int rsrc AU = op[2] & 0x0f;
if (trace)
{
printf (" rsrc = 0x%x\n", rsrc);
}
SYNTAX("btst %2, %1%S1");
-#line 917 "rx-decode.opc"
+#line 921 "rx-decode.opc"
ID(btst); BWL(BSIZE); S2R(rsrc); SD(sd, rdst, BSIZE); F___ZC;
+ if (sd == 3) /* bset reg,reg */
+ BWL(LSIZE);
}
break;
op_semantics_60:
{
/** 1111 1100 0110 11sd rdst rsrc bnot %1, %0%S0 */
-#line 927 "rx-decode.opc"
+#line 933 "rx-decode.opc"
int sd AU = op[1] & 0x03;
-#line 927 "rx-decode.opc"
+#line 933 "rx-decode.opc"
int rdst AU = (op[2] >> 4) & 0x0f;
-#line 927 "rx-decode.opc"
+#line 933 "rx-decode.opc"
int rsrc AU = op[2] & 0x0f;
if (trace)
{
printf (" rsrc = 0x%x\n", rsrc);
}
SYNTAX("bnot %1, %0%S0");
-#line 927 "rx-decode.opc"
+#line 933 "rx-decode.opc"
ID(bnot); BWL(BSIZE); SR(rsrc); DD(sd, rdst, BSIZE);
+ if (sd == 3) /* bset reg,reg */
+ BWL(LSIZE);
}
break;
op_semantics_68:
{
/** 1111 1100 1101 sz sd rdst cond sc%1%s %0 */
-#line 991 "rx-decode.opc"
+#line 999 "rx-decode.opc"
int sz AU = (op[1] >> 2) & 0x03;
-#line 991 "rx-decode.opc"
+#line 999 "rx-decode.opc"
int sd AU = op[1] & 0x03;
-#line 991 "rx-decode.opc"
+#line 999 "rx-decode.opc"
int rdst AU = (op[2] >> 4) & 0x0f;
-#line 991 "rx-decode.opc"
+#line 999 "rx-decode.opc"
int cond AU = op[2] & 0x0f;
if (trace)
{
printf (" cond = 0x%x\n", cond);
}
SYNTAX("sc%1%s %0");
-#line 991 "rx-decode.opc"
+#line 999 "rx-decode.opc"
ID(sccnd); BWL(sz); DD (sd, rdst, sz); Scc(cond);
}
op_semantics_69:
{
/** 1111 1100 111bit sd rdst cond bm%2 #%1, %0%S0 */
-#line 934 "rx-decode.opc"
+#line 942 "rx-decode.opc"
int bit AU = (op[1] >> 2) & 0x07;
-#line 934 "rx-decode.opc"
+#line 942 "rx-decode.opc"
int sd AU = op[1] & 0x03;
-#line 934 "rx-decode.opc"
+#line 942 "rx-decode.opc"
int rdst AU = (op[2] >> 4) & 0x0f;
-#line 934 "rx-decode.opc"
+#line 942 "rx-decode.opc"
int cond AU = op[2] & 0x0f;
if (trace)
{
printf (" cond = 0x%x\n", cond);
}
SYNTAX("bm%2 #%1, %0%S0");
-#line 934 "rx-decode.opc"
+#line 942 "rx-decode.opc"
ID(bmcc); BWL(BSIZE); S2cc(cond); SC(bit); DD(sd, rdst, BSIZE);
}
op_semantics_70:
{
/** 1111 1100 111bit sd rdst 1111 bnot #%1, %0%S0 */
-#line 924 "rx-decode.opc"
+#line 930 "rx-decode.opc"
int bit AU = (op[1] >> 2) & 0x07;
-#line 924 "rx-decode.opc"
+#line 930 "rx-decode.opc"
int sd AU = op[1] & 0x03;
-#line 924 "rx-decode.opc"
+#line 930 "rx-decode.opc"
int rdst AU = (op[2] >> 4) & 0x0f;
if (trace)
{
printf (" rdst = 0x%x\n", rdst);
}
SYNTAX("bnot #%1, %0%S0");
-#line 924 "rx-decode.opc"
+#line 930 "rx-decode.opc"
ID(bnot); BWL(BSIZE); SC(bit); DD(sd, rdst, BSIZE);
}
op_semantics_74:
{
/** 1111 1101 0110 100c rsrc rdst mvtc %1, %0 */
-#line 961 "rx-decode.opc"
+#line 969 "rx-decode.opc"
int c AU = op[1] & 0x01;
-#line 961 "rx-decode.opc"
+#line 969 "rx-decode.opc"
int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 961 "rx-decode.opc"
+#line 969 "rx-decode.opc"
int rdst AU = op[2] & 0x0f;
if (trace)
{
printf (" rdst = 0x%x\n", rdst);
}
SYNTAX("mvtc %1, %0");
-#line 961 "rx-decode.opc"
+#line 969 "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 964 "rx-decode.opc"
+#line 972 "rx-decode.opc"
int s AU = op[1] & 0x01;
-#line 964 "rx-decode.opc"
+#line 972 "rx-decode.opc"
int rsrc AU = (op[2] >> 4) & 0x0f;
-#line 964 "rx-decode.opc"
+#line 972 "rx-decode.opc"
int rdst AU = op[2] & 0x0f;
if (trace)
{
printf (" rdst = 0x%x\n", rdst);
}
SYNTAX("mvfc %1, %0");
-#line 964 "rx-decode.opc"
+#line 972 "rx-decode.opc"
ID(mov); SR((s*16+rsrc) + 16); DR(rdst);
/*----------------------------------------------------------------------*/
op_semantics_89:
{
/** 1111 1101 0111 im11 000crdst mvtc #%1, %0 */
-#line 958 "rx-decode.opc"
+#line 966 "rx-decode.opc"
int im AU = (op[1] >> 2) & 0x03;
-#line 958 "rx-decode.opc"
+#line 966 "rx-decode.opc"
int crdst AU = op[2] & 0x1f;
if (trace)
{
printf (" crdst = 0x%x\n", crdst);
}
SYNTAX("mvtc #%1, %0");
-#line 958 "rx-decode.opc"
+#line 966 "rx-decode.opc"
ID(mov); SC(IMMex(im)); DR(crdst + 16);
}
op_semantics_93:
{
/** 1111 1101 111 bittt cond rdst bm%2 #%1, %0%S0 */
-#line 937 "rx-decode.opc"
+#line 945 "rx-decode.opc"
int bittt AU = op[1] & 0x1f;
-#line 937 "rx-decode.opc"
+#line 945 "rx-decode.opc"
int cond AU = (op[2] >> 4) & 0x0f;
-#line 937 "rx-decode.opc"
+#line 945 "rx-decode.opc"
int rdst AU = op[2] & 0x0f;
if (trace)
{
printf (" rdst = 0x%x\n", rdst);
}
SYNTAX("bm%2 #%1, %0%S0");
-#line 937 "rx-decode.opc"
+#line 945 "rx-decode.opc"
ID(bmcc); BWL(LSIZE); S2cc(cond); SC(bittt); DR(rdst);
/*----------------------------------------------------------------------*/
op_semantics_94:
{
/** 1111 1101 111bittt 1111 rdst bnot #%1, %0 */
-#line 930 "rx-decode.opc"
+#line 938 "rx-decode.opc"
int bittt AU = op[1] & 0x1f;
-#line 930 "rx-decode.opc"
+#line 938 "rx-decode.opc"
int rdst AU = op[2] & 0x0f;
if (trace)
{
printf (" rdst = 0x%x\n", rdst);
}
SYNTAX("bnot #%1, %0");
-#line 930 "rx-decode.opc"
+#line 938 "rx-decode.opc"
ID(bnot); BWL(LSIZE); SC(bittt); DR(rdst);
break;
default: UNSUPPORTED(); break;
}
-#line 994 "rx-decode.opc"
+#line 1002 "rx-decode.opc"
return rx->n_bytes;
}