* [Qemu-devel] [PATCH v2 0/5] target/mips: Renaming and limiting modes for R5900
@ 2018-10-30 11:36 Aleksandar Markovic
2018-10-30 11:36 ` [Qemu-devel] [PATCH v2 1/5] target/mips: Rename MMI-related masks Aleksandar Markovic
` (4 more replies)
0 siblings, 5 replies; 19+ messages in thread
From: Aleksandar Markovic @ 2018-10-30 11:36 UTC (permalink / raw)
To: qemu-devel; +Cc: aurelien, amarkovic, smarkovic, pjovanovic
From: Aleksandar Markovic <amarkovic@wavecomp.com>
Rename some code elements related to R5900, and limit supported modes
to O32.
v1->v2:
- added limiting of supported modes
- added more cosmetic changes
Aleksandar Markovic (5):
target/mips: Rename MMI-related masks
target/mips: Rename MMI-related opcodes
target/mips: Rename MMI-related functions
target/mips: Misc R5900-related cosmetic changes
target/mips: Enable only tested modes for R5900
target/mips/translate.c | 532 +++++++++++++++++++--------------------
target/mips/translate_init.inc.c | 16 +-
2 files changed, 270 insertions(+), 278 deletions(-)
--
2.7.4
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Qemu-devel] [PATCH v2 1/5] target/mips: Rename MMI-related masks
2018-10-30 11:36 [Qemu-devel] [PATCH v2 0/5] target/mips: Renaming and limiting modes for R5900 Aleksandar Markovic
@ 2018-10-30 11:36 ` Aleksandar Markovic
2018-10-30 12:31 ` Stefan Markovic
2018-10-30 13:08 ` Philippe Mathieu-Daudé
2018-10-30 11:36 ` [Qemu-devel] [PATCH v2 2/5] target/mips: Rename MMI-related opcodes Aleksandar Markovic
` (3 subsequent siblings)
4 siblings, 2 replies; 19+ messages in thread
From: Aleksandar Markovic @ 2018-10-30 11:36 UTC (permalink / raw)
To: qemu-devel; +Cc: aurelien, amarkovic, smarkovic, pjovanovic
From: Aleksandar Markovic <amarkovic@wavecomp.com>
Rename MMI-related masks.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
---
target/mips/translate.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/target/mips/translate.c b/target/mips/translate.c
index 51a5488..e38d50d 100644
--- a/target/mips/translate.c
+++ b/target/mips/translate.c
@@ -2159,7 +2159,7 @@ enum {
* 7 111 | * | * | * | * | PSLLW | * | PSRLW | PSRAW
*/
-#define MASK_TX79_MMI(op) (MASK_OP_MAJOR(op) | ((op) & 0x3F))
+#define MASK_MMI(op) (MASK_OP_MAJOR(op) | ((op) & 0x3F))
enum {
TX79_MMI_MADD = 0x00 | TX79_CLASS_MMI, /* Same as OPC_MADD */
TX79_MMI_MADDU = 0x01 | TX79_CLASS_MMI, /* Same as OPC_MADDU */
@@ -2210,7 +2210,7 @@ enum {
* 7 111 | * | * | PEXT5 | PPAC5
*/
-#define MASK_TX79_MMI0(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
+#define MASK_MMI0(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
enum {
TX79_MMI0_PADDW = (0x00 << 6) | TX79_MMI_CLASS_MMI0,
TX79_MMI0_PSUBW = (0x01 << 6) | TX79_MMI_CLASS_MMI0,
@@ -2261,7 +2261,7 @@ enum {
* 7 111 | * | * | * | *
*/
-#define MASK_TX79_MMI1(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
+#define MASK_MMI1(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
enum {
TX79_MMI1_PABSW = (0x01 << 6) | TX79_MMI_CLASS_MMI1,
TX79_MMI1_PCEQW = (0x02 << 6) | TX79_MMI_CLASS_MMI1,
@@ -2305,7 +2305,7 @@ enum {
* 7 111 | PMULTH| PDIVBW| PEXEW | PROT3W
*/
-#define MASK_TX79_MMI2(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
+#define MASK_MMI2(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
enum {
TX79_MMI2_PMADDW = (0x00 << 6) | TX79_MMI_CLASS_MMI2,
TX79_MMI2_PSLLVW = (0x02 << 6) | TX79_MMI_CLASS_MMI2,
@@ -2353,7 +2353,7 @@ enum {
* 7 111 | * | * | PEXCW | *
*/
-#define MASK_TX79_MMI3(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
+#define MASK_MMI3(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
enum {
TX79_MMI3_PMADDUW = (0x00 << 6) | TX79_MMI_CLASS_MMI3,
TX79_MMI3_PSRAVW = (0x03 << 6) | TX79_MMI_CLASS_MMI3,
@@ -24683,7 +24683,7 @@ static void decode_opc_special3_legacy(CPUMIPSState *env, DisasContext *ctx)
static void decode_tx79_mmi0(CPUMIPSState *env, DisasContext *ctx)
{
- uint32_t opc = MASK_TX79_MMI0(ctx->opcode);
+ uint32_t opc = MASK_MMI0(ctx->opcode);
switch (opc) {
case TX79_MMI0_PADDW: /* TODO: TX79_MMI0_PADDW */
@@ -24722,7 +24722,7 @@ static void decode_tx79_mmi0(CPUMIPSState *env, DisasContext *ctx)
static void decode_tx79_mmi1(CPUMIPSState *env, DisasContext *ctx)
{
- uint32_t opc = MASK_TX79_MMI1(ctx->opcode);
+ uint32_t opc = MASK_MMI1(ctx->opcode);
switch (opc) {
case TX79_MMI1_PABSW: /* TODO: TX79_MMI1_PABSW */
@@ -24754,7 +24754,7 @@ static void decode_tx79_mmi1(CPUMIPSState *env, DisasContext *ctx)
static void decode_tx79_mmi2(CPUMIPSState *env, DisasContext *ctx)
{
- uint32_t opc = MASK_TX79_MMI2(ctx->opcode);
+ uint32_t opc = MASK_MMI2(ctx->opcode);
switch (opc) {
case TX79_MMI2_PMADDW: /* TODO: TX79_MMI2_PMADDW */
@@ -24790,7 +24790,7 @@ static void decode_tx79_mmi2(CPUMIPSState *env, DisasContext *ctx)
static void decode_tx79_mmi3(CPUMIPSState *env, DisasContext *ctx)
{
- uint32_t opc = MASK_TX79_MMI3(ctx->opcode);
+ uint32_t opc = MASK_MMI3(ctx->opcode);
switch (opc) {
case TX79_MMI3_PMADDUW: /* TODO: TX79_MMI3_PMADDUW */
@@ -24817,7 +24817,7 @@ static void decode_tx79_mmi3(CPUMIPSState *env, DisasContext *ctx)
static void decode_tx79_mmi(CPUMIPSState *env, DisasContext *ctx)
{
- uint32_t opc = MASK_TX79_MMI(ctx->opcode);
+ uint32_t opc = MASK_MMI(ctx->opcode);
int rs = extract32(ctx->opcode, 21, 5);
int rt = extract32(ctx->opcode, 16, 5);
int rd = extract32(ctx->opcode, 11, 5);
--
2.7.4
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [Qemu-devel] [PATCH v2 2/5] target/mips: Rename MMI-related opcodes
2018-10-30 11:36 [Qemu-devel] [PATCH v2 0/5] target/mips: Renaming and limiting modes for R5900 Aleksandar Markovic
2018-10-30 11:36 ` [Qemu-devel] [PATCH v2 1/5] target/mips: Rename MMI-related masks Aleksandar Markovic
@ 2018-10-30 11:36 ` Aleksandar Markovic
2018-10-30 12:36 ` Stefan Markovic
2018-10-30 12:44 ` Philippe Mathieu-Daudé
2018-10-30 11:36 ` [Qemu-devel] [PATCH v2 3/5] target/mips: Rename MMI-related functions Aleksandar Markovic
` (2 subsequent siblings)
4 siblings, 2 replies; 19+ messages in thread
From: Aleksandar Markovic @ 2018-10-30 11:36 UTC (permalink / raw)
To: qemu-devel; +Cc: aurelien, amarkovic, smarkovic, pjovanovic
From: Aleksandar Markovic <amarkovic@wavecomp.com>
Rename MMI-related opcodes.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
---
target/mips/translate.c | 470 ++++++++++++++++++++++++------------------------
1 file changed, 235 insertions(+), 235 deletions(-)
diff --git a/target/mips/translate.c b/target/mips/translate.c
index e38d50d..4b008d8 100644
--- a/target/mips/translate.c
+++ b/target/mips/translate.c
@@ -2099,7 +2099,7 @@ enum {
* The TX79-specific Multimedia Instruction encodings
* ==================================================
*
- * TX79 Multimedia Instruction encoding table keys:
+ * MMI Instruction encoding table keys:
*
* * This code is reserved for future use. An attempt to execute it
* causes a Reserved Instruction exception.
@@ -2110,7 +2110,7 @@ enum {
* DMULTU, DDIV, DDIVU, LL, LLD, SC, SCD, LWC2 and SWC2. An attempt
* to execute it causes a Reserved Instruction exception.
*
- * TX79 Multimedia Instructions encoded by opcode field (MMI, LQ, SQ):
+ * MMI Instructions encoded by opcode field (MMI, LQ, SQ):
*
* 31 26 0
* +--------+----------------------------------------+
@@ -2132,13 +2132,13 @@ enum {
*/
enum {
- TX79_CLASS_MMI = 0x1C << 26, /* Same as OPC_SPECIAL2 */
- TX79_LQ = 0x1E << 26, /* Same as OPC_MSA */
- TX79_SQ = 0x1F << 26, /* Same as OPC_SPECIAL3 */
+ MMI_CLASS_MMI = 0x1C << 26, /* Same as OPC_SPECIAL2 */
+ MMI_LQ = 0x1E << 26, /* Same as OPC_MSA */
+ MMI_SQ = 0x1F << 26, /* Same as OPC_SPECIAL3 */
};
/*
- * TX79 Multimedia Instructions with opcode field = MMI:
+ * MMI Instructions with opcode field = MMI:
*
* 31 26 5 0
* +--------+-------------------------------+--------+
@@ -2161,35 +2161,35 @@ enum {
#define MASK_MMI(op) (MASK_OP_MAJOR(op) | ((op) & 0x3F))
enum {
- TX79_MMI_MADD = 0x00 | TX79_CLASS_MMI, /* Same as OPC_MADD */
- TX79_MMI_MADDU = 0x01 | TX79_CLASS_MMI, /* Same as OPC_MADDU */
- TX79_MMI_PLZCW = 0x04 | TX79_CLASS_MMI,
- TX79_MMI_CLASS_MMI0 = 0x08 | TX79_CLASS_MMI,
- TX79_MMI_CLASS_MMI2 = 0x09 | TX79_CLASS_MMI,
- TX79_MMI_MFHI1 = 0x10 | TX79_CLASS_MMI, /* Same minor as OPC_MFHI */
- TX79_MMI_MTHI1 = 0x11 | TX79_CLASS_MMI, /* Same minor as OPC_MTHI */
- TX79_MMI_MFLO1 = 0x12 | TX79_CLASS_MMI, /* Same minor as OPC_MFLO */
- TX79_MMI_MTLO1 = 0x13 | TX79_CLASS_MMI, /* Same minor as OPC_MTLO */
- TX79_MMI_MULT1 = 0x18 | TX79_CLASS_MMI, /* Same minor as OPC_MULT */
- TX79_MMI_MULTU1 = 0x19 | TX79_CLASS_MMI, /* Same minor as OPC_MULTU */
- TX79_MMI_DIV1 = 0x1A | TX79_CLASS_MMI, /* Same minor as OPC_DIV */
- TX79_MMI_DIVU1 = 0x1B | TX79_CLASS_MMI, /* Same minor as OPC_DIVU */
- TX79_MMI_MADD1 = 0x20 | TX79_CLASS_MMI,
- TX79_MMI_MADDU1 = 0x21 | TX79_CLASS_MMI,
- TX79_MMI_CLASS_MMI1 = 0x28 | TX79_CLASS_MMI,
- TX79_MMI_CLASS_MMI3 = 0x29 | TX79_CLASS_MMI,
- TX79_MMI_PMFHL = 0x30 | TX79_CLASS_MMI,
- TX79_MMI_PMTHL = 0x31 | TX79_CLASS_MMI,
- TX79_MMI_PSLLH = 0x34 | TX79_CLASS_MMI,
- TX79_MMI_PSRLH = 0x36 | TX79_CLASS_MMI,
- TX79_MMI_PSRAH = 0x37 | TX79_CLASS_MMI,
- TX79_MMI_PSLLW = 0x3C | TX79_CLASS_MMI,
- TX79_MMI_PSRLW = 0x3E | TX79_CLASS_MMI,
- TX79_MMI_PSRAW = 0x3F | TX79_CLASS_MMI,
+ MMI_OPC_MADD = 0x00 | MMI_CLASS_MMI, /* Same as OPC_MADD */
+ MMI_OPC_MADDU = 0x01 | MMI_CLASS_MMI, /* Same as OPC_MADDU */
+ MMI_OPC_PLZCW = 0x04 | MMI_CLASS_MMI,
+ MMI_OPC_CLASS_MMI0 = 0x08 | MMI_CLASS_MMI,
+ MMI_OPC_CLASS_MMI2 = 0x09 | MMI_CLASS_MMI,
+ MMI_OPC_MFHI1 = 0x10 | MMI_CLASS_MMI, /* Same minor as OPC_MFHI */
+ MMI_OPC_MTHI1 = 0x11 | MMI_CLASS_MMI, /* Same minor as OPC_MTHI */
+ MMI_OPC_MFLO1 = 0x12 | MMI_CLASS_MMI, /* Same minor as OPC_MFLO */
+ MMI_OPC_MTLO1 = 0x13 | MMI_CLASS_MMI, /* Same minor as OPC_MTLO */
+ MMI_OPC_MULT1 = 0x18 | MMI_CLASS_MMI, /* Same minor as OPC_MULT */
+ MMI_OPC_MULTU1 = 0x19 | MMI_CLASS_MMI, /* Same minor as OPC_MULTU */
+ MMI_OPC_DIV1 = 0x1A | MMI_CLASS_MMI, /* Same minor as OPC_DIV */
+ MMI_OPC_DIVU1 = 0x1B | MMI_CLASS_MMI, /* Same minor as OPC_DIVU */
+ MMI_OPC_MADD1 = 0x20 | MMI_CLASS_MMI,
+ MMI_OPC_MADDU1 = 0x21 | MMI_CLASS_MMI,
+ MMI_OPC_CLASS_MMI1 = 0x28 | MMI_CLASS_MMI,
+ MMI_OPC_CLASS_MMI3 = 0x29 | MMI_CLASS_MMI,
+ MMI_OPC_PMFHL = 0x30 | MMI_CLASS_MMI,
+ MMI_OPC_PMTHL = 0x31 | MMI_CLASS_MMI,
+ MMI_OPC_PSLLH = 0x34 | MMI_CLASS_MMI,
+ MMI_OPC_PSRLH = 0x36 | MMI_CLASS_MMI,
+ MMI_OPC_PSRAH = 0x37 | MMI_CLASS_MMI,
+ MMI_OPC_PSLLW = 0x3C | MMI_CLASS_MMI,
+ MMI_OPC_PSRLW = 0x3E | MMI_CLASS_MMI,
+ MMI_OPC_PSRAW = 0x3F | MMI_CLASS_MMI,
};
/*
- * TX79 Multimedia Instructions with opcode field = MMI and bits 5..0 = MMI0:
+ * MMI Instructions with opcode field = MMI and bits 5..0 = MMI0:
*
* 31 26 10 6 5 0
* +--------+----------------------+--------+--------+
@@ -2212,35 +2212,35 @@ enum {
#define MASK_MMI0(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
enum {
- TX79_MMI0_PADDW = (0x00 << 6) | TX79_MMI_CLASS_MMI0,
- TX79_MMI0_PSUBW = (0x01 << 6) | TX79_MMI_CLASS_MMI0,
- TX79_MMI0_PCGTW = (0x02 << 6) | TX79_MMI_CLASS_MMI0,
- TX79_MMI0_PMAXW = (0x03 << 6) | TX79_MMI_CLASS_MMI0,
- TX79_MMI0_PADDH = (0x04 << 6) | TX79_MMI_CLASS_MMI0,
- TX79_MMI0_PSUBH = (0x05 << 6) | TX79_MMI_CLASS_MMI0,
- TX79_MMI0_PCGTH = (0x06 << 6) | TX79_MMI_CLASS_MMI0,
- TX79_MMI0_PMAXH = (0x07 << 6) | TX79_MMI_CLASS_MMI0,
- TX79_MMI0_PADDB = (0x08 << 6) | TX79_MMI_CLASS_MMI0,
- TX79_MMI0_PSUBB = (0x09 << 6) | TX79_MMI_CLASS_MMI0,
- TX79_MMI0_PCGTB = (0x0A << 6) | TX79_MMI_CLASS_MMI0,
- TX79_MMI0_PADDSW = (0x10 << 6) | TX79_MMI_CLASS_MMI0,
- TX79_MMI0_PSUBSW = (0x11 << 6) | TX79_MMI_CLASS_MMI0,
- TX79_MMI0_PEXTLW = (0x12 << 6) | TX79_MMI_CLASS_MMI0,
- TX79_MMI0_PPACW = (0x13 << 6) | TX79_MMI_CLASS_MMI0,
- TX79_MMI0_PADDSH = (0x14 << 6) | TX79_MMI_CLASS_MMI0,
- TX79_MMI0_PSUBSH = (0x15 << 6) | TX79_MMI_CLASS_MMI0,
- TX79_MMI0_PEXTLH = (0x16 << 6) | TX79_MMI_CLASS_MMI0,
- TX79_MMI0_PPACH = (0x17 << 6) | TX79_MMI_CLASS_MMI0,
- TX79_MMI0_PADDSB = (0x18 << 6) | TX79_MMI_CLASS_MMI0,
- TX79_MMI0_PSUBSB = (0x19 << 6) | TX79_MMI_CLASS_MMI0,
- TX79_MMI0_PEXTLB = (0x1A << 6) | TX79_MMI_CLASS_MMI0,
- TX79_MMI0_PPACB = (0x1B << 6) | TX79_MMI_CLASS_MMI0,
- TX79_MMI0_PEXT5 = (0x1E << 6) | TX79_MMI_CLASS_MMI0,
- TX79_MMI0_PPAC5 = (0x1F << 6) | TX79_MMI_CLASS_MMI0,
+ MMI_OPC_0_PADDW = (0x00 << 6) | MMI_OPC_CLASS_MMI0,
+ MMI_OPC_0_PSUBW = (0x01 << 6) | MMI_OPC_CLASS_MMI0,
+ MMI_OPC_0_PCGTW = (0x02 << 6) | MMI_OPC_CLASS_MMI0,
+ MMI_OPC_0_PMAXW = (0x03 << 6) | MMI_OPC_CLASS_MMI0,
+ MMI_OPC_0_PADDH = (0x04 << 6) | MMI_OPC_CLASS_MMI0,
+ MMI_OPC_0_PSUBH = (0x05 << 6) | MMI_OPC_CLASS_MMI0,
+ MMI_OPC_0_PCGTH = (0x06 << 6) | MMI_OPC_CLASS_MMI0,
+ MMI_OPC_0_PMAXH = (0x07 << 6) | MMI_OPC_CLASS_MMI0,
+ MMI_OPC_0_PADDB = (0x08 << 6) | MMI_OPC_CLASS_MMI0,
+ MMI_OPC_0_PSUBB = (0x09 << 6) | MMI_OPC_CLASS_MMI0,
+ MMI_OPC_0_PCGTB = (0x0A << 6) | MMI_OPC_CLASS_MMI0,
+ MMI_OPC_0_PADDSW = (0x10 << 6) | MMI_OPC_CLASS_MMI0,
+ MMI_OPC_0_PSUBSW = (0x11 << 6) | MMI_OPC_CLASS_MMI0,
+ MMI_OPC_0_PEXTLW = (0x12 << 6) | MMI_OPC_CLASS_MMI0,
+ MMI_OPC_0_PPACW = (0x13 << 6) | MMI_OPC_CLASS_MMI0,
+ MMI_OPC_0_PADDSH = (0x14 << 6) | MMI_OPC_CLASS_MMI0,
+ MMI_OPC_0_PSUBSH = (0x15 << 6) | MMI_OPC_CLASS_MMI0,
+ MMI_OPC_0_PEXTLH = (0x16 << 6) | MMI_OPC_CLASS_MMI0,
+ MMI_OPC_0_PPACH = (0x17 << 6) | MMI_OPC_CLASS_MMI0,
+ MMI_OPC_0_PADDSB = (0x18 << 6) | MMI_OPC_CLASS_MMI0,
+ MMI_OPC_0_PSUBSB = (0x19 << 6) | MMI_OPC_CLASS_MMI0,
+ MMI_OPC_0_PEXTLB = (0x1A << 6) | MMI_OPC_CLASS_MMI0,
+ MMI_OPC_0_PPACB = (0x1B << 6) | MMI_OPC_CLASS_MMI0,
+ MMI_OPC_0_PEXT5 = (0x1E << 6) | MMI_OPC_CLASS_MMI0,
+ MMI_OPC_0_PPAC5 = (0x1F << 6) | MMI_OPC_CLASS_MMI0,
};
/*
- * TX79 Multimedia Instructions with opcode field = MMI and bits 5..0 = MMI1:
+ * MMI Instructions with opcode field = MMI and bits 5..0 = MMI1:
*
* 31 26 10 6 5 0
* +--------+----------------------+--------+--------+
@@ -2263,28 +2263,28 @@ enum {
#define MASK_MMI1(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
enum {
- TX79_MMI1_PABSW = (0x01 << 6) | TX79_MMI_CLASS_MMI1,
- TX79_MMI1_PCEQW = (0x02 << 6) | TX79_MMI_CLASS_MMI1,
- TX79_MMI1_PMINW = (0x03 << 6) | TX79_MMI_CLASS_MMI1,
- TX79_MMI1_PADSBH = (0x04 << 6) | TX79_MMI_CLASS_MMI1,
- TX79_MMI1_PABSH = (0x05 << 6) | TX79_MMI_CLASS_MMI1,
- TX79_MMI1_PCEQH = (0x06 << 6) | TX79_MMI_CLASS_MMI1,
- TX79_MMI1_PMINH = (0x07 << 6) | TX79_MMI_CLASS_MMI1,
- TX79_MMI1_PCEQB = (0x0A << 6) | TX79_MMI_CLASS_MMI1,
- TX79_MMI1_PADDUW = (0x10 << 6) | TX79_MMI_CLASS_MMI1,
- TX79_MMI1_PSUBUW = (0x11 << 6) | TX79_MMI_CLASS_MMI1,
- TX79_MMI1_PEXTUW = (0x12 << 6) | TX79_MMI_CLASS_MMI1,
- TX79_MMI1_PADDUH = (0x14 << 6) | TX79_MMI_CLASS_MMI1,
- TX79_MMI1_PSUBUH = (0x15 << 6) | TX79_MMI_CLASS_MMI1,
- TX79_MMI1_PEXTUH = (0x16 << 6) | TX79_MMI_CLASS_MMI1,
- TX79_MMI1_PADDUB = (0x18 << 6) | TX79_MMI_CLASS_MMI1,
- TX79_MMI1_PSUBUB = (0x19 << 6) | TX79_MMI_CLASS_MMI1,
- TX79_MMI1_PEXTUB = (0x1A << 6) | TX79_MMI_CLASS_MMI1,
- TX79_MMI1_QFSRV = (0x1B << 6) | TX79_MMI_CLASS_MMI1,
+ MMI_OPC_1_PABSW = (0x01 << 6) | MMI_OPC_CLASS_MMI1,
+ MMI_OPC_1_PCEQW = (0x02 << 6) | MMI_OPC_CLASS_MMI1,
+ MMI_OPC_1_PMINW = (0x03 << 6) | MMI_OPC_CLASS_MMI1,
+ MMI_OPC_1_PADSBH = (0x04 << 6) | MMI_OPC_CLASS_MMI1,
+ MMI_OPC_1_PABSH = (0x05 << 6) | MMI_OPC_CLASS_MMI1,
+ MMI_OPC_1_PCEQH = (0x06 << 6) | MMI_OPC_CLASS_MMI1,
+ MMI_OPC_1_PMINH = (0x07 << 6) | MMI_OPC_CLASS_MMI1,
+ MMI_OPC_1_PCEQB = (0x0A << 6) | MMI_OPC_CLASS_MMI1,
+ MMI_OPC_1_PADDUW = (0x10 << 6) | MMI_OPC_CLASS_MMI1,
+ MMI_OPC_1_PSUBUW = (0x11 << 6) | MMI_OPC_CLASS_MMI1,
+ MMI_OPC_1_PEXTUW = (0x12 << 6) | MMI_OPC_CLASS_MMI1,
+ MMI_OPC_1_PADDUH = (0x14 << 6) | MMI_OPC_CLASS_MMI1,
+ MMI_OPC_1_PSUBUH = (0x15 << 6) | MMI_OPC_CLASS_MMI1,
+ MMI_OPC_1_PEXTUH = (0x16 << 6) | MMI_OPC_CLASS_MMI1,
+ MMI_OPC_1_PADDUB = (0x18 << 6) | MMI_OPC_CLASS_MMI1,
+ MMI_OPC_1_PSUBUB = (0x19 << 6) | MMI_OPC_CLASS_MMI1,
+ MMI_OPC_1_PEXTUB = (0x1A << 6) | MMI_OPC_CLASS_MMI1,
+ MMI_OPC_1_QFSRV = (0x1B << 6) | MMI_OPC_CLASS_MMI1,
};
/*
- * TX79 Multimedia Instructions with opcode field = MMI and bits 5..0 = MMI2:
+ * MMI Instructions with opcode field = MMI and bits 5..0 = MMI2:
*
* 31 26 10 6 5 0
* +--------+----------------------+--------+--------+
@@ -2307,32 +2307,32 @@ enum {
#define MASK_MMI2(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
enum {
- TX79_MMI2_PMADDW = (0x00 << 6) | TX79_MMI_CLASS_MMI2,
- TX79_MMI2_PSLLVW = (0x02 << 6) | TX79_MMI_CLASS_MMI2,
- TX79_MMI2_PSRLVW = (0x03 << 6) | TX79_MMI_CLASS_MMI2,
- TX79_MMI2_PMSUBW = (0x04 << 6) | TX79_MMI_CLASS_MMI2,
- TX79_MMI2_PMFHI = (0x08 << 6) | TX79_MMI_CLASS_MMI2,
- TX79_MMI2_PMFLO = (0x09 << 6) | TX79_MMI_CLASS_MMI2,
- TX79_MMI2_PINTH = (0x0A << 6) | TX79_MMI_CLASS_MMI2,
- TX79_MMI2_PMULTW = (0x0C << 6) | TX79_MMI_CLASS_MMI2,
- TX79_MMI2_PDIVW = (0x0D << 6) | TX79_MMI_CLASS_MMI2,
- TX79_MMI2_PCPYLD = (0x0E << 6) | TX79_MMI_CLASS_MMI2,
- TX79_MMI2_PMADDH = (0x10 << 6) | TX79_MMI_CLASS_MMI2,
- TX79_MMI2_PHMADH = (0x11 << 6) | TX79_MMI_CLASS_MMI2,
- TX79_MMI2_PAND = (0x12 << 6) | TX79_MMI_CLASS_MMI2,
- TX79_MMI2_PXOR = (0x13 << 6) | TX79_MMI_CLASS_MMI2,
- TX79_MMI2_PMSUBH = (0x14 << 6) | TX79_MMI_CLASS_MMI2,
- TX79_MMI2_PHMSBH = (0x15 << 6) | TX79_MMI_CLASS_MMI2,
- TX79_MMI2_PEXEH = (0x1A << 6) | TX79_MMI_CLASS_MMI2,
- TX79_MMI2_PREVH = (0x1B << 6) | TX79_MMI_CLASS_MMI2,
- TX79_MMI2_PMULTH = (0x1C << 6) | TX79_MMI_CLASS_MMI2,
- TX79_MMI2_PDIVBW = (0x1D << 6) | TX79_MMI_CLASS_MMI2,
- TX79_MMI2_PEXEW = (0x1E << 6) | TX79_MMI_CLASS_MMI2,
- TX79_MMI2_PROT3W = (0x1F << 6) | TX79_MMI_CLASS_MMI2,
+ MMI_OPC_2_PMADDW = (0x00 << 6) | MMI_OPC_CLASS_MMI2,
+ MMI_OPC_2_PSLLVW = (0x02 << 6) | MMI_OPC_CLASS_MMI2,
+ MMI_OPC_2_PSRLVW = (0x03 << 6) | MMI_OPC_CLASS_MMI2,
+ MMI_OPC_2_PMSUBW = (0x04 << 6) | MMI_OPC_CLASS_MMI2,
+ MMI_OPC_2_PMFHI = (0x08 << 6) | MMI_OPC_CLASS_MMI2,
+ MMI_OPC_2_PMFLO = (0x09 << 6) | MMI_OPC_CLASS_MMI2,
+ MMI_OPC_2_PINTH = (0x0A << 6) | MMI_OPC_CLASS_MMI2,
+ MMI_OPC_2_PMULTW = (0x0C << 6) | MMI_OPC_CLASS_MMI2,
+ MMI_OPC_2_PDIVW = (0x0D << 6) | MMI_OPC_CLASS_MMI2,
+ MMI_OPC_2_PCPYLD = (0x0E << 6) | MMI_OPC_CLASS_MMI2,
+ MMI_OPC_2_PMADDH = (0x10 << 6) | MMI_OPC_CLASS_MMI2,
+ MMI_OPC_2_PHMADH = (0x11 << 6) | MMI_OPC_CLASS_MMI2,
+ MMI_OPC_2_PAND = (0x12 << 6) | MMI_OPC_CLASS_MMI2,
+ MMI_OPC_2_PXOR = (0x13 << 6) | MMI_OPC_CLASS_MMI2,
+ MMI_OPC_2_PMSUBH = (0x14 << 6) | MMI_OPC_CLASS_MMI2,
+ MMI_OPC_2_PHMSBH = (0x15 << 6) | MMI_OPC_CLASS_MMI2,
+ MMI_OPC_2_PEXEH = (0x1A << 6) | MMI_OPC_CLASS_MMI2,
+ MMI_OPC_2_PREVH = (0x1B << 6) | MMI_OPC_CLASS_MMI2,
+ MMI_OPC_2_PMULTH = (0x1C << 6) | MMI_OPC_CLASS_MMI2,
+ MMI_OPC_2_PDIVBW = (0x1D << 6) | MMI_OPC_CLASS_MMI2,
+ MMI_OPC_2_PEXEW = (0x1E << 6) | MMI_OPC_CLASS_MMI2,
+ MMI_OPC_2_PROT3W = (0x1F << 6) | MMI_OPC_CLASS_MMI2,
};
/*
- * TX79 Multimedia Instructions with opcode field = MMI and bits 5..0 = MMI3:
+ * MMI Instructions with opcode field = MMI and bits 5..0 = MMI3:
*
* 31 26 10 6 5 0
* +--------+----------------------+--------+--------+
@@ -2355,19 +2355,19 @@ enum {
#define MASK_MMI3(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
enum {
- TX79_MMI3_PMADDUW = (0x00 << 6) | TX79_MMI_CLASS_MMI3,
- TX79_MMI3_PSRAVW = (0x03 << 6) | TX79_MMI_CLASS_MMI3,
- TX79_MMI3_PMTHI = (0x08 << 6) | TX79_MMI_CLASS_MMI3,
- TX79_MMI3_PMTLO = (0x09 << 6) | TX79_MMI_CLASS_MMI3,
- TX79_MMI3_PINTEH = (0x0A << 6) | TX79_MMI_CLASS_MMI3,
- TX79_MMI3_PMULTUW = (0x0C << 6) | TX79_MMI_CLASS_MMI3,
- TX79_MMI3_PDIVUW = (0x0D << 6) | TX79_MMI_CLASS_MMI3,
- TX79_MMI3_PCPYUD = (0x0E << 6) | TX79_MMI_CLASS_MMI3,
- TX79_MMI3_POR = (0x12 << 6) | TX79_MMI_CLASS_MMI3,
- TX79_MMI3_PNOR = (0x13 << 6) | TX79_MMI_CLASS_MMI3,
- TX79_MMI3_PEXCH = (0x1A << 6) | TX79_MMI_CLASS_MMI3,
- TX79_MMI3_PCPYH = (0x1B << 6) | TX79_MMI_CLASS_MMI3,
- TX79_MMI3_PEXCW = (0x1E << 6) | TX79_MMI_CLASS_MMI3,
+ MMI_OPC_3_PMADDUW = (0x00 << 6) | MMI_OPC_CLASS_MMI3,
+ MMI_OPC_3_PSRAVW = (0x03 << 6) | MMI_OPC_CLASS_MMI3,
+ MMI_OPC_3_PMTHI = (0x08 << 6) | MMI_OPC_CLASS_MMI3,
+ MMI_OPC_3_PMTLO = (0x09 << 6) | MMI_OPC_CLASS_MMI3,
+ MMI_OPC_3_PINTEH = (0x0A << 6) | MMI_OPC_CLASS_MMI3,
+ MMI_OPC_3_PMULTUW = (0x0C << 6) | MMI_OPC_CLASS_MMI3,
+ MMI_OPC_3_PDIVUW = (0x0D << 6) | MMI_OPC_CLASS_MMI3,
+ MMI_OPC_3_PCPYUD = (0x0E << 6) | MMI_OPC_CLASS_MMI3,
+ MMI_OPC_3_POR = (0x12 << 6) | MMI_OPC_CLASS_MMI3,
+ MMI_OPC_3_PNOR = (0x13 << 6) | MMI_OPC_CLASS_MMI3,
+ MMI_OPC_3_PEXCH = (0x1A << 6) | MMI_OPC_CLASS_MMI3,
+ MMI_OPC_3_PCPYH = (0x1B << 6) | MMI_OPC_CLASS_MMI3,
+ MMI_OPC_3_PEXCW = (0x1E << 6) | MMI_OPC_CLASS_MMI3,
};
/* global register indices */
@@ -4281,8 +4281,8 @@ static void gen_shift(DisasContext *ctx, uint32_t opc,
/* Arithmetic on HI/LO registers */
static void gen_HILO(DisasContext *ctx, uint32_t opc, int acc, int reg)
{
- if (reg == 0 && (opc == OPC_MFHI || opc == TX79_MMI_MFHI1 ||
- opc == OPC_MFLO || opc == TX79_MMI_MFLO1)) {
+ if (reg == 0 && (opc == OPC_MFHI || opc == MMI_OPC_MFHI1 ||
+ opc == OPC_MFLO || opc == MMI_OPC_MFLO1)) {
/* Treat as NOP. */
return;
}
@@ -4295,7 +4295,7 @@ static void gen_HILO(DisasContext *ctx, uint32_t opc, int acc, int reg)
switch (opc) {
case OPC_MFHI:
- case TX79_MMI_MFHI1:
+ case MMI_OPC_MFHI1:
#if defined(TARGET_MIPS64)
if (acc != 0) {
tcg_gen_ext32s_tl(cpu_gpr[reg], cpu_HI[acc]);
@@ -4306,7 +4306,7 @@ static void gen_HILO(DisasContext *ctx, uint32_t opc, int acc, int reg)
}
break;
case OPC_MFLO:
- case TX79_MMI_MFLO1:
+ case MMI_OPC_MFLO1:
#if defined(TARGET_MIPS64)
if (acc != 0) {
tcg_gen_ext32s_tl(cpu_gpr[reg], cpu_LO[acc]);
@@ -4317,7 +4317,7 @@ static void gen_HILO(DisasContext *ctx, uint32_t opc, int acc, int reg)
}
break;
case OPC_MTHI:
- case TX79_MMI_MTHI1:
+ case MMI_OPC_MTHI1:
if (reg != 0) {
#if defined(TARGET_MIPS64)
if (acc != 0) {
@@ -4332,7 +4332,7 @@ static void gen_HILO(DisasContext *ctx, uint32_t opc, int acc, int reg)
}
break;
case OPC_MTLO:
- case TX79_MMI_MTLO1:
+ case MMI_OPC_MTLO1:
if (reg != 0) {
#if defined(TARGET_MIPS64)
if (acc != 0) {
@@ -4652,7 +4652,7 @@ static void gen_muldiv(DisasContext *ctx, uint32_t opc,
switch (opc) {
case OPC_DIV:
- case TX79_MMI_DIV1:
+ case MMI_OPC_DIV1:
{
TCGv t2 = tcg_temp_new();
TCGv t3 = tcg_temp_new();
@@ -4674,7 +4674,7 @@ static void gen_muldiv(DisasContext *ctx, uint32_t opc,
}
break;
case OPC_DIVU:
- case TX79_MMI_DIVU1:
+ case MMI_OPC_DIVU1:
{
TCGv t2 = tcg_const_tl(0);
TCGv t3 = tcg_const_tl(1);
@@ -4858,7 +4858,7 @@ static void gen_mul_txx9(DisasContext *ctx, uint32_t opc,
gen_load_gpr(t1, rt);
switch (opc) {
- case TX79_MMI_MULT1:
+ case MMI_OPC_MULT1:
acc = 1;
/* Fall through */
case OPC_MULT:
@@ -4877,7 +4877,7 @@ static void gen_mul_txx9(DisasContext *ctx, uint32_t opc,
tcg_temp_free_i32(t3);
}
break;
- case TX79_MMI_MULTU1:
+ case MMI_OPC_MULTU1:
acc = 1;
/* Fall through */
case OPC_MULTU:
@@ -24686,32 +24686,32 @@ static void decode_tx79_mmi0(CPUMIPSState *env, DisasContext *ctx)
uint32_t opc = MASK_MMI0(ctx->opcode);
switch (opc) {
- case TX79_MMI0_PADDW: /* TODO: TX79_MMI0_PADDW */
- case TX79_MMI0_PSUBW: /* TODO: TX79_MMI0_PSUBW */
- case TX79_MMI0_PCGTW: /* TODO: TX79_MMI0_PCGTW */
- case TX79_MMI0_PMAXW: /* TODO: TX79_MMI0_PMAXW */
- case TX79_MMI0_PADDH: /* TODO: TX79_MMI0_PADDH */
- case TX79_MMI0_PSUBH: /* TODO: TX79_MMI0_PSUBH */
- case TX79_MMI0_PCGTH: /* TODO: TX79_MMI0_PCGTH */
- case TX79_MMI0_PMAXH: /* TODO: TX79_MMI0_PMAXH */
- case TX79_MMI0_PADDB: /* TODO: TX79_MMI0_PADDB */
- case TX79_MMI0_PSUBB: /* TODO: TX79_MMI0_PSUBB */
- case TX79_MMI0_PCGTB: /* TODO: TX79_MMI0_PCGTB */
- case TX79_MMI0_PADDSW: /* TODO: TX79_MMI0_PADDSW */
- case TX79_MMI0_PSUBSW: /* TODO: TX79_MMI0_PSUBSW */
- case TX79_MMI0_PEXTLW: /* TODO: TX79_MMI0_PEXTLW */
- case TX79_MMI0_PPACW: /* TODO: TX79_MMI0_PPACW */
- case TX79_MMI0_PADDSH: /* TODO: TX79_MMI0_PADDSH */
- case TX79_MMI0_PSUBSH: /* TODO: TX79_MMI0_PSUBSH */
- case TX79_MMI0_PEXTLH: /* TODO: TX79_MMI0_PEXTLH */
- case TX79_MMI0_PPACH: /* TODO: TX79_MMI0_PPACH */
- case TX79_MMI0_PADDSB: /* TODO: TX79_MMI0_PADDSB */
- case TX79_MMI0_PSUBSB: /* TODO: TX79_MMI0_PSUBSB */
- case TX79_MMI0_PEXTLB: /* TODO: TX79_MMI0_PEXTLB */
- case TX79_MMI0_PPACB: /* TODO: TX79_MMI0_PPACB */
- case TX79_MMI0_PEXT5: /* TODO: TX79_MMI0_PEXT5 */
- case TX79_MMI0_PPAC5: /* TODO: TX79_MMI0_PPAC5 */
- generate_exception_end(ctx, EXCP_RI); /* TODO: TX79_MMI_CLASS_MMI0 */
+ case MMI_OPC_0_PADDW: /* TODO: MMI_OPC_0_PADDW */
+ case MMI_OPC_0_PSUBW: /* TODO: MMI_OPC_0_PSUBW */
+ case MMI_OPC_0_PCGTW: /* TODO: MMI_OPC_0_PCGTW */
+ case MMI_OPC_0_PMAXW: /* TODO: MMI_OPC_0_PMAXW */
+ case MMI_OPC_0_PADDH: /* TODO: MMI_OPC_0_PADDH */
+ case MMI_OPC_0_PSUBH: /* TODO: MMI_OPC_0_PSUBH */
+ case MMI_OPC_0_PCGTH: /* TODO: MMI_OPC_0_PCGTH */
+ case MMI_OPC_0_PMAXH: /* TODO: MMI_OPC_0_PMAXH */
+ case MMI_OPC_0_PADDB: /* TODO: MMI_OPC_0_PADDB */
+ case MMI_OPC_0_PSUBB: /* TODO: MMI_OPC_0_PSUBB */
+ case MMI_OPC_0_PCGTB: /* TODO: MMI_OPC_0_PCGTB */
+ case MMI_OPC_0_PADDSW: /* TODO: MMI_OPC_0_PADDSW */
+ case MMI_OPC_0_PSUBSW: /* TODO: MMI_OPC_0_PSUBSW */
+ case MMI_OPC_0_PEXTLW: /* TODO: MMI_OPC_0_PEXTLW */
+ case MMI_OPC_0_PPACW: /* TODO: MMI_OPC_0_PPACW */
+ case MMI_OPC_0_PADDSH: /* TODO: MMI_OPC_0_PADDSH */
+ case MMI_OPC_0_PSUBSH: /* TODO: MMI_OPC_0_PSUBSH */
+ case MMI_OPC_0_PEXTLH: /* TODO: MMI_OPC_0_PEXTLH */
+ case MMI_OPC_0_PPACH: /* TODO: MMI_OPC_0_PPACH */
+ case MMI_OPC_0_PADDSB: /* TODO: MMI_OPC_0_PADDSB */
+ case MMI_OPC_0_PSUBSB: /* TODO: MMI_OPC_0_PSUBSB */
+ case MMI_OPC_0_PEXTLB: /* TODO: MMI_OPC_0_PEXTLB */
+ case MMI_OPC_0_PPACB: /* TODO: MMI_OPC_0_PPACB */
+ case MMI_OPC_0_PEXT5: /* TODO: MMI_OPC_0_PEXT5 */
+ case MMI_OPC_0_PPAC5: /* TODO: MMI_OPC_0_PPAC5 */
+ generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_OPC_CLASS_MMI0 */
break;
default:
MIPS_INVAL("TX79 MMI class MMI0");
@@ -24725,25 +24725,25 @@ static void decode_tx79_mmi1(CPUMIPSState *env, DisasContext *ctx)
uint32_t opc = MASK_MMI1(ctx->opcode);
switch (opc) {
- case TX79_MMI1_PABSW: /* TODO: TX79_MMI1_PABSW */
- case TX79_MMI1_PCEQW: /* TODO: TX79_MMI1_PCEQW */
- case TX79_MMI1_PMINW: /* TODO: TX79_MMI1_PMINW */
- case TX79_MMI1_PADSBH: /* TODO: TX79_MMI1_PADSBH */
- case TX79_MMI1_PABSH: /* TODO: TX79_MMI1_PABSH */
- case TX79_MMI1_PCEQH: /* TODO: TX79_MMI1_PCEQH */
- case TX79_MMI1_PMINH: /* TODO: TX79_MMI1_PMINH */
- case TX79_MMI1_PCEQB: /* TODO: TX79_MMI1_PCEQB */
- case TX79_MMI1_PADDUW: /* TODO: TX79_MMI1_PADDUW */
- case TX79_MMI1_PSUBUW: /* TODO: TX79_MMI1_PSUBUW */
- case TX79_MMI1_PEXTUW: /* TODO: TX79_MMI1_PEXTUW */
- case TX79_MMI1_PADDUH: /* TODO: TX79_MMI1_PADDUH */
- case TX79_MMI1_PSUBUH: /* TODO: TX79_MMI1_PSUBUH */
- case TX79_MMI1_PEXTUH: /* TODO: TX79_MMI1_PEXTUH */
- case TX79_MMI1_PADDUB: /* TODO: TX79_MMI1_PADDUB */
- case TX79_MMI1_PSUBUB: /* TODO: TX79_MMI1_PSUBUB */
- case TX79_MMI1_PEXTUB: /* TODO: TX79_MMI1_PEXTUB */
- case TX79_MMI1_QFSRV: /* TODO: TX79_MMI1_QFSRV */
- generate_exception_end(ctx, EXCP_RI); /* TODO: TX79_MMI_CLASS_MMI1 */
+ case MMI_OPC_1_PABSW: /* TODO: MMI_OPC_1_PABSW */
+ case MMI_OPC_1_PCEQW: /* TODO: MMI_OPC_1_PCEQW */
+ case MMI_OPC_1_PMINW: /* TODO: MMI_OPC_1_PMINW */
+ case MMI_OPC_1_PADSBH: /* TODO: MMI_OPC_1_PADSBH */
+ case MMI_OPC_1_PABSH: /* TODO: MMI_OPC_1_PABSH */
+ case MMI_OPC_1_PCEQH: /* TODO: MMI_OPC_1_PCEQH */
+ case MMI_OPC_1_PMINH: /* TODO: MMI_OPC_1_PMINH */
+ case MMI_OPC_1_PCEQB: /* TODO: MMI_OPC_1_PCEQB */
+ case MMI_OPC_1_PADDUW: /* TODO: MMI_OPC_1_PADDUW */
+ case MMI_OPC_1_PSUBUW: /* TODO: MMI_OPC_1_PSUBUW */
+ case MMI_OPC_1_PEXTUW: /* TODO: MMI_OPC_1_PEXTUW */
+ case MMI_OPC_1_PADDUH: /* TODO: MMI_OPC_1_PADDUH */
+ case MMI_OPC_1_PSUBUH: /* TODO: MMI_OPC_1_PSUBUH */
+ case MMI_OPC_1_PEXTUH: /* TODO: MMI_OPC_1_PEXTUH */
+ case MMI_OPC_1_PADDUB: /* TODO: MMI_OPC_1_PADDUB */
+ case MMI_OPC_1_PSUBUB: /* TODO: MMI_OPC_1_PSUBUB */
+ case MMI_OPC_1_PEXTUB: /* TODO: MMI_OPC_1_PEXTUB */
+ case MMI_OPC_1_QFSRV: /* TODO: MMI_OPC_1_QFSRV */
+ generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_OPC_CLASS_MMI1 */
break;
default:
MIPS_INVAL("TX79 MMI class MMI1");
@@ -24757,29 +24757,29 @@ static void decode_tx79_mmi2(CPUMIPSState *env, DisasContext *ctx)
uint32_t opc = MASK_MMI2(ctx->opcode);
switch (opc) {
- case TX79_MMI2_PMADDW: /* TODO: TX79_MMI2_PMADDW */
- case TX79_MMI2_PSLLVW: /* TODO: TX79_MMI2_PSLLVW */
- case TX79_MMI2_PSRLVW: /* TODO: TX79_MMI2_PSRLVW */
- case TX79_MMI2_PMSUBW: /* TODO: TX79_MMI2_PMSUBW */
- case TX79_MMI2_PMFHI: /* TODO: TX79_MMI2_PMFHI */
- case TX79_MMI2_PMFLO: /* TODO: TX79_MMI2_PMFLO */
- case TX79_MMI2_PINTH: /* TODO: TX79_MMI2_PINTH */
- case TX79_MMI2_PMULTW: /* TODO: TX79_MMI2_PMULTW */
- case TX79_MMI2_PDIVW: /* TODO: TX79_MMI2_PDIVW */
- case TX79_MMI2_PCPYLD: /* TODO: TX79_MMI2_PCPYLD */
- case TX79_MMI2_PMADDH: /* TODO: TX79_MMI2_PMADDH */
- case TX79_MMI2_PHMADH: /* TODO: TX79_MMI2_PHMADH */
- case TX79_MMI2_PAND: /* TODO: TX79_MMI2_PAND */
- case TX79_MMI2_PXOR: /* TODO: TX79_MMI2_PXOR */
- case TX79_MMI2_PMSUBH: /* TODO: TX79_MMI2_PMSUBH */
- case TX79_MMI2_PHMSBH: /* TODO: TX79_MMI2_PHMSBH */
- case TX79_MMI2_PEXEH: /* TODO: TX79_MMI2_PEXEH */
- case TX79_MMI2_PREVH: /* TODO: TX79_MMI2_PREVH */
- case TX79_MMI2_PMULTH: /* TODO: TX79_MMI2_PMULTH */
- case TX79_MMI2_PDIVBW: /* TODO: TX79_MMI2_PDIVBW */
- case TX79_MMI2_PEXEW: /* TODO: TX79_MMI2_PEXEW */
- case TX79_MMI2_PROT3W: /* TODO: TX79_MMI2_PROT3W */
- generate_exception_end(ctx, EXCP_RI); /* TODO: TX79_MMI_CLASS_MMI2 */
+ case MMI_OPC_2_PMADDW: /* TODO: MMI_OPC_2_PMADDW */
+ case MMI_OPC_2_PSLLVW: /* TODO: MMI_OPC_2_PSLLVW */
+ case MMI_OPC_2_PSRLVW: /* TODO: MMI_OPC_2_PSRLVW */
+ case MMI_OPC_2_PMSUBW: /* TODO: MMI_OPC_2_PMSUBW */
+ case MMI_OPC_2_PMFHI: /* TODO: MMI_OPC_2_PMFHI */
+ case MMI_OPC_2_PMFLO: /* TODO: MMI_OPC_2_PMFLO */
+ case MMI_OPC_2_PINTH: /* TODO: MMI_OPC_2_PINTH */
+ case MMI_OPC_2_PMULTW: /* TODO: MMI_OPC_2_PMULTW */
+ case MMI_OPC_2_PDIVW: /* TODO: MMI_OPC_2_PDIVW */
+ case MMI_OPC_2_PCPYLD: /* TODO: MMI_OPC_2_PCPYLD */
+ case MMI_OPC_2_PMADDH: /* TODO: MMI_OPC_2_PMADDH */
+ case MMI_OPC_2_PHMADH: /* TODO: MMI_OPC_2_PHMADH */
+ case MMI_OPC_2_PAND: /* TODO: MMI_OPC_2_PAND */
+ case MMI_OPC_2_PXOR: /* TODO: MMI_OPC_2_PXOR */
+ case MMI_OPC_2_PMSUBH: /* TODO: MMI_OPC_2_PMSUBH */
+ case MMI_OPC_2_PHMSBH: /* TODO: MMI_OPC_2_PHMSBH */
+ case MMI_OPC_2_PEXEH: /* TODO: MMI_OPC_2_PEXEH */
+ case MMI_OPC_2_PREVH: /* TODO: MMI_OPC_2_PREVH */
+ case MMI_OPC_2_PMULTH: /* TODO: MMI_OPC_2_PMULTH */
+ case MMI_OPC_2_PDIVBW: /* TODO: MMI_OPC_2_PDIVBW */
+ case MMI_OPC_2_PEXEW: /* TODO: MMI_OPC_2_PEXEW */
+ case MMI_OPC_2_PROT3W: /* TODO: MMI_OPC_2_PROT3W */
+ generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_OPC_CLASS_MMI2 */
break;
default:
MIPS_INVAL("TX79 MMI class MMI2");
@@ -24793,20 +24793,20 @@ static void decode_tx79_mmi3(CPUMIPSState *env, DisasContext *ctx)
uint32_t opc = MASK_MMI3(ctx->opcode);
switch (opc) {
- case TX79_MMI3_PMADDUW: /* TODO: TX79_MMI3_PMADDUW */
- case TX79_MMI3_PSRAVW: /* TODO: TX79_MMI3_PSRAVW */
- case TX79_MMI3_PMTHI: /* TODO: TX79_MMI3_PMTHI */
- case TX79_MMI3_PMTLO: /* TODO: TX79_MMI3_PMTLO */
- case TX79_MMI3_PINTEH: /* TODO: TX79_MMI3_PINTEH */
- case TX79_MMI3_PMULTUW: /* TODO: TX79_MMI3_PMULTUW */
- case TX79_MMI3_PDIVUW: /* TODO: TX79_MMI3_PDIVUW */
- case TX79_MMI3_PCPYUD: /* TODO: TX79_MMI3_PCPYUD */
- case TX79_MMI3_POR: /* TODO: TX79_MMI3_POR */
- case TX79_MMI3_PNOR: /* TODO: TX79_MMI3_PNOR */
- case TX79_MMI3_PEXCH: /* TODO: TX79_MMI3_PEXCH */
- case TX79_MMI3_PCPYH: /* TODO: TX79_MMI3_PCPYH */
- case TX79_MMI3_PEXCW: /* TODO: TX79_MMI3_PEXCW */
- generate_exception_end(ctx, EXCP_RI); /* TODO: TX79_MMI_CLASS_MMI3 */
+ case MMI_OPC_3_PMADDUW: /* TODO: MMI_OPC_3_PMADDUW */
+ case MMI_OPC_3_PSRAVW: /* TODO: MMI_OPC_3_PSRAVW */
+ case MMI_OPC_3_PMTHI: /* TODO: MMI_OPC_3_PMTHI */
+ case MMI_OPC_3_PMTLO: /* TODO: MMI_OPC_3_PMTLO */
+ case MMI_OPC_3_PINTEH: /* TODO: MMI_OPC_3_PINTEH */
+ case MMI_OPC_3_PMULTUW: /* TODO: MMI_OPC_3_PMULTUW */
+ case MMI_OPC_3_PDIVUW: /* TODO: MMI_OPC_3_PDIVUW */
+ case MMI_OPC_3_PCPYUD: /* TODO: MMI_OPC_3_PCPYUD */
+ case MMI_OPC_3_POR: /* TODO: MMI_OPC_3_POR */
+ case MMI_OPC_3_PNOR: /* TODO: MMI_OPC_3_PNOR */
+ case MMI_OPC_3_PEXCH: /* TODO: MMI_OPC_3_PEXCH */
+ case MMI_OPC_3_PCPYH: /* TODO: MMI_OPC_3_PCPYH */
+ case MMI_OPC_3_PEXCW: /* TODO: MMI_OPC_3_PEXCW */
+ generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_OPC_CLASS_MMI3 */
break;
default:
MIPS_INVAL("TX79 MMI class MMI3");
@@ -24823,48 +24823,48 @@ static void decode_tx79_mmi(CPUMIPSState *env, DisasContext *ctx)
int rd = extract32(ctx->opcode, 11, 5);
switch (opc) {
- case TX79_MMI_CLASS_MMI0:
+ case MMI_OPC_CLASS_MMI0:
decode_tx79_mmi0(env, ctx);
break;
- case TX79_MMI_CLASS_MMI1:
+ case MMI_OPC_CLASS_MMI1:
decode_tx79_mmi1(env, ctx);
break;
- case TX79_MMI_CLASS_MMI2:
+ case MMI_OPC_CLASS_MMI2:
decode_tx79_mmi2(env, ctx);
break;
- case TX79_MMI_CLASS_MMI3:
+ case MMI_OPC_CLASS_MMI3:
decode_tx79_mmi3(env, ctx);
break;
- case TX79_MMI_MULT1:
- case TX79_MMI_MULTU1:
+ case MMI_OPC_MULT1:
+ case MMI_OPC_MULTU1:
gen_mul_txx9(ctx, opc, rd, rs, rt);
break;
- case TX79_MMI_DIV1:
- case TX79_MMI_DIVU1:
+ case MMI_OPC_DIV1:
+ case MMI_OPC_DIVU1:
gen_muldiv(ctx, opc, 1, rs, rt);
break;
- case TX79_MMI_MTLO1:
- case TX79_MMI_MTHI1:
+ case MMI_OPC_MTLO1:
+ case MMI_OPC_MTHI1:
gen_HILO(ctx, opc, 1, rs);
break;
- case TX79_MMI_MFLO1:
- case TX79_MMI_MFHI1:
+ case MMI_OPC_MFLO1:
+ case MMI_OPC_MFHI1:
gen_HILO(ctx, opc, 1, rd);
break;
- case TX79_MMI_MADD: /* TODO: TX79_MMI_MADD */
- case TX79_MMI_MADDU: /* TODO: TX79_MMI_MADDU */
- case TX79_MMI_PLZCW: /* TODO: TX79_MMI_PLZCW */
- case TX79_MMI_MADD1: /* TODO: TX79_MMI_MADD1 */
- case TX79_MMI_MADDU1: /* TODO: TX79_MMI_MADDU1 */
- case TX79_MMI_PMFHL: /* TODO: TX79_MMI_PMFHL */
- case TX79_MMI_PMTHL: /* TODO: TX79_MMI_PMTHL */
- case TX79_MMI_PSLLH: /* TODO: TX79_MMI_PSLLH */
- case TX79_MMI_PSRLH: /* TODO: TX79_MMI_PSRLH */
- case TX79_MMI_PSRAH: /* TODO: TX79_MMI_PSRAH */
- case TX79_MMI_PSLLW: /* TODO: TX79_MMI_PSLLW */
- case TX79_MMI_PSRLW: /* TODO: TX79_MMI_PSRLW */
- case TX79_MMI_PSRAW: /* TODO: TX79_MMI_PSRAW */
- generate_exception_end(ctx, EXCP_RI); /* TODO: TX79_CLASS_MMI */
+ case MMI_OPC_MADD: /* TODO: MMI_OPC_MADD */
+ case MMI_OPC_MADDU: /* TODO: MMI_OPC_MADDU */
+ case MMI_OPC_PLZCW: /* TODO: MMI_OPC_PLZCW */
+ case MMI_OPC_MADD1: /* TODO: MMI_OPC_MADD1 */
+ case MMI_OPC_MADDU1: /* TODO: MMI_OPC_MADDU1 */
+ case MMI_OPC_PMFHL: /* TODO: MMI_OPC_PMFHL */
+ case MMI_OPC_PMTHL: /* TODO: MMI_OPC_PMTHL */
+ case MMI_OPC_PSLLH: /* TODO: MMI_OPC_PSLLH */
+ case MMI_OPC_PSRLH: /* TODO: MMI_OPC_PSRLH */
+ case MMI_OPC_PSRAH: /* TODO: MMI_OPC_PSRAH */
+ case MMI_OPC_PSLLW: /* TODO: MMI_OPC_PSLLW */
+ case MMI_OPC_PSRLW: /* TODO: MMI_OPC_PSRLW */
+ case MMI_OPC_PSRAW: /* TODO: MMI_OPC_PSRAW */
+ generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_CLASS_MMI */
break;
default:
MIPS_INVAL("TX79 MMI class");
@@ -24875,12 +24875,12 @@ static void decode_tx79_mmi(CPUMIPSState *env, DisasContext *ctx)
static void decode_tx79_lq(CPUMIPSState *env, DisasContext *ctx)
{
- generate_exception_end(ctx, EXCP_RI); /* TODO: TX79_LQ */
+ generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_LQ */
}
static void gen_tx79_sq(DisasContext *ctx, int base, int rt, int offset)
{
- generate_exception_end(ctx, EXCP_RI); /* TODO: TX79_SQ */
+ generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_SQ */
}
/*
@@ -26238,7 +26238,7 @@ static void decode_opc(CPUMIPSState *env, DisasContext *ctx)
break;
case OPC_SPECIAL3:
if (ctx->insn_flags & INSN_R5900) {
- decode_tx79_sq(env, ctx); /* TX79_SQ */
+ decode_tx79_sq(env, ctx); /* MMI_SQ */
} else {
decode_opc_special3(env, ctx);
}
@@ -26902,7 +26902,7 @@ static void decode_opc(CPUMIPSState *env, DisasContext *ctx)
break;
case OPC_MSA: /* OPC_MDMX */
if (ctx->insn_flags & INSN_R5900) {
- decode_tx79_lq(env, ctx); /* TX79_LQ */
+ decode_tx79_lq(env, ctx); /* MMI_LQ */
} else {
/* MDMX: Not implemented. */
gen_msa(env, ctx);
--
2.7.4
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [Qemu-devel] [PATCH v2 3/5] target/mips: Rename MMI-related functions
2018-10-30 11:36 [Qemu-devel] [PATCH v2 0/5] target/mips: Renaming and limiting modes for R5900 Aleksandar Markovic
2018-10-30 11:36 ` [Qemu-devel] [PATCH v2 1/5] target/mips: Rename MMI-related masks Aleksandar Markovic
2018-10-30 11:36 ` [Qemu-devel] [PATCH v2 2/5] target/mips: Rename MMI-related opcodes Aleksandar Markovic
@ 2018-10-30 11:36 ` Aleksandar Markovic
2018-10-30 12:42 ` Stefan Markovic
2018-10-30 13:11 ` Philippe Mathieu-Daudé
2018-10-30 11:36 ` [Qemu-devel] [PATCH v2 4/5] target/mips: Misc R5900-related cosmetic changes Aleksandar Markovic
2018-10-30 11:36 ` [Qemu-devel] [PATCH v2 5/5] target/mips: Enable only tested modes for R5900 Aleksandar Markovic
4 siblings, 2 replies; 19+ messages in thread
From: Aleksandar Markovic @ 2018-10-30 11:36 UTC (permalink / raw)
To: qemu-devel; +Cc: aurelien, amarkovic, smarkovic, pjovanovic
From: Aleksandar Markovic <amarkovic@wavecomp.com>
Rename MMI-related functions.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
---
target/mips/translate.c | 32 ++++++++++++++++----------------
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/target/mips/translate.c b/target/mips/translate.c
index 4b008d8..155331f 100644
--- a/target/mips/translate.c
+++ b/target/mips/translate.c
@@ -24681,7 +24681,7 @@ static void decode_opc_special3_legacy(CPUMIPSState *env, DisasContext *ctx)
}
}
-static void decode_tx79_mmi0(CPUMIPSState *env, DisasContext *ctx)
+static void decode_mmi0(CPUMIPSState *env, DisasContext *ctx)
{
uint32_t opc = MASK_MMI0(ctx->opcode);
@@ -24720,7 +24720,7 @@ static void decode_tx79_mmi0(CPUMIPSState *env, DisasContext *ctx)
}
}
-static void decode_tx79_mmi1(CPUMIPSState *env, DisasContext *ctx)
+static void decode_mmi1(CPUMIPSState *env, DisasContext *ctx)
{
uint32_t opc = MASK_MMI1(ctx->opcode);
@@ -24752,7 +24752,7 @@ static void decode_tx79_mmi1(CPUMIPSState *env, DisasContext *ctx)
}
}
-static void decode_tx79_mmi2(CPUMIPSState *env, DisasContext *ctx)
+static void decode_mmi2(CPUMIPSState *env, DisasContext *ctx)
{
uint32_t opc = MASK_MMI2(ctx->opcode);
@@ -24788,7 +24788,7 @@ static void decode_tx79_mmi2(CPUMIPSState *env, DisasContext *ctx)
}
}
-static void decode_tx79_mmi3(CPUMIPSState *env, DisasContext *ctx)
+static void decode_mmi3(CPUMIPSState *env, DisasContext *ctx)
{
uint32_t opc = MASK_MMI3(ctx->opcode);
@@ -24815,7 +24815,7 @@ static void decode_tx79_mmi3(CPUMIPSState *env, DisasContext *ctx)
}
}
-static void decode_tx79_mmi(CPUMIPSState *env, DisasContext *ctx)
+static void decode_mmi(CPUMIPSState *env, DisasContext *ctx)
{
uint32_t opc = MASK_MMI(ctx->opcode);
int rs = extract32(ctx->opcode, 21, 5);
@@ -24824,16 +24824,16 @@ static void decode_tx79_mmi(CPUMIPSState *env, DisasContext *ctx)
switch (opc) {
case MMI_OPC_CLASS_MMI0:
- decode_tx79_mmi0(env, ctx);
+ decode_mmi0(env, ctx);
break;
case MMI_OPC_CLASS_MMI1:
- decode_tx79_mmi1(env, ctx);
+ decode_mmi1(env, ctx);
break;
case MMI_OPC_CLASS_MMI2:
- decode_tx79_mmi2(env, ctx);
+ decode_mmi2(env, ctx);
break;
case MMI_OPC_CLASS_MMI3:
- decode_tx79_mmi3(env, ctx);
+ decode_mmi3(env, ctx);
break;
case MMI_OPC_MULT1:
case MMI_OPC_MULTU1:
@@ -24873,12 +24873,12 @@ static void decode_tx79_mmi(CPUMIPSState *env, DisasContext *ctx)
}
}
-static void decode_tx79_lq(CPUMIPSState *env, DisasContext *ctx)
+static void decode_mmi_lq(CPUMIPSState *env, DisasContext *ctx)
{
generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_LQ */
}
-static void gen_tx79_sq(DisasContext *ctx, int base, int rt, int offset)
+static void gen_mmi_sq(DisasContext *ctx, int base, int rt, int offset)
{
generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_SQ */
}
@@ -24904,7 +24904,7 @@ static void gen_tx79_sq(DisasContext *ctx, int base, int rt, int offset)
* In user mode, QEMU must verify the upper and lower 11 bits to distinguish
* between SQ and RDHWR, as the Linux kernel does.
*/
-static void decode_tx79_sq(CPUMIPSState *env, DisasContext *ctx)
+static void decode_mmi_sq(CPUMIPSState *env, DisasContext *ctx)
{
int base = extract32(ctx->opcode, 21, 5);
int rt = extract32(ctx->opcode, 16, 5);
@@ -24922,7 +24922,7 @@ static void decode_tx79_sq(CPUMIPSState *env, DisasContext *ctx)
}
#endif
- gen_tx79_sq(ctx, base, rt, offset);
+ gen_mmi_sq(ctx, base, rt, offset);
}
static void decode_opc_special3(CPUMIPSState *env, DisasContext *ctx)
@@ -26231,14 +26231,14 @@ static void decode_opc(CPUMIPSState *env, DisasContext *ctx)
break;
case OPC_SPECIAL2:
if ((ctx->insn_flags & INSN_R5900) && (ctx->insn_flags & ASE_MMI)) {
- decode_tx79_mmi(env, ctx);
+ decode_mmi(env, ctx);
} else {
decode_opc_special2_legacy(env, ctx);
}
break;
case OPC_SPECIAL3:
if (ctx->insn_flags & INSN_R5900) {
- decode_tx79_sq(env, ctx); /* MMI_SQ */
+ decode_mmi_sq(env, ctx); /* MMI_SQ */
} else {
decode_opc_special3(env, ctx);
}
@@ -26902,7 +26902,7 @@ static void decode_opc(CPUMIPSState *env, DisasContext *ctx)
break;
case OPC_MSA: /* OPC_MDMX */
if (ctx->insn_flags & INSN_R5900) {
- decode_tx79_lq(env, ctx); /* MMI_LQ */
+ decode_mmi_lq(env, ctx); /* MMI_LQ */
} else {
/* MDMX: Not implemented. */
gen_msa(env, ctx);
--
2.7.4
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [Qemu-devel] [PATCH v2 4/5] target/mips: Misc R5900-related cosmetic changes
2018-10-30 11:36 [Qemu-devel] [PATCH v2 0/5] target/mips: Renaming and limiting modes for R5900 Aleksandar Markovic
` (2 preceding siblings ...)
2018-10-30 11:36 ` [Qemu-devel] [PATCH v2 3/5] target/mips: Rename MMI-related functions Aleksandar Markovic
@ 2018-10-30 11:36 ` Aleksandar Markovic
2018-10-30 12:47 ` Philippe Mathieu-Daudé
2018-10-30 11:36 ` [Qemu-devel] [PATCH v2 5/5] target/mips: Enable only tested modes for R5900 Aleksandar Markovic
4 siblings, 1 reply; 19+ messages in thread
From: Aleksandar Markovic @ 2018-10-30 11:36 UTC (permalink / raw)
To: qemu-devel; +Cc: aurelien, amarkovic, smarkovic, pjovanovic
From: Aleksandar Markovic <amarkovic@wavecomp.com>
Misc changes in comments and strings for R5900.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
---
target/mips/translate.c | 14 +++++++-------
target/mips/translate_init.inc.c | 12 ------------
2 files changed, 7 insertions(+), 19 deletions(-)
diff --git a/target/mips/translate.c b/target/mips/translate.c
index 155331f..259ad2b 100644
--- a/target/mips/translate.c
+++ b/target/mips/translate.c
@@ -2096,8 +2096,8 @@ enum {
* MTSAH rs, immediate Move Halfword Count to Shift Amount Register
* PROT3W rd, rt Parallel Rotate 3 Words
*
- * The TX79-specific Multimedia Instruction encodings
- * ==================================================
+ * Multimedia Instructions (MMI) encodings
+ * =======================================
*
* MMI Instruction encoding table keys:
*
@@ -24714,7 +24714,7 @@ static void decode_mmi0(CPUMIPSState *env, DisasContext *ctx)
generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_OPC_CLASS_MMI0 */
break;
default:
- MIPS_INVAL("TX79 MMI class MMI0");
+ MIPS_INVAL("MMI class MMI0");
generate_exception_end(ctx, EXCP_RI);
break;
}
@@ -24746,7 +24746,7 @@ static void decode_mmi1(CPUMIPSState *env, DisasContext *ctx)
generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_OPC_CLASS_MMI1 */
break;
default:
- MIPS_INVAL("TX79 MMI class MMI1");
+ MIPS_INVAL("MMI class MMI1");
generate_exception_end(ctx, EXCP_RI);
break;
}
@@ -24782,7 +24782,7 @@ static void decode_mmi2(CPUMIPSState *env, DisasContext *ctx)
generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_OPC_CLASS_MMI2 */
break;
default:
- MIPS_INVAL("TX79 MMI class MMI2");
+ MIPS_INVAL("MMI class MMI2");
generate_exception_end(ctx, EXCP_RI);
break;
}
@@ -24809,7 +24809,7 @@ static void decode_mmi3(CPUMIPSState *env, DisasContext *ctx)
generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_OPC_CLASS_MMI3 */
break;
default:
- MIPS_INVAL("TX79 MMI class MMI3");
+ MIPS_INVAL("MMI class MMI3");
generate_exception_end(ctx, EXCP_RI);
break;
}
@@ -24867,7 +24867,7 @@ static void decode_mmi(CPUMIPSState *env, DisasContext *ctx)
generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_CLASS_MMI */
break;
default:
- MIPS_INVAL("TX79 MMI class");
+ MIPS_INVAL("MMI class");
generate_exception_end(ctx, EXCP_RI);
break;
}
diff --git a/target/mips/translate_init.inc.c b/target/mips/translate_init.inc.c
index 85da4a2..cab2003 100644
--- a/target/mips/translate_init.inc.c
+++ b/target/mips/translate_init.inc.c
@@ -411,18 +411,6 @@ const mips_def_t mips_defs[] =
.mmu_type = MMU_TYPE_R4000,
},
{
- /*
- * The Toshiba TX System RISC TX79 Core Architecture manual
- *
- * https://wiki.qemu.org/File:C790.pdf
- *
- * describes the C790 processor that is a follow-up to the R5900.
- * There are a few notable differences in that the R5900 FPU
- *
- * - is not IEEE 754-1985 compliant,
- * - does not implement double format, and
- * - its machine code is nonstandard.
- */
.name = "R5900",
.CP0_PRid = 0x00002E00,
/* No L2 cache, icache size 32k, dcache size 32k, uncached coherency. */
--
2.7.4
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [Qemu-devel] [PATCH v2 5/5] target/mips: Enable only tested modes for R5900
2018-10-30 11:36 [Qemu-devel] [PATCH v2 0/5] target/mips: Renaming and limiting modes for R5900 Aleksandar Markovic
` (3 preceding siblings ...)
2018-10-30 11:36 ` [Qemu-devel] [PATCH v2 4/5] target/mips: Misc R5900-related cosmetic changes Aleksandar Markovic
@ 2018-10-30 11:36 ` Aleksandar Markovic
2018-10-30 12:56 ` Philippe Mathieu-Daudé
4 siblings, 1 reply; 19+ messages in thread
From: Aleksandar Markovic @ 2018-10-30 11:36 UTC (permalink / raw)
To: qemu-devel; +Cc: aurelien, amarkovic, smarkovic, pjovanovic
From: Aleksandar Markovic <amarkovic@wavecomp.com>
Enable MIPS 032 user mode for R5900.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
---
target/mips/translate_init.inc.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/target/mips/translate_init.inc.c b/target/mips/translate_init.inc.c
index cab2003..d84c58e 100644
--- a/target/mips/translate_init.inc.c
+++ b/target/mips/translate_init.inc.c
@@ -410,6 +410,8 @@ const mips_def_t mips_defs[] =
.insn_flags = CPU_MIPS32R5 | ASE_MSA,
.mmu_type = MMU_TYPE_R4000,
},
+#if defined(CONFIG_USER_ONLY)
+#if !defined(TARGET_MIPS64)
{
.name = "R5900",
.CP0_PRid = 0x00002E00,
@@ -457,6 +459,8 @@ const mips_def_t mips_defs[] =
.insn_flags = CPU_R5900 | ASE_MMI,
.mmu_type = MMU_TYPE_R4000,
},
+#endif
+#endif
{
/* A generic CPU supporting MIPS32 Release 6 ISA.
FIXME: Support IEEE 754-2008 FP.
--
2.7.4
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PATCH v2 1/5] target/mips: Rename MMI-related masks
2018-10-30 11:36 ` [Qemu-devel] [PATCH v2 1/5] target/mips: Rename MMI-related masks Aleksandar Markovic
@ 2018-10-30 12:31 ` Stefan Markovic
2018-10-30 13:08 ` Philippe Mathieu-Daudé
1 sibling, 0 replies; 19+ messages in thread
From: Stefan Markovic @ 2018-10-30 12:31 UTC (permalink / raw)
To: Aleksandar Markovic, qemu-devel
Cc: aurelien, Aleksandar Markovic, Petar Jovanovic
On 30.10.18. 12:36, Aleksandar Markovic wrote:
> From: Aleksandar Markovic <amarkovic@wavecomp.com>
>
> Rename MMI-related masks.
>
> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
> ---
> target/mips/translate.c | 20 ++++++++++----------
> 1 file changed, 10 insertions(+), 10 deletions(-)
Reviewed-by: Stefan Markovic <smarkovic@wavecomp.com>
> diff --git a/target/mips/translate.c b/target/mips/translate.c
> index 51a5488..e38d50d 100644
> --- a/target/mips/translate.c
> +++ b/target/mips/translate.c
> @@ -2159,7 +2159,7 @@ enum {
> * 7 111 | * | * | * | * | PSLLW | * | PSRLW | PSRAW
> */
>
> -#define MASK_TX79_MMI(op) (MASK_OP_MAJOR(op) | ((op) & 0x3F))
> +#define MASK_MMI(op) (MASK_OP_MAJOR(op) | ((op) & 0x3F))
> enum {
> TX79_MMI_MADD = 0x00 | TX79_CLASS_MMI, /* Same as OPC_MADD */
> TX79_MMI_MADDU = 0x01 | TX79_CLASS_MMI, /* Same as OPC_MADDU */
> @@ -2210,7 +2210,7 @@ enum {
> * 7 111 | * | * | PEXT5 | PPAC5
> */
>
> -#define MASK_TX79_MMI0(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
> +#define MASK_MMI0(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
> enum {
> TX79_MMI0_PADDW = (0x00 << 6) | TX79_MMI_CLASS_MMI0,
> TX79_MMI0_PSUBW = (0x01 << 6) | TX79_MMI_CLASS_MMI0,
> @@ -2261,7 +2261,7 @@ enum {
> * 7 111 | * | * | * | *
> */
>
> -#define MASK_TX79_MMI1(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
> +#define MASK_MMI1(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
> enum {
> TX79_MMI1_PABSW = (0x01 << 6) | TX79_MMI_CLASS_MMI1,
> TX79_MMI1_PCEQW = (0x02 << 6) | TX79_MMI_CLASS_MMI1,
> @@ -2305,7 +2305,7 @@ enum {
> * 7 111 | PMULTH| PDIVBW| PEXEW | PROT3W
> */
>
> -#define MASK_TX79_MMI2(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
> +#define MASK_MMI2(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
> enum {
> TX79_MMI2_PMADDW = (0x00 << 6) | TX79_MMI_CLASS_MMI2,
> TX79_MMI2_PSLLVW = (0x02 << 6) | TX79_MMI_CLASS_MMI2,
> @@ -2353,7 +2353,7 @@ enum {
> * 7 111 | * | * | PEXCW | *
> */
>
> -#define MASK_TX79_MMI3(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
> +#define MASK_MMI3(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
> enum {
> TX79_MMI3_PMADDUW = (0x00 << 6) | TX79_MMI_CLASS_MMI3,
> TX79_MMI3_PSRAVW = (0x03 << 6) | TX79_MMI_CLASS_MMI3,
> @@ -24683,7 +24683,7 @@ static void decode_opc_special3_legacy(CPUMIPSState *env, DisasContext *ctx)
>
> static void decode_tx79_mmi0(CPUMIPSState *env, DisasContext *ctx)
> {
> - uint32_t opc = MASK_TX79_MMI0(ctx->opcode);
> + uint32_t opc = MASK_MMI0(ctx->opcode);
>
> switch (opc) {
> case TX79_MMI0_PADDW: /* TODO: TX79_MMI0_PADDW */
> @@ -24722,7 +24722,7 @@ static void decode_tx79_mmi0(CPUMIPSState *env, DisasContext *ctx)
>
> static void decode_tx79_mmi1(CPUMIPSState *env, DisasContext *ctx)
> {
> - uint32_t opc = MASK_TX79_MMI1(ctx->opcode);
> + uint32_t opc = MASK_MMI1(ctx->opcode);
>
> switch (opc) {
> case TX79_MMI1_PABSW: /* TODO: TX79_MMI1_PABSW */
> @@ -24754,7 +24754,7 @@ static void decode_tx79_mmi1(CPUMIPSState *env, DisasContext *ctx)
>
> static void decode_tx79_mmi2(CPUMIPSState *env, DisasContext *ctx)
> {
> - uint32_t opc = MASK_TX79_MMI2(ctx->opcode);
> + uint32_t opc = MASK_MMI2(ctx->opcode);
>
> switch (opc) {
> case TX79_MMI2_PMADDW: /* TODO: TX79_MMI2_PMADDW */
> @@ -24790,7 +24790,7 @@ static void decode_tx79_mmi2(CPUMIPSState *env, DisasContext *ctx)
>
> static void decode_tx79_mmi3(CPUMIPSState *env, DisasContext *ctx)
> {
> - uint32_t opc = MASK_TX79_MMI3(ctx->opcode);
> + uint32_t opc = MASK_MMI3(ctx->opcode);
>
> switch (opc) {
> case TX79_MMI3_PMADDUW: /* TODO: TX79_MMI3_PMADDUW */
> @@ -24817,7 +24817,7 @@ static void decode_tx79_mmi3(CPUMIPSState *env, DisasContext *ctx)
>
> static void decode_tx79_mmi(CPUMIPSState *env, DisasContext *ctx)
> {
> - uint32_t opc = MASK_TX79_MMI(ctx->opcode);
> + uint32_t opc = MASK_MMI(ctx->opcode);
> int rs = extract32(ctx->opcode, 21, 5);
> int rt = extract32(ctx->opcode, 16, 5);
> int rd = extract32(ctx->opcode, 11, 5);
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/5] target/mips: Rename MMI-related opcodes
2018-10-30 11:36 ` [Qemu-devel] [PATCH v2 2/5] target/mips: Rename MMI-related opcodes Aleksandar Markovic
@ 2018-10-30 12:36 ` Stefan Markovic
2018-10-30 12:44 ` Philippe Mathieu-Daudé
1 sibling, 0 replies; 19+ messages in thread
From: Stefan Markovic @ 2018-10-30 12:36 UTC (permalink / raw)
To: Aleksandar Markovic, qemu-devel
Cc: aurelien, Aleksandar Markovic, Petar Jovanovic
On 30.10.18. 12:36, Aleksandar Markovic wrote:
> From: Aleksandar Markovic <amarkovic@wavecomp.com>
>
> Rename MMI-related opcodes.
>
> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
> ---
> target/mips/translate.c | 470 ++++++++++++++++++++++++------------------------
> 1 file changed, 235 insertions(+), 235 deletions(-)
Reviewed-by: Stefan Markovic <smarkovic@wavecomp.com>
> diff --git a/target/mips/translate.c b/target/mips/translate.c
> index e38d50d..4b008d8 100644
> --- a/target/mips/translate.c
> +++ b/target/mips/translate.c
> @@ -2099,7 +2099,7 @@ enum {
> * The TX79-specific Multimedia Instruction encodings
> * ==================================================
> *
> - * TX79 Multimedia Instruction encoding table keys:
> + * MMI Instruction encoding table keys:
> *
> * * This code is reserved for future use. An attempt to execute it
> * causes a Reserved Instruction exception.
> @@ -2110,7 +2110,7 @@ enum {
> * DMULTU, DDIV, DDIVU, LL, LLD, SC, SCD, LWC2 and SWC2. An attempt
> * to execute it causes a Reserved Instruction exception.
> *
> - * TX79 Multimedia Instructions encoded by opcode field (MMI, LQ, SQ):
> + * MMI Instructions encoded by opcode field (MMI, LQ, SQ):
> *
> * 31 26 0
> * +--------+----------------------------------------+
> @@ -2132,13 +2132,13 @@ enum {
> */
>
> enum {
> - TX79_CLASS_MMI = 0x1C << 26, /* Same as OPC_SPECIAL2 */
> - TX79_LQ = 0x1E << 26, /* Same as OPC_MSA */
> - TX79_SQ = 0x1F << 26, /* Same as OPC_SPECIAL3 */
> + MMI_CLASS_MMI = 0x1C << 26, /* Same as OPC_SPECIAL2 */
> + MMI_LQ = 0x1E << 26, /* Same as OPC_MSA */
> + MMI_SQ = 0x1F << 26, /* Same as OPC_SPECIAL3 */
> };
>
> /*
> - * TX79 Multimedia Instructions with opcode field = MMI:
> + * MMI Instructions with opcode field = MMI:
> *
> * 31 26 5 0
> * +--------+-------------------------------+--------+
> @@ -2161,35 +2161,35 @@ enum {
>
> #define MASK_MMI(op) (MASK_OP_MAJOR(op) | ((op) & 0x3F))
> enum {
> - TX79_MMI_MADD = 0x00 | TX79_CLASS_MMI, /* Same as OPC_MADD */
> - TX79_MMI_MADDU = 0x01 | TX79_CLASS_MMI, /* Same as OPC_MADDU */
> - TX79_MMI_PLZCW = 0x04 | TX79_CLASS_MMI,
> - TX79_MMI_CLASS_MMI0 = 0x08 | TX79_CLASS_MMI,
> - TX79_MMI_CLASS_MMI2 = 0x09 | TX79_CLASS_MMI,
> - TX79_MMI_MFHI1 = 0x10 | TX79_CLASS_MMI, /* Same minor as OPC_MFHI */
> - TX79_MMI_MTHI1 = 0x11 | TX79_CLASS_MMI, /* Same minor as OPC_MTHI */
> - TX79_MMI_MFLO1 = 0x12 | TX79_CLASS_MMI, /* Same minor as OPC_MFLO */
> - TX79_MMI_MTLO1 = 0x13 | TX79_CLASS_MMI, /* Same minor as OPC_MTLO */
> - TX79_MMI_MULT1 = 0x18 | TX79_CLASS_MMI, /* Same minor as OPC_MULT */
> - TX79_MMI_MULTU1 = 0x19 | TX79_CLASS_MMI, /* Same minor as OPC_MULTU */
> - TX79_MMI_DIV1 = 0x1A | TX79_CLASS_MMI, /* Same minor as OPC_DIV */
> - TX79_MMI_DIVU1 = 0x1B | TX79_CLASS_MMI, /* Same minor as OPC_DIVU */
> - TX79_MMI_MADD1 = 0x20 | TX79_CLASS_MMI,
> - TX79_MMI_MADDU1 = 0x21 | TX79_CLASS_MMI,
> - TX79_MMI_CLASS_MMI1 = 0x28 | TX79_CLASS_MMI,
> - TX79_MMI_CLASS_MMI3 = 0x29 | TX79_CLASS_MMI,
> - TX79_MMI_PMFHL = 0x30 | TX79_CLASS_MMI,
> - TX79_MMI_PMTHL = 0x31 | TX79_CLASS_MMI,
> - TX79_MMI_PSLLH = 0x34 | TX79_CLASS_MMI,
> - TX79_MMI_PSRLH = 0x36 | TX79_CLASS_MMI,
> - TX79_MMI_PSRAH = 0x37 | TX79_CLASS_MMI,
> - TX79_MMI_PSLLW = 0x3C | TX79_CLASS_MMI,
> - TX79_MMI_PSRLW = 0x3E | TX79_CLASS_MMI,
> - TX79_MMI_PSRAW = 0x3F | TX79_CLASS_MMI,
> + MMI_OPC_MADD = 0x00 | MMI_CLASS_MMI, /* Same as OPC_MADD */
> + MMI_OPC_MADDU = 0x01 | MMI_CLASS_MMI, /* Same as OPC_MADDU */
> + MMI_OPC_PLZCW = 0x04 | MMI_CLASS_MMI,
> + MMI_OPC_CLASS_MMI0 = 0x08 | MMI_CLASS_MMI,
> + MMI_OPC_CLASS_MMI2 = 0x09 | MMI_CLASS_MMI,
> + MMI_OPC_MFHI1 = 0x10 | MMI_CLASS_MMI, /* Same minor as OPC_MFHI */
> + MMI_OPC_MTHI1 = 0x11 | MMI_CLASS_MMI, /* Same minor as OPC_MTHI */
> + MMI_OPC_MFLO1 = 0x12 | MMI_CLASS_MMI, /* Same minor as OPC_MFLO */
> + MMI_OPC_MTLO1 = 0x13 | MMI_CLASS_MMI, /* Same minor as OPC_MTLO */
> + MMI_OPC_MULT1 = 0x18 | MMI_CLASS_MMI, /* Same minor as OPC_MULT */
> + MMI_OPC_MULTU1 = 0x19 | MMI_CLASS_MMI, /* Same minor as OPC_MULTU */
> + MMI_OPC_DIV1 = 0x1A | MMI_CLASS_MMI, /* Same minor as OPC_DIV */
> + MMI_OPC_DIVU1 = 0x1B | MMI_CLASS_MMI, /* Same minor as OPC_DIVU */
> + MMI_OPC_MADD1 = 0x20 | MMI_CLASS_MMI,
> + MMI_OPC_MADDU1 = 0x21 | MMI_CLASS_MMI,
> + MMI_OPC_CLASS_MMI1 = 0x28 | MMI_CLASS_MMI,
> + MMI_OPC_CLASS_MMI3 = 0x29 | MMI_CLASS_MMI,
> + MMI_OPC_PMFHL = 0x30 | MMI_CLASS_MMI,
> + MMI_OPC_PMTHL = 0x31 | MMI_CLASS_MMI,
> + MMI_OPC_PSLLH = 0x34 | MMI_CLASS_MMI,
> + MMI_OPC_PSRLH = 0x36 | MMI_CLASS_MMI,
> + MMI_OPC_PSRAH = 0x37 | MMI_CLASS_MMI,
> + MMI_OPC_PSLLW = 0x3C | MMI_CLASS_MMI,
> + MMI_OPC_PSRLW = 0x3E | MMI_CLASS_MMI,
> + MMI_OPC_PSRAW = 0x3F | MMI_CLASS_MMI,
> };
>
> /*
> - * TX79 Multimedia Instructions with opcode field = MMI and bits 5..0 = MMI0:
> + * MMI Instructions with opcode field = MMI and bits 5..0 = MMI0:
> *
> * 31 26 10 6 5 0
> * +--------+----------------------+--------+--------+
> @@ -2212,35 +2212,35 @@ enum {
>
> #define MASK_MMI0(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
> enum {
> - TX79_MMI0_PADDW = (0x00 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PSUBW = (0x01 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PCGTW = (0x02 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PMAXW = (0x03 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PADDH = (0x04 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PSUBH = (0x05 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PCGTH = (0x06 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PMAXH = (0x07 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PADDB = (0x08 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PSUBB = (0x09 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PCGTB = (0x0A << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PADDSW = (0x10 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PSUBSW = (0x11 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PEXTLW = (0x12 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PPACW = (0x13 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PADDSH = (0x14 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PSUBSH = (0x15 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PEXTLH = (0x16 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PPACH = (0x17 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PADDSB = (0x18 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PSUBSB = (0x19 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PEXTLB = (0x1A << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PPACB = (0x1B << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PEXT5 = (0x1E << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PPAC5 = (0x1F << 6) | TX79_MMI_CLASS_MMI0,
> + MMI_OPC_0_PADDW = (0x00 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PSUBW = (0x01 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PCGTW = (0x02 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PMAXW = (0x03 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PADDH = (0x04 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PSUBH = (0x05 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PCGTH = (0x06 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PMAXH = (0x07 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PADDB = (0x08 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PSUBB = (0x09 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PCGTB = (0x0A << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PADDSW = (0x10 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PSUBSW = (0x11 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PEXTLW = (0x12 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PPACW = (0x13 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PADDSH = (0x14 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PSUBSH = (0x15 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PEXTLH = (0x16 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PPACH = (0x17 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PADDSB = (0x18 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PSUBSB = (0x19 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PEXTLB = (0x1A << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PPACB = (0x1B << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PEXT5 = (0x1E << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PPAC5 = (0x1F << 6) | MMI_OPC_CLASS_MMI0,
> };
>
> /*
> - * TX79 Multimedia Instructions with opcode field = MMI and bits 5..0 = MMI1:
> + * MMI Instructions with opcode field = MMI and bits 5..0 = MMI1:
> *
> * 31 26 10 6 5 0
> * +--------+----------------------+--------+--------+
> @@ -2263,28 +2263,28 @@ enum {
>
> #define MASK_MMI1(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
> enum {
> - TX79_MMI1_PABSW = (0x01 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PCEQW = (0x02 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PMINW = (0x03 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PADSBH = (0x04 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PABSH = (0x05 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PCEQH = (0x06 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PMINH = (0x07 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PCEQB = (0x0A << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PADDUW = (0x10 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PSUBUW = (0x11 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PEXTUW = (0x12 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PADDUH = (0x14 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PSUBUH = (0x15 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PEXTUH = (0x16 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PADDUB = (0x18 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PSUBUB = (0x19 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PEXTUB = (0x1A << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_QFSRV = (0x1B << 6) | TX79_MMI_CLASS_MMI1,
> + MMI_OPC_1_PABSW = (0x01 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PCEQW = (0x02 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PMINW = (0x03 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PADSBH = (0x04 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PABSH = (0x05 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PCEQH = (0x06 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PMINH = (0x07 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PCEQB = (0x0A << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PADDUW = (0x10 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PSUBUW = (0x11 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PEXTUW = (0x12 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PADDUH = (0x14 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PSUBUH = (0x15 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PEXTUH = (0x16 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PADDUB = (0x18 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PSUBUB = (0x19 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PEXTUB = (0x1A << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_QFSRV = (0x1B << 6) | MMI_OPC_CLASS_MMI1,
> };
>
> /*
> - * TX79 Multimedia Instructions with opcode field = MMI and bits 5..0 = MMI2:
> + * MMI Instructions with opcode field = MMI and bits 5..0 = MMI2:
> *
> * 31 26 10 6 5 0
> * +--------+----------------------+--------+--------+
> @@ -2307,32 +2307,32 @@ enum {
>
> #define MASK_MMI2(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
> enum {
> - TX79_MMI2_PMADDW = (0x00 << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PSLLVW = (0x02 << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PSRLVW = (0x03 << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PMSUBW = (0x04 << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PMFHI = (0x08 << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PMFLO = (0x09 << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PINTH = (0x0A << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PMULTW = (0x0C << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PDIVW = (0x0D << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PCPYLD = (0x0E << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PMADDH = (0x10 << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PHMADH = (0x11 << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PAND = (0x12 << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PXOR = (0x13 << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PMSUBH = (0x14 << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PHMSBH = (0x15 << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PEXEH = (0x1A << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PREVH = (0x1B << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PMULTH = (0x1C << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PDIVBW = (0x1D << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PEXEW = (0x1E << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PROT3W = (0x1F << 6) | TX79_MMI_CLASS_MMI2,
> + MMI_OPC_2_PMADDW = (0x00 << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PSLLVW = (0x02 << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PSRLVW = (0x03 << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PMSUBW = (0x04 << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PMFHI = (0x08 << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PMFLO = (0x09 << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PINTH = (0x0A << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PMULTW = (0x0C << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PDIVW = (0x0D << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PCPYLD = (0x0E << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PMADDH = (0x10 << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PHMADH = (0x11 << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PAND = (0x12 << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PXOR = (0x13 << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PMSUBH = (0x14 << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PHMSBH = (0x15 << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PEXEH = (0x1A << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PREVH = (0x1B << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PMULTH = (0x1C << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PDIVBW = (0x1D << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PEXEW = (0x1E << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PROT3W = (0x1F << 6) | MMI_OPC_CLASS_MMI2,
> };
>
> /*
> - * TX79 Multimedia Instructions with opcode field = MMI and bits 5..0 = MMI3:
> + * MMI Instructions with opcode field = MMI and bits 5..0 = MMI3:
> *
> * 31 26 10 6 5 0
> * +--------+----------------------+--------+--------+
> @@ -2355,19 +2355,19 @@ enum {
>
> #define MASK_MMI3(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
> enum {
> - TX79_MMI3_PMADDUW = (0x00 << 6) | TX79_MMI_CLASS_MMI3,
> - TX79_MMI3_PSRAVW = (0x03 << 6) | TX79_MMI_CLASS_MMI3,
> - TX79_MMI3_PMTHI = (0x08 << 6) | TX79_MMI_CLASS_MMI3,
> - TX79_MMI3_PMTLO = (0x09 << 6) | TX79_MMI_CLASS_MMI3,
> - TX79_MMI3_PINTEH = (0x0A << 6) | TX79_MMI_CLASS_MMI3,
> - TX79_MMI3_PMULTUW = (0x0C << 6) | TX79_MMI_CLASS_MMI3,
> - TX79_MMI3_PDIVUW = (0x0D << 6) | TX79_MMI_CLASS_MMI3,
> - TX79_MMI3_PCPYUD = (0x0E << 6) | TX79_MMI_CLASS_MMI3,
> - TX79_MMI3_POR = (0x12 << 6) | TX79_MMI_CLASS_MMI3,
> - TX79_MMI3_PNOR = (0x13 << 6) | TX79_MMI_CLASS_MMI3,
> - TX79_MMI3_PEXCH = (0x1A << 6) | TX79_MMI_CLASS_MMI3,
> - TX79_MMI3_PCPYH = (0x1B << 6) | TX79_MMI_CLASS_MMI3,
> - TX79_MMI3_PEXCW = (0x1E << 6) | TX79_MMI_CLASS_MMI3,
> + MMI_OPC_3_PMADDUW = (0x00 << 6) | MMI_OPC_CLASS_MMI3,
> + MMI_OPC_3_PSRAVW = (0x03 << 6) | MMI_OPC_CLASS_MMI3,
> + MMI_OPC_3_PMTHI = (0x08 << 6) | MMI_OPC_CLASS_MMI3,
> + MMI_OPC_3_PMTLO = (0x09 << 6) | MMI_OPC_CLASS_MMI3,
> + MMI_OPC_3_PINTEH = (0x0A << 6) | MMI_OPC_CLASS_MMI3,
> + MMI_OPC_3_PMULTUW = (0x0C << 6) | MMI_OPC_CLASS_MMI3,
> + MMI_OPC_3_PDIVUW = (0x0D << 6) | MMI_OPC_CLASS_MMI3,
> + MMI_OPC_3_PCPYUD = (0x0E << 6) | MMI_OPC_CLASS_MMI3,
> + MMI_OPC_3_POR = (0x12 << 6) | MMI_OPC_CLASS_MMI3,
> + MMI_OPC_3_PNOR = (0x13 << 6) | MMI_OPC_CLASS_MMI3,
> + MMI_OPC_3_PEXCH = (0x1A << 6) | MMI_OPC_CLASS_MMI3,
> + MMI_OPC_3_PCPYH = (0x1B << 6) | MMI_OPC_CLASS_MMI3,
> + MMI_OPC_3_PEXCW = (0x1E << 6) | MMI_OPC_CLASS_MMI3,
> };
>
> /* global register indices */
> @@ -4281,8 +4281,8 @@ static void gen_shift(DisasContext *ctx, uint32_t opc,
> /* Arithmetic on HI/LO registers */
> static void gen_HILO(DisasContext *ctx, uint32_t opc, int acc, int reg)
> {
> - if (reg == 0 && (opc == OPC_MFHI || opc == TX79_MMI_MFHI1 ||
> - opc == OPC_MFLO || opc == TX79_MMI_MFLO1)) {
> + if (reg == 0 && (opc == OPC_MFHI || opc == MMI_OPC_MFHI1 ||
> + opc == OPC_MFLO || opc == MMI_OPC_MFLO1)) {
> /* Treat as NOP. */
> return;
> }
> @@ -4295,7 +4295,7 @@ static void gen_HILO(DisasContext *ctx, uint32_t opc, int acc, int reg)
>
> switch (opc) {
> case OPC_MFHI:
> - case TX79_MMI_MFHI1:
> + case MMI_OPC_MFHI1:
> #if defined(TARGET_MIPS64)
> if (acc != 0) {
> tcg_gen_ext32s_tl(cpu_gpr[reg], cpu_HI[acc]);
> @@ -4306,7 +4306,7 @@ static void gen_HILO(DisasContext *ctx, uint32_t opc, int acc, int reg)
> }
> break;
> case OPC_MFLO:
> - case TX79_MMI_MFLO1:
> + case MMI_OPC_MFLO1:
> #if defined(TARGET_MIPS64)
> if (acc != 0) {
> tcg_gen_ext32s_tl(cpu_gpr[reg], cpu_LO[acc]);
> @@ -4317,7 +4317,7 @@ static void gen_HILO(DisasContext *ctx, uint32_t opc, int acc, int reg)
> }
> break;
> case OPC_MTHI:
> - case TX79_MMI_MTHI1:
> + case MMI_OPC_MTHI1:
> if (reg != 0) {
> #if defined(TARGET_MIPS64)
> if (acc != 0) {
> @@ -4332,7 +4332,7 @@ static void gen_HILO(DisasContext *ctx, uint32_t opc, int acc, int reg)
> }
> break;
> case OPC_MTLO:
> - case TX79_MMI_MTLO1:
> + case MMI_OPC_MTLO1:
> if (reg != 0) {
> #if defined(TARGET_MIPS64)
> if (acc != 0) {
> @@ -4652,7 +4652,7 @@ static void gen_muldiv(DisasContext *ctx, uint32_t opc,
>
> switch (opc) {
> case OPC_DIV:
> - case TX79_MMI_DIV1:
> + case MMI_OPC_DIV1:
> {
> TCGv t2 = tcg_temp_new();
> TCGv t3 = tcg_temp_new();
> @@ -4674,7 +4674,7 @@ static void gen_muldiv(DisasContext *ctx, uint32_t opc,
> }
> break;
> case OPC_DIVU:
> - case TX79_MMI_DIVU1:
> + case MMI_OPC_DIVU1:
> {
> TCGv t2 = tcg_const_tl(0);
> TCGv t3 = tcg_const_tl(1);
> @@ -4858,7 +4858,7 @@ static void gen_mul_txx9(DisasContext *ctx, uint32_t opc,
> gen_load_gpr(t1, rt);
>
> switch (opc) {
> - case TX79_MMI_MULT1:
> + case MMI_OPC_MULT1:
> acc = 1;
> /* Fall through */
> case OPC_MULT:
> @@ -4877,7 +4877,7 @@ static void gen_mul_txx9(DisasContext *ctx, uint32_t opc,
> tcg_temp_free_i32(t3);
> }
> break;
> - case TX79_MMI_MULTU1:
> + case MMI_OPC_MULTU1:
> acc = 1;
> /* Fall through */
> case OPC_MULTU:
> @@ -24686,32 +24686,32 @@ static void decode_tx79_mmi0(CPUMIPSState *env, DisasContext *ctx)
> uint32_t opc = MASK_MMI0(ctx->opcode);
>
> switch (opc) {
> - case TX79_MMI0_PADDW: /* TODO: TX79_MMI0_PADDW */
> - case TX79_MMI0_PSUBW: /* TODO: TX79_MMI0_PSUBW */
> - case TX79_MMI0_PCGTW: /* TODO: TX79_MMI0_PCGTW */
> - case TX79_MMI0_PMAXW: /* TODO: TX79_MMI0_PMAXW */
> - case TX79_MMI0_PADDH: /* TODO: TX79_MMI0_PADDH */
> - case TX79_MMI0_PSUBH: /* TODO: TX79_MMI0_PSUBH */
> - case TX79_MMI0_PCGTH: /* TODO: TX79_MMI0_PCGTH */
> - case TX79_MMI0_PMAXH: /* TODO: TX79_MMI0_PMAXH */
> - case TX79_MMI0_PADDB: /* TODO: TX79_MMI0_PADDB */
> - case TX79_MMI0_PSUBB: /* TODO: TX79_MMI0_PSUBB */
> - case TX79_MMI0_PCGTB: /* TODO: TX79_MMI0_PCGTB */
> - case TX79_MMI0_PADDSW: /* TODO: TX79_MMI0_PADDSW */
> - case TX79_MMI0_PSUBSW: /* TODO: TX79_MMI0_PSUBSW */
> - case TX79_MMI0_PEXTLW: /* TODO: TX79_MMI0_PEXTLW */
> - case TX79_MMI0_PPACW: /* TODO: TX79_MMI0_PPACW */
> - case TX79_MMI0_PADDSH: /* TODO: TX79_MMI0_PADDSH */
> - case TX79_MMI0_PSUBSH: /* TODO: TX79_MMI0_PSUBSH */
> - case TX79_MMI0_PEXTLH: /* TODO: TX79_MMI0_PEXTLH */
> - case TX79_MMI0_PPACH: /* TODO: TX79_MMI0_PPACH */
> - case TX79_MMI0_PADDSB: /* TODO: TX79_MMI0_PADDSB */
> - case TX79_MMI0_PSUBSB: /* TODO: TX79_MMI0_PSUBSB */
> - case TX79_MMI0_PEXTLB: /* TODO: TX79_MMI0_PEXTLB */
> - case TX79_MMI0_PPACB: /* TODO: TX79_MMI0_PPACB */
> - case TX79_MMI0_PEXT5: /* TODO: TX79_MMI0_PEXT5 */
> - case TX79_MMI0_PPAC5: /* TODO: TX79_MMI0_PPAC5 */
> - generate_exception_end(ctx, EXCP_RI); /* TODO: TX79_MMI_CLASS_MMI0 */
> + case MMI_OPC_0_PADDW: /* TODO: MMI_OPC_0_PADDW */
> + case MMI_OPC_0_PSUBW: /* TODO: MMI_OPC_0_PSUBW */
> + case MMI_OPC_0_PCGTW: /* TODO: MMI_OPC_0_PCGTW */
> + case MMI_OPC_0_PMAXW: /* TODO: MMI_OPC_0_PMAXW */
> + case MMI_OPC_0_PADDH: /* TODO: MMI_OPC_0_PADDH */
> + case MMI_OPC_0_PSUBH: /* TODO: MMI_OPC_0_PSUBH */
> + case MMI_OPC_0_PCGTH: /* TODO: MMI_OPC_0_PCGTH */
> + case MMI_OPC_0_PMAXH: /* TODO: MMI_OPC_0_PMAXH */
> + case MMI_OPC_0_PADDB: /* TODO: MMI_OPC_0_PADDB */
> + case MMI_OPC_0_PSUBB: /* TODO: MMI_OPC_0_PSUBB */
> + case MMI_OPC_0_PCGTB: /* TODO: MMI_OPC_0_PCGTB */
> + case MMI_OPC_0_PADDSW: /* TODO: MMI_OPC_0_PADDSW */
> + case MMI_OPC_0_PSUBSW: /* TODO: MMI_OPC_0_PSUBSW */
> + case MMI_OPC_0_PEXTLW: /* TODO: MMI_OPC_0_PEXTLW */
> + case MMI_OPC_0_PPACW: /* TODO: MMI_OPC_0_PPACW */
> + case MMI_OPC_0_PADDSH: /* TODO: MMI_OPC_0_PADDSH */
> + case MMI_OPC_0_PSUBSH: /* TODO: MMI_OPC_0_PSUBSH */
> + case MMI_OPC_0_PEXTLH: /* TODO: MMI_OPC_0_PEXTLH */
> + case MMI_OPC_0_PPACH: /* TODO: MMI_OPC_0_PPACH */
> + case MMI_OPC_0_PADDSB: /* TODO: MMI_OPC_0_PADDSB */
> + case MMI_OPC_0_PSUBSB: /* TODO: MMI_OPC_0_PSUBSB */
> + case MMI_OPC_0_PEXTLB: /* TODO: MMI_OPC_0_PEXTLB */
> + case MMI_OPC_0_PPACB: /* TODO: MMI_OPC_0_PPACB */
> + case MMI_OPC_0_PEXT5: /* TODO: MMI_OPC_0_PEXT5 */
> + case MMI_OPC_0_PPAC5: /* TODO: MMI_OPC_0_PPAC5 */
> + generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_OPC_CLASS_MMI0 */
> break;
> default:
> MIPS_INVAL("TX79 MMI class MMI0");
> @@ -24725,25 +24725,25 @@ static void decode_tx79_mmi1(CPUMIPSState *env, DisasContext *ctx)
> uint32_t opc = MASK_MMI1(ctx->opcode);
>
> switch (opc) {
> - case TX79_MMI1_PABSW: /* TODO: TX79_MMI1_PABSW */
> - case TX79_MMI1_PCEQW: /* TODO: TX79_MMI1_PCEQW */
> - case TX79_MMI1_PMINW: /* TODO: TX79_MMI1_PMINW */
> - case TX79_MMI1_PADSBH: /* TODO: TX79_MMI1_PADSBH */
> - case TX79_MMI1_PABSH: /* TODO: TX79_MMI1_PABSH */
> - case TX79_MMI1_PCEQH: /* TODO: TX79_MMI1_PCEQH */
> - case TX79_MMI1_PMINH: /* TODO: TX79_MMI1_PMINH */
> - case TX79_MMI1_PCEQB: /* TODO: TX79_MMI1_PCEQB */
> - case TX79_MMI1_PADDUW: /* TODO: TX79_MMI1_PADDUW */
> - case TX79_MMI1_PSUBUW: /* TODO: TX79_MMI1_PSUBUW */
> - case TX79_MMI1_PEXTUW: /* TODO: TX79_MMI1_PEXTUW */
> - case TX79_MMI1_PADDUH: /* TODO: TX79_MMI1_PADDUH */
> - case TX79_MMI1_PSUBUH: /* TODO: TX79_MMI1_PSUBUH */
> - case TX79_MMI1_PEXTUH: /* TODO: TX79_MMI1_PEXTUH */
> - case TX79_MMI1_PADDUB: /* TODO: TX79_MMI1_PADDUB */
> - case TX79_MMI1_PSUBUB: /* TODO: TX79_MMI1_PSUBUB */
> - case TX79_MMI1_PEXTUB: /* TODO: TX79_MMI1_PEXTUB */
> - case TX79_MMI1_QFSRV: /* TODO: TX79_MMI1_QFSRV */
> - generate_exception_end(ctx, EXCP_RI); /* TODO: TX79_MMI_CLASS_MMI1 */
> + case MMI_OPC_1_PABSW: /* TODO: MMI_OPC_1_PABSW */
> + case MMI_OPC_1_PCEQW: /* TODO: MMI_OPC_1_PCEQW */
> + case MMI_OPC_1_PMINW: /* TODO: MMI_OPC_1_PMINW */
> + case MMI_OPC_1_PADSBH: /* TODO: MMI_OPC_1_PADSBH */
> + case MMI_OPC_1_PABSH: /* TODO: MMI_OPC_1_PABSH */
> + case MMI_OPC_1_PCEQH: /* TODO: MMI_OPC_1_PCEQH */
> + case MMI_OPC_1_PMINH: /* TODO: MMI_OPC_1_PMINH */
> + case MMI_OPC_1_PCEQB: /* TODO: MMI_OPC_1_PCEQB */
> + case MMI_OPC_1_PADDUW: /* TODO: MMI_OPC_1_PADDUW */
> + case MMI_OPC_1_PSUBUW: /* TODO: MMI_OPC_1_PSUBUW */
> + case MMI_OPC_1_PEXTUW: /* TODO: MMI_OPC_1_PEXTUW */
> + case MMI_OPC_1_PADDUH: /* TODO: MMI_OPC_1_PADDUH */
> + case MMI_OPC_1_PSUBUH: /* TODO: MMI_OPC_1_PSUBUH */
> + case MMI_OPC_1_PEXTUH: /* TODO: MMI_OPC_1_PEXTUH */
> + case MMI_OPC_1_PADDUB: /* TODO: MMI_OPC_1_PADDUB */
> + case MMI_OPC_1_PSUBUB: /* TODO: MMI_OPC_1_PSUBUB */
> + case MMI_OPC_1_PEXTUB: /* TODO: MMI_OPC_1_PEXTUB */
> + case MMI_OPC_1_QFSRV: /* TODO: MMI_OPC_1_QFSRV */
> + generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_OPC_CLASS_MMI1 */
> break;
> default:
> MIPS_INVAL("TX79 MMI class MMI1");
> @@ -24757,29 +24757,29 @@ static void decode_tx79_mmi2(CPUMIPSState *env, DisasContext *ctx)
> uint32_t opc = MASK_MMI2(ctx->opcode);
>
> switch (opc) {
> - case TX79_MMI2_PMADDW: /* TODO: TX79_MMI2_PMADDW */
> - case TX79_MMI2_PSLLVW: /* TODO: TX79_MMI2_PSLLVW */
> - case TX79_MMI2_PSRLVW: /* TODO: TX79_MMI2_PSRLVW */
> - case TX79_MMI2_PMSUBW: /* TODO: TX79_MMI2_PMSUBW */
> - case TX79_MMI2_PMFHI: /* TODO: TX79_MMI2_PMFHI */
> - case TX79_MMI2_PMFLO: /* TODO: TX79_MMI2_PMFLO */
> - case TX79_MMI2_PINTH: /* TODO: TX79_MMI2_PINTH */
> - case TX79_MMI2_PMULTW: /* TODO: TX79_MMI2_PMULTW */
> - case TX79_MMI2_PDIVW: /* TODO: TX79_MMI2_PDIVW */
> - case TX79_MMI2_PCPYLD: /* TODO: TX79_MMI2_PCPYLD */
> - case TX79_MMI2_PMADDH: /* TODO: TX79_MMI2_PMADDH */
> - case TX79_MMI2_PHMADH: /* TODO: TX79_MMI2_PHMADH */
> - case TX79_MMI2_PAND: /* TODO: TX79_MMI2_PAND */
> - case TX79_MMI2_PXOR: /* TODO: TX79_MMI2_PXOR */
> - case TX79_MMI2_PMSUBH: /* TODO: TX79_MMI2_PMSUBH */
> - case TX79_MMI2_PHMSBH: /* TODO: TX79_MMI2_PHMSBH */
> - case TX79_MMI2_PEXEH: /* TODO: TX79_MMI2_PEXEH */
> - case TX79_MMI2_PREVH: /* TODO: TX79_MMI2_PREVH */
> - case TX79_MMI2_PMULTH: /* TODO: TX79_MMI2_PMULTH */
> - case TX79_MMI2_PDIVBW: /* TODO: TX79_MMI2_PDIVBW */
> - case TX79_MMI2_PEXEW: /* TODO: TX79_MMI2_PEXEW */
> - case TX79_MMI2_PROT3W: /* TODO: TX79_MMI2_PROT3W */
> - generate_exception_end(ctx, EXCP_RI); /* TODO: TX79_MMI_CLASS_MMI2 */
> + case MMI_OPC_2_PMADDW: /* TODO: MMI_OPC_2_PMADDW */
> + case MMI_OPC_2_PSLLVW: /* TODO: MMI_OPC_2_PSLLVW */
> + case MMI_OPC_2_PSRLVW: /* TODO: MMI_OPC_2_PSRLVW */
> + case MMI_OPC_2_PMSUBW: /* TODO: MMI_OPC_2_PMSUBW */
> + case MMI_OPC_2_PMFHI: /* TODO: MMI_OPC_2_PMFHI */
> + case MMI_OPC_2_PMFLO: /* TODO: MMI_OPC_2_PMFLO */
> + case MMI_OPC_2_PINTH: /* TODO: MMI_OPC_2_PINTH */
> + case MMI_OPC_2_PMULTW: /* TODO: MMI_OPC_2_PMULTW */
> + case MMI_OPC_2_PDIVW: /* TODO: MMI_OPC_2_PDIVW */
> + case MMI_OPC_2_PCPYLD: /* TODO: MMI_OPC_2_PCPYLD */
> + case MMI_OPC_2_PMADDH: /* TODO: MMI_OPC_2_PMADDH */
> + case MMI_OPC_2_PHMADH: /* TODO: MMI_OPC_2_PHMADH */
> + case MMI_OPC_2_PAND: /* TODO: MMI_OPC_2_PAND */
> + case MMI_OPC_2_PXOR: /* TODO: MMI_OPC_2_PXOR */
> + case MMI_OPC_2_PMSUBH: /* TODO: MMI_OPC_2_PMSUBH */
> + case MMI_OPC_2_PHMSBH: /* TODO: MMI_OPC_2_PHMSBH */
> + case MMI_OPC_2_PEXEH: /* TODO: MMI_OPC_2_PEXEH */
> + case MMI_OPC_2_PREVH: /* TODO: MMI_OPC_2_PREVH */
> + case MMI_OPC_2_PMULTH: /* TODO: MMI_OPC_2_PMULTH */
> + case MMI_OPC_2_PDIVBW: /* TODO: MMI_OPC_2_PDIVBW */
> + case MMI_OPC_2_PEXEW: /* TODO: MMI_OPC_2_PEXEW */
> + case MMI_OPC_2_PROT3W: /* TODO: MMI_OPC_2_PROT3W */
> + generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_OPC_CLASS_MMI2 */
> break;
> default:
> MIPS_INVAL("TX79 MMI class MMI2");
> @@ -24793,20 +24793,20 @@ static void decode_tx79_mmi3(CPUMIPSState *env, DisasContext *ctx)
> uint32_t opc = MASK_MMI3(ctx->opcode);
>
> switch (opc) {
> - case TX79_MMI3_PMADDUW: /* TODO: TX79_MMI3_PMADDUW */
> - case TX79_MMI3_PSRAVW: /* TODO: TX79_MMI3_PSRAVW */
> - case TX79_MMI3_PMTHI: /* TODO: TX79_MMI3_PMTHI */
> - case TX79_MMI3_PMTLO: /* TODO: TX79_MMI3_PMTLO */
> - case TX79_MMI3_PINTEH: /* TODO: TX79_MMI3_PINTEH */
> - case TX79_MMI3_PMULTUW: /* TODO: TX79_MMI3_PMULTUW */
> - case TX79_MMI3_PDIVUW: /* TODO: TX79_MMI3_PDIVUW */
> - case TX79_MMI3_PCPYUD: /* TODO: TX79_MMI3_PCPYUD */
> - case TX79_MMI3_POR: /* TODO: TX79_MMI3_POR */
> - case TX79_MMI3_PNOR: /* TODO: TX79_MMI3_PNOR */
> - case TX79_MMI3_PEXCH: /* TODO: TX79_MMI3_PEXCH */
> - case TX79_MMI3_PCPYH: /* TODO: TX79_MMI3_PCPYH */
> - case TX79_MMI3_PEXCW: /* TODO: TX79_MMI3_PEXCW */
> - generate_exception_end(ctx, EXCP_RI); /* TODO: TX79_MMI_CLASS_MMI3 */
> + case MMI_OPC_3_PMADDUW: /* TODO: MMI_OPC_3_PMADDUW */
> + case MMI_OPC_3_PSRAVW: /* TODO: MMI_OPC_3_PSRAVW */
> + case MMI_OPC_3_PMTHI: /* TODO: MMI_OPC_3_PMTHI */
> + case MMI_OPC_3_PMTLO: /* TODO: MMI_OPC_3_PMTLO */
> + case MMI_OPC_3_PINTEH: /* TODO: MMI_OPC_3_PINTEH */
> + case MMI_OPC_3_PMULTUW: /* TODO: MMI_OPC_3_PMULTUW */
> + case MMI_OPC_3_PDIVUW: /* TODO: MMI_OPC_3_PDIVUW */
> + case MMI_OPC_3_PCPYUD: /* TODO: MMI_OPC_3_PCPYUD */
> + case MMI_OPC_3_POR: /* TODO: MMI_OPC_3_POR */
> + case MMI_OPC_3_PNOR: /* TODO: MMI_OPC_3_PNOR */
> + case MMI_OPC_3_PEXCH: /* TODO: MMI_OPC_3_PEXCH */
> + case MMI_OPC_3_PCPYH: /* TODO: MMI_OPC_3_PCPYH */
> + case MMI_OPC_3_PEXCW: /* TODO: MMI_OPC_3_PEXCW */
> + generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_OPC_CLASS_MMI3 */
> break;
> default:
> MIPS_INVAL("TX79 MMI class MMI3");
> @@ -24823,48 +24823,48 @@ static void decode_tx79_mmi(CPUMIPSState *env, DisasContext *ctx)
> int rd = extract32(ctx->opcode, 11, 5);
>
> switch (opc) {
> - case TX79_MMI_CLASS_MMI0:
> + case MMI_OPC_CLASS_MMI0:
> decode_tx79_mmi0(env, ctx);
> break;
> - case TX79_MMI_CLASS_MMI1:
> + case MMI_OPC_CLASS_MMI1:
> decode_tx79_mmi1(env, ctx);
> break;
> - case TX79_MMI_CLASS_MMI2:
> + case MMI_OPC_CLASS_MMI2:
> decode_tx79_mmi2(env, ctx);
> break;
> - case TX79_MMI_CLASS_MMI3:
> + case MMI_OPC_CLASS_MMI3:
> decode_tx79_mmi3(env, ctx);
> break;
> - case TX79_MMI_MULT1:
> - case TX79_MMI_MULTU1:
> + case MMI_OPC_MULT1:
> + case MMI_OPC_MULTU1:
> gen_mul_txx9(ctx, opc, rd, rs, rt);
> break;
> - case TX79_MMI_DIV1:
> - case TX79_MMI_DIVU1:
> + case MMI_OPC_DIV1:
> + case MMI_OPC_DIVU1:
> gen_muldiv(ctx, opc, 1, rs, rt);
> break;
> - case TX79_MMI_MTLO1:
> - case TX79_MMI_MTHI1:
> + case MMI_OPC_MTLO1:
> + case MMI_OPC_MTHI1:
> gen_HILO(ctx, opc, 1, rs);
> break;
> - case TX79_MMI_MFLO1:
> - case TX79_MMI_MFHI1:
> + case MMI_OPC_MFLO1:
> + case MMI_OPC_MFHI1:
> gen_HILO(ctx, opc, 1, rd);
> break;
> - case TX79_MMI_MADD: /* TODO: TX79_MMI_MADD */
> - case TX79_MMI_MADDU: /* TODO: TX79_MMI_MADDU */
> - case TX79_MMI_PLZCW: /* TODO: TX79_MMI_PLZCW */
> - case TX79_MMI_MADD1: /* TODO: TX79_MMI_MADD1 */
> - case TX79_MMI_MADDU1: /* TODO: TX79_MMI_MADDU1 */
> - case TX79_MMI_PMFHL: /* TODO: TX79_MMI_PMFHL */
> - case TX79_MMI_PMTHL: /* TODO: TX79_MMI_PMTHL */
> - case TX79_MMI_PSLLH: /* TODO: TX79_MMI_PSLLH */
> - case TX79_MMI_PSRLH: /* TODO: TX79_MMI_PSRLH */
> - case TX79_MMI_PSRAH: /* TODO: TX79_MMI_PSRAH */
> - case TX79_MMI_PSLLW: /* TODO: TX79_MMI_PSLLW */
> - case TX79_MMI_PSRLW: /* TODO: TX79_MMI_PSRLW */
> - case TX79_MMI_PSRAW: /* TODO: TX79_MMI_PSRAW */
> - generate_exception_end(ctx, EXCP_RI); /* TODO: TX79_CLASS_MMI */
> + case MMI_OPC_MADD: /* TODO: MMI_OPC_MADD */
> + case MMI_OPC_MADDU: /* TODO: MMI_OPC_MADDU */
> + case MMI_OPC_PLZCW: /* TODO: MMI_OPC_PLZCW */
> + case MMI_OPC_MADD1: /* TODO: MMI_OPC_MADD1 */
> + case MMI_OPC_MADDU1: /* TODO: MMI_OPC_MADDU1 */
> + case MMI_OPC_PMFHL: /* TODO: MMI_OPC_PMFHL */
> + case MMI_OPC_PMTHL: /* TODO: MMI_OPC_PMTHL */
> + case MMI_OPC_PSLLH: /* TODO: MMI_OPC_PSLLH */
> + case MMI_OPC_PSRLH: /* TODO: MMI_OPC_PSRLH */
> + case MMI_OPC_PSRAH: /* TODO: MMI_OPC_PSRAH */
> + case MMI_OPC_PSLLW: /* TODO: MMI_OPC_PSLLW */
> + case MMI_OPC_PSRLW: /* TODO: MMI_OPC_PSRLW */
> + case MMI_OPC_PSRAW: /* TODO: MMI_OPC_PSRAW */
> + generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_CLASS_MMI */
> break;
> default:
> MIPS_INVAL("TX79 MMI class");
> @@ -24875,12 +24875,12 @@ static void decode_tx79_mmi(CPUMIPSState *env, DisasContext *ctx)
>
> static void decode_tx79_lq(CPUMIPSState *env, DisasContext *ctx)
> {
> - generate_exception_end(ctx, EXCP_RI); /* TODO: TX79_LQ */
> + generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_LQ */
> }
>
> static void gen_tx79_sq(DisasContext *ctx, int base, int rt, int offset)
> {
> - generate_exception_end(ctx, EXCP_RI); /* TODO: TX79_SQ */
> + generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_SQ */
> }
>
> /*
> @@ -26238,7 +26238,7 @@ static void decode_opc(CPUMIPSState *env, DisasContext *ctx)
> break;
> case OPC_SPECIAL3:
> if (ctx->insn_flags & INSN_R5900) {
> - decode_tx79_sq(env, ctx); /* TX79_SQ */
> + decode_tx79_sq(env, ctx); /* MMI_SQ */
> } else {
> decode_opc_special3(env, ctx);
> }
> @@ -26902,7 +26902,7 @@ static void decode_opc(CPUMIPSState *env, DisasContext *ctx)
> break;
> case OPC_MSA: /* OPC_MDMX */
> if (ctx->insn_flags & INSN_R5900) {
> - decode_tx79_lq(env, ctx); /* TX79_LQ */
> + decode_tx79_lq(env, ctx); /* MMI_LQ */
> } else {
> /* MDMX: Not implemented. */
> gen_msa(env, ctx);
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PATCH v2 3/5] target/mips: Rename MMI-related functions
2018-10-30 11:36 ` [Qemu-devel] [PATCH v2 3/5] target/mips: Rename MMI-related functions Aleksandar Markovic
@ 2018-10-30 12:42 ` Stefan Markovic
2018-10-30 13:11 ` Philippe Mathieu-Daudé
1 sibling, 0 replies; 19+ messages in thread
From: Stefan Markovic @ 2018-10-30 12:42 UTC (permalink / raw)
To: Aleksandar Markovic, qemu-devel
Cc: aurelien, Aleksandar Markovic, Petar Jovanovic
On 30.10.18. 12:36, Aleksandar Markovic wrote:
> From: Aleksandar Markovic <amarkovic@wavecomp.com>
>
> Rename MMI-related functions.
>
> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
> ---
> target/mips/translate.c | 32 ++++++++++++++++----------------
> 1 file changed, 16 insertions(+), 16 deletions(-)
Reviewed-by: Stefan Markovic <smarkovic@wavecomp.com>
> diff --git a/target/mips/translate.c b/target/mips/translate.c
> index 4b008d8..155331f 100644
> --- a/target/mips/translate.c
> +++ b/target/mips/translate.c
> @@ -24681,7 +24681,7 @@ static void decode_opc_special3_legacy(CPUMIPSState *env, DisasContext *ctx)
> }
> }
>
> -static void decode_tx79_mmi0(CPUMIPSState *env, DisasContext *ctx)
> +static void decode_mmi0(CPUMIPSState *env, DisasContext *ctx)
> {
> uint32_t opc = MASK_MMI0(ctx->opcode);
>
> @@ -24720,7 +24720,7 @@ static void decode_tx79_mmi0(CPUMIPSState *env, DisasContext *ctx)
> }
> }
>
> -static void decode_tx79_mmi1(CPUMIPSState *env, DisasContext *ctx)
> +static void decode_mmi1(CPUMIPSState *env, DisasContext *ctx)
> {
> uint32_t opc = MASK_MMI1(ctx->opcode);
>
> @@ -24752,7 +24752,7 @@ static void decode_tx79_mmi1(CPUMIPSState *env, DisasContext *ctx)
> }
> }
>
> -static void decode_tx79_mmi2(CPUMIPSState *env, DisasContext *ctx)
> +static void decode_mmi2(CPUMIPSState *env, DisasContext *ctx)
> {
> uint32_t opc = MASK_MMI2(ctx->opcode);
>
> @@ -24788,7 +24788,7 @@ static void decode_tx79_mmi2(CPUMIPSState *env, DisasContext *ctx)
> }
> }
>
> -static void decode_tx79_mmi3(CPUMIPSState *env, DisasContext *ctx)
> +static void decode_mmi3(CPUMIPSState *env, DisasContext *ctx)
> {
> uint32_t opc = MASK_MMI3(ctx->opcode);
>
> @@ -24815,7 +24815,7 @@ static void decode_tx79_mmi3(CPUMIPSState *env, DisasContext *ctx)
> }
> }
>
> -static void decode_tx79_mmi(CPUMIPSState *env, DisasContext *ctx)
> +static void decode_mmi(CPUMIPSState *env, DisasContext *ctx)
> {
> uint32_t opc = MASK_MMI(ctx->opcode);
> int rs = extract32(ctx->opcode, 21, 5);
> @@ -24824,16 +24824,16 @@ static void decode_tx79_mmi(CPUMIPSState *env, DisasContext *ctx)
>
> switch (opc) {
> case MMI_OPC_CLASS_MMI0:
> - decode_tx79_mmi0(env, ctx);
> + decode_mmi0(env, ctx);
> break;
> case MMI_OPC_CLASS_MMI1:
> - decode_tx79_mmi1(env, ctx);
> + decode_mmi1(env, ctx);
> break;
> case MMI_OPC_CLASS_MMI2:
> - decode_tx79_mmi2(env, ctx);
> + decode_mmi2(env, ctx);
> break;
> case MMI_OPC_CLASS_MMI3:
> - decode_tx79_mmi3(env, ctx);
> + decode_mmi3(env, ctx);
> break;
> case MMI_OPC_MULT1:
> case MMI_OPC_MULTU1:
> @@ -24873,12 +24873,12 @@ static void decode_tx79_mmi(CPUMIPSState *env, DisasContext *ctx)
> }
> }
>
> -static void decode_tx79_lq(CPUMIPSState *env, DisasContext *ctx)
> +static void decode_mmi_lq(CPUMIPSState *env, DisasContext *ctx)
> {
> generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_LQ */
> }
>
> -static void gen_tx79_sq(DisasContext *ctx, int base, int rt, int offset)
> +static void gen_mmi_sq(DisasContext *ctx, int base, int rt, int offset)
> {
> generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_SQ */
> }
> @@ -24904,7 +24904,7 @@ static void gen_tx79_sq(DisasContext *ctx, int base, int rt, int offset)
> * In user mode, QEMU must verify the upper and lower 11 bits to distinguish
> * between SQ and RDHWR, as the Linux kernel does.
> */
> -static void decode_tx79_sq(CPUMIPSState *env, DisasContext *ctx)
> +static void decode_mmi_sq(CPUMIPSState *env, DisasContext *ctx)
> {
> int base = extract32(ctx->opcode, 21, 5);
> int rt = extract32(ctx->opcode, 16, 5);
> @@ -24922,7 +24922,7 @@ static void decode_tx79_sq(CPUMIPSState *env, DisasContext *ctx)
> }
> #endif
>
> - gen_tx79_sq(ctx, base, rt, offset);
> + gen_mmi_sq(ctx, base, rt, offset);
> }
>
> static void decode_opc_special3(CPUMIPSState *env, DisasContext *ctx)
> @@ -26231,14 +26231,14 @@ static void decode_opc(CPUMIPSState *env, DisasContext *ctx)
> break;
> case OPC_SPECIAL2:
> if ((ctx->insn_flags & INSN_R5900) && (ctx->insn_flags & ASE_MMI)) {
> - decode_tx79_mmi(env, ctx);
> + decode_mmi(env, ctx);
> } else {
> decode_opc_special2_legacy(env, ctx);
> }
> break;
> case OPC_SPECIAL3:
> if (ctx->insn_flags & INSN_R5900) {
> - decode_tx79_sq(env, ctx); /* MMI_SQ */
> + decode_mmi_sq(env, ctx); /* MMI_SQ */
> } else {
> decode_opc_special3(env, ctx);
> }
> @@ -26902,7 +26902,7 @@ static void decode_opc(CPUMIPSState *env, DisasContext *ctx)
> break;
> case OPC_MSA: /* OPC_MDMX */
> if (ctx->insn_flags & INSN_R5900) {
> - decode_tx79_lq(env, ctx); /* MMI_LQ */
> + decode_mmi_lq(env, ctx); /* MMI_LQ */
> } else {
> /* MDMX: Not implemented. */
> gen_msa(env, ctx);
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/5] target/mips: Rename MMI-related opcodes
2018-10-30 11:36 ` [Qemu-devel] [PATCH v2 2/5] target/mips: Rename MMI-related opcodes Aleksandar Markovic
2018-10-30 12:36 ` Stefan Markovic
@ 2018-10-30 12:44 ` Philippe Mathieu-Daudé
1 sibling, 0 replies; 19+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-10-30 12:44 UTC (permalink / raw)
To: Aleksandar Markovic, qemu-devel
Cc: smarkovic, pjovanovic, amarkovic, aurelien
Hi Aleksandar,
On 30/10/18 12:36, Aleksandar Markovic wrote:
> From: Aleksandar Markovic <amarkovic@wavecomp.com>
>
> Rename MMI-related opcodes.
>
> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
> ---
> target/mips/translate.c | 470 ++++++++++++++++++++++++------------------------
> 1 file changed, 235 insertions(+), 235 deletions(-)
>
> diff --git a/target/mips/translate.c b/target/mips/translate.c
> index e38d50d..4b008d8 100644
> --- a/target/mips/translate.c
> +++ b/target/mips/translate.c
> @@ -2099,7 +2099,7 @@ enum {
> * The TX79-specific Multimedia Instruction encodings
What about this section title? Should this be "MultiMedia extension
Instructions encodings"?
> * ==================================================
> *
> - * TX79 Multimedia Instruction encoding table keys:
> + * MMI Instruction encoding table keys:
> *
> * * This code is reserved for future use. An attempt to execute it
> * causes a Reserved Instruction exception.
> @@ -2110,7 +2110,7 @@ enum {
> * DMULTU, DDIV, DDIVU, LL, LLD, SC, SCD, LWC2 and SWC2. An attempt
> * to execute it causes a Reserved Instruction exception.
> *
> - * TX79 Multimedia Instructions encoded by opcode field (MMI, LQ, SQ):
> + * MMI Instructions encoded by opcode field (MMI, LQ, SQ):
> *
> * 31 26 0
> * +--------+----------------------------------------+
> @@ -2132,13 +2132,13 @@ enum {
> */
>
> enum {
> - TX79_CLASS_MMI = 0x1C << 26, /* Same as OPC_SPECIAL2 */
> - TX79_LQ = 0x1E << 26, /* Same as OPC_MSA */
> - TX79_SQ = 0x1F << 26, /* Same as OPC_SPECIAL3 */
> + MMI_CLASS_MMI = 0x1C << 26, /* Same as OPC_SPECIAL2 */
> + MMI_LQ = 0x1E << 26, /* Same as OPC_MSA */
> + MMI_SQ = 0x1F << 26, /* Same as OPC_SPECIAL3 */
> };
>
> /*
> - * TX79 Multimedia Instructions with opcode field = MMI:
> + * MMI Instructions with opcode field = MMI:
> *
> * 31 26 5 0
> * +--------+-------------------------------+--------+
> @@ -2161,35 +2161,35 @@ enum {
>
> #define MASK_MMI(op) (MASK_OP_MAJOR(op) | ((op) & 0x3F))
> enum {
> - TX79_MMI_MADD = 0x00 | TX79_CLASS_MMI, /* Same as OPC_MADD */
> - TX79_MMI_MADDU = 0x01 | TX79_CLASS_MMI, /* Same as OPC_MADDU */
> - TX79_MMI_PLZCW = 0x04 | TX79_CLASS_MMI,
> - TX79_MMI_CLASS_MMI0 = 0x08 | TX79_CLASS_MMI,
> - TX79_MMI_CLASS_MMI2 = 0x09 | TX79_CLASS_MMI,
> - TX79_MMI_MFHI1 = 0x10 | TX79_CLASS_MMI, /* Same minor as OPC_MFHI */
> - TX79_MMI_MTHI1 = 0x11 | TX79_CLASS_MMI, /* Same minor as OPC_MTHI */
> - TX79_MMI_MFLO1 = 0x12 | TX79_CLASS_MMI, /* Same minor as OPC_MFLO */
> - TX79_MMI_MTLO1 = 0x13 | TX79_CLASS_MMI, /* Same minor as OPC_MTLO */
> - TX79_MMI_MULT1 = 0x18 | TX79_CLASS_MMI, /* Same minor as OPC_MULT */
> - TX79_MMI_MULTU1 = 0x19 | TX79_CLASS_MMI, /* Same minor as OPC_MULTU */
> - TX79_MMI_DIV1 = 0x1A | TX79_CLASS_MMI, /* Same minor as OPC_DIV */
> - TX79_MMI_DIVU1 = 0x1B | TX79_CLASS_MMI, /* Same minor as OPC_DIVU */
> - TX79_MMI_MADD1 = 0x20 | TX79_CLASS_MMI,
> - TX79_MMI_MADDU1 = 0x21 | TX79_CLASS_MMI,
> - TX79_MMI_CLASS_MMI1 = 0x28 | TX79_CLASS_MMI,
> - TX79_MMI_CLASS_MMI3 = 0x29 | TX79_CLASS_MMI,
> - TX79_MMI_PMFHL = 0x30 | TX79_CLASS_MMI,
> - TX79_MMI_PMTHL = 0x31 | TX79_CLASS_MMI,
> - TX79_MMI_PSLLH = 0x34 | TX79_CLASS_MMI,
> - TX79_MMI_PSRLH = 0x36 | TX79_CLASS_MMI,
> - TX79_MMI_PSRAH = 0x37 | TX79_CLASS_MMI,
> - TX79_MMI_PSLLW = 0x3C | TX79_CLASS_MMI,
> - TX79_MMI_PSRLW = 0x3E | TX79_CLASS_MMI,
> - TX79_MMI_PSRAW = 0x3F | TX79_CLASS_MMI,
> + MMI_OPC_MADD = 0x00 | MMI_CLASS_MMI, /* Same as OPC_MADD */
> + MMI_OPC_MADDU = 0x01 | MMI_CLASS_MMI, /* Same as OPC_MADDU */
> + MMI_OPC_PLZCW = 0x04 | MMI_CLASS_MMI,
> + MMI_OPC_CLASS_MMI0 = 0x08 | MMI_CLASS_MMI,
> + MMI_OPC_CLASS_MMI2 = 0x09 | MMI_CLASS_MMI,
> + MMI_OPC_MFHI1 = 0x10 | MMI_CLASS_MMI, /* Same minor as OPC_MFHI */
> + MMI_OPC_MTHI1 = 0x11 | MMI_CLASS_MMI, /* Same minor as OPC_MTHI */
> + MMI_OPC_MFLO1 = 0x12 | MMI_CLASS_MMI, /* Same minor as OPC_MFLO */
> + MMI_OPC_MTLO1 = 0x13 | MMI_CLASS_MMI, /* Same minor as OPC_MTLO */
> + MMI_OPC_MULT1 = 0x18 | MMI_CLASS_MMI, /* Same minor as OPC_MULT */
> + MMI_OPC_MULTU1 = 0x19 | MMI_CLASS_MMI, /* Same minor as OPC_MULTU */
> + MMI_OPC_DIV1 = 0x1A | MMI_CLASS_MMI, /* Same minor as OPC_DIV */
> + MMI_OPC_DIVU1 = 0x1B | MMI_CLASS_MMI, /* Same minor as OPC_DIVU */
> + MMI_OPC_MADD1 = 0x20 | MMI_CLASS_MMI,
> + MMI_OPC_MADDU1 = 0x21 | MMI_CLASS_MMI,
> + MMI_OPC_CLASS_MMI1 = 0x28 | MMI_CLASS_MMI,
> + MMI_OPC_CLASS_MMI3 = 0x29 | MMI_CLASS_MMI,
> + MMI_OPC_PMFHL = 0x30 | MMI_CLASS_MMI,
> + MMI_OPC_PMTHL = 0x31 | MMI_CLASS_MMI,
> + MMI_OPC_PSLLH = 0x34 | MMI_CLASS_MMI,
> + MMI_OPC_PSRLH = 0x36 | MMI_CLASS_MMI,
> + MMI_OPC_PSRAH = 0x37 | MMI_CLASS_MMI,
> + MMI_OPC_PSLLW = 0x3C | MMI_CLASS_MMI,
> + MMI_OPC_PSRLW = 0x3E | MMI_CLASS_MMI,
> + MMI_OPC_PSRAW = 0x3F | MMI_CLASS_MMI,
> };
>
> /*
> - * TX79 Multimedia Instructions with opcode field = MMI and bits 5..0 = MMI0:
> + * MMI Instructions with opcode field = MMI and bits 5..0 = MMI0:
> *
> * 31 26 10 6 5 0
> * +--------+----------------------+--------+--------+
> @@ -2212,35 +2212,35 @@ enum {
>
> #define MASK_MMI0(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
> enum {
> - TX79_MMI0_PADDW = (0x00 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PSUBW = (0x01 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PCGTW = (0x02 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PMAXW = (0x03 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PADDH = (0x04 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PSUBH = (0x05 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PCGTH = (0x06 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PMAXH = (0x07 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PADDB = (0x08 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PSUBB = (0x09 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PCGTB = (0x0A << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PADDSW = (0x10 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PSUBSW = (0x11 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PEXTLW = (0x12 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PPACW = (0x13 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PADDSH = (0x14 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PSUBSH = (0x15 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PEXTLH = (0x16 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PPACH = (0x17 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PADDSB = (0x18 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PSUBSB = (0x19 << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PEXTLB = (0x1A << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PPACB = (0x1B << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PEXT5 = (0x1E << 6) | TX79_MMI_CLASS_MMI0,
> - TX79_MMI0_PPAC5 = (0x1F << 6) | TX79_MMI_CLASS_MMI0,
> + MMI_OPC_0_PADDW = (0x00 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PSUBW = (0x01 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PCGTW = (0x02 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PMAXW = (0x03 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PADDH = (0x04 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PSUBH = (0x05 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PCGTH = (0x06 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PMAXH = (0x07 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PADDB = (0x08 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PSUBB = (0x09 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PCGTB = (0x0A << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PADDSW = (0x10 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PSUBSW = (0x11 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PEXTLW = (0x12 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PPACW = (0x13 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PADDSH = (0x14 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PSUBSH = (0x15 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PEXTLH = (0x16 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PPACH = (0x17 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PADDSB = (0x18 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PSUBSB = (0x19 << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PEXTLB = (0x1A << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PPACB = (0x1B << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PEXT5 = (0x1E << 6) | MMI_OPC_CLASS_MMI0,
> + MMI_OPC_0_PPAC5 = (0x1F << 6) | MMI_OPC_CLASS_MMI0,
> };
>
> /*
> - * TX79 Multimedia Instructions with opcode field = MMI and bits 5..0 = MMI1:
> + * MMI Instructions with opcode field = MMI and bits 5..0 = MMI1:
> *
> * 31 26 10 6 5 0
> * +--------+----------------------+--------+--------+
> @@ -2263,28 +2263,28 @@ enum {
>
> #define MASK_MMI1(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
> enum {
> - TX79_MMI1_PABSW = (0x01 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PCEQW = (0x02 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PMINW = (0x03 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PADSBH = (0x04 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PABSH = (0x05 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PCEQH = (0x06 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PMINH = (0x07 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PCEQB = (0x0A << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PADDUW = (0x10 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PSUBUW = (0x11 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PEXTUW = (0x12 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PADDUH = (0x14 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PSUBUH = (0x15 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PEXTUH = (0x16 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PADDUB = (0x18 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PSUBUB = (0x19 << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_PEXTUB = (0x1A << 6) | TX79_MMI_CLASS_MMI1,
> - TX79_MMI1_QFSRV = (0x1B << 6) | TX79_MMI_CLASS_MMI1,
> + MMI_OPC_1_PABSW = (0x01 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PCEQW = (0x02 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PMINW = (0x03 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PADSBH = (0x04 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PABSH = (0x05 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PCEQH = (0x06 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PMINH = (0x07 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PCEQB = (0x0A << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PADDUW = (0x10 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PSUBUW = (0x11 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PEXTUW = (0x12 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PADDUH = (0x14 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PSUBUH = (0x15 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PEXTUH = (0x16 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PADDUB = (0x18 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PSUBUB = (0x19 << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_PEXTUB = (0x1A << 6) | MMI_OPC_CLASS_MMI1,
> + MMI_OPC_1_QFSRV = (0x1B << 6) | MMI_OPC_CLASS_MMI1,
> };
>
> /*
> - * TX79 Multimedia Instructions with opcode field = MMI and bits 5..0 = MMI2:
> + * MMI Instructions with opcode field = MMI and bits 5..0 = MMI2:
> *
> * 31 26 10 6 5 0
> * +--------+----------------------+--------+--------+
> @@ -2307,32 +2307,32 @@ enum {
>
> #define MASK_MMI2(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
> enum {
> - TX79_MMI2_PMADDW = (0x00 << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PSLLVW = (0x02 << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PSRLVW = (0x03 << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PMSUBW = (0x04 << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PMFHI = (0x08 << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PMFLO = (0x09 << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PINTH = (0x0A << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PMULTW = (0x0C << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PDIVW = (0x0D << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PCPYLD = (0x0E << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PMADDH = (0x10 << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PHMADH = (0x11 << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PAND = (0x12 << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PXOR = (0x13 << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PMSUBH = (0x14 << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PHMSBH = (0x15 << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PEXEH = (0x1A << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PREVH = (0x1B << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PMULTH = (0x1C << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PDIVBW = (0x1D << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PEXEW = (0x1E << 6) | TX79_MMI_CLASS_MMI2,
> - TX79_MMI2_PROT3W = (0x1F << 6) | TX79_MMI_CLASS_MMI2,
> + MMI_OPC_2_PMADDW = (0x00 << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PSLLVW = (0x02 << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PSRLVW = (0x03 << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PMSUBW = (0x04 << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PMFHI = (0x08 << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PMFLO = (0x09 << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PINTH = (0x0A << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PMULTW = (0x0C << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PDIVW = (0x0D << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PCPYLD = (0x0E << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PMADDH = (0x10 << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PHMADH = (0x11 << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PAND = (0x12 << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PXOR = (0x13 << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PMSUBH = (0x14 << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PHMSBH = (0x15 << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PEXEH = (0x1A << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PREVH = (0x1B << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PMULTH = (0x1C << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PDIVBW = (0x1D << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PEXEW = (0x1E << 6) | MMI_OPC_CLASS_MMI2,
> + MMI_OPC_2_PROT3W = (0x1F << 6) | MMI_OPC_CLASS_MMI2,
> };
>
> /*
> - * TX79 Multimedia Instructions with opcode field = MMI and bits 5..0 = MMI3:
> + * MMI Instructions with opcode field = MMI and bits 5..0 = MMI3:
> *
> * 31 26 10 6 5 0
> * +--------+----------------------+--------+--------+
> @@ -2355,19 +2355,19 @@ enum {
>
> #define MASK_MMI3(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
> enum {
> - TX79_MMI3_PMADDUW = (0x00 << 6) | TX79_MMI_CLASS_MMI3,
> - TX79_MMI3_PSRAVW = (0x03 << 6) | TX79_MMI_CLASS_MMI3,
> - TX79_MMI3_PMTHI = (0x08 << 6) | TX79_MMI_CLASS_MMI3,
> - TX79_MMI3_PMTLO = (0x09 << 6) | TX79_MMI_CLASS_MMI3,
> - TX79_MMI3_PINTEH = (0x0A << 6) | TX79_MMI_CLASS_MMI3,
> - TX79_MMI3_PMULTUW = (0x0C << 6) | TX79_MMI_CLASS_MMI3,
> - TX79_MMI3_PDIVUW = (0x0D << 6) | TX79_MMI_CLASS_MMI3,
> - TX79_MMI3_PCPYUD = (0x0E << 6) | TX79_MMI_CLASS_MMI3,
> - TX79_MMI3_POR = (0x12 << 6) | TX79_MMI_CLASS_MMI3,
> - TX79_MMI3_PNOR = (0x13 << 6) | TX79_MMI_CLASS_MMI3,
> - TX79_MMI3_PEXCH = (0x1A << 6) | TX79_MMI_CLASS_MMI3,
> - TX79_MMI3_PCPYH = (0x1B << 6) | TX79_MMI_CLASS_MMI3,
> - TX79_MMI3_PEXCW = (0x1E << 6) | TX79_MMI_CLASS_MMI3,
> + MMI_OPC_3_PMADDUW = (0x00 << 6) | MMI_OPC_CLASS_MMI3,
> + MMI_OPC_3_PSRAVW = (0x03 << 6) | MMI_OPC_CLASS_MMI3,
> + MMI_OPC_3_PMTHI = (0x08 << 6) | MMI_OPC_CLASS_MMI3,
> + MMI_OPC_3_PMTLO = (0x09 << 6) | MMI_OPC_CLASS_MMI3,
> + MMI_OPC_3_PINTEH = (0x0A << 6) | MMI_OPC_CLASS_MMI3,
> + MMI_OPC_3_PMULTUW = (0x0C << 6) | MMI_OPC_CLASS_MMI3,
> + MMI_OPC_3_PDIVUW = (0x0D << 6) | MMI_OPC_CLASS_MMI3,
> + MMI_OPC_3_PCPYUD = (0x0E << 6) | MMI_OPC_CLASS_MMI3,
> + MMI_OPC_3_POR = (0x12 << 6) | MMI_OPC_CLASS_MMI3,
> + MMI_OPC_3_PNOR = (0x13 << 6) | MMI_OPC_CLASS_MMI3,
> + MMI_OPC_3_PEXCH = (0x1A << 6) | MMI_OPC_CLASS_MMI3,
> + MMI_OPC_3_PCPYH = (0x1B << 6) | MMI_OPC_CLASS_MMI3,
> + MMI_OPC_3_PEXCW = (0x1E << 6) | MMI_OPC_CLASS_MMI3,
> };
>
> /* global register indices */
> @@ -4281,8 +4281,8 @@ static void gen_shift(DisasContext *ctx, uint32_t opc,
> /* Arithmetic on HI/LO registers */
> static void gen_HILO(DisasContext *ctx, uint32_t opc, int acc, int reg)
> {
> - if (reg == 0 && (opc == OPC_MFHI || opc == TX79_MMI_MFHI1 ||
> - opc == OPC_MFLO || opc == TX79_MMI_MFLO1)) {
> + if (reg == 0 && (opc == OPC_MFHI || opc == MMI_OPC_MFHI1 ||
> + opc == OPC_MFLO || opc == MMI_OPC_MFLO1)) {
> /* Treat as NOP. */
> return;
> }
> @@ -4295,7 +4295,7 @@ static void gen_HILO(DisasContext *ctx, uint32_t opc, int acc, int reg)
>
> switch (opc) {
> case OPC_MFHI:
> - case TX79_MMI_MFHI1:
> + case MMI_OPC_MFHI1:
> #if defined(TARGET_MIPS64)
> if (acc != 0) {
> tcg_gen_ext32s_tl(cpu_gpr[reg], cpu_HI[acc]);
> @@ -4306,7 +4306,7 @@ static void gen_HILO(DisasContext *ctx, uint32_t opc, int acc, int reg)
> }
> break;
> case OPC_MFLO:
> - case TX79_MMI_MFLO1:
> + case MMI_OPC_MFLO1:
> #if defined(TARGET_MIPS64)
> if (acc != 0) {
> tcg_gen_ext32s_tl(cpu_gpr[reg], cpu_LO[acc]);
> @@ -4317,7 +4317,7 @@ static void gen_HILO(DisasContext *ctx, uint32_t opc, int acc, int reg)
> }
> break;
> case OPC_MTHI:
> - case TX79_MMI_MTHI1:
> + case MMI_OPC_MTHI1:
> if (reg != 0) {
> #if defined(TARGET_MIPS64)
> if (acc != 0) {
> @@ -4332,7 +4332,7 @@ static void gen_HILO(DisasContext *ctx, uint32_t opc, int acc, int reg)
> }
> break;
> case OPC_MTLO:
> - case TX79_MMI_MTLO1:
> + case MMI_OPC_MTLO1:
> if (reg != 0) {
> #if defined(TARGET_MIPS64)
> if (acc != 0) {
> @@ -4652,7 +4652,7 @@ static void gen_muldiv(DisasContext *ctx, uint32_t opc,
>
> switch (opc) {
> case OPC_DIV:
> - case TX79_MMI_DIV1:
> + case MMI_OPC_DIV1:
> {
> TCGv t2 = tcg_temp_new();
> TCGv t3 = tcg_temp_new();
> @@ -4674,7 +4674,7 @@ static void gen_muldiv(DisasContext *ctx, uint32_t opc,
> }
> break;
> case OPC_DIVU:
> - case TX79_MMI_DIVU1:
> + case MMI_OPC_DIVU1:
> {
> TCGv t2 = tcg_const_tl(0);
> TCGv t3 = tcg_const_tl(1);
> @@ -4858,7 +4858,7 @@ static void gen_mul_txx9(DisasContext *ctx, uint32_t opc,
> gen_load_gpr(t1, rt);
>
> switch (opc) {
> - case TX79_MMI_MULT1:
> + case MMI_OPC_MULT1:
> acc = 1;
> /* Fall through */
> case OPC_MULT:
> @@ -4877,7 +4877,7 @@ static void gen_mul_txx9(DisasContext *ctx, uint32_t opc,
> tcg_temp_free_i32(t3);
> }
> break;
> - case TX79_MMI_MULTU1:
> + case MMI_OPC_MULTU1:
> acc = 1;
> /* Fall through */
> case OPC_MULTU:
> @@ -24686,32 +24686,32 @@ static void decode_tx79_mmi0(CPUMIPSState *env, DisasContext *ctx)
> uint32_t opc = MASK_MMI0(ctx->opcode);
>
> switch (opc) {
> - case TX79_MMI0_PADDW: /* TODO: TX79_MMI0_PADDW */
> - case TX79_MMI0_PSUBW: /* TODO: TX79_MMI0_PSUBW */
> - case TX79_MMI0_PCGTW: /* TODO: TX79_MMI0_PCGTW */
> - case TX79_MMI0_PMAXW: /* TODO: TX79_MMI0_PMAXW */
> - case TX79_MMI0_PADDH: /* TODO: TX79_MMI0_PADDH */
> - case TX79_MMI0_PSUBH: /* TODO: TX79_MMI0_PSUBH */
> - case TX79_MMI0_PCGTH: /* TODO: TX79_MMI0_PCGTH */
> - case TX79_MMI0_PMAXH: /* TODO: TX79_MMI0_PMAXH */
> - case TX79_MMI0_PADDB: /* TODO: TX79_MMI0_PADDB */
> - case TX79_MMI0_PSUBB: /* TODO: TX79_MMI0_PSUBB */
> - case TX79_MMI0_PCGTB: /* TODO: TX79_MMI0_PCGTB */
> - case TX79_MMI0_PADDSW: /* TODO: TX79_MMI0_PADDSW */
> - case TX79_MMI0_PSUBSW: /* TODO: TX79_MMI0_PSUBSW */
> - case TX79_MMI0_PEXTLW: /* TODO: TX79_MMI0_PEXTLW */
> - case TX79_MMI0_PPACW: /* TODO: TX79_MMI0_PPACW */
> - case TX79_MMI0_PADDSH: /* TODO: TX79_MMI0_PADDSH */
> - case TX79_MMI0_PSUBSH: /* TODO: TX79_MMI0_PSUBSH */
> - case TX79_MMI0_PEXTLH: /* TODO: TX79_MMI0_PEXTLH */
> - case TX79_MMI0_PPACH: /* TODO: TX79_MMI0_PPACH */
> - case TX79_MMI0_PADDSB: /* TODO: TX79_MMI0_PADDSB */
> - case TX79_MMI0_PSUBSB: /* TODO: TX79_MMI0_PSUBSB */
> - case TX79_MMI0_PEXTLB: /* TODO: TX79_MMI0_PEXTLB */
> - case TX79_MMI0_PPACB: /* TODO: TX79_MMI0_PPACB */
> - case TX79_MMI0_PEXT5: /* TODO: TX79_MMI0_PEXT5 */
> - case TX79_MMI0_PPAC5: /* TODO: TX79_MMI0_PPAC5 */
> - generate_exception_end(ctx, EXCP_RI); /* TODO: TX79_MMI_CLASS_MMI0 */
> + case MMI_OPC_0_PADDW: /* TODO: MMI_OPC_0_PADDW */
> + case MMI_OPC_0_PSUBW: /* TODO: MMI_OPC_0_PSUBW */
> + case MMI_OPC_0_PCGTW: /* TODO: MMI_OPC_0_PCGTW */
> + case MMI_OPC_0_PMAXW: /* TODO: MMI_OPC_0_PMAXW */
> + case MMI_OPC_0_PADDH: /* TODO: MMI_OPC_0_PADDH */
> + case MMI_OPC_0_PSUBH: /* TODO: MMI_OPC_0_PSUBH */
> + case MMI_OPC_0_PCGTH: /* TODO: MMI_OPC_0_PCGTH */
> + case MMI_OPC_0_PMAXH: /* TODO: MMI_OPC_0_PMAXH */
> + case MMI_OPC_0_PADDB: /* TODO: MMI_OPC_0_PADDB */
> + case MMI_OPC_0_PSUBB: /* TODO: MMI_OPC_0_PSUBB */
> + case MMI_OPC_0_PCGTB: /* TODO: MMI_OPC_0_PCGTB */
> + case MMI_OPC_0_PADDSW: /* TODO: MMI_OPC_0_PADDSW */
> + case MMI_OPC_0_PSUBSW: /* TODO: MMI_OPC_0_PSUBSW */
> + case MMI_OPC_0_PEXTLW: /* TODO: MMI_OPC_0_PEXTLW */
> + case MMI_OPC_0_PPACW: /* TODO: MMI_OPC_0_PPACW */
> + case MMI_OPC_0_PADDSH: /* TODO: MMI_OPC_0_PADDSH */
> + case MMI_OPC_0_PSUBSH: /* TODO: MMI_OPC_0_PSUBSH */
> + case MMI_OPC_0_PEXTLH: /* TODO: MMI_OPC_0_PEXTLH */
> + case MMI_OPC_0_PPACH: /* TODO: MMI_OPC_0_PPACH */
> + case MMI_OPC_0_PADDSB: /* TODO: MMI_OPC_0_PADDSB */
> + case MMI_OPC_0_PSUBSB: /* TODO: MMI_OPC_0_PSUBSB */
> + case MMI_OPC_0_PEXTLB: /* TODO: MMI_OPC_0_PEXTLB */
> + case MMI_OPC_0_PPACB: /* TODO: MMI_OPC_0_PPACB */
> + case MMI_OPC_0_PEXT5: /* TODO: MMI_OPC_0_PEXT5 */
> + case MMI_OPC_0_PPAC5: /* TODO: MMI_OPC_0_PPAC5 */
> + generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_OPC_CLASS_MMI0 */
> break;
> default:
> MIPS_INVAL("TX79 MMI class MMI0");
> @@ -24725,25 +24725,25 @@ static void decode_tx79_mmi1(CPUMIPSState *env, DisasContext *ctx)
> uint32_t opc = MASK_MMI1(ctx->opcode);
>
> switch (opc) {
> - case TX79_MMI1_PABSW: /* TODO: TX79_MMI1_PABSW */
> - case TX79_MMI1_PCEQW: /* TODO: TX79_MMI1_PCEQW */
> - case TX79_MMI1_PMINW: /* TODO: TX79_MMI1_PMINW */
> - case TX79_MMI1_PADSBH: /* TODO: TX79_MMI1_PADSBH */
> - case TX79_MMI1_PABSH: /* TODO: TX79_MMI1_PABSH */
> - case TX79_MMI1_PCEQH: /* TODO: TX79_MMI1_PCEQH */
> - case TX79_MMI1_PMINH: /* TODO: TX79_MMI1_PMINH */
> - case TX79_MMI1_PCEQB: /* TODO: TX79_MMI1_PCEQB */
> - case TX79_MMI1_PADDUW: /* TODO: TX79_MMI1_PADDUW */
> - case TX79_MMI1_PSUBUW: /* TODO: TX79_MMI1_PSUBUW */
> - case TX79_MMI1_PEXTUW: /* TODO: TX79_MMI1_PEXTUW */
> - case TX79_MMI1_PADDUH: /* TODO: TX79_MMI1_PADDUH */
> - case TX79_MMI1_PSUBUH: /* TODO: TX79_MMI1_PSUBUH */
> - case TX79_MMI1_PEXTUH: /* TODO: TX79_MMI1_PEXTUH */
> - case TX79_MMI1_PADDUB: /* TODO: TX79_MMI1_PADDUB */
> - case TX79_MMI1_PSUBUB: /* TODO: TX79_MMI1_PSUBUB */
> - case TX79_MMI1_PEXTUB: /* TODO: TX79_MMI1_PEXTUB */
> - case TX79_MMI1_QFSRV: /* TODO: TX79_MMI1_QFSRV */
> - generate_exception_end(ctx, EXCP_RI); /* TODO: TX79_MMI_CLASS_MMI1 */
> + case MMI_OPC_1_PABSW: /* TODO: MMI_OPC_1_PABSW */
> + case MMI_OPC_1_PCEQW: /* TODO: MMI_OPC_1_PCEQW */
> + case MMI_OPC_1_PMINW: /* TODO: MMI_OPC_1_PMINW */
> + case MMI_OPC_1_PADSBH: /* TODO: MMI_OPC_1_PADSBH */
> + case MMI_OPC_1_PABSH: /* TODO: MMI_OPC_1_PABSH */
> + case MMI_OPC_1_PCEQH: /* TODO: MMI_OPC_1_PCEQH */
> + case MMI_OPC_1_PMINH: /* TODO: MMI_OPC_1_PMINH */
> + case MMI_OPC_1_PCEQB: /* TODO: MMI_OPC_1_PCEQB */
> + case MMI_OPC_1_PADDUW: /* TODO: MMI_OPC_1_PADDUW */
> + case MMI_OPC_1_PSUBUW: /* TODO: MMI_OPC_1_PSUBUW */
> + case MMI_OPC_1_PEXTUW: /* TODO: MMI_OPC_1_PEXTUW */
> + case MMI_OPC_1_PADDUH: /* TODO: MMI_OPC_1_PADDUH */
> + case MMI_OPC_1_PSUBUH: /* TODO: MMI_OPC_1_PSUBUH */
> + case MMI_OPC_1_PEXTUH: /* TODO: MMI_OPC_1_PEXTUH */
> + case MMI_OPC_1_PADDUB: /* TODO: MMI_OPC_1_PADDUB */
> + case MMI_OPC_1_PSUBUB: /* TODO: MMI_OPC_1_PSUBUB */
> + case MMI_OPC_1_PEXTUB: /* TODO: MMI_OPC_1_PEXTUB */
> + case MMI_OPC_1_QFSRV: /* TODO: MMI_OPC_1_QFSRV */
> + generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_OPC_CLASS_MMI1 */
> break;
> default:
> MIPS_INVAL("TX79 MMI class MMI1");
> @@ -24757,29 +24757,29 @@ static void decode_tx79_mmi2(CPUMIPSState *env, DisasContext *ctx)
> uint32_t opc = MASK_MMI2(ctx->opcode);
>
> switch (opc) {
> - case TX79_MMI2_PMADDW: /* TODO: TX79_MMI2_PMADDW */
> - case TX79_MMI2_PSLLVW: /* TODO: TX79_MMI2_PSLLVW */
> - case TX79_MMI2_PSRLVW: /* TODO: TX79_MMI2_PSRLVW */
> - case TX79_MMI2_PMSUBW: /* TODO: TX79_MMI2_PMSUBW */
> - case TX79_MMI2_PMFHI: /* TODO: TX79_MMI2_PMFHI */
> - case TX79_MMI2_PMFLO: /* TODO: TX79_MMI2_PMFLO */
> - case TX79_MMI2_PINTH: /* TODO: TX79_MMI2_PINTH */
> - case TX79_MMI2_PMULTW: /* TODO: TX79_MMI2_PMULTW */
> - case TX79_MMI2_PDIVW: /* TODO: TX79_MMI2_PDIVW */
> - case TX79_MMI2_PCPYLD: /* TODO: TX79_MMI2_PCPYLD */
> - case TX79_MMI2_PMADDH: /* TODO: TX79_MMI2_PMADDH */
> - case TX79_MMI2_PHMADH: /* TODO: TX79_MMI2_PHMADH */
> - case TX79_MMI2_PAND: /* TODO: TX79_MMI2_PAND */
> - case TX79_MMI2_PXOR: /* TODO: TX79_MMI2_PXOR */
> - case TX79_MMI2_PMSUBH: /* TODO: TX79_MMI2_PMSUBH */
> - case TX79_MMI2_PHMSBH: /* TODO: TX79_MMI2_PHMSBH */
> - case TX79_MMI2_PEXEH: /* TODO: TX79_MMI2_PEXEH */
> - case TX79_MMI2_PREVH: /* TODO: TX79_MMI2_PREVH */
> - case TX79_MMI2_PMULTH: /* TODO: TX79_MMI2_PMULTH */
> - case TX79_MMI2_PDIVBW: /* TODO: TX79_MMI2_PDIVBW */
> - case TX79_MMI2_PEXEW: /* TODO: TX79_MMI2_PEXEW */
> - case TX79_MMI2_PROT3W: /* TODO: TX79_MMI2_PROT3W */
> - generate_exception_end(ctx, EXCP_RI); /* TODO: TX79_MMI_CLASS_MMI2 */
> + case MMI_OPC_2_PMADDW: /* TODO: MMI_OPC_2_PMADDW */
> + case MMI_OPC_2_PSLLVW: /* TODO: MMI_OPC_2_PSLLVW */
> + case MMI_OPC_2_PSRLVW: /* TODO: MMI_OPC_2_PSRLVW */
> + case MMI_OPC_2_PMSUBW: /* TODO: MMI_OPC_2_PMSUBW */
> + case MMI_OPC_2_PMFHI: /* TODO: MMI_OPC_2_PMFHI */
> + case MMI_OPC_2_PMFLO: /* TODO: MMI_OPC_2_PMFLO */
> + case MMI_OPC_2_PINTH: /* TODO: MMI_OPC_2_PINTH */
> + case MMI_OPC_2_PMULTW: /* TODO: MMI_OPC_2_PMULTW */
> + case MMI_OPC_2_PDIVW: /* TODO: MMI_OPC_2_PDIVW */
> + case MMI_OPC_2_PCPYLD: /* TODO: MMI_OPC_2_PCPYLD */
> + case MMI_OPC_2_PMADDH: /* TODO: MMI_OPC_2_PMADDH */
> + case MMI_OPC_2_PHMADH: /* TODO: MMI_OPC_2_PHMADH */
> + case MMI_OPC_2_PAND: /* TODO: MMI_OPC_2_PAND */
> + case MMI_OPC_2_PXOR: /* TODO: MMI_OPC_2_PXOR */
> + case MMI_OPC_2_PMSUBH: /* TODO: MMI_OPC_2_PMSUBH */
> + case MMI_OPC_2_PHMSBH: /* TODO: MMI_OPC_2_PHMSBH */
> + case MMI_OPC_2_PEXEH: /* TODO: MMI_OPC_2_PEXEH */
> + case MMI_OPC_2_PREVH: /* TODO: MMI_OPC_2_PREVH */
> + case MMI_OPC_2_PMULTH: /* TODO: MMI_OPC_2_PMULTH */
> + case MMI_OPC_2_PDIVBW: /* TODO: MMI_OPC_2_PDIVBW */
> + case MMI_OPC_2_PEXEW: /* TODO: MMI_OPC_2_PEXEW */
> + case MMI_OPC_2_PROT3W: /* TODO: MMI_OPC_2_PROT3W */
> + generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_OPC_CLASS_MMI2 */
> break;
> default:
> MIPS_INVAL("TX79 MMI class MMI2");
> @@ -24793,20 +24793,20 @@ static void decode_tx79_mmi3(CPUMIPSState *env, DisasContext *ctx)
> uint32_t opc = MASK_MMI3(ctx->opcode);
>
> switch (opc) {
> - case TX79_MMI3_PMADDUW: /* TODO: TX79_MMI3_PMADDUW */
> - case TX79_MMI3_PSRAVW: /* TODO: TX79_MMI3_PSRAVW */
> - case TX79_MMI3_PMTHI: /* TODO: TX79_MMI3_PMTHI */
> - case TX79_MMI3_PMTLO: /* TODO: TX79_MMI3_PMTLO */
> - case TX79_MMI3_PINTEH: /* TODO: TX79_MMI3_PINTEH */
> - case TX79_MMI3_PMULTUW: /* TODO: TX79_MMI3_PMULTUW */
> - case TX79_MMI3_PDIVUW: /* TODO: TX79_MMI3_PDIVUW */
> - case TX79_MMI3_PCPYUD: /* TODO: TX79_MMI3_PCPYUD */
> - case TX79_MMI3_POR: /* TODO: TX79_MMI3_POR */
> - case TX79_MMI3_PNOR: /* TODO: TX79_MMI3_PNOR */
> - case TX79_MMI3_PEXCH: /* TODO: TX79_MMI3_PEXCH */
> - case TX79_MMI3_PCPYH: /* TODO: TX79_MMI3_PCPYH */
> - case TX79_MMI3_PEXCW: /* TODO: TX79_MMI3_PEXCW */
> - generate_exception_end(ctx, EXCP_RI); /* TODO: TX79_MMI_CLASS_MMI3 */
> + case MMI_OPC_3_PMADDUW: /* TODO: MMI_OPC_3_PMADDUW */
> + case MMI_OPC_3_PSRAVW: /* TODO: MMI_OPC_3_PSRAVW */
> + case MMI_OPC_3_PMTHI: /* TODO: MMI_OPC_3_PMTHI */
> + case MMI_OPC_3_PMTLO: /* TODO: MMI_OPC_3_PMTLO */
> + case MMI_OPC_3_PINTEH: /* TODO: MMI_OPC_3_PINTEH */
> + case MMI_OPC_3_PMULTUW: /* TODO: MMI_OPC_3_PMULTUW */
> + case MMI_OPC_3_PDIVUW: /* TODO: MMI_OPC_3_PDIVUW */
> + case MMI_OPC_3_PCPYUD: /* TODO: MMI_OPC_3_PCPYUD */
> + case MMI_OPC_3_POR: /* TODO: MMI_OPC_3_POR */
> + case MMI_OPC_3_PNOR: /* TODO: MMI_OPC_3_PNOR */
> + case MMI_OPC_3_PEXCH: /* TODO: MMI_OPC_3_PEXCH */
> + case MMI_OPC_3_PCPYH: /* TODO: MMI_OPC_3_PCPYH */
> + case MMI_OPC_3_PEXCW: /* TODO: MMI_OPC_3_PEXCW */
> + generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_OPC_CLASS_MMI3 */
> break;
> default:
> MIPS_INVAL("TX79 MMI class MMI3");
> @@ -24823,48 +24823,48 @@ static void decode_tx79_mmi(CPUMIPSState *env, DisasContext *ctx)
> int rd = extract32(ctx->opcode, 11, 5);
>
> switch (opc) {
> - case TX79_MMI_CLASS_MMI0:
> + case MMI_OPC_CLASS_MMI0:
> decode_tx79_mmi0(env, ctx);
> break;
> - case TX79_MMI_CLASS_MMI1:
> + case MMI_OPC_CLASS_MMI1:
> decode_tx79_mmi1(env, ctx);
> break;
> - case TX79_MMI_CLASS_MMI2:
> + case MMI_OPC_CLASS_MMI2:
> decode_tx79_mmi2(env, ctx);
> break;
> - case TX79_MMI_CLASS_MMI3:
> + case MMI_OPC_CLASS_MMI3:
> decode_tx79_mmi3(env, ctx);
> break;
> - case TX79_MMI_MULT1:
> - case TX79_MMI_MULTU1:
> + case MMI_OPC_MULT1:
> + case MMI_OPC_MULTU1:
> gen_mul_txx9(ctx, opc, rd, rs, rt);
> break;
> - case TX79_MMI_DIV1:
> - case TX79_MMI_DIVU1:
> + case MMI_OPC_DIV1:
> + case MMI_OPC_DIVU1:
> gen_muldiv(ctx, opc, 1, rs, rt);
> break;
> - case TX79_MMI_MTLO1:
> - case TX79_MMI_MTHI1:
> + case MMI_OPC_MTLO1:
> + case MMI_OPC_MTHI1:
> gen_HILO(ctx, opc, 1, rs);
> break;
> - case TX79_MMI_MFLO1:
> - case TX79_MMI_MFHI1:
> + case MMI_OPC_MFLO1:
> + case MMI_OPC_MFHI1:
> gen_HILO(ctx, opc, 1, rd);
> break;
> - case TX79_MMI_MADD: /* TODO: TX79_MMI_MADD */
> - case TX79_MMI_MADDU: /* TODO: TX79_MMI_MADDU */
> - case TX79_MMI_PLZCW: /* TODO: TX79_MMI_PLZCW */
> - case TX79_MMI_MADD1: /* TODO: TX79_MMI_MADD1 */
> - case TX79_MMI_MADDU1: /* TODO: TX79_MMI_MADDU1 */
> - case TX79_MMI_PMFHL: /* TODO: TX79_MMI_PMFHL */
> - case TX79_MMI_PMTHL: /* TODO: TX79_MMI_PMTHL */
> - case TX79_MMI_PSLLH: /* TODO: TX79_MMI_PSLLH */
> - case TX79_MMI_PSRLH: /* TODO: TX79_MMI_PSRLH */
> - case TX79_MMI_PSRAH: /* TODO: TX79_MMI_PSRAH */
> - case TX79_MMI_PSLLW: /* TODO: TX79_MMI_PSLLW */
> - case TX79_MMI_PSRLW: /* TODO: TX79_MMI_PSRLW */
> - case TX79_MMI_PSRAW: /* TODO: TX79_MMI_PSRAW */
> - generate_exception_end(ctx, EXCP_RI); /* TODO: TX79_CLASS_MMI */
> + case MMI_OPC_MADD: /* TODO: MMI_OPC_MADD */
> + case MMI_OPC_MADDU: /* TODO: MMI_OPC_MADDU */
> + case MMI_OPC_PLZCW: /* TODO: MMI_OPC_PLZCW */
> + case MMI_OPC_MADD1: /* TODO: MMI_OPC_MADD1 */
> + case MMI_OPC_MADDU1: /* TODO: MMI_OPC_MADDU1 */
> + case MMI_OPC_PMFHL: /* TODO: MMI_OPC_PMFHL */
> + case MMI_OPC_PMTHL: /* TODO: MMI_OPC_PMTHL */
> + case MMI_OPC_PSLLH: /* TODO: MMI_OPC_PSLLH */
> + case MMI_OPC_PSRLH: /* TODO: MMI_OPC_PSRLH */
> + case MMI_OPC_PSRAH: /* TODO: MMI_OPC_PSRAH */
> + case MMI_OPC_PSLLW: /* TODO: MMI_OPC_PSLLW */
> + case MMI_OPC_PSRLW: /* TODO: MMI_OPC_PSRLW */
> + case MMI_OPC_PSRAW: /* TODO: MMI_OPC_PSRAW */
> + generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_CLASS_MMI */
> break;
> default:
> MIPS_INVAL("TX79 MMI class");
> @@ -24875,12 +24875,12 @@ static void decode_tx79_mmi(CPUMIPSState *env, DisasContext *ctx)
>
> static void decode_tx79_lq(CPUMIPSState *env, DisasContext *ctx)
> {
> - generate_exception_end(ctx, EXCP_RI); /* TODO: TX79_LQ */
> + generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_LQ */
> }
>
> static void gen_tx79_sq(DisasContext *ctx, int base, int rt, int offset)
> {
> - generate_exception_end(ctx, EXCP_RI); /* TODO: TX79_SQ */
> + generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_SQ */
> }
>
> /*
> @@ -26238,7 +26238,7 @@ static void decode_opc(CPUMIPSState *env, DisasContext *ctx)
> break;
> case OPC_SPECIAL3:
> if (ctx->insn_flags & INSN_R5900) {
> - decode_tx79_sq(env, ctx); /* TX79_SQ */
> + decode_tx79_sq(env, ctx); /* MMI_SQ */
> } else {
> decode_opc_special3(env, ctx);
> }
> @@ -26902,7 +26902,7 @@ static void decode_opc(CPUMIPSState *env, DisasContext *ctx)
> break;
> case OPC_MSA: /* OPC_MDMX */
> if (ctx->insn_flags & INSN_R5900) {
> - decode_tx79_lq(env, ctx); /* TX79_LQ */
> + decode_tx79_lq(env, ctx); /* MMI_LQ */
> } else {
> /* MDMX: Not implemented. */
> gen_msa(env, ctx);
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PATCH v2 4/5] target/mips: Misc R5900-related cosmetic changes
2018-10-30 11:36 ` [Qemu-devel] [PATCH v2 4/5] target/mips: Misc R5900-related cosmetic changes Aleksandar Markovic
@ 2018-10-30 12:47 ` Philippe Mathieu-Daudé
2018-10-30 13:03 ` Philippe Mathieu-Daudé
2018-10-30 13:10 ` Philippe Mathieu-Daudé
0 siblings, 2 replies; 19+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-10-30 12:47 UTC (permalink / raw)
To: Aleksandar Markovic, qemu-devel
Cc: smarkovic, pjovanovic, amarkovic, aurelien
On 30/10/18 12:36, Aleksandar Markovic wrote:
> From: Aleksandar Markovic <amarkovic@wavecomp.com>
>
> Misc changes in comments and strings for R5900.
>
> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
> ---
> target/mips/translate.c | 14 +++++++-------
> target/mips/translate_init.inc.c | 12 ------------
> 2 files changed, 7 insertions(+), 19 deletions(-)
>
> diff --git a/target/mips/translate.c b/target/mips/translate.c
> index 155331f..259ad2b 100644
> --- a/target/mips/translate.c
> +++ b/target/mips/translate.c
> @@ -2096,8 +2096,8 @@ enum {
> * MTSAH rs, immediate Move Halfword Count to Shift Amount Register
> * PROT3W rd, rt Parallel Rotate 3 Words
> *
> - * The TX79-specific Multimedia Instruction encodings
> - * ==================================================
> + * Multimedia Instructions (MMI) encodings
Oh now I see this. I this single change should be squashed into patch #2
of this series.
Also, maybe use "MultiMedia ..."
> + * =======================================
> *
> * MMI Instruction encoding table keys:
> *
> @@ -24714,7 +24714,7 @@ static void decode_mmi0(CPUMIPSState *env, DisasContext *ctx)
> generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_OPC_CLASS_MMI0 */
> break;
> default:
> - MIPS_INVAL("TX79 MMI class MMI0");
> + MIPS_INVAL("MMI class MMI0");
> generate_exception_end(ctx, EXCP_RI);
> break;
> }
> @@ -24746,7 +24746,7 @@ static void decode_mmi1(CPUMIPSState *env, DisasContext *ctx)
> generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_OPC_CLASS_MMI1 */
> break;
> default:
> - MIPS_INVAL("TX79 MMI class MMI1");
> + MIPS_INVAL("MMI class MMI1");
> generate_exception_end(ctx, EXCP_RI);
> break;
> }
> @@ -24782,7 +24782,7 @@ static void decode_mmi2(CPUMIPSState *env, DisasContext *ctx)
> generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_OPC_CLASS_MMI2 */
> break;
> default:
> - MIPS_INVAL("TX79 MMI class MMI2");
> + MIPS_INVAL("MMI class MMI2");
> generate_exception_end(ctx, EXCP_RI);
> break;
> }
> @@ -24809,7 +24809,7 @@ static void decode_mmi3(CPUMIPSState *env, DisasContext *ctx)
> generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_OPC_CLASS_MMI3 */
> break;
> default:
> - MIPS_INVAL("TX79 MMI class MMI3");
> + MIPS_INVAL("MMI class MMI3");
> generate_exception_end(ctx, EXCP_RI);
> break;
> }
> @@ -24867,7 +24867,7 @@ static void decode_mmi(CPUMIPSState *env, DisasContext *ctx)
> generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_CLASS_MMI */
> break;
> default:
> - MIPS_INVAL("TX79 MMI class");
> + MIPS_INVAL("MMI class");
> generate_exception_end(ctx, EXCP_RI);
> break;
> }
> diff --git a/target/mips/translate_init.inc.c b/target/mips/translate_init.inc.c
> index 85da4a2..cab2003 100644
> --- a/target/mips/translate_init.inc.c
> +++ b/target/mips/translate_init.inc.c
> @@ -411,18 +411,6 @@ const mips_def_t mips_defs[] =
> .mmu_type = MMU_TYPE_R4000,
> },
> {
> - /*
> - * The Toshiba TX System RISC TX79 Core Architecture manual
> - *
> - * https://wiki.qemu.org/File:C790.pdf
> - *
> - * describes the C790 processor that is a follow-up to the R5900.
> - * There are a few notable differences in that the R5900 FPU
> - *
> - * - is not IEEE 754-1985 compliant,
> - * - does not implement double format, and
> - * - its machine code is nonstandard.
> - */
Why remove this documentation? This entry is specific to the R5900.
> .name = "R5900",
> .CP0_PRid = 0x00002E00,
> /* No L2 cache, icache size 32k, dcache size 32k, uncached coherency. */
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PATCH v2 5/5] target/mips: Enable only tested modes for R5900
2018-10-30 11:36 ` [Qemu-devel] [PATCH v2 5/5] target/mips: Enable only tested modes for R5900 Aleksandar Markovic
@ 2018-10-30 12:56 ` Philippe Mathieu-Daudé
2018-10-30 15:28 ` Aleksandar Markovic
0 siblings, 1 reply; 19+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-10-30 12:56 UTC (permalink / raw)
To: Aleksandar Markovic, qemu-devel
Cc: smarkovic, pjovanovic, amarkovic, aurelien
Hi Aleksandar,
On 30/10/18 12:36, Aleksandar Markovic wrote:
> From: Aleksandar Markovic <amarkovic@wavecomp.com>
>
> Enable MIPS 032 user mode for R5900.
>
> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
> ---
> target/mips/translate_init.inc.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/target/mips/translate_init.inc.c b/target/mips/translate_init.inc.c
> index cab2003..d84c58e 100644
> --- a/target/mips/translate_init.inc.c
> +++ b/target/mips/translate_init.inc.c
> @@ -410,6 +410,8 @@ const mips_def_t mips_defs[] =
> .insn_flags = CPU_MIPS32R5 | ASE_MSA,
> .mmu_type = MMU_TYPE_R4000,
> },
> +#if defined(CONFIG_USER_ONLY)
Can you explain this change in the commit message? I don't understand
why you want to disable this CPU.
I'm currently running few asm tests with:
$ qemu-system-mips64 -machine mipssim -cpu R5900 -bios tx79_test.bin
(I use mipssim because I don't care about devices, but I'm trying to
test priviledged instructions).
> +#if !defined(TARGET_MIPS64)
Ditto... Why? This cpu is 64-bit.
> {
> .name = "R5900",
> .CP0_PRid = 0x00002E00,
> @@ -457,6 +459,8 @@ const mips_def_t mips_defs[] =
> .insn_flags = CPU_R5900 | ASE_MMI,
> .mmu_type = MMU_TYPE_R4000,
> },
> +#endif
> +#endif
> {
> /* A generic CPU supporting MIPS32 Release 6 ISA.
> FIXME: Support IEEE 754-2008 FP.
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PATCH v2 4/5] target/mips: Misc R5900-related cosmetic changes
2018-10-30 12:47 ` Philippe Mathieu-Daudé
@ 2018-10-30 13:03 ` Philippe Mathieu-Daudé
2018-10-30 13:10 ` Philippe Mathieu-Daudé
1 sibling, 0 replies; 19+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-10-30 13:03 UTC (permalink / raw)
To: Aleksandar Markovic, qemu-devel
Cc: smarkovic, pjovanovic, amarkovic, aurelien
On 30/10/18 13:47, Philippe Mathieu-Daudé wrote:
> On 30/10/18 12:36, Aleksandar Markovic wrote:
>> From: Aleksandar Markovic <amarkovic@wavecomp.com>
>>
>> Misc changes in comments and strings for R5900.
>>
>> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
>> ---
>> target/mips/translate.c | 14 +++++++-------
>> target/mips/translate_init.inc.c | 12 ------------
>> 2 files changed, 7 insertions(+), 19 deletions(-)
>>
>> diff --git a/target/mips/translate.c b/target/mips/translate.c
>> index 155331f..259ad2b 100644
>> --- a/target/mips/translate.c
>> +++ b/target/mips/translate.c
>> @@ -2096,8 +2096,8 @@ enum {
>> * MTSAH rs, immediate Move Halfword Count to Shift Amount
>> Register
>> * PROT3W rd, rt Parallel Rotate 3 Words
>> *
>> - * The TX79-specific Multimedia Instruction encodings
>> - * ==================================================
>> + * Multimedia Instructions (MMI) encodings
>
> Oh now I see this. I this single change should be squashed into patch #2
I forgot the verb ;) I <think> this change ...
> of this series.
>
> Also, maybe use "MultiMedia ..."
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PATCH v2 1/5] target/mips: Rename MMI-related masks
2018-10-30 11:36 ` [Qemu-devel] [PATCH v2 1/5] target/mips: Rename MMI-related masks Aleksandar Markovic
2018-10-30 12:31 ` Stefan Markovic
@ 2018-10-30 13:08 ` Philippe Mathieu-Daudé
1 sibling, 0 replies; 19+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-10-30 13:08 UTC (permalink / raw)
To: Aleksandar Markovic, qemu-devel
Cc: smarkovic, pjovanovic, amarkovic, aurelien
On 30/10/18 12:36, Aleksandar Markovic wrote:
> From: Aleksandar Markovic <amarkovic@wavecomp.com>
>
> Rename MMI-related masks.
>
> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
> target/mips/translate.c | 20 ++++++++++----------
> 1 file changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/target/mips/translate.c b/target/mips/translate.c
> index 51a5488..e38d50d 100644
> --- a/target/mips/translate.c
> +++ b/target/mips/translate.c
> @@ -2159,7 +2159,7 @@ enum {
> * 7 111 | * | * | * | * | PSLLW | * | PSRLW | PSRAW
> */
>
> -#define MASK_TX79_MMI(op) (MASK_OP_MAJOR(op) | ((op) & 0x3F))
> +#define MASK_MMI(op) (MASK_OP_MAJOR(op) | ((op) & 0x3F))
> enum {
> TX79_MMI_MADD = 0x00 | TX79_CLASS_MMI, /* Same as OPC_MADD */
> TX79_MMI_MADDU = 0x01 | TX79_CLASS_MMI, /* Same as OPC_MADDU */
> @@ -2210,7 +2210,7 @@ enum {
> * 7 111 | * | * | PEXT5 | PPAC5
> */
>
> -#define MASK_TX79_MMI0(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
> +#define MASK_MMI0(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
> enum {
> TX79_MMI0_PADDW = (0x00 << 6) | TX79_MMI_CLASS_MMI0,
> TX79_MMI0_PSUBW = (0x01 << 6) | TX79_MMI_CLASS_MMI0,
> @@ -2261,7 +2261,7 @@ enum {
> * 7 111 | * | * | * | *
> */
>
> -#define MASK_TX79_MMI1(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
> +#define MASK_MMI1(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
> enum {
> TX79_MMI1_PABSW = (0x01 << 6) | TX79_MMI_CLASS_MMI1,
> TX79_MMI1_PCEQW = (0x02 << 6) | TX79_MMI_CLASS_MMI1,
> @@ -2305,7 +2305,7 @@ enum {
> * 7 111 | PMULTH| PDIVBW| PEXEW | PROT3W
> */
>
> -#define MASK_TX79_MMI2(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
> +#define MASK_MMI2(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
> enum {
> TX79_MMI2_PMADDW = (0x00 << 6) | TX79_MMI_CLASS_MMI2,
> TX79_MMI2_PSLLVW = (0x02 << 6) | TX79_MMI_CLASS_MMI2,
> @@ -2353,7 +2353,7 @@ enum {
> * 7 111 | * | * | PEXCW | *
> */
>
> -#define MASK_TX79_MMI3(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
> +#define MASK_MMI3(op) (MASK_OP_MAJOR(op) | ((op) & 0x7FF))
> enum {
> TX79_MMI3_PMADDUW = (0x00 << 6) | TX79_MMI_CLASS_MMI3,
> TX79_MMI3_PSRAVW = (0x03 << 6) | TX79_MMI_CLASS_MMI3,
> @@ -24683,7 +24683,7 @@ static void decode_opc_special3_legacy(CPUMIPSState *env, DisasContext *ctx)
>
> static void decode_tx79_mmi0(CPUMIPSState *env, DisasContext *ctx)
> {
> - uint32_t opc = MASK_TX79_MMI0(ctx->opcode);
> + uint32_t opc = MASK_MMI0(ctx->opcode);
>
> switch (opc) {
> case TX79_MMI0_PADDW: /* TODO: TX79_MMI0_PADDW */
> @@ -24722,7 +24722,7 @@ static void decode_tx79_mmi0(CPUMIPSState *env, DisasContext *ctx)
>
> static void decode_tx79_mmi1(CPUMIPSState *env, DisasContext *ctx)
> {
> - uint32_t opc = MASK_TX79_MMI1(ctx->opcode);
> + uint32_t opc = MASK_MMI1(ctx->opcode);
>
> switch (opc) {
> case TX79_MMI1_PABSW: /* TODO: TX79_MMI1_PABSW */
> @@ -24754,7 +24754,7 @@ static void decode_tx79_mmi1(CPUMIPSState *env, DisasContext *ctx)
>
> static void decode_tx79_mmi2(CPUMIPSState *env, DisasContext *ctx)
> {
> - uint32_t opc = MASK_TX79_MMI2(ctx->opcode);
> + uint32_t opc = MASK_MMI2(ctx->opcode);
>
> switch (opc) {
> case TX79_MMI2_PMADDW: /* TODO: TX79_MMI2_PMADDW */
> @@ -24790,7 +24790,7 @@ static void decode_tx79_mmi2(CPUMIPSState *env, DisasContext *ctx)
>
> static void decode_tx79_mmi3(CPUMIPSState *env, DisasContext *ctx)
> {
> - uint32_t opc = MASK_TX79_MMI3(ctx->opcode);
> + uint32_t opc = MASK_MMI3(ctx->opcode);
>
> switch (opc) {
> case TX79_MMI3_PMADDUW: /* TODO: TX79_MMI3_PMADDUW */
> @@ -24817,7 +24817,7 @@ static void decode_tx79_mmi3(CPUMIPSState *env, DisasContext *ctx)
>
> static void decode_tx79_mmi(CPUMIPSState *env, DisasContext *ctx)
> {
> - uint32_t opc = MASK_TX79_MMI(ctx->opcode);
> + uint32_t opc = MASK_MMI(ctx->opcode);
> int rs = extract32(ctx->opcode, 21, 5);
> int rt = extract32(ctx->opcode, 16, 5);
> int rd = extract32(ctx->opcode, 11, 5);
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PATCH v2 4/5] target/mips: Misc R5900-related cosmetic changes
2018-10-30 12:47 ` Philippe Mathieu-Daudé
2018-10-30 13:03 ` Philippe Mathieu-Daudé
@ 2018-10-30 13:10 ` Philippe Mathieu-Daudé
2018-10-30 15:08 ` Aleksandar Markovic
2018-10-30 15:11 ` Aleksandar Markovic
1 sibling, 2 replies; 19+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-10-30 13:10 UTC (permalink / raw)
To: Aleksandar Markovic, qemu-devel
Cc: smarkovic, pjovanovic, amarkovic, aurelien
On 30/10/18 13:47, Philippe Mathieu-Daudé wrote:
> On 30/10/18 12:36, Aleksandar Markovic wrote:
>> From: Aleksandar Markovic <amarkovic@wavecomp.com>
>>
>> Misc changes in comments and strings for R5900.
>>
>> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
>> ---
>> target/mips/translate.c | 14 +++++++-------
>> target/mips/translate_init.inc.c | 12 ------------
>> 2 files changed, 7 insertions(+), 19 deletions(-)
>>
>> diff --git a/target/mips/translate.c b/target/mips/translate.c
>> index 155331f..259ad2b 100644
>> --- a/target/mips/translate.c
>> +++ b/target/mips/translate.c
>> @@ -2096,8 +2096,8 @@ enum {
>> * MTSAH rs, immediate Move Halfword Count to Shift Amount
>> Register
>> * PROT3W rd, rt Parallel Rotate 3 Words
>> *
>> - * The TX79-specific Multimedia Instruction encodings
>> - * ==================================================
>> + * Multimedia Instructions (MMI) encodings
>
> Oh now I see this. I this single change should be squashed into patch #2
> of this series.
>
> Also, maybe use "MultiMedia ..."
>
>> + * =======================================
>> *
>> * MMI Instruction encoding table keys:
>> *
The part from here ...
>> @@ -24714,7 +24714,7 @@ static void decode_mmi0(CPUMIPSState *env,
>> DisasContext *ctx)
>> generate_exception_end(ctx, EXCP_RI); /* TODO:
>> MMI_OPC_CLASS_MMI0 */
>> break;
>> default:
>> - MIPS_INVAL("TX79 MMI class MMI0");
>> + MIPS_INVAL("MMI class MMI0");
>> generate_exception_end(ctx, EXCP_RI);
>> break;
>> }
>> @@ -24746,7 +24746,7 @@ static void decode_mmi1(CPUMIPSState *env,
>> DisasContext *ctx)
>> generate_exception_end(ctx, EXCP_RI); /* TODO:
>> MMI_OPC_CLASS_MMI1 */
>> break;
>> default:
>> - MIPS_INVAL("TX79 MMI class MMI1");
>> + MIPS_INVAL("MMI class MMI1");
>> generate_exception_end(ctx, EXCP_RI);
>> break;
>> }
>> @@ -24782,7 +24782,7 @@ static void decode_mmi2(CPUMIPSState *env,
>> DisasContext *ctx)
>> generate_exception_end(ctx, EXCP_RI); /* TODO:
>> MMI_OPC_CLASS_MMI2 */
>> break;
>> default:
>> - MIPS_INVAL("TX79 MMI class MMI2");
>> + MIPS_INVAL("MMI class MMI2");
>> generate_exception_end(ctx, EXCP_RI);
>> break;
>> }
>> @@ -24809,7 +24809,7 @@ static void decode_mmi3(CPUMIPSState *env,
>> DisasContext *ctx)
>> generate_exception_end(ctx, EXCP_RI); /* TODO:
>> MMI_OPC_CLASS_MMI3 */
>> break;
>> default:
>> - MIPS_INVAL("TX79 MMI class MMI3");
>> + MIPS_INVAL("MMI class MMI3");
>> generate_exception_end(ctx, EXCP_RI);
>> break;
>> }
>> @@ -24867,7 +24867,7 @@ static void decode_mmi(CPUMIPSState *env,
>> DisasContext *ctx)
>> generate_exception_end(ctx, EXCP_RI); /* TODO:
>> MMI_CLASS_MMI */
>> break;
>> default:
>> - MIPS_INVAL("TX79 MMI class");
>> + MIPS_INVAL("MMI class");
>> generate_exception_end(ctx, EXCP_RI);
>> break;
>> }
... to here can also be squashed in patch #3.
>> diff --git a/target/mips/translate_init.inc.c
>> b/target/mips/translate_init.inc.c
>> index 85da4a2..cab2003 100644
>> --- a/target/mips/translate_init.inc.c
>> +++ b/target/mips/translate_init.inc.c
>> @@ -411,18 +411,6 @@ const mips_def_t mips_defs[] =
>> .mmu_type = MMU_TYPE_R4000,
>> },
>> {
>> - /*
>> - * The Toshiba TX System RISC TX79 Core Architecture manual
>> - *
>> - * https://wiki.qemu.org/File:C790.pdf
>> - *
>> - * describes the C790 processor that is a follow-up to the
>> R5900.
>> - * There are a few notable differences in that the R5900 FPU
>> - *
>> - * - is not IEEE 754-1985 compliant,
>> - * - does not implement double format, and
>> - * - its machine code is nonstandard.
>> - */
>
> Why remove this documentation? This entry is specific to the R5900.
>
>> .name = "R5900",
>> .CP0_PRid = 0x00002E00,
>> /* No L2 cache, icache size 32k, dcache size 32k, uncached
>> coherency. */
>>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PATCH v2 3/5] target/mips: Rename MMI-related functions
2018-10-30 11:36 ` [Qemu-devel] [PATCH v2 3/5] target/mips: Rename MMI-related functions Aleksandar Markovic
2018-10-30 12:42 ` Stefan Markovic
@ 2018-10-30 13:11 ` Philippe Mathieu-Daudé
1 sibling, 0 replies; 19+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-10-30 13:11 UTC (permalink / raw)
To: Aleksandar Markovic, qemu-devel
Cc: smarkovic, pjovanovic, amarkovic, aurelien
On 30/10/18 12:36, Aleksandar Markovic wrote:
> From: Aleksandar Markovic <amarkovic@wavecomp.com>
>
> Rename MMI-related functions.
>
> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
> target/mips/translate.c | 32 ++++++++++++++++----------------
> 1 file changed, 16 insertions(+), 16 deletions(-)
>
> diff --git a/target/mips/translate.c b/target/mips/translate.c
> index 4b008d8..155331f 100644
> --- a/target/mips/translate.c
> +++ b/target/mips/translate.c
> @@ -24681,7 +24681,7 @@ static void decode_opc_special3_legacy(CPUMIPSState *env, DisasContext *ctx)
> }
> }
>
> -static void decode_tx79_mmi0(CPUMIPSState *env, DisasContext *ctx)
> +static void decode_mmi0(CPUMIPSState *env, DisasContext *ctx)
> {
> uint32_t opc = MASK_MMI0(ctx->opcode);
>
> @@ -24720,7 +24720,7 @@ static void decode_tx79_mmi0(CPUMIPSState *env, DisasContext *ctx)
> }
> }
>
> -static void decode_tx79_mmi1(CPUMIPSState *env, DisasContext *ctx)
> +static void decode_mmi1(CPUMIPSState *env, DisasContext *ctx)
> {
> uint32_t opc = MASK_MMI1(ctx->opcode);
>
> @@ -24752,7 +24752,7 @@ static void decode_tx79_mmi1(CPUMIPSState *env, DisasContext *ctx)
> }
> }
>
> -static void decode_tx79_mmi2(CPUMIPSState *env, DisasContext *ctx)
> +static void decode_mmi2(CPUMIPSState *env, DisasContext *ctx)
> {
> uint32_t opc = MASK_MMI2(ctx->opcode);
>
> @@ -24788,7 +24788,7 @@ static void decode_tx79_mmi2(CPUMIPSState *env, DisasContext *ctx)
> }
> }
>
> -static void decode_tx79_mmi3(CPUMIPSState *env, DisasContext *ctx)
> +static void decode_mmi3(CPUMIPSState *env, DisasContext *ctx)
> {
> uint32_t opc = MASK_MMI3(ctx->opcode);
>
> @@ -24815,7 +24815,7 @@ static void decode_tx79_mmi3(CPUMIPSState *env, DisasContext *ctx)
> }
> }
>
> -static void decode_tx79_mmi(CPUMIPSState *env, DisasContext *ctx)
> +static void decode_mmi(CPUMIPSState *env, DisasContext *ctx)
> {
> uint32_t opc = MASK_MMI(ctx->opcode);
> int rs = extract32(ctx->opcode, 21, 5);
> @@ -24824,16 +24824,16 @@ static void decode_tx79_mmi(CPUMIPSState *env, DisasContext *ctx)
>
> switch (opc) {
> case MMI_OPC_CLASS_MMI0:
> - decode_tx79_mmi0(env, ctx);
> + decode_mmi0(env, ctx);
> break;
> case MMI_OPC_CLASS_MMI1:
> - decode_tx79_mmi1(env, ctx);
> + decode_mmi1(env, ctx);
> break;
> case MMI_OPC_CLASS_MMI2:
> - decode_tx79_mmi2(env, ctx);
> + decode_mmi2(env, ctx);
> break;
> case MMI_OPC_CLASS_MMI3:
> - decode_tx79_mmi3(env, ctx);
> + decode_mmi3(env, ctx);
> break;
> case MMI_OPC_MULT1:
> case MMI_OPC_MULTU1:
> @@ -24873,12 +24873,12 @@ static void decode_tx79_mmi(CPUMIPSState *env, DisasContext *ctx)
> }
> }
>
> -static void decode_tx79_lq(CPUMIPSState *env, DisasContext *ctx)
> +static void decode_mmi_lq(CPUMIPSState *env, DisasContext *ctx)
> {
> generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_LQ */
> }
>
> -static void gen_tx79_sq(DisasContext *ctx, int base, int rt, int offset)
> +static void gen_mmi_sq(DisasContext *ctx, int base, int rt, int offset)
> {
> generate_exception_end(ctx, EXCP_RI); /* TODO: MMI_SQ */
> }
> @@ -24904,7 +24904,7 @@ static void gen_tx79_sq(DisasContext *ctx, int base, int rt, int offset)
> * In user mode, QEMU must verify the upper and lower 11 bits to distinguish
> * between SQ and RDHWR, as the Linux kernel does.
> */
> -static void decode_tx79_sq(CPUMIPSState *env, DisasContext *ctx)
> +static void decode_mmi_sq(CPUMIPSState *env, DisasContext *ctx)
> {
> int base = extract32(ctx->opcode, 21, 5);
> int rt = extract32(ctx->opcode, 16, 5);
> @@ -24922,7 +24922,7 @@ static void decode_tx79_sq(CPUMIPSState *env, DisasContext *ctx)
> }
> #endif
>
> - gen_tx79_sq(ctx, base, rt, offset);
> + gen_mmi_sq(ctx, base, rt, offset);
> }
>
> static void decode_opc_special3(CPUMIPSState *env, DisasContext *ctx)
> @@ -26231,14 +26231,14 @@ static void decode_opc(CPUMIPSState *env, DisasContext *ctx)
> break;
> case OPC_SPECIAL2:
> if ((ctx->insn_flags & INSN_R5900) && (ctx->insn_flags & ASE_MMI)) {
> - decode_tx79_mmi(env, ctx);
> + decode_mmi(env, ctx);
> } else {
> decode_opc_special2_legacy(env, ctx);
> }
> break;
> case OPC_SPECIAL3:
> if (ctx->insn_flags & INSN_R5900) {
> - decode_tx79_sq(env, ctx); /* MMI_SQ */
> + decode_mmi_sq(env, ctx); /* MMI_SQ */
> } else {
> decode_opc_special3(env, ctx);
> }
> @@ -26902,7 +26902,7 @@ static void decode_opc(CPUMIPSState *env, DisasContext *ctx)
> break;
> case OPC_MSA: /* OPC_MDMX */
> if (ctx->insn_flags & INSN_R5900) {
> - decode_tx79_lq(env, ctx); /* MMI_LQ */
> + decode_mmi_lq(env, ctx); /* MMI_LQ */
> } else {
> /* MDMX: Not implemented. */
> gen_msa(env, ctx);
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PATCH v2 4/5] target/mips: Misc R5900-related cosmetic changes
2018-10-30 13:10 ` Philippe Mathieu-Daudé
@ 2018-10-30 15:08 ` Aleksandar Markovic
2018-10-30 15:11 ` Aleksandar Markovic
1 sibling, 0 replies; 19+ messages in thread
From: Aleksandar Markovic @ 2018-10-30 15:08 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, Aleksandar Markovic, qemu-devel
Cc: Stefan Markovic, Petar Jovanovic, aurelien
>> --- a/target/mips/translate_init.inc.c
>> +++ b/target/mips/translate_init.inc.c
>> @@ -411,18 +411,6 @@ const mips_def_t mips_defs[] =
>> .mmu_type = MMU_TYPE_R4000,
>> },
>> {
>> - /*
>> - * The Toshiba TX System RISC TX79 Core Architecture manual
>> - *
>> - * https://wiki.qemu.org/File:C790.pdf
>> - *
>> - * describes the C790 processor that is a follow-up to the
>> R5900.
>> - * There are a few notable differences in that the R5900 FPU
>> - *
>> - * - is not IEEE 754-1985 compliant,
>> - * - does not implement double format, and
>> - * - its machine code is nonstandard.
>> - */
>
> Why remove this documentation? This entry is specific to the R5900.
>
The doc content is virtually duplicated in translate.c
The FPU content is virtually duplicated twenty lines below.
This file is not a place suitable for extensive commenting.
Aleksandar
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PATCH v2 4/5] target/mips: Misc R5900-related cosmetic changes
2018-10-30 13:10 ` Philippe Mathieu-Daudé
2018-10-30 15:08 ` Aleksandar Markovic
@ 2018-10-30 15:11 ` Aleksandar Markovic
1 sibling, 0 replies; 19+ messages in thread
From: Aleksandar Markovic @ 2018-10-30 15:11 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, Aleksandar Markovic, qemu-devel
Cc: Stefan Markovic, Petar Jovanovic, aurelien
> From: Philippe Mathieu-Daudé <philmd@redhat.com>
> Subject: Re: [Qemu-devel] [PATCH v2 4/5] target/mips: Misc R5900-related cosmetic changes
Sure, I will move these parts from patch to patch.
> On 30/10/18 13:47, Philippe Mathieu-Daudé wrote:
> On 30/10/18 12:36, Aleksandar Markovic wrote:
>> From: Aleksandar Markovic <amarkovic@wavecomp.com>
>>
>> Misc changes in comments and strings for R5900.
>>
>> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
>> ---
>> target/mips/translate.c | 14 +++++++-------
>> target/mips/translate_init.inc.c | 12 ------------
>> 2 files changed, 7 insertions(+), 19 deletions(-)
>>
>> diff --git a/target/mips/translate.c b/target/mips/translate.c
>> index 155331f..259ad2b 100644
>> --- a/target/mips/translate.c
>> +++ b/target/mips/translate.c
>> @@ -2096,8 +2096,8 @@ enum {
>> * MTSAH rs, immediate Move Halfword Count to Shift Amount
>> Register
>> * PROT3W rd, rt Parallel Rotate 3 Words
>> *
>> - * The TX79-specific Multimedia Instruction encodings
>> - * ==================================================
>> + * Multimedia Instructions (MMI) encodings
>
> Oh now I see this. I this single change should be squashed into patch #2
> of this series.
>
> Also, maybe use "MultiMedia ..."
>
Sure.
>> + * =======================================
>> *
>> * MMI Instruction encoding table keys:
>> *
> The part from here ...
>> @@ -24714,7 +24714,7 @@ static void decode_mmi0(CPUMIPSState *env,
>> DisasContext *ctx)
>> generate_exception_end(ctx, EXCP_RI); /* TODO:
>> MMI_OPC_CLASS_MMI0 */
>> break;
>> default:
>> - MIPS_INVAL("TX79 MMI class MMI0");
>> + MIPS_INVAL("MMI class MMI0");
>> generate_exception_end(ctx, EXCP_RI);
>> break;
>> }
>> @@ -24746,7 +24746,7 @@ static void decode_mmi1(CPUMIPSState *env,
>> DisasContext *ctx)
>> generate_exception_end(ctx, EXCP_RI); /* TODO:
>> MMI_OPC_CLASS_MMI1 */
>> break;
>> default:
>> - MIPS_INVAL("TX79 MMI class MMI1");
>> + MIPS_INVAL("MMI class MMI1");
>> generate_exception_end(ctx, EXCP_RI);
>> break;
>> }
>> @@ -24782,7 +24782,7 @@ static void decode_mmi2(CPUMIPSState *env,
>> DisasContext *ctx)
>> generate_exception_end(ctx, EXCP_RI); /* TODO:
>> MMI_OPC_CLASS_MMI2 */
>> break;
>> default:
>> - MIPS_INVAL("TX79 MMI class MMI2");
>> + MIPS_INVAL("MMI class MMI2");
>> generate_exception_end(ctx, EXCP_RI);
>> break;
>> }
>> @@ -24809,7 +24809,7 @@ static void decode_mmi3(CPUMIPSState *env,
>> DisasContext *ctx)
>> generate_exception_end(ctx, EXCP_RI); /* TODO:
>> MMI_OPC_CLASS_MMI3 */
>> break;
>> default:
>> - MIPS_INVAL("TX79 MMI class MMI3");
>> + MIPS_INVAL("MMI class MMI3");
>> generate_exception_end(ctx, EXCP_RI);
>> break;
>> }
>> @@ -24867,7 +24867,7 @@ static void decode_mmi(CPUMIPSState *env,
>> DisasContext *ctx)
>> generate_exception_end(ctx, EXCP_RI); /* TODO:
>> MMI_CLASS_MMI */
>> break;
>> default:
>> - MIPS_INVAL("TX79 MMI class");
>> + MIPS_INVAL("MMI class");
>> generate_exception_end(ctx, EXCP_RI);
>> break;
>> }
> ... to here can also be squashed in patch #3.
Sure.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PATCH v2 5/5] target/mips: Enable only tested modes for R5900
2018-10-30 12:56 ` Philippe Mathieu-Daudé
@ 2018-10-30 15:28 ` Aleksandar Markovic
0 siblings, 0 replies; 19+ messages in thread
From: Aleksandar Markovic @ 2018-10-30 15:28 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, Aleksandar Markovic, qemu-devel
Cc: Stefan Markovic, Petar Jovanovic, aurelien
> From: Philippe Mathieu-Daudé <philmd@redhat.com>
>
> > +#if defined(CONFIG_USER_ONLY)
>
> > +#if !defined(TARGET_MIPS64)
>
> Can you explain this change in the commit message? I don't understand
why you want to disable this CPU.
These limitations are meant to expose to end-user only features that make sense and are appropriately tested. People like you can easily comment out theses lines and do whatever experimentation they like.
About defined(CONFIG_USER_ONLY), it is just because a reasonable testing was not provided for system mode. It is not enough to add a code, and then enable system mode. A reasonable ("acceptance") testing should be done, and made available to others. I know, we do not have strict acceptance rules. But I would say a system image, kernel, and command line + plus some relatively mild testing of system mode should suffice. It would be nice to formalize that.
About !defined(TARGET_MIPS64), this is because O32 is the only supported user-mode ABI for this CPU.
One missing part is documentation update - unfortunately often forgotten.
Aleksandar
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2018-10-30 15:28 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-30 11:36 [Qemu-devel] [PATCH v2 0/5] target/mips: Renaming and limiting modes for R5900 Aleksandar Markovic
2018-10-30 11:36 ` [Qemu-devel] [PATCH v2 1/5] target/mips: Rename MMI-related masks Aleksandar Markovic
2018-10-30 12:31 ` Stefan Markovic
2018-10-30 13:08 ` Philippe Mathieu-Daudé
2018-10-30 11:36 ` [Qemu-devel] [PATCH v2 2/5] target/mips: Rename MMI-related opcodes Aleksandar Markovic
2018-10-30 12:36 ` Stefan Markovic
2018-10-30 12:44 ` Philippe Mathieu-Daudé
2018-10-30 11:36 ` [Qemu-devel] [PATCH v2 3/5] target/mips: Rename MMI-related functions Aleksandar Markovic
2018-10-30 12:42 ` Stefan Markovic
2018-10-30 13:11 ` Philippe Mathieu-Daudé
2018-10-30 11:36 ` [Qemu-devel] [PATCH v2 4/5] target/mips: Misc R5900-related cosmetic changes Aleksandar Markovic
2018-10-30 12:47 ` Philippe Mathieu-Daudé
2018-10-30 13:03 ` Philippe Mathieu-Daudé
2018-10-30 13:10 ` Philippe Mathieu-Daudé
2018-10-30 15:08 ` Aleksandar Markovic
2018-10-30 15:11 ` Aleksandar Markovic
2018-10-30 11:36 ` [Qemu-devel] [PATCH v2 5/5] target/mips: Enable only tested modes for R5900 Aleksandar Markovic
2018-10-30 12:56 ` Philippe Mathieu-Daudé
2018-10-30 15:28 ` Aleksandar Markovic
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.