+ /** 1111 1101 0010 0111 rdst rsrc movco %1, [%0] */
+#line 1046 "rx-decode.opc"
+ int rdst AU = (op[2] >> 4) & 0x0f;
+#line 1046 "rx-decode.opc"
+ int rsrc AU = op[2] & 0x0f;
+ if (trace)
+ {
+ printf ("\033[33m%s\033[0m %02x %02x %02x\n",
+ "/** 1111 1101 0010 0111 rdst rsrc movco %1, [%0] */",
+ op[0], op[1], op[2]);
+ printf (" rdst = 0x%x,", rdst);
+ printf (" rsrc = 0x%x\n", rsrc);
+ }
+ SYNTAX("movco %1, [%0]");
+#line 1046 "rx-decode.opc"
+ ID(movco); SR(rsrc); DR(rdst); F_____;
+
+ }
+ break;
+ }
+ break;
+ case 0x28:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ op_semantics_88:
+ {
+ /** 1111 1101 0010 1p sz rsrc rdst mov%s %1, %0 */
+#line 348 "rx-decode.opc"
+ int p AU = (op[1] >> 2) & 0x01;
+#line 348 "rx-decode.opc"
+ int sz AU = op[1] & 0x03;
+#line 348 "rx-decode.opc"
+ int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 348 "rx-decode.opc"
+ int rdst AU = op[2] & 0x0f;
+ if (trace)
+ {
+ printf ("\033[33m%s\033[0m %02x %02x %02x\n",
+ "/** 1111 1101 0010 1p sz rsrc rdst mov%s %1, %0 */",
+ op[0], op[1], op[2]);
+ printf (" p = 0x%x,", p);
+ printf (" sz = 0x%x,", sz);
+ printf (" rsrc = 0x%x,", rsrc);
+ printf (" rdst = 0x%x\n", rdst);
+ }
+ SYNTAX("mov%s %1, %0");
+#line 348 "rx-decode.opc"
+ ID(mov); sBWL (sz); DR(rdst); F_____;
+ OP(1, p ? RX_Operand_Predec : RX_Operand_Postinc, rsrc, 0);
+
+ }
+ break;
+ }
+ break;
+ case 0x29:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ goto op_semantics_88;
+ break;
+ }
+ break;
+ case 0x2a:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ goto op_semantics_88;
+ break;
+ }
+ break;
+ case 0x2c:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ goto op_semantics_88;
+ break;
+ }
+ break;
+ case 0x2d:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ goto op_semantics_88;
+ break;
+ }
+ break;
+ case 0x2e:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ goto op_semantics_88;
+ break;
+ }
+ break;
+ case 0x2f:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ {
+ /** 1111 1101 0010 1111 rsrc rdst movli [%1], %0 */
+#line 1049 "rx-decode.opc"
+ int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 1049 "rx-decode.opc"
+ int rdst AU = op[2] & 0x0f;
+ if (trace)
+ {
+ printf ("\033[33m%s\033[0m %02x %02x %02x\n",
+ "/** 1111 1101 0010 1111 rsrc rdst movli [%1], %0 */",
+ op[0], op[1], op[2]);
+ printf (" rsrc = 0x%x,", rsrc);
+ printf (" rdst = 0x%x\n", rdst);
+ }
+ SYNTAX("movli [%1], %0");
+#line 1049 "rx-decode.opc"
+ ID(movli); SR(rsrc); DR(rdst); F_____;
+
+ }
+ break;
+ }
+ break;
+ case 0x38:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ op_semantics_89:
+ {
+ /** 1111 1101 0011 1p sz rsrc rdst movu%s %1, %0 */
+#line 358 "rx-decode.opc"
+ int p AU = (op[1] >> 2) & 0x01;
+#line 358 "rx-decode.opc"
+ int sz AU = op[1] & 0x03;
+#line 358 "rx-decode.opc"
+ int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 358 "rx-decode.opc"
+ int rdst AU = op[2] & 0x0f;
+ if (trace)
+ {
+ printf ("\033[33m%s\033[0m %02x %02x %02x\n",
+ "/** 1111 1101 0011 1p sz rsrc rdst movu%s %1, %0 */",
+ op[0], op[1], op[2]);
+ printf (" p = 0x%x,", p);
+ printf (" sz = 0x%x,", sz);
+ printf (" rsrc = 0x%x,", rsrc);
+ printf (" rdst = 0x%x\n", rdst);
+ }
+ SYNTAX("movu%s %1, %0");
+#line 358 "rx-decode.opc"
+ ID(mov); uBW (sz); DR(rdst); F_____;
+ OP(1, p ? RX_Operand_Predec : RX_Operand_Postinc, rsrc, 0);
+
+ /*----------------------------------------------------------------------*/
+ /* PUSH/POP */
+
+ }
+ break;
+ }
+ break;
+ case 0x39:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ goto op_semantics_89;
+ break;
+ }
+ break;
+ case 0x3a:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ goto op_semantics_89;
+ break;
+ }
+ break;
+ case 0x3c:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ goto op_semantics_89;
+ break;
+ }
+ break;
+ case 0x3d:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ goto op_semantics_89;
+ break;
+ }
+ break;
+ case 0x3e:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ goto op_semantics_89;
+ break;
+ }
+ break;
+ case 0x44:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ op_semantics_90:
+ {
+ /** 1111 1101 0100 a100 srca srcb msbhi %1, %2, %0 */
+#line 1070 "rx-decode.opc"
+ int a AU = (op[1] >> 3) & 0x01;
+#line 1070 "rx-decode.opc"
+ int srca AU = (op[2] >> 4) & 0x0f;
+#line 1070 "rx-decode.opc"
+ int srcb AU = op[2] & 0x0f;
+ if (trace)
+ {
+ printf ("\033[33m%s\033[0m %02x %02x %02x\n",
+ "/** 1111 1101 0100 a100 srca srcb msbhi %1, %2, %0 */",
+ op[0], op[1], op[2]);
+ printf (" a = 0x%x,", a);
+ printf (" srca = 0x%x,", srca);
+ printf (" srcb = 0x%x\n", srcb);
+ }
+ SYNTAX("msbhi %1, %2, %0");
+#line 1070 "rx-decode.opc"
+ ID(msbhi); DR(a+32); SR(srca); S2R(srcb); F_____;
+
+ }
+ break;
+ }
+ break;
+ case 0x45:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ op_semantics_91:
+ {
+ /** 1111 1101 0100 a101 srca srcb msblo %1, %2, %0 */
+#line 1076 "rx-decode.opc"
+ int a AU = (op[1] >> 3) & 0x01;
+#line 1076 "rx-decode.opc"
+ int srca AU = (op[2] >> 4) & 0x0f;
+#line 1076 "rx-decode.opc"
+ int srcb AU = op[2] & 0x0f;
+ if (trace)
+ {
+ printf ("\033[33m%s\033[0m %02x %02x %02x\n",
+ "/** 1111 1101 0100 a101 srca srcb msblo %1, %2, %0 */",
+ op[0], op[1], op[2]);
+ printf (" a = 0x%x,", a);
+ printf (" srca = 0x%x,", srca);
+ printf (" srcb = 0x%x\n", srcb);
+ }
+ SYNTAX("msblo %1, %2, %0");
+#line 1076 "rx-decode.opc"
+ ID(msblo); DR(a+32); SR(srca); S2R(srcb); F_____;
+
+ }
+ break;
+ }
+ break;
+ case 0x46:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ op_semantics_92:
+ {
+ /** 1111 1101 0100 a110 srca srcb msblh %1, %2, %0 */
+#line 1073 "rx-decode.opc"
+ int a AU = (op[1] >> 3) & 0x01;
+#line 1073 "rx-decode.opc"
+ int srca AU = (op[2] >> 4) & 0x0f;
+#line 1073 "rx-decode.opc"
+ int srcb AU = op[2] & 0x0f;
+ if (trace)
+ {
+ printf ("\033[33m%s\033[0m %02x %02x %02x\n",
+ "/** 1111 1101 0100 a110 srca srcb msblh %1, %2, %0 */",
+ op[0], op[1], op[2]);
+ printf (" a = 0x%x,", a);
+ printf (" srca = 0x%x,", srca);
+ printf (" srcb = 0x%x\n", srcb);
+ }
+ SYNTAX("msblh %1, %2, %0");
+#line 1073 "rx-decode.opc"
+ ID(msblh); DR(a+32); SR(srca); S2R(srcb); F_____;
+
+ }
+ break;
+ }
+ break;
+ case 0x47:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ op_semantics_93:
+ {
+ /** 1111 1101 0100 a111 srca srcb emsba %1, %2, %0 */
+#line 1061 "rx-decode.opc"
+ int a AU = (op[1] >> 3) & 0x01;
+#line 1061 "rx-decode.opc"
+ int srca AU = (op[2] >> 4) & 0x0f;
+#line 1061 "rx-decode.opc"
+ int srcb AU = op[2] & 0x0f;
+ if (trace)
+ {
+ printf ("\033[33m%s\033[0m %02x %02x %02x\n",
+ "/** 1111 1101 0100 a111 srca srcb emsba %1, %2, %0 */",
+ op[0], op[1], op[2]);
+ printf (" a = 0x%x,", a);
+ printf (" srca = 0x%x,", srca);
+ printf (" srcb = 0x%x\n", srcb);
+ }
+ SYNTAX("emsba %1, %2, %0");
+#line 1061 "rx-decode.opc"
+ ID(emsba); DR(a+32); SR(srca); S2R(srcb); F_____;
+
+ }
+ break;
+ }
+ break;
+ case 0x4c:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ goto op_semantics_90;
+ break;
+ }
+ break;
+ case 0x4d:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ goto op_semantics_91;
+ break;
+ }
+ break;
+ case 0x4e:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ goto op_semantics_92;
+ break;
+ }
+ break;
+ case 0x4f:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ goto op_semantics_93;
+ break;
+ }
+ break;
+ case 0x60:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ {
+ /** 1111 1101 0110 0000 rsrc rdst shlr %2, %0 */
+#line 729 "rx-decode.opc"
+ int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 729 "rx-decode.opc"
+ int rdst AU = op[2] & 0x0f;
+ if (trace)
+ {
+ printf ("\033[33m%s\033[0m %02x %02x %02x\n",
+ "/** 1111 1101 0110 0000 rsrc rdst shlr %2, %0 */",
+ op[0], op[1], op[2]);
+ printf (" rsrc = 0x%x,", rsrc);
+ printf (" rdst = 0x%x\n", rdst);
+ }
+ SYNTAX("shlr %2, %0");
+#line 729 "rx-decode.opc"
+ ID(shlr); S2R(rsrc); SR(rdst); DR(rdst); F__SZC;
+
+ }
+ break;
+ }
+ break;
+ case 0x61:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ {
+ /** 1111 1101 0110 0001 rsrc rdst shar %2, %0 */
+#line 719 "rx-decode.opc"
+ int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 719 "rx-decode.opc"
+ int rdst AU = op[2] & 0x0f;
+ if (trace)
+ {
+ printf ("\033[33m%s\033[0m %02x %02x %02x\n",
+ "/** 1111 1101 0110 0001 rsrc rdst shar %2, %0 */",
+ op[0], op[1], op[2]);
+ printf (" rsrc = 0x%x,", rsrc);
+ printf (" rdst = 0x%x\n", rdst);
+ }
+ SYNTAX("shar %2, %0");
+#line 719 "rx-decode.opc"
+ ID(shar); S2R(rsrc); SR(rdst); DR(rdst); F_0SZC;
+
+ }
+ break;
+ }
+ break;
+ case 0x62:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ {
+ /** 1111 1101 0110 0010 rsrc rdst shll %2, %0 */
+#line 709 "rx-decode.opc"
+ int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 709 "rx-decode.opc"
+ int rdst AU = op[2] & 0x0f;
+ if (trace)
+ {
+ printf ("\033[33m%s\033[0m %02x %02x %02x\n",
+ "/** 1111 1101 0110 0010 rsrc rdst shll %2, %0 */",
+ op[0], op[1], op[2]);
+ printf (" rsrc = 0x%x,", rsrc);
+ printf (" rdst = 0x%x\n", rdst);
+ }
+ SYNTAX("shll %2, %0");
+#line 709 "rx-decode.opc"
+ ID(shll); S2R(rsrc); SR(rdst); DR(rdst); F_OSZC;
+
+ }
+ break;
+ }
+ break;
+ case 0x64:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ {
+ /** 1111 1101 0110 0100 rsrc rdst rotr %1, %0 */
+#line 753 "rx-decode.opc"
+ int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 753 "rx-decode.opc"
+ int rdst AU = op[2] & 0x0f;
+ if (trace)
+ {
+ printf ("\033[33m%s\033[0m %02x %02x %02x\n",
+ "/** 1111 1101 0110 0100 rsrc rdst rotr %1, %0 */",
+ op[0], op[1], op[2]);
+ printf (" rsrc = 0x%x,", rsrc);
+ printf (" rdst = 0x%x\n", rdst);
+ }
+ SYNTAX("rotr %1, %0");
+#line 753 "rx-decode.opc"
+ ID(rotr); SR(rsrc); DR(rdst); F__SZC;
+
+ }
+ break;
+ }
+ break;
+ case 0x65:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ {
+ /** 1111 1101 0110 0101 rsrc rdst revw %1, %0 */
+#line 756 "rx-decode.opc"
+ int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 756 "rx-decode.opc"
+ int rdst AU = op[2] & 0x0f;
+ if (trace)
+ {
+ printf ("\033[33m%s\033[0m %02x %02x %02x\n",
+ "/** 1111 1101 0110 0101 rsrc rdst revw %1, %0 */",
+ op[0], op[1], op[2]);
+ printf (" rsrc = 0x%x,", rsrc);
+ printf (" rdst = 0x%x\n", rdst);
+ }
+ SYNTAX("revw %1, %0");
+#line 756 "rx-decode.opc"
+ ID(revw); SR(rsrc); DR(rdst);
+
+ }
+ break;
+ }
+ break;
+ case 0x66:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ {
+ /** 1111 1101 0110 0110 rsrc rdst rotl %1, %0 */
+#line 747 "rx-decode.opc"
+ int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 747 "rx-decode.opc"
+ int rdst AU = op[2] & 0x0f;
+ if (trace)
+ {
+ printf ("\033[33m%s\033[0m %02x %02x %02x\n",
+ "/** 1111 1101 0110 0110 rsrc rdst rotl %1, %0 */",
+ op[0], op[1], op[2]);
+ printf (" rsrc = 0x%x,", rsrc);
+ printf (" rdst = 0x%x\n", rdst);
+ }
+ SYNTAX("rotl %1, %0");
+#line 747 "rx-decode.opc"
+ ID(rotl); SR(rsrc); DR(rdst); F__SZC;
+
+ }
+ break;
+ }
+ break;
+ case 0x67:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ {
+ /** 1111 1101 0110 0111 rsrc rdst revl %1, %0 */
+#line 759 "rx-decode.opc"
+ int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 759 "rx-decode.opc"
+ int rdst AU = op[2] & 0x0f;
+ if (trace)
+ {
+ printf ("\033[33m%s\033[0m %02x %02x %02x\n",
+ "/** 1111 1101 0110 0111 rsrc rdst revl %1, %0 */",
+ op[0], op[1], op[2]);
+ printf (" rsrc = 0x%x,", rsrc);
+ printf (" rdst = 0x%x\n", rdst);
+ }
+ SYNTAX("revl %1, %0");
+#line 759 "rx-decode.opc"
+ ID(revl); SR(rsrc); DR(rdst);
+
+ /*----------------------------------------------------------------------*/
+ /* BRANCH */
+
+ }
+ break;
+ }
+ break;
+ case 0x68:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ op_semantics_94:
+ {
+ /** 1111 1101 0110 100c rsrc rdst mvtc %1, %0 */
+#line 1010 "rx-decode.opc"
+ int c AU = op[1] & 0x01;
+#line 1010 "rx-decode.opc"
+ int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 1010 "rx-decode.opc"
+ int rdst AU = op[2] & 0x0f;
+ if (trace)
+ {
+ printf ("\033[33m%s\033[0m %02x %02x %02x\n",
+ "/** 1111 1101 0110 100c rsrc rdst mvtc %1, %0 */",
+ op[0], op[1], op[2]);
+ printf (" c = 0x%x,", c);
+ printf (" rsrc = 0x%x,", rsrc);
+ printf (" rdst = 0x%x\n", rdst);
+ }
+ SYNTAX("mvtc %1, %0");
+#line 1010 "rx-decode.opc"
+ ID(mov); SR(rsrc); DR(c*16+rdst + 16);
+
+ }
+ break;
+ }
+ break;
+ case 0x69:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ goto op_semantics_94;
+ break;
+ }
+ break;
+ case 0x6a:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ op_semantics_95:
+ {
+ /** 1111 1101 0110 101s rsrc rdst mvfc %1, %0 */
+#line 1013 "rx-decode.opc"
+ int s AU = op[1] & 0x01;
+#line 1013 "rx-decode.opc"
+ int rsrc AU = (op[2] >> 4) & 0x0f;
+#line 1013 "rx-decode.opc"
+ int rdst AU = op[2] & 0x0f;
+ if (trace)
+ {
+ printf ("\033[33m%s\033[0m %02x %02x %02x\n",
+ "/** 1111 1101 0110 101s rsrc rdst mvfc %1, %0 */",
+ op[0], op[1], op[2]);
+ printf (" s = 0x%x,", s);
+ printf (" rsrc = 0x%x,", rsrc);
+ printf (" rdst = 0x%x\n", rdst);
+ }
+ SYNTAX("mvfc %1, %0");
+#line 1013 "rx-decode.opc"
+ ID(mov); SR((s*16+rsrc) + 16); DR(rdst);
+
+ /*----------------------------------------------------------------------*/
+ /* INTERRUPTS */
+
+ }
+ break;
+ }
+ break;
+ case 0x6b:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ goto op_semantics_95;
+ break;
+ }
+ break;
+ case 0x6c:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ op_semantics_96:
+ {
+ /** 1111 1101 0110 110i mmmm rdst rotr #%1, %0 */
+#line 750 "rx-decode.opc"
+ int i AU = op[1] & 0x01;
+#line 750 "rx-decode.opc"
+ int mmmm AU = (op[2] >> 4) & 0x0f;
+#line 750 "rx-decode.opc"
+ int rdst AU = op[2] & 0x0f;
+ if (trace)
+ {
+ printf ("\033[33m%s\033[0m %02x %02x %02x\n",
+ "/** 1111 1101 0110 110i mmmm rdst rotr #%1, %0 */",
+ op[0], op[1], op[2]);
+ printf (" i = 0x%x,", i);
+ printf (" mmmm = 0x%x,", mmmm);
+ printf (" rdst = 0x%x\n", rdst);
+ }
+ SYNTAX("rotr #%1, %0");
+#line 750 "rx-decode.opc"
+ ID(rotr); SC(i*16+mmmm); DR(rdst); F__SZC;
+
+ }
+ break;
+ }
+ break;
+ case 0x6d:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ goto op_semantics_96;
+ break;
+ }
+ break;
+ case 0x6e:
+ GETBYTE ();
+ switch (op[2] & 0x00)
+ {
+ case 0x00:
+ op_semantics_97:
+ {
+ /** 1111 1101 0110 111i mmmm rdst rotl #%1, %0 */
+#line 744 "rx-decode.opc"
+ int i AU = op[1] & 0x01;
+#line 744 "rx-decode.opc"
+ int mmmm AU = (op[2] >> 4) & 0x0f;
+#line 744 "rx-decode.opc"
+ int rdst AU = op[2] & 0x0f;