All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
To: qemu-devel@nongnu.org
Cc: "Aleksandar Rikalo" <aleksandar.rikalo@syrmia.com>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Aurelien Jarno" <aurelien@aurel32.net>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>
Subject: [PATCH v3 05/10] target/mips: Extract decode_ase_mxu() from decode_opc_mxu()
Date: Mon, 22 Feb 2021 23:38:56 +0100	[thread overview]
Message-ID: <20210222223901.2792336-6-f4bug@amsat.org> (raw)
In-Reply-To: <20210222223901.2792336-1-f4bug@amsat.org>

To easily convert MXU code to decodetree, extract decode_ase_mxu()
from decode_opc_mxu(), making it return a boolean.
We will keep decode_opc_mxu() in the translate.c unit because it
calls gen_arith().

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 target/mips/translate.c | 45 ++++++++++++++++++++++++-----------------
 1 file changed, 26 insertions(+), 19 deletions(-)

diff --git a/target/mips/translate.c b/target/mips/translate.c
index 9e875fa4a25..6f853fcdcce 100644
--- a/target/mips/translate.c
+++ b/target/mips/translate.c
@@ -25777,34 +25777,18 @@ static void decode_opc_mxu__pool19(DisasContext *ctx)
     }
 }
 
-/*
- * Main MXU decoding function
- */
-static void decode_opc_mxu(DisasContext *ctx, uint32_t insn)
+static bool decode_ase_mxu(DisasContext *ctx, uint32_t insn)
 {
     uint32_t opcode = extract32(insn, 0, 6);
 
-    if (opcode == OPC__MXU_MUL) {
-        uint32_t  rs, rt, rd, op1;
-
-        rs = extract32(insn, 21, 5);
-        rt = extract32(insn, 16, 5);
-        rd = extract32(insn, 11, 5);
-        op1 = MASK_SPECIAL2(insn);
-
-        gen_arith(ctx, op1, rd, rs, rt);
-
-        return;
-    }
-
     if (opcode == OPC_MXU_S32M2I) {
         gen_mxu_s32m2i(ctx);
-        return;
+        return true;
     }
 
     if (opcode == OPC_MXU_S32I2M) {
         gen_mxu_s32i2m(ctx);
-        return;
+        return true;
     }
 
     {
@@ -25845,6 +25829,29 @@ static void decode_opc_mxu(DisasContext *ctx, uint32_t insn)
         gen_set_label(l_exit);
         tcg_temp_free(t_mxu_cr);
     }
+
+    return true;
+}
+
+/*
+ * Main MXU decoding function
+ */
+static void decode_opc_mxu(DisasContext *ctx, uint32_t insn)
+{
+    if (extract32(insn, 0, 6) == OPC__MXU_MUL) {
+        uint32_t  rs, rt, rd, op1;
+
+        rs = extract32(insn, 21, 5);
+        rt = extract32(insn, 16, 5);
+        rd = extract32(insn, 11, 5);
+        op1 = MASK_SPECIAL2(insn);
+
+        gen_arith(ctx, op1, rd, rs, rt);
+
+        return;
+    }
+
+    decode_ase_mxu(ctx, insn);
 }
 
 #endif /* !defined(TARGET_MIPS64) */
-- 
2.26.2



  parent reply	other threads:[~2021-02-22 22:51 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-22 22:38 [PATCH v3 00/10] target/mips: Extract MXU code to new mxu_translate.c file Philippe Mathieu-Daudé
2021-02-22 22:38 ` [PATCH v3 01/10] target/mips: Rewrite complex ifdef'ry Philippe Mathieu-Daudé
2021-02-24  1:21   ` Richard Henderson
2021-02-22 22:38 ` [PATCH v3 02/10] target/mips: Remove XBurst Media eXtension Unit dead code Philippe Mathieu-Daudé
2021-02-22 22:38 ` [PATCH v3 03/10] target/mips: Remove unused CPUMIPSState* from MXU functions Philippe Mathieu-Daudé
2021-02-24  1:22   ` Richard Henderson
2021-02-22 22:38 ` [PATCH v3 04/10] target/mips: Pass instruction opcode to decode_opc_mxu() Philippe Mathieu-Daudé
2021-02-24  1:22   ` Richard Henderson
2021-02-22 22:38 ` Philippe Mathieu-Daudé [this message]
2021-02-24  1:25   ` [PATCH v3 05/10] target/mips: Extract decode_ase_mxu() from decode_opc_mxu() Richard Henderson
2021-02-26  9:09     ` Philippe Mathieu-Daudé
2021-02-22 22:38 ` [PATCH v3 06/10] target/mips: Use OPC_MUL instead of OPC__MXU_MUL Philippe Mathieu-Daudé
2021-02-24  1:34   ` Richard Henderson
2021-02-22 22:38 ` [PATCH v3 07/10] target/mips: Introduce mxu_translate_init() helper Philippe Mathieu-Daudé
2021-02-24  1:36   ` Richard Henderson
2021-02-22 22:38 ` [PATCH v3 08/10] target/mips: Make mxu_translate_init() / decode_ase_mxu() proto public Philippe Mathieu-Daudé
2021-02-24  1:38   ` Richard Henderson
2021-02-22 22:39 ` [PATCH v3 09/10] target/mips: Simplify 64-bit ifdef'ry of MXU code Philippe Mathieu-Daudé
2021-02-24  1:48   ` Richard Henderson
2021-02-22 22:39 ` [PATCH v3 10/10] target/mips: Extract MXU code to new mxu_translate.c file Philippe Mathieu-Daudé
2021-02-24  2:16   ` Richard Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210222223901.2792336-6-f4bug@amsat.org \
    --to=f4bug@amsat.org \
    --cc=aleksandar.rikalo@syrmia.com \
    --cc=aurelien@aurel32.net \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.