qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH v2 00/81] tcg: Merge *_i32 and *_i64 opcodes
@ 2025-01-07  7:59 Richard Henderson
  2025-01-07  7:59 ` [PATCH v2 01/81] tcg: Move call abi parameters from tcg-target.h to tcg-target.c.inc Richard Henderson
                   ` (81 more replies)
  0 siblings, 82 replies; 164+ messages in thread
From: Richard Henderson @ 2025-01-07  7:59 UTC (permalink / raw)
  To: qemu-devel; +Cc: philmd, pierrick.bouvier

Currently we have individual opcodes for each integer type.
This makes things difficult in tcg/optimize.c when we want
to transform the opcode stream.

Add TCGOP_TYPE() and use that instead.  Merge the opcodes that are
common to both TCG_TYPE_I32 and TCG_TYPE_I64.  We could eventually
merge some of the vector opcodes too, but that is a larger job.

This also moves quite a lot of the tcg backend implementation out
of the publicly exposed headers.  After this patchset is complete,
we will not rebuild target translators for most changes to the tcg
backend.

Changes for v2:
  - Begin reorganizing the tcg backends.  Create structures that
    encapsulate availability, constraints, and output routines.
    The intent is to keep everything related to an opcode together,
    so that code for a specific opcode is not scattered around
    multiple functions and multiple files.

    This conversion is incomplete.  I've completed the basic
    arithmetic opcodes.

    This is the place where I'd like feedback on readability.

  - Replace TCGOp.type with TCGOP_TYPE.
  - Add TCGOP_FLAGS, not used so far in v2, but intended to
    be used with especially load/store opcodes.


r~


Richard Henderson (81):
  tcg: Move call abi parameters from tcg-target.h to tcg-target.c.inc
  tcg: Replace TCGOP_VECL with TCGOP_TYPE
  tcg: Move tcg_op_insert_{after,before} decls to tcg-internal.h
  tcg: Copy TCGOP_TYPE in tcg_op_insert_{after,before}
  tcg: Add TCGOP_FLAGS
  tcg: Add type and flags arguments to tcg_op_supported
  target/arm: Do not test TCG_TARGET_HAS_bitsel_vec
  target/arm: Use tcg_op_supported
  target/tricore: Use tcg_op_supported
  tcg: Add tcg_op_deposit_valid
  target/i386: Remove TCG_TARGET_extract_tl_valid
  target/i386: Use tcg_op_deposit_valid
  target/i386: Use tcg_op_supported
  tcg: Remove TCG_TARGET_NEED_LDST_LABELS and
    TCG_TARGET_NEED_POOL_LABELS
  tcg: Rename tcg-target.opc.h to tcg-target-opc.h.inc
  tcg/tci: Move TCI specific opcodes to tcg-target-opc.h.inc
  tcg: Move fallback tcg_can_emit_vec_op out of line
  tcg: Split out tcg-target-has.h and tcg-has.h
  tcg: Split out tcg-target-mo.h
  tcg: Use C_NotImplemented in tcg_target_op_def
  tcg: Change have_vec to has_type in tcg_op_supported
  tcg: Reorg process_op_defs
  tcg: Remove args_ct from TCGOpDef
  tcg: Constify tcg_op_defs
  tcg: Validate op supported in opcode_args_ct
  tcg: Add TCG_OPF_NOT_PRESENT to opcodes without inputs or outputs
  tcg: Pass type and flags to tcg_target_op_def
  tcg: Add TCGType argument to tcg_out_op
  tcg: Remove TCG_OPF_64BIT
  tcg: Drop implementation checks from tcg-opc.h
  tcg: Replace IMPLVEC with TCG_OPF_VECTOR
  tcg/mips: Expand bswap unconditionally
  tcg/i386: Handle all 8-bit extensions for i686
  tcg/i386: Fold the ext{8,16,32}[us] cases into {s}extract
  tcg/aarch64: Provide TCG_TARGET_{s}extract_valid
  tcg/aarch64: Expand extract with offset 0 with andi
  tcg/arm: Add full [US]XT[BH] into {s}extract
  tcg/loongarch64: Fold the ext{8,16,32}[us] cases into {s}extract
  tcg/mips: Fold the ext{8,16,32}[us] cases into {s}extract
  tcg/ppc: Fold the ext{8,16,32}[us] cases into {s}extract
  tcg/riscv64: Fold the ext{8,16,32}[us] cases into {s}extract
  tcg/riscv: Use SRAIW, SRLIW for {s}extract_i64
  tcg/s390x: Fold the ext{8,16,32}[us] cases into {s}extract
  tcg/sparc64: Use SRA, SRL for {s}extract_i64
  tcg/tci: Provide TCG_TARGET_{s}extract_valid
  tcg/tci: Remove assertions for deposit and extract
  tcg: Remove TCG_TARGET_HAS_{s}extract_{i32,i64}
  tcg: Remove TCG_TARGET_HAS_deposit_{i32,i64}
  tcg: Remove INDEX_op_ext{8,16,32}*
  tcg: Add all_outop[]
  tcg: Merge INDEX_op_mov_{i32,i64}
  tcg: Convert add to TCGOutOpBinary
  tcg: Merge INDEX_op_add_{i32,i64}
  tcg: Convert and to TCGOutOpBinary
  tcg: Merge INDEX_op_and_{i32,i64}
  tcg/optimize: Fold andc with immediate to and
  tcg/optimize: Emit add r,r,-1 in fold_setcond_tst_pow2
  tcg: Convert andc to TCGOutOpBinary
  tcg: Merge INDEX_op_andc_{i32,i64}
  tcg: Convert or to TCGOutOpBinary
  tcg: Merge INDEX_op_or_{i32,i64}
  tcg/optimize: Fold orc with immediate to or
  tcg: Convert orc to TCGOutOpBinary
  tcg: Merge INDEX_op_orc_{i32,i64}
  tcg: Convert xor to TCGOutOpBinary
  tcg: Merge INDEX_op_xor_{i32,i64}
  tcg/optimize: Fold eqv with immediate to xor
  tcg: Convert eqv to TCGOutOpBinary
  tcg: Merge INDEX_op_eqv_{i32,i64}
  tcg: Convert nand to TCGOutOpBinary
  tcg: Merge INDEX_op_nand_{i32,i64}
  tcg/loongarch64: Do not accept constant argument to nor
  tcg: Convert nor to TCGOutOpBinary
  tcg: Merge INDEX_op_nor_{i32,i64}
  tcg/arm: Fix constraints for sub
  tcg: Convert sub to TCGOutOpSubtract
  tcg: Merge INDEX_op_sub_{i32,i64}
  tcg: Convert neg to TCGOutOpUnary
  tcg: Merge INDEX_op_neg_{i32,i64}
  tcg: Convert not to TCGOutOpUnary
  tcg: Merge INDEX_op_not_{i32,i64}

 accel/tcg/internal-target.h                   |   1 +
 include/tcg/tcg-opc.h                         | 346 +++----
 include/tcg/tcg.h                             | 148 +--
 tcg/aarch64/tcg-target-has.h                  |  95 ++
 tcg/aarch64/tcg-target-mo.h                   |  12 +
 tcg/aarch64/tcg-target.h                      | 126 ---
 tcg/arm/tcg-target-con-set.h                  |   1 +
 tcg/arm/tcg-target-has.h                      |  90 ++
 tcg/arm/tcg-target-mo.h                       |  13 +
 tcg/arm/tcg-target.h                          |  86 --
 tcg/i386/tcg-target-con-set.h                 |   2 +-
 tcg/i386/tcg-target-has.h                     | 147 +++
 tcg/i386/tcg-target-mo.h                      |  19 +
 tcg/i386/tcg-target.h                         | 162 ----
 tcg/loongarch64/tcg-target-con-set.h          |   1 -
 tcg/loongarch64/tcg-target-con-str.h          |   1 -
 tcg/loongarch64/tcg-target-has.h              |  97 ++
 tcg/loongarch64/tcg-target-mo.h               |  12 +
 tcg/loongarch64/tcg-target.h                  | 115 ---
 tcg/mips/tcg-target-con-set.h                 |   1 -
 tcg/mips/tcg-target-has.h                     | 110 +++
 tcg/mips/tcg-target-mo.h                      |  13 +
 tcg/mips/tcg-target.h                         | 130 ---
 tcg/ppc/tcg-target-con-set.h                  |   3 +-
 tcg/ppc/tcg-target-has.h                      | 107 +++
 tcg/ppc/tcg-target-mo.h                       |  12 +
 tcg/ppc/tcg-target.h                          | 126 ---
 tcg/riscv/tcg-target-con-set.h                |   3 +-
 tcg/riscv/tcg-target-con-str.h                |   2 -
 tcg/riscv/tcg-target-has.h                    | 107 +++
 tcg/riscv/tcg-target-mo.h                     |  12 +
 tcg/riscv/tcg-target.h                        | 116 ---
 tcg/s390x/tcg-target-con-set.h                |   2 -
 tcg/s390x/tcg-target-has.h                    | 115 +++
 tcg/s390x/tcg-target-mo.h                     |  12 +
 tcg/s390x/tcg-target.h                        | 126 ---
 tcg/sparc64/tcg-target-con-set.h              |   1 +
 tcg/sparc64/tcg-target-has.h                  |  65 ++
 tcg/sparc64/tcg-target-mo.h                   |  12 +
 tcg/sparc64/tcg-target.h                      |  91 --
 tcg/tcg-has.h                                 |  89 ++
 tcg/tcg-internal.h                            |  18 +-
 tcg/tci/tcg-target-has.h                      |  59 ++
 tcg/tci/tcg-target-mo.h                       |  17 +
 tcg/tci/tcg-target.h                          |  94 --
 target/arm/tcg/translate-a64.c                |  10 +-
 target/arm/tcg/translate-sve.c                |  22 +-
 target/arm/tcg/translate.c                    |   2 +-
 target/sh4/translate.c                        |  20 +-
 target/tricore/translate.c                    |   4 +-
 tcg/optimize.c                                | 316 +++---
 tcg/tcg-common.c                              |   5 +-
 tcg/tcg-op-gvec.c                             |   1 +
 tcg/tcg-op-ldst.c                             |  29 +-
 tcg/tcg-op-vec.c                              |   9 +-
 tcg/tcg-op.c                                  | 665 +++++--------
 tcg/tcg.c                                     | 904 ++++++++++++------
 tcg/tci.c                                     | 138 +--
 docs/devel/tcg-ops.rst                        |  29 +-
 target/i386/tcg/emit.c.inc                    |  14 +-
 ...{tcg-target.opc.h => tcg-target-opc.h.inc} |   4 +-
 tcg/aarch64/tcg-target.c.inc                  | 340 +++----
 ...{tcg-target.opc.h => tcg-target-opc.h.inc} |   6 +-
 tcg/arm/tcg-target.c.inc                      | 305 ++++--
 ...{tcg-target.opc.h => tcg-target-opc.h.inc} |  22 +-
 tcg/i386/tcg-target.c.inc                     | 384 +++++---
 ...{tcg-target.opc.h => tcg-target-opc.h.inc} |   0
 tcg/loongarch64/tcg-target.c.inc              | 370 +++----
 tcg/mips/tcg-target-opc.h.inc                 |   1 +
 tcg/mips/tcg-target.c.inc                     | 318 +++---
 ...{tcg-target.opc.h => tcg-target-opc.h.inc} |  12 +-
 tcg/ppc/tcg-target.c.inc                      | 394 ++++----
 ...{tcg-target.opc.h => tcg-target-opc.h.inc} |   0
 tcg/riscv/tcg-target.c.inc                    | 380 ++++----
 ...{tcg-target.opc.h => tcg-target-opc.h.inc} |   6 +-
 tcg/s390x/tcg-target.c.inc                    | 589 ++++++------
 tcg/sparc64/tcg-target-opc.h.inc              |   1 +
 tcg/sparc64/tcg-target.c.inc                  | 234 +++--
 tcg/tcg-ldst.c.inc                            |  65 --
 tcg/tcg-pool.c.inc                            | 162 ----
 tcg/tci/tcg-target-opc.h.inc                  |   4 +
 tcg/tci/tcg-target.c.inc                      | 341 ++++---
 82 files changed, 4631 insertions(+), 4392 deletions(-)
 create mode 100644 tcg/aarch64/tcg-target-has.h
 create mode 100644 tcg/aarch64/tcg-target-mo.h
 create mode 100644 tcg/arm/tcg-target-has.h
 create mode 100644 tcg/arm/tcg-target-mo.h
 create mode 100644 tcg/i386/tcg-target-has.h
 create mode 100644 tcg/i386/tcg-target-mo.h
 create mode 100644 tcg/loongarch64/tcg-target-has.h
 create mode 100644 tcg/loongarch64/tcg-target-mo.h
 create mode 100644 tcg/mips/tcg-target-has.h
 create mode 100644 tcg/mips/tcg-target-mo.h
 create mode 100644 tcg/ppc/tcg-target-has.h
 create mode 100644 tcg/ppc/tcg-target-mo.h
 create mode 100644 tcg/riscv/tcg-target-has.h
 create mode 100644 tcg/riscv/tcg-target-mo.h
 create mode 100644 tcg/s390x/tcg-target-has.h
 create mode 100644 tcg/s390x/tcg-target-mo.h
 create mode 100644 tcg/sparc64/tcg-target-has.h
 create mode 100644 tcg/sparc64/tcg-target-mo.h
 create mode 100644 tcg/tcg-has.h
 create mode 100644 tcg/tci/tcg-target-has.h
 create mode 100644 tcg/tci/tcg-target-mo.h
 rename tcg/aarch64/{tcg-target.opc.h => tcg-target-opc.h.inc} (82%)
 rename tcg/arm/{tcg-target.opc.h => tcg-target-opc.h.inc} (75%)
 rename tcg/i386/{tcg-target.opc.h => tcg-target-opc.h.inc} (72%)
 rename tcg/loongarch64/{tcg-target.opc.h => tcg-target-opc.h.inc} (100%)
 create mode 100644 tcg/mips/tcg-target-opc.h.inc
 rename tcg/ppc/{tcg-target.opc.h => tcg-target-opc.h.inc} (83%)
 rename tcg/riscv/{tcg-target.opc.h => tcg-target-opc.h.inc} (100%)
 rename tcg/s390x/{tcg-target.opc.h => tcg-target-opc.h.inc} (75%)
 create mode 100644 tcg/sparc64/tcg-target-opc.h.inc
 delete mode 100644 tcg/tcg-ldst.c.inc
 delete mode 100644 tcg/tcg-pool.c.inc
 create mode 100644 tcg/tci/tcg-target-opc.h.inc

-- 
2.43.0



^ permalink raw reply	[flat|nested] 164+ messages in thread

end of thread, other threads:[~2025-01-17 21:30 UTC | newest]

Thread overview: 164+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-07  7:59 [RFC PATCH v2 00/81] tcg: Merge *_i32 and *_i64 opcodes Richard Henderson
2025-01-07  7:59 ` [PATCH v2 01/81] tcg: Move call abi parameters from tcg-target.h to tcg-target.c.inc Richard Henderson
2025-01-17 21:26   ` Alex Bennée
2025-01-07  7:59 ` [PATCH v2 02/81] tcg: Replace TCGOP_VECL with TCGOP_TYPE Richard Henderson
2025-01-08 17:39   ` Philippe Mathieu-Daudé
2025-01-08 21:23     ` Richard Henderson
2025-01-15 20:00       ` Philippe Mathieu-Daudé
2025-01-07  7:59 ` [PATCH v2 03/81] tcg: Move tcg_op_insert_{after, before} decls to tcg-internal.h Richard Henderson
2025-01-07  8:55   ` Philippe Mathieu-Daudé
2025-01-17 21:29   ` Alex Bennée
2025-01-07  7:59 ` [PATCH v2 04/81] tcg: Copy TCGOP_TYPE in tcg_op_insert_{after, before} Richard Henderson
2025-01-08 17:39   ` [PATCH v2 04/81] tcg: Copy TCGOP_TYPE in tcg_op_insert_{after,before} Philippe Mathieu-Daudé
2025-01-07  7:59 ` [PATCH v2 05/81] tcg: Add TCGOP_FLAGS Richard Henderson
2025-01-15 21:16   ` Philippe Mathieu-Daudé
2025-01-15 23:40     ` Richard Henderson
2025-01-07  7:59 ` [PATCH v2 06/81] tcg: Add type and flags arguments to tcg_op_supported Richard Henderson
2025-01-14 16:59   ` Philippe Mathieu-Daudé
2025-01-07  7:59 ` [PATCH v2 07/81] target/arm: Do not test TCG_TARGET_HAS_bitsel_vec Richard Henderson
2025-01-08 17:46   ` Philippe Mathieu-Daudé
2025-01-08 21:38     ` Richard Henderson
2025-01-08 22:14       ` Philippe Mathieu-Daudé
2025-01-08 22:30         ` Richard Henderson
2025-01-09 11:32           ` Philippe Mathieu-Daudé
2025-01-07  7:59 ` [PATCH v2 08/81] target/arm: Use tcg_op_supported Richard Henderson
2025-01-07  8:00 ` [PATCH v2 09/81] target/tricore: " Richard Henderson
2025-01-07  8:00 ` [PATCH v2 10/81] tcg: Add tcg_op_deposit_valid Richard Henderson
2025-01-07  8:00 ` [PATCH v2 11/81] target/i386: Remove TCG_TARGET_extract_tl_valid Richard Henderson
2025-01-07  8:00 ` [PATCH v2 12/81] target/i386: Use tcg_op_deposit_valid Richard Henderson
2025-01-07  8:00 ` [PATCH v2 13/81] target/i386: Use tcg_op_supported Richard Henderson
2025-01-07  8:00 ` [PATCH v2 14/81] tcg: Remove TCG_TARGET_NEED_LDST_LABELS and TCG_TARGET_NEED_POOL_LABELS Richard Henderson
2025-01-15 19:57   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 15/81] tcg: Rename tcg-target.opc.h to tcg-target-opc.h.inc Richard Henderson
2025-01-07  8:00 ` [PATCH v2 16/81] tcg/tci: Move TCI specific opcodes " Richard Henderson
2025-01-07  8:00 ` [PATCH v2 17/81] tcg: Move fallback tcg_can_emit_vec_op out of line Richard Henderson
2025-01-07  8:00 ` [PATCH v2 18/81] tcg: Split out tcg-target-has.h and tcg-has.h Richard Henderson
2025-01-08 21:51   ` [PATCH v3 00/14] " Philippe Mathieu-Daudé
2025-01-08 21:51     ` [PATCH v3 01/14] tcg/ppc: Remove TCGPowerISA enum Philippe Mathieu-Daudé
2025-01-08 21:51     ` [PATCH v3 02/14] tcg: Extract default TCG_TARGET_HAS_foo definitions to 'tcg-has.h' Philippe Mathieu-Daudé
2025-01-08 21:51     ` [PATCH v3 03/14] tcg/aarch64: Extract TCG_TARGET_HAS_foo defs to 'tcg-target-has.h' Philippe Mathieu-Daudé
2025-01-08 21:51     ` [PATCH v3 04/14] tcg/arm: " Philippe Mathieu-Daudé
2025-01-08 21:51     ` [PATCH v3 05/14] tcg/i386: " Philippe Mathieu-Daudé
2025-01-08 21:51     ` [PATCH v3 06/14] tcg/loongarch64: " Philippe Mathieu-Daudé
2025-01-08 21:51     ` [PATCH v3 07/14] tcg/mips: " Philippe Mathieu-Daudé
2025-01-08 21:51     ` [PATCH v3 08/14] tcg/ppc: " Philippe Mathieu-Daudé
2025-01-08 21:51     ` [PATCH v3 09/14] tcg/riscv: " Philippe Mathieu-Daudé
2025-01-08 21:51     ` [PATCH v3 10/14] tcg/s390x: " Philippe Mathieu-Daudé
2025-01-08 21:51     ` [PATCH v3 11/14] tcg/sparc64: " Philippe Mathieu-Daudé
2025-01-08 21:51     ` [PATCH v3 12/14] tcg/tci: " Philippe Mathieu-Daudé
2025-01-08 21:51     ` [PATCH v3 13/14] tcg: Include 'tcg-target-has.h' once in 'tcg-has.h' Philippe Mathieu-Daudé
2025-01-08 21:51     ` [PATCH v3 14/14] tcg: Only include 'tcg-has.h' when necessary Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 19/81] tcg: Split out tcg-target-mo.h Richard Henderson
2025-01-07  8:00 ` [PATCH v2 20/81] tcg: Use C_NotImplemented in tcg_target_op_def Richard Henderson
2025-01-07  8:00 ` [PATCH v2 21/81] tcg: Change have_vec to has_type in tcg_op_supported Richard Henderson
2025-01-07  8:00 ` [PATCH v2 22/81] tcg: Reorg process_op_defs Richard Henderson
2025-01-14 17:48   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 23/81] tcg: Remove args_ct from TCGOpDef Richard Henderson
2025-01-14 16:57   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 24/81] tcg: Constify tcg_op_defs Richard Henderson
2025-01-14 16:57   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 25/81] tcg: Validate op supported in opcode_args_ct Richard Henderson
2025-01-14 16:57   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 26/81] tcg: Add TCG_OPF_NOT_PRESENT to opcodes without inputs or outputs Richard Henderson
2025-01-08 21:58   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 27/81] tcg: Pass type and flags to tcg_target_op_def Richard Henderson
2025-01-14 16:58   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 28/81] tcg: Add TCGType argument to tcg_out_op Richard Henderson
2025-01-08 22:05   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 29/81] tcg: Remove TCG_OPF_64BIT Richard Henderson
2025-01-08 22:06   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 30/81] tcg: Drop implementation checks from tcg-opc.h Richard Henderson
2025-01-14 17:00   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 31/81] tcg: Replace IMPLVEC with TCG_OPF_VECTOR Richard Henderson
2025-01-15 19:59   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 32/81] tcg/mips: Expand bswap unconditionally Richard Henderson
2025-01-15 22:02   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 33/81] tcg/i386: Handle all 8-bit extensions for i686 Richard Henderson
2025-01-15 20:13   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 34/81] tcg/i386: Fold the ext{8, 16, 32}[us] cases into {s}extract Richard Henderson
2025-01-15 21:56   ` [PATCH v2 34/81] tcg/i386: Fold the ext{8,16,32}[us] " Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 35/81] tcg/aarch64: Provide TCG_TARGET_{s}extract_valid Richard Henderson
2025-01-09 23:03   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 36/81] tcg/aarch64: Expand extract with offset 0 with andi Richard Henderson
2025-01-09 23:33   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 37/81] tcg/arm: Add full [US]XT[BH] into {s}extract Richard Henderson
2025-01-09 22:57   ` Philippe Mathieu-Daudé
2025-01-15 20:06     ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 38/81] tcg/loongarch64: Fold the ext{8, 16, 32}[us] cases " Richard Henderson
2025-01-09 23:40   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 39/81] tcg/mips: " Richard Henderson
2025-01-09 22:43   ` [PATCH v2 39/81] tcg/mips: Fold the ext{8,16,32}[us] " Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 40/81] tcg/ppc: Fold the ext{8, 16, 32}[us] " Richard Henderson
2025-01-09 22:52   ` [PATCH v2 40/81] tcg/ppc: Fold the ext{8,16,32}[us] " Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 41/81] tcg/riscv64: Fold the ext{8, 16, 32}[us] " Richard Henderson
2025-01-09 23:36   ` [PATCH v2 41/81] tcg/riscv64: Fold the ext{8,16,32}[us] " Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 42/81] tcg/riscv: Use SRAIW, SRLIW for {s}extract_i64 Richard Henderson
2025-01-15 20:09   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 43/81] tcg/s390x: Fold the ext{8, 16, 32}[us] cases into {s}extract Richard Henderson
2025-01-09 22:54   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 44/81] tcg/sparc64: Use SRA, SRL for {s}extract_i64 Richard Henderson
2025-01-09 23:00   ` Philippe Mathieu-Daudé
2025-01-09 23:44     ` Philippe Mathieu-Daudé
2025-01-09 23:45       ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 45/81] tcg/tci: Provide TCG_TARGET_{s}extract_valid Richard Henderson
2025-01-09 23:03   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 46/81] tcg/tci: Remove assertions for deposit and extract Richard Henderson
2025-01-15 20:15   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 47/81] tcg: Remove TCG_TARGET_HAS_{s}extract_{i32,i64} Richard Henderson
2025-01-15 20:16   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 48/81] tcg: Remove TCG_TARGET_HAS_deposit_{i32,i64} Richard Henderson
2025-01-15 20:19   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 49/81] tcg: Remove INDEX_op_ext{8,16,32}* Richard Henderson
2025-01-07  8:00 ` [PATCH v2 50/81] tcg: Add all_outop[] Richard Henderson
2025-01-09 23:21   ` Philippe Mathieu-Daudé
2025-01-10 14:51     ` Richard Henderson
2025-01-07  8:00 ` [PATCH v2 51/81] tcg: Merge INDEX_op_mov_{i32,i64} Richard Henderson
2025-01-07  8:00 ` [PATCH v2 52/81] tcg: Convert add to TCGOutOpBinary Richard Henderson
2025-01-07  8:00 ` [PATCH v2 53/81] tcg: Merge INDEX_op_add_{i32,i64} Richard Henderson
2025-01-08 17:50   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 54/81] tcg: Convert and to TCGOutOpBinary Richard Henderson
2025-01-07  8:00 ` [PATCH v2 55/81] tcg: Merge INDEX_op_and_{i32,i64} Richard Henderson
2025-01-08 17:53   ` Philippe Mathieu-Daudé
2025-01-08 21:40     ` Richard Henderson
2025-01-07  8:00 ` [PATCH v2 56/81] tcg/optimize: Fold andc with immediate to and Richard Henderson
2025-01-09 23:28   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 57/81] tcg/optimize: Emit add r, r, -1 in fold_setcond_tst_pow2 Richard Henderson
2025-01-09 22:32   ` [PATCH v2 57/81] tcg/optimize: Emit add r,r,-1 " Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 58/81] tcg: Convert andc to TCGOutOpBinary Richard Henderson
2025-01-07  8:00 ` [PATCH v2 59/81] tcg: Merge INDEX_op_andc_{i32,i64} Richard Henderson
2025-01-08 20:58   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 60/81] tcg: Convert or to TCGOutOpBinary Richard Henderson
2025-01-07  8:00 ` [PATCH v2 61/81] tcg: Merge INDEX_op_or_{i32,i64} Richard Henderson
2025-01-08 20:58   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 62/81] tcg/optimize: Fold orc with immediate to or Richard Henderson
2025-01-09 23:25   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 63/81] tcg: Convert orc to TCGOutOpBinary Richard Henderson
2025-01-07  8:00 ` [PATCH v2 64/81] tcg: Merge INDEX_op_orc_{i32,i64} Richard Henderson
2025-01-08 20:59   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 65/81] tcg: Convert xor to TCGOutOpBinary Richard Henderson
2025-01-07  8:00 ` [PATCH v2 66/81] tcg: Merge INDEX_op_xor_{i32,i64} Richard Henderson
2025-01-08 21:00   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 67/81] tcg/optimize: Fold eqv with immediate to xor Richard Henderson
2025-01-09 23:27   ` Philippe Mathieu-Daudé
2025-01-07  8:00 ` [PATCH v2 68/81] tcg: Convert eqv to TCGOutOpBinary Richard Henderson
2025-01-07  8:01 ` [PATCH v2 69/81] tcg: Merge INDEX_op_eqv_{i32,i64} Richard Henderson
2025-01-08 21:01   ` Philippe Mathieu-Daudé
2025-01-07  8:01 ` [PATCH v2 70/81] tcg: Convert nand to TCGOutOpBinary Richard Henderson
2025-01-07  8:01 ` [PATCH v2 71/81] tcg: Merge INDEX_op_nand_{i32,i64} Richard Henderson
2025-01-08 21:01   ` Philippe Mathieu-Daudé
2025-01-07  8:01 ` [PATCH v2 72/81] tcg/loongarch64: Do not accept constant argument to nor Richard Henderson
2025-01-15 20:22   ` Philippe Mathieu-Daudé
2025-01-07  8:01 ` [PATCH v2 73/81] tcg: Convert nor to TCGOutOpBinary Richard Henderson
2025-01-07  8:01 ` [PATCH v2 74/81] tcg: Merge INDEX_op_nor_{i32,i64} Richard Henderson
2025-01-08 21:01   ` Philippe Mathieu-Daudé
2025-01-07  8:01 ` [PATCH v2 75/81] tcg/arm: Fix constraints for sub Richard Henderson
2025-01-07  8:01 ` [PATCH v2 76/81] tcg: Convert sub to TCGOutOpSubtract Richard Henderson
2025-01-07  8:01 ` [PATCH v2 77/81] tcg: Merge INDEX_op_sub_{i32,i64} Richard Henderson
2025-01-08 21:02   ` Philippe Mathieu-Daudé
2025-01-07  8:01 ` [PATCH v2 78/81] tcg: Convert neg to TCGOutOpUnary Richard Henderson
2025-01-07  8:01 ` [PATCH v2 79/81] tcg: Merge INDEX_op_neg_{i32,i64} Richard Henderson
2025-01-08 22:17   ` Philippe Mathieu-Daudé
2025-01-07  8:01 ` [PATCH v2 80/81] tcg: Convert not to TCGOutOpUnary Richard Henderson
2025-01-07  8:01 ` [PATCH v2 81/81] tcg: Merge INDEX_op_not_{i32,i64} Richard Henderson
2025-01-08 21:04   ` Philippe Mathieu-Daudé
2025-01-14 17:55 ` [RFC PATCH v2 00/81] tcg: Merge *_i32 and *_i64 opcodes Philippe Mathieu-Daudé

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).