This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
rx: update opcodes
- From: DJ Delorie <dj at redhat dot com>
- To: binutils at sourceware dot org
- Date: Wed, 4 Nov 2009 19:38:51 -0500
- Subject: rx: update opcodes
Some updates to the opcodes that RX supports. Committed.
[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.
Index: opcodes/rx-decode.opc
===================================================================
RCS file: /cvs/src/src/opcodes/rx-decode.opc,v
retrieving revision 1.2
diff -p -U3 -r1.2 rx-decode.opc
--- opcodes/rx-decode.opc 23 Oct 2009 01:11:52 -0000 1.2
+++ opcodes/rx-decode.opc 5 Nov 2009 00:18:54 -0000
@@ -920,6 +920,9 @@ rx_decode_opcode (unsigned long pc AU,
/** 0111 1111 1010 rdst setpsw %0 */
ID(setpsw); DF(rdst);
+/** 0111 0101 0111 0000 0000 immm mvtipl #%1 */
+ ID(mvtipl); SC(immm);
+
/** 0111 1110 111 crdst popc %0 */
ID(mov); OP(1, RX_Operand_Postinc, 0, 0); DR(crdst + 16);
@@ -935,15 +938,6 @@ rx_decode_opcode (unsigned long pc AU,
/** 1111 1101 0110 101s rsrc rdst mvfc %1, %0 */
ID(mov); SR((s*16+rsrc) + 16); DR(rdst);
-/*?* 1111 1101 1111 1010 01cp rsrc mvtcp #%2, %1, #%0 */
- ID(mvtcp); S2C(cp); SR(rsrc); DC (IMM (WSIZE));
-
-/*?* 1111 1101 1111 1011 01cp rdst mvfcp #%2, %0, #%1 */
- ID(mvfcp); S2C(cp); DR(rdst); SC (IMM (WSIZE));
-
-/*?* 1111 1101 1111 1001 01cp 0000 opecp #%2, #%1 */
- ID(opecp); S2C(cp); SC (IMM (WSIZE));
-
/*----------------------------------------------------------------------*/
/* INTERRUPTS */
Index: opcodes/rx-dis.c
===================================================================
RCS file: /cvs/src/src/opcodes/rx-dis.c,v
retrieving revision 1.1
diff -p -U3 -r1.1 rx-dis.c
--- opcodes/rx-dis.c 29 Sep 2009 14:17:19 -0000 1.1
+++ opcodes/rx-dis.c 5 Nov 2009 00:18:54 -0000
@@ -63,7 +63,7 @@ static char const * register_names[] =
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
/* control register */
- "psw", "pc", "usp", "fpsw", "cpen", "", "", "wr",
+ "psw", "pc", "usp", "fpsw", "", "", "", "wr",
"bpsw", "bpc", "isp", "fintv", "intb", "", "", "",
"pbp", "pben", "", "", "", "", "", "",
"bbpsw", "bbpc", "", "", "", "", "", ""
Index: gas/config/rx-parse.y
===================================================================
RCS file: /cvs/src/src/gas/config/rx-parse.y,v
retrieving revision 1.1
diff -p -U3 -r1.1 rx-parse.y
--- gas/config/rx-parse.y 29 Sep 2009 14:17:08 -0000 1.1
+++ gas/config/rx-parse.y 5 Nov 2009 00:18:55 -0000
@@ -532,7 +532,7 @@ statement :
/* ---------------------------------------------------------------------- */
| MVTIPL '#' EXPR
- { B2 (0x7f, 0x98); FE ($3, 13, 3); }
+ { B3 (0x75, 0x70, 0x00); FE ($3, 20, 4); }
/* ---------------------------------------------------------------------- */
@@ -939,7 +939,7 @@ token_table[] =
{ "pc", CREG, 1 },
{ "usp", CREG, 2 },
{ "fpsw", CREG, 3 },
- { "cpen", CREG, 4 },
+ /* reserved */
/* reserved */
/* reserved */
{ "wr", CREG, 7 },
Index: include/opcode/rx.h
===================================================================
RCS file: /cvs/src/src/include/opcode/rx.h,v
retrieving revision 1.1
diff -p -U3 -r1.1 rx.h
--- include/opcode/rx.h 29 Sep 2009 14:17:13 -0000 1.1
+++ include/opcode/rx.h 5 Nov 2009 00:18:55 -0000
@@ -139,10 +139,7 @@ typedef enum
RXO_clrpsw, /* flag index in d */
RXO_setpsw, /* flag index in d */
-
- RXO_mvtcp, /* cop# in s2, cop[d] = s */
- RXO_mvfcp, /* cop# in s2, d = cop[s] */
- RXO_opecp, /* cop# in s2, do cop[s] */
+ RXO_mvtipl, /* new IPL in s */
RXO_rtfi,
RXO_rte,