From: "Alex Bennée" <alex.bennee@linaro.org>
To: Richard Henderson <rth@twiddle.net>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v4 00/64] tcg 2.9 patch queue
Date: Fri, 09 Dec 2016 16:08:54 +0000 [thread overview]
Message-ID: <87pol1xey1.fsf@linaro.org> (raw)
In-Reply-To: <1479906121-12211-1-git-send-email-rth@twiddle.net>
Richard Henderson <rth@twiddle.net> writes:
> This is a combination of two patch sets that have had previous
> revisions, as well as some new patches. I wanted to post this
> all together since Alex was having trouble with prerequisites.
>
> The full tree is at
>
> git://github.com/rth7680/qemu.git tcg-2.9
OK I've finished my pass through this uber-set. I've given it a fairly
good tyre-kicking on ARM (guest and hosts) with RISU so I think you can
have a:
Tested-by: Alex Bennée <alex.bennee@linaro.org>
for the ARM bits at least.
>
> Changes since v3:
> * PPC host patches have been properly annotated for cpu revision,
> - cnttz[wd] are power9 inventions,
> - cntpop[wd] are power7 inventions.
>
> * X86 host checks the correct cpuid bit for lzcnt.
>
> * Generic TCG has significant changes to enable "interesting"
> combinations of constraints for X86 host bsr/bsf and to some
> extent lzcnt/tzcnt.
>
> * Opcode for ctpop. I had begun with only the helpers for ctpop,
> but added the opcode after I discovered that power7/8 could use
> that as a better alternative for implementing ctz.
>
> * Updates to the i386 and ppc disassemblers, to handle the new
> insns that we're emitting.
>
>
> r~
>
>
> Richard Henderson (64):
> tcg: Add field extraction primitives
> tcg: Minor adjustments to deposit expanders
> tcg: Add deposit_z expander
> tcg/aarch64: Implement field extraction opcodes
> tcg/arm: Move isa detection to tcg-target.h
> tcg/arm: Implement field extraction opcodes
> tcg/i386: Implement field extraction opcodes
> tcg/mips: Implement field extraction opcodes
> tcg/ppc: Implement field extraction opcodes
> tcg/s390: Expose host facilities to tcg-target.h
> tcg/s390: Implement field extraction opcodes
> tcg/s390: Support deposit into zero
> target-alpha: Use deposit and extract ops
> target-arm: Use new deposit and extract ops
> target-i386: Use new deposit and extract ops
> target-mips: Use the new extract op
> target-ppc: Use the new deposit and extract ops
> target-s390x: Use the new deposit and extract ops
> tcg/optimize: Fold movcond 0/1 into setcond
> tcg: Add markup for output requires new register
> tcg: Transition flat op_defs array to a target callback
> tcg: Pass the opcode width to target_parse_constraint
> tcg: Allow an operand to be matching or a constant
> tcg: Add clz and ctz opcodes
> disas/i386.c: Handle tzcnt
> disas/ppc: Handle popcnt and cnttz
> target-alpha: Use the ctz and clz opcodes
> target-cris: Use clz opcode
> target-microblaze: Use clz opcode
> target-mips: Use clz opcode
> target-openrisc: Use clz and ctz opcodes
> target-ppc: Use clz and ctz opcodes
> target-s390x: Use clz opcode
> target-tilegx: Use clz and ctz opcodes
> target-tricore: Use clz opcode
> target-unicore32: Use clz opcode
> target-xtensa: Use clz opcode
> target-arm: Use clz opcode
> target-i386: Use clz and ctz opcodes
> tcg/ppc: Handle ctz and clz opcodes
> tcg/aarch64: Handle ctz and clz opcodes
> tcg/arm: Handle ctz and clz opcodes
> tcg/mips: Handle clz opcode
> tcg/s390: Handle clz opcode
> tcg/i386: Fuly convert tcg_target_op_def
> tcg/i386: Hoist common arguments in tcg_out_op
> tcg/i386: Allow bmi2 shiftx to have non-matching operands
> tcg/i386: Handle ctz and clz opcodes
> tcg/i386: Rely on undefined/undocumented behaviour of BSF/BSR
> tcg: Add helpers for clrsb
> target-arm: Use clrsb helper
> target-tricore: Use clrsb helper
> target-xtensa: Use clrsb helper
> tcg: Add opcode for ctpop
> target-alpha: Use ctpop helper
> target-ppc: Use ctpop helper
> target-s390x: Avoid a loop for popcnt
> target-sparc: Use ctpop helper
> target-tilegx: Use ctpop helper
> target-i386: Use ctpop helper
> qemu/host-utils.h: Reduce the operation count in the fallback ctpop
> tcg: Use ctpop to generate ctz if needed
> tcg/ppc: Handle ctpop opcode
> tcg/i386: Handle ctpop opcode
>
> disas/i386.c | 12 +-
> disas/ppc.c | 10 +
> include/qemu/host-utils.h | 25 +-
> target-alpha/helper.h | 4 -
> target-alpha/int_helper.c | 15 -
> target-alpha/translate.c | 73 +++--
> target-arm/helper-a64.c | 20 --
> target-arm/helper-a64.h | 4 -
> target-arm/helper.c | 5 -
> target-arm/helper.h | 1 -
> target-arm/translate-a64.c | 95 ++----
> target-arm/translate.c | 43 +--
> target-cris/helper.h | 1 -
> target-cris/op_helper.c | 5 -
> target-cris/translate.c | 2 +-
> target-i386/cc_helper.c | 3 +
> target-i386/cpu.h | 1 +
> target-i386/helper.h | 2 -
> target-i386/int_helper.c | 11 -
> target-i386/ops_sse.h | 26 --
> target-i386/ops_sse_header.h | 1 -
> target-i386/translate.c | 89 ++---
> target-microblaze/helper.h | 1 -
> target-microblaze/op_helper.c | 5 -
> target-microblaze/translate.c | 2 +-
> target-mips/helper.h | 7 -
> target-mips/op_helper.c | 22 --
> target-mips/translate.c | 35 +-
> target-openrisc/helper.h | 2 -
> target-openrisc/int_helper.c | 19 --
> target-openrisc/translate.c | 6 +-
> target-ppc/helper.h | 7 +-
> target-ppc/int_helper.c | 38 +--
> target-ppc/translate.c | 61 ++--
> target-s390x/helper.h | 1 -
> target-s390x/int_helper.c | 21 +-
> target-s390x/translate.c | 36 ++-
> target-sparc/helper.c | 5 -
> target-sparc/helper.h | 1 -
> target-sparc/translate.c | 2 +-
> target-tilegx/helper.c | 15 -
> target-tilegx/helper.h | 3 -
> target-tilegx/translate.c | 6 +-
> target-tricore/helper.h | 3 -
> target-tricore/op_helper.c | 15 -
> target-tricore/translate.c | 7 +-
> target-unicore32/helper.c | 10 -
> target-unicore32/helper.h | 3 -
> target-unicore32/translate.c | 6 +-
> target-xtensa/helper.h | 2 -
> target-xtensa/op_helper.c | 13 -
> target-xtensa/translate.c | 4 +-
> tcg-runtime.c | 40 +++
> tcg/README | 28 +-
> tcg/aarch64/tcg-target.h | 10 +
> tcg/aarch64/tcg-target.inc.c | 90 +++++-
> tcg/arm/tcg-target.h | 41 ++-
> tcg/arm/tcg-target.inc.c | 119 ++++---
> tcg/i386/tcg-target.h | 17 +
> tcg/i386/tcg-target.inc.c | 732 +++++++++++++++++++++++++++---------------
> tcg/ia64/tcg-target.h | 10 +
> tcg/ia64/tcg-target.inc.c | 28 +-
> tcg/mips/tcg-target.h | 5 +
> tcg/mips/tcg-target.inc.c | 66 +++-
> tcg/optimize.c | 94 ++++++
> tcg/ppc/tcg-target.h | 13 +
> tcg/ppc/tcg-target.inc.c | 117 ++++++-
> tcg/s390/tcg-target.h | 128 ++++----
> tcg/s390/tcg-target.inc.c | 173 ++++++----
> tcg/sparc/tcg-target.h | 10 +
> tcg/sparc/tcg-target.inc.c | 28 +-
> tcg/tcg-op.c | 695 ++++++++++++++++++++++++++++++++++++++-
> tcg/tcg-op.h | 42 +++
> tcg/tcg-opc.h | 10 +
> tcg/tcg-runtime.h | 9 +
> tcg/tcg.c | 173 +++++-----
> tcg/tcg.h | 14 +-
> tcg/tci/tcg-target.h | 10 +
> tcg/tci/tcg-target.inc.c | 25 +-
> 79 files changed, 2425 insertions(+), 1108 deletions(-)
--
Alex Bennée
prev parent reply other threads:[~2016-12-09 16:10 UTC|newest]
Thread overview: 102+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-23 13:00 [Qemu-devel] [PATCH v4 00/64] tcg 2.9 patch queue Richard Henderson
2016-11-23 13:00 ` [Qemu-devel] [PATCH v4 01/64] tcg: Add field extraction primitives Richard Henderson
2016-12-05 13:17 ` Alex Bennée
2016-12-05 15:14 ` Richard Henderson
2016-11-23 13:00 ` [Qemu-devel] [PATCH v4 02/64] tcg: Minor adjustments to deposit expanders Richard Henderson
2016-12-05 13:18 ` Alex Bennée
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 03/64] tcg: Add deposit_z expander Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 04/64] tcg/aarch64: Implement field extraction opcodes Richard Henderson
2016-12-06 12:24 ` Alex Bennée
2016-12-06 16:36 ` Richard Henderson
2016-12-09 15:41 ` Alex Bennée
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 05/64] tcg/arm: Move isa detection to tcg-target.h Richard Henderson
2016-12-06 12:34 ` Alex Bennée
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 06/64] tcg/arm: Implement field extraction opcodes Richard Henderson
2016-12-06 16:16 ` Alex Bennée
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 07/64] tcg/i386: " Richard Henderson
2016-11-25 11:16 ` Paolo Bonzini
2016-11-25 11:21 ` Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 08/64] tcg/mips: " Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 09/64] tcg/ppc: " Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 10/64] tcg/s390: Expose host facilities to tcg-target.h Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 11/64] tcg/s390: Implement field extraction opcodes Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 12/64] tcg/s390: Support deposit into zero Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 13/64] target-alpha: Use deposit and extract ops Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 14/64] target-arm: Use new " Richard Henderson
2016-12-01 17:19 ` Alex Bennée
2016-12-03 21:01 ` Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 15/64] target-i386: " Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 16/64] target-mips: Use the new extract op Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 17/64] target-ppc: Use the new deposit and extract ops Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 18/64] target-s390x: " Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 19/64] tcg/optimize: Fold movcond 0/1 into setcond Richard Henderson
2016-12-06 16:22 ` Alex Bennée
2016-12-06 16:33 ` Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 20/64] tcg: Add markup for output requires new register Richard Henderson
2016-12-06 16:34 ` Alex Bennée
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 21/64] tcg: Transition flat op_defs array to a target callback Richard Henderson
2016-12-06 16:38 ` Alex Bennée
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 22/64] tcg: Pass the opcode width to target_parse_constraint Richard Henderson
2016-12-06 16:43 ` Alex Bennée
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 23/64] tcg: Allow an operand to be matching or a constant Richard Henderson
2016-12-08 17:19 ` Alex Bennée
2016-12-08 17:49 ` Richard Henderson
2016-12-08 20:38 ` Alex Bennée
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 24/64] tcg: Add clz and ctz opcodes Richard Henderson
2016-12-08 17:44 ` Alex Bennée
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 25/64] disas/i386.c: Handle tzcnt Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 26/64] disas/ppc: Handle popcnt and cnttz Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 27/64] target-alpha: Use the ctz and clz opcodes Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 28/64] target-cris: Use clz opcode Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 29/64] target-microblaze: " Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 30/64] target-mips: " Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 31/64] target-openrisc: Use clz and ctz opcodes Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 32/64] target-ppc: " Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 33/64] target-s390x: Use clz opcode Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 34/64] target-tilegx: Use clz and ctz opcodes Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 35/64] target-tricore: Use clz opcode Richard Henderson
2016-11-23 14:58 ` Bastian Koppelmann
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 36/64] target-unicore32: " Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 37/64] target-xtensa: " Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 38/64] target-arm: " Richard Henderson
2016-12-08 17:47 ` Alex Bennée
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 39/64] target-i386: Use clz and ctz opcodes Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 40/64] tcg/ppc: Handle ctz and clz opcodes Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 41/64] tcg/aarch64: " Richard Henderson
2016-12-01 18:36 ` Alex Bennée
2016-12-01 18:44 ` Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 42/64] tcg/arm: " Richard Henderson
2016-12-08 17:56 ` Alex Bennée
2016-12-08 18:13 ` Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 43/64] tcg/mips: Handle clz opcode Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 44/64] tcg/s390: " Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 45/64] tcg/i386: Fuly convert tcg_target_op_def Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 46/64] tcg/i386: Hoist common arguments in tcg_out_op Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 47/64] tcg/i386: Allow bmi2 shiftx to have non-matching operands Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 48/64] tcg/i386: Handle ctz and clz opcodes Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 49/64] tcg/i386: Rely on undefined/undocumented behaviour of BSF/BSR Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 50/64] tcg: Add helpers for clrsb Richard Henderson
2016-12-09 9:51 ` Alex Bennée
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 51/64] target-arm: Use clrsb helper Richard Henderson
2016-12-09 9:52 ` Alex Bennée
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 52/64] target-tricore: " Richard Henderson
2016-11-23 14:58 ` Bastian Koppelmann
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 53/64] target-xtensa: " Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 54/64] tcg: Add opcode for ctpop Richard Henderson
2016-12-09 9:57 ` Alex Bennée
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 55/64] target-alpha: Use ctpop helper Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 56/64] target-ppc: " Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 57/64] target-s390x: Avoid a loop for popcnt Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 58/64] target-sparc: Use ctpop helper Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 59/64] target-tilegx: " Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 60/64] target-i386: " Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 61/64] qemu/host-utils.h: Reduce the operation count in the fallback ctpop Richard Henderson
2016-12-09 14:41 ` Alex Bennée
2016-12-09 17:18 ` Richard Henderson
2016-11-23 13:01 ` [Qemu-devel] [PATCH v4 62/64] tcg: Use ctpop to generate ctz if needed Richard Henderson
2016-12-09 16:07 ` Alex Bennée
2016-12-09 16:48 ` Richard Henderson
2016-11-23 13:02 ` [Qemu-devel] [PATCH v4 63/64] tcg/ppc: Handle ctpop opcode Richard Henderson
2016-11-23 13:02 ` [Qemu-devel] [PATCH v4 64/64] tcg/i386: " Richard Henderson
2016-11-29 13:33 ` [Qemu-devel] [PATCH v4 00/64] tcg 2.9 patch queue no-reply
2016-12-09 16:08 ` Alex Bennée [this message]
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=87pol1xey1.fsf@linaro.org \
--to=alex.bennee@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/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.