All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Henderson <richard.henderson@linaro.org>
To: qemu-devel@nongnu.org
Subject: [PATCH 05/28] tcg/ppc: Split out tcg_out_ext{8,16,32}s
Date: Mon, 14 Jun 2021 01:37:37 -0700	[thread overview]
Message-ID: <20210614083800.1166166-6-richard.henderson@linaro.org> (raw)
In-Reply-To: <20210614083800.1166166-1-richard.henderson@linaro.org>

We will shortly require these in other context;
make the expansion as clear as possible.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 tcg/ppc/tcg-target.c.inc | 31 +++++++++++++++++++++----------
 1 file changed, 21 insertions(+), 10 deletions(-)

diff --git a/tcg/ppc/tcg-target.c.inc b/tcg/ppc/tcg-target.c.inc
index 795701442b..aa35ff8250 100644
--- a/tcg/ppc/tcg-target.c.inc
+++ b/tcg/ppc/tcg-target.c.inc
@@ -738,6 +738,21 @@ static inline void tcg_out_rlw(TCGContext *s, int op, TCGReg ra, TCGReg rs,
     tcg_out32(s, op | RA(ra) | RS(rs) | SH(sh) | MB(mb) | ME(me));
 }
 
+static inline void tcg_out_ext8s(TCGContext *s, TCGReg dst, TCGReg src)
+{
+    tcg_out32(s, EXTSB | RA(dst) | RS(src));
+}
+
+static inline void tcg_out_ext16s(TCGContext *s, TCGReg dst, TCGReg src)
+{
+    tcg_out32(s, EXTSH | RA(dst) | RS(src));
+}
+
+static inline void tcg_out_ext32s(TCGContext *s, TCGReg dst, TCGReg src)
+{
+    tcg_out32(s, EXTSW | RA(dst) | RS(src));
+}
+
 static inline void tcg_out_ext32u(TCGContext *s, TCGReg dst, TCGReg src)
 {
     tcg_out_rld(s, RLDICL, dst, src, 0, 32);
@@ -2322,7 +2337,6 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc,
                        const int const_args[TCG_MAX_OP_ARGS])
 {
     TCGArg a0, a1, a2;
-    int c;
 
     switch (opc) {
     case INDEX_op_exit_tb:
@@ -2390,7 +2404,7 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc,
     case INDEX_op_ld8s_i32:
     case INDEX_op_ld8s_i64:
         tcg_out_mem_long(s, LBZ, LBZX, args[0], args[1], args[2]);
-        tcg_out32(s, EXTSB | RS(args[0]) | RA(args[0]));
+        tcg_out_ext8s(s, args[0], args[0]);
         break;
     case INDEX_op_ld16u_i32:
     case INDEX_op_ld16u_i64:
@@ -2728,18 +2742,15 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc,
 
     case INDEX_op_ext8s_i32:
     case INDEX_op_ext8s_i64:
-        c = EXTSB;
-        goto gen_ext;
+        tcg_out_ext8s(s, args[0], args[1]);
+        break;
     case INDEX_op_ext16s_i32:
     case INDEX_op_ext16s_i64:
-        c = EXTSH;
-        goto gen_ext;
+        tcg_out_ext16s(s, args[0], args[1]);
+        break;
     case INDEX_op_ext_i32_i64:
     case INDEX_op_ext32s_i64:
-        c = EXTSW;
-        goto gen_ext;
-    gen_ext:
-        tcg_out32(s, c | RS(args[1]) | RA(args[0]));
+        tcg_out_ext32s(s, args[0], args[1]);
         break;
     case INDEX_op_extu_i32_i64:
         tcg_out_ext32u(s, args[0], args[1]);
-- 
2.25.1



  parent reply	other threads:[~2021-06-14  8:51 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-14  8:37 [PATCH 00/28] tcg: bswap improvements Richard Henderson
2021-06-14  8:37 ` [PATCH 01/28] tcg: Add flags argument to bswap opcodes Richard Henderson
2021-06-14  9:19   ` Philippe Mathieu-Daudé
2021-06-14 11:49   ` Alex Bennée
2021-06-14 14:43     ` Richard Henderson
2021-06-21 13:41   ` Peter Maydell
2021-06-21 13:51     ` Peter Maydell
2021-06-21 14:02       ` Richard Henderson
2021-06-21 14:15         ` Peter Maydell
2021-06-21 13:59     ` Richard Henderson
2021-06-14  8:37 ` [PATCH 02/28] tcg/i386: Support bswap flags Richard Henderson
2021-06-21 13:53   ` Peter Maydell
2021-06-14  8:37 ` [PATCH 03/28] tcg/aarch64: " Richard Henderson
2021-06-21 14:01   ` Peter Maydell
2021-06-21 14:04     ` Richard Henderson
2021-06-21 18:12     ` Richard Henderson
2021-06-21 19:40       ` Peter Maydell
2021-06-21 19:50         ` Richard Henderson
2021-06-21 19:52           ` Peter Maydell
2021-06-14  8:37 ` [PATCH 04/28] tcg/arm: " Richard Henderson
2021-06-21 14:09   ` Peter Maydell
2021-06-14  8:37 ` Richard Henderson [this message]
2021-06-21 14:18   ` [PATCH 05/28] tcg/ppc: Split out tcg_out_ext{8,16,32}s Peter Maydell
2021-06-21 20:44   ` Philippe Mathieu-Daudé
2021-06-14  8:37 ` [PATCH 06/28] tcg/ppc: Split out tcg_out_sari{32,64} Richard Henderson
2021-06-21 14:22   ` Peter Maydell
2021-06-21 14:23     ` Richard Henderson
2021-06-14  8:37 ` [PATCH 07/28] tcg/ppc: Split out tcg_out_bswap16 Richard Henderson
2021-06-21 14:29   ` Peter Maydell
2021-06-21 14:41     ` Richard Henderson
2021-06-14  8:37 ` [PATCH 08/28] tcg/ppc: Split out tcg_out_bswap32 Richard Henderson
2021-06-21 14:30   ` Peter Maydell
2021-06-14  8:37 ` [PATCH 09/28] tcg/ppc: Split out tcg_out_bswap64 Richard Henderson
2021-06-21 14:35   ` Peter Maydell
2021-06-14  8:37 ` [PATCH 10/28] tcg/ppc: Support bswap flags Richard Henderson
2021-06-21 14:38   ` Peter Maydell
2021-06-14  8:37 ` [PATCH 11/28] tcg/ppc: Use power10 byte-reverse instructions Richard Henderson
2021-06-14  8:37 ` [PATCH 12/28] tcg/s390: Support bswap flags Richard Henderson
2021-06-14  8:37 ` [PATCH 13/28] tcg/mips: Support bswap flags in tcg_out_bswap16 Richard Henderson
2021-06-22  6:36   ` Philippe Mathieu-Daudé
2021-06-22 13:54     ` Richard Henderson
2021-06-14  8:37 ` [PATCH 14/28] tcg/mips: Support bswap flags in tcg_out_bswap32 Richard Henderson
2021-06-14  9:31   ` Philippe Mathieu-Daudé
2021-06-14 15:49     ` Richard Henderson
2021-06-14  8:37 ` [PATCH 15/28] tcg/tci: Support bswap flags Richard Henderson
2021-06-14  9:33   ` Philippe Mathieu-Daudé
2021-06-14  8:37 ` [PATCH 16/28] tcg: Handle new bswap flags during optimize Richard Henderson
2021-06-21 14:47   ` Peter Maydell
2021-06-14  8:37 ` [PATCH 17/28] tcg: Add flags argument to tcg_gen_bswap16_*, tcg_gen_bswap32_i64 Richard Henderson
2021-06-14  9:41   ` Philippe Mathieu-Daudé
2021-06-14 15:58     ` Richard Henderson
2021-06-22 10:20       ` Philippe Mathieu-Daudé
2021-06-22 13:56         ` Richard Henderson
2021-06-21 15:01   ` Peter Maydell
2021-06-14  8:37 ` [PATCH 18/28] tcg: Make use of bswap flags in tcg_gen_qemu_ld_* Richard Henderson
2021-06-21 15:04   ` Peter Maydell
2021-06-22  6:41   ` Philippe Mathieu-Daudé
2021-06-14  8:37 ` [PATCH 19/28] tcg: Make use of bswap flags in tcg_gen_qemu_st_* Richard Henderson
2021-06-21 15:05   ` Peter Maydell
2021-06-14  8:37 ` [PATCH 20/28] target/arm: Improve REV32 Richard Henderson
2021-06-14  9:08   ` Philippe Mathieu-Daudé
2021-06-21 15:08   ` Peter Maydell
2021-06-14  8:37 ` [PATCH 21/28] target/arm: Improve vector REV Richard Henderson
2021-06-21 15:10   ` Peter Maydell
2021-06-22  6:44   ` Philippe Mathieu-Daudé
2021-06-14  8:37 ` [PATCH 22/28] target/arm: Improve REVSH Richard Henderson
2021-06-14  9:42   ` Philippe Mathieu-Daudé
2021-06-21 15:11   ` Peter Maydell
2021-06-14  8:37 ` [PATCH 23/28] target/i386: Improve bswap translation Richard Henderson
2021-06-21 15:15   ` Peter Maydell
2021-06-14  8:37 ` [PATCH 24/28] target/sh4: Improve swap.b translation Richard Henderson
2021-06-21 15:16   ` Peter Maydell
2021-06-14  8:37 ` [PATCH 25/28] target/mips: Fix gen_mxu_s32ldd_s32lddr Richard Henderson
2021-06-21 20:59   ` Philippe Mathieu-Daudé
2021-06-14  8:37 ` [PATCH 26/28] tcg/arm: Unset TCG_TARGET_HAS_MEMORY_BSWAP Richard Henderson
2021-06-21 15:31   ` Peter Maydell
2021-06-14  8:37 ` [PATCH 27/28] tcg/aarch64: " Richard Henderson
2021-06-21 15:33   ` Peter Maydell
2021-06-14  8:38 ` [PATCH 28/28] tcg/riscv: Remove MO_BSWAP handling Richard Henderson
2021-06-18  6:30   ` Alistair Francis
2021-06-14 22:41 ` [PATCH 00/28] tcg: bswap improvements no-reply

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=20210614083800.1166166-6-richard.henderson@linaro.org \
    --to=richard.henderson@linaro.org \
    --cc=qemu-devel@nongnu.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.