summaryrefslogtreecommitdiff
path: root/opcodes/rx-decode.c
diff options
context:
space:
mode:
authorDJ Delorie <dj@delorie.com>2009-11-05 02:31:40 +0000
committerDJ Delorie <dj@delorie.com>2009-11-05 02:31:40 +0000
commit4ce6fc28b57b8bfa8cf9ecc842cf9f01369b043c (patch)
tree12d7d3fc9df42c544db0c40e90283d5e573c6c91 /opcodes/rx-decode.c
parent350d458f5d1677baad303fa78cdaaec5598c74c3 (diff)
downloadbinutils-redhat-4ce6fc28b57b8bfa8cf9ecc842cf9f01369b043c.tar.gz
[opcodes]
* rx-decode.opc (rx_decode_opcode) (mvtipl): Add. (mvtcp, mvfcp, opecp): Remove. * rx-decode.c: Regenerate. * rx-dis.c (cpen): Remove. [gas] * config/rx-parse.y (MVTIPL): Update bit pattern. (cpen): Remove. [include/opcode] * rx.h (rx_decode_opcode) (mvtipl): Add. (mvtcp, mvfcp, opecp): Remove.
Diffstat (limited to 'opcodes/rx-decode.c')
-rw-r--r--opcodes/rx-decode.c82
1 files changed, 55 insertions, 27 deletions
diff --git a/opcodes/rx-decode.c b/opcodes/rx-decode.c
index 273cb21bef..7b25ea7dca 100644
--- a/opcodes/rx-decode.c
+++ b/opcodes/rx-decode.c
@@ -295,7 +295,7 @@ rx_decode_opcode (unsigned long pc AU,
op[0]);
}
SYNTAX("brk");
-#line 957 "rx-decode.opc"
+#line 951 "rx-decode.opc"
ID(brk);
}
@@ -310,7 +310,7 @@ rx_decode_opcode (unsigned long pc AU,
op[0]);
}
SYNTAX("dbt");
-#line 960 "rx-decode.opc"
+#line 954 "rx-decode.opc"
ID(dbt);
}
@@ -4838,11 +4838,36 @@ rx_decode_opcode (unsigned long pc AU,
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;
@@ -5164,7 +5189,7 @@ rx_decode_opcode (unsigned long pc AU,
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)
{
@@ -5174,7 +5199,7 @@ rx_decode_opcode (unsigned long pc AU,
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);
}
@@ -5183,7 +5208,7 @@ rx_decode_opcode (unsigned long pc AU,
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)
{
@@ -5193,7 +5218,7 @@ rx_decode_opcode (unsigned long pc AU,
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);
}
@@ -5512,7 +5537,7 @@ rx_decode_opcode (unsigned long pc AU,
op[0], op[1]);
}
SYNTAX("rtfi");
-#line 951 "rx-decode.opc"
+#line 945 "rx-decode.opc"
ID(rtfi);
}
@@ -5527,7 +5552,7 @@ rx_decode_opcode (unsigned long pc AU,
op[0], op[1]);
}
SYNTAX("rte");
-#line 954 "rx-decode.opc"
+#line 948 "rx-decode.opc"
ID(rte);
}
@@ -5542,7 +5567,7 @@ rx_decode_opcode (unsigned long pc AU,
op[0], op[1]);
}
SYNTAX("wait");
-#line 966 "rx-decode.opc"
+#line 960 "rx-decode.opc"
ID(wait);
/*----------------------------------------------------------------------*/
@@ -8387,13 +8412,13 @@ rx_decode_opcode (unsigned long pc AU,
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)
{
@@ -8406,7 +8431,7 @@ rx_decode_opcode (unsigned long pc AU,
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);
}
@@ -10081,11 +10106,11 @@ rx_decode_opcode (unsigned long pc AU,
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)
{
@@ -10097,7 +10122,7 @@ rx_decode_opcode (unsigned long pc AU,
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);
}
@@ -10121,11 +10146,11 @@ rx_decode_opcode (unsigned long pc AU,
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)
{
@@ -10137,9 +10162,12 @@ rx_decode_opcode (unsigned long pc AU,
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;
}
@@ -10590,9 +10618,9 @@ rx_decode_opcode (unsigned long pc AU,
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)
{
@@ -10603,7 +10631,7 @@ rx_decode_opcode (unsigned long pc AU,
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);
}
@@ -14808,7 +14836,7 @@ rx_decode_opcode (unsigned long pc AU,
break;
default: UNSUPPORTED(); break;
}
-#line 975 "rx-decode.opc"
+#line 969 "rx-decode.opc"
return rx->n_bytes;
}