[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH for-8.2 00/24] tcg: Introduce negsetcond opcodes
From: |
Richard Henderson |
Subject: |
[PATCH for-8.2 00/24] tcg: Introduce negsetcond opcodes |
Date: |
Mon, 7 Aug 2023 20:11:19 -0700 |
Introduce two new setcond opcode variants which produce -1 instead
of 1 when the condition. For most of our hosts, producing -1 is
just as easy as 1, and avoid requiring a separate negate instruction.
Use the new opcode in tcg/tcg-op-gvec.c for integral expansion of
generic vector operations. I looked through target/ for obvious
pairings of setcond and neg.
r~
Richard Henderson (24):
tcg: Introduce negsetcond opcodes
tcg: Use tcg_gen_negsetcond_*
target/alpha: Use tcg_gen_movcond_i64 in gen_fold_mzero
target/arm: Use tcg_gen_negsetcond_*
target/m68k: Use tcg_gen_negsetcond_*
target/openrisc: Use tcg_gen_negsetcond_*
target/ppc: Use tcg_gen_negsetcond_*
target/sparc: Use tcg_gen_movcond_i64 in gen_edge
target/tricore: Replace gen_cond_w with tcg_gen_negsetcond_tl
tcg/ppc: Implement negsetcond_*
tcg/ppc: Use the Set Boolean Extension
tcg/aarch64: Implement negsetcond_*
tcg/arm: Implement negsetcond_i32
tcg/riscv: Implement negsetcond_*
tcg/s390x: Implement negsetcond_*
tcg/sparc64: Implement negsetcond_*
tcg/i386: Merge tcg_out_brcond{32,64}
tcg/i386: Merge tcg_out_setcond{32,64}
tcg/i386: Merge tcg_out_movcond{32,64}
tcg/i386: Add cf parameter to tcg_out_cmp
tcg/i386: Use CMP+SBB in tcg_out_setcond
tcg/i386: Clear dest first in tcg_out_setcond if possible
tcg/i386: Use shift in tcg_out_setcond
tcg/i386: Implement negsetcond_*
docs/devel/tcg-ops.rst | 6 +
include/tcg/tcg-op-common.h | 4 +
include/tcg/tcg-op.h | 2 +
include/tcg/tcg-opc.h | 2 +
include/tcg/tcg.h | 1 +
tcg/aarch64/tcg-target.h | 2 +
tcg/arm/tcg-target.h | 1 +
tcg/i386/tcg-target.h | 2 +
tcg/loongarch64/tcg-target.h | 3 +
tcg/mips/tcg-target.h | 2 +
tcg/ppc/tcg-target.h | 2 +
tcg/riscv/tcg-target.h | 2 +
tcg/s390x/tcg-target.h | 2 +
tcg/sparc64/tcg-target.h | 2 +
tcg/tci/tcg-target.h | 2 +
target/alpha/translate.c | 7 +-
target/arm/tcg/translate-a64.c | 22 +-
target/arm/tcg/translate.c | 12 +-
target/m68k/translate.c | 24 +-
target/openrisc/translate.c | 6 +-
target/sparc/translate.c | 17 +-
target/tricore/translate.c | 16 +-
tcg/optimize.c | 41 +++-
tcg/tcg-op-gvec.c | 6 +-
tcg/tcg-op.c | 42 +++-
tcg/tcg.c | 6 +
target/ppc/translate/fixedpoint-impl.c.inc | 6 +-
target/ppc/translate/vmx-impl.c.inc | 8 +-
tcg/aarch64/tcg-target.c.inc | 12 +
tcg/arm/tcg-target.c.inc | 9 +
tcg/i386/tcg-target.c.inc | 265 +++++++++++++--------
tcg/ppc/tcg-target.c.inc | 149 ++++++++----
tcg/riscv/tcg-target.c.inc | 45 ++++
tcg/s390x/tcg-target.c.inc | 78 ++++--
tcg/sparc64/tcg-target.c.inc | 36 ++-
35 files changed, 572 insertions(+), 270 deletions(-)
--
2.34.1
- [PATCH for-8.2 00/24] tcg: Introduce negsetcond opcodes,
Richard Henderson <=