Re: [Qemu-devel] [PATCH v2 00/18] tcg field extract primitives

2016-10-31 Thread Richard Henderson

On 10/31/2016 08:00 AM, Peter Maydell wrote:

On 24 October 2016 at 20:04, Richard Henderson  wrote:

Pinging target maintainers.  If I don't get responses by the end of the
week, I'll only push the generic tcg bits and the two targets that I
maintain.


Sorry we didn't get to this :-( Unfortunately our risu test
environment had bitrotted a bit so it wasn't as easy as I'd
hoped to test the ARM frontend stuff.


Yeah, I ran into a few problems in testing arm32 hosting ppc64 that really 
exercised this (much more so than i686).  I'll have to push this whole patch 
set off til next time.



r~



Re: [Qemu-devel] [PATCH v2 00/18] tcg field extract primitives

2016-10-31 Thread Peter Maydell
On 24 October 2016 at 20:04, Richard Henderson  wrote:
> Pinging target maintainers.  If I don't get responses by the end of the
> week, I'll only push the generic tcg bits and the two targets that I
> maintain.

Sorry we didn't get to this :-( Unfortunately our risu test
environment had bitrotted a bit so it wasn't as easy as I'd
hoped to test the ARM frontend stuff.

thanks
-- PMM



Re: [Qemu-devel] [PATCH v2 00/18] tcg field extract primitives

2016-10-25 Thread David Gibson
On Mon, Oct 24, 2016 at 12:04:33PM -0700, Richard Henderson wrote:
> Pinging target maintainers.  If I don't get responses by the end of the
> week, I'll only push the generic tcg bits and the two targets that I
> maintain.

Sorry, missed this first time around.  The ppc host side looked ok to
me, but the ppc target side didn't look quite right.

-- 
David Gibson| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson


signature.asc
Description: PGP signature


Re: [Qemu-devel] [PATCH v2 00/18] tcg field extract primitives

2016-10-25 Thread Paolo Bonzini


On 24/10/2016 21:04, Richard Henderson wrote:
> Pinging target maintainers.  If I don't get responses by the end of the
> week, I'll only push the generic tcg bits and the two targets that I
> maintain.

There's no documentation in tcg/README; apart from that looks good.

Paolo

> 
> r~
> 
> 
> On 10/18/2016 08:10 AM, Richard Henderson wrote:
>> Better tested this time, including aarch64 host.
>>
>> Changes since v1:
>>   * Added tcg_gen_deposit_z_*.  Depositing into zero turns out to be
>> quite common among targets.  Providing that as a primitive expander
>> allows us to easily generate optimal-ish code for hosts with and
>> without a real deposit operation.
>>   * Cleanups in tcg/s390 akin to those I already did for tcg/arm.
>>   * Add support in tcg/s390 for deposit into zero.
>>   * More special cases in the expanders for better code generation,
>> especially on an x86 host *without* the extract primitives.
>>   * Silly think-o on aarch64 host.
>>
>>
>> r~
>>
>>
>> Richard Henderson (18):
>>   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
>>
>>  target-alpha/translate.c |  67 ---
>>  target-arm/translate-a64.c   |  79 +++-
>>  target-arm/translate.c   |  37 +---
>>  target-i386/translate.c  |  45 +++--
>>  target-mips/translate.c  |  12 +-
>>  target-ppc/translate.c   |  35 ++--
>>  target-s390x/translate.c |  34 ++--
>>  tcg/aarch64/tcg-target.h |   4 +
>>  tcg/aarch64/tcg-target.inc.c |  14 ++
>>  tcg/arm/tcg-target.h |  38 +++-
>>  tcg/arm/tcg-target.inc.c |  63 +++---
>>  tcg/i386/tcg-target.h|  10 +
>>  tcg/i386/tcg-target.inc.c|  38 
>>  tcg/ia64/tcg-target.h|   4 +
>>  tcg/mips/tcg-target.h|   2 +
>>  tcg/mips/tcg-target.inc.c|   4 +
>>  tcg/optimize.c   |  29 +++
>>  tcg/ppc/tcg-target.h |   4 +
>>  tcg/ppc/tcg-target.inc.c |  10 +
>>  tcg/s390/tcg-target.h| 122 +++-
>>  tcg/s390/tcg-target.inc.c| 113 ++-
>>  tcg/sparc/tcg-target.h   |   4 +
>>  tcg/tcg-op.c | 465
>> ++-
>>  tcg/tcg-op.h |  18 ++
>>  tcg/tcg-opc.h|   4 +
>>  tcg/tcg.h|   8 +
>>  tcg/tci/tcg-target.h |   4 +
>>  27 files changed, 954 insertions(+), 313 deletions(-)
>>
> 
> 
> 



Re: [Qemu-devel] [PATCH v2 00/18] tcg field extract primitives

2016-10-25 Thread Eduardo Habkost
On Mon, Oct 24, 2016 at 12:04:33PM -0700, Richard Henderson wrote:
> Pinging target maintainers.  If I don't get responses by the end of the
> week, I'll only push the generic tcg bits and the two targets that I
> maintain.

I can't say I fully reviewed it, but I trust your judgement. For
the i386 parts:

Acked-by: Eduardo Habkost 

> 
> 
> r~
> 
> 
> On 10/18/2016 08:10 AM, Richard Henderson wrote:
> > Better tested this time, including aarch64 host.
> > 
> > Changes since v1:
> >   * Added tcg_gen_deposit_z_*.  Depositing into zero turns out to be
> > quite common among targets.  Providing that as a primitive expander
> > allows us to easily generate optimal-ish code for hosts with and
> > without a real deposit operation.
> >   * Cleanups in tcg/s390 akin to those I already did for tcg/arm.
> >   * Add support in tcg/s390 for deposit into zero.
> >   * More special cases in the expanders for better code generation,
> > especially on an x86 host *without* the extract primitives.
> >   * Silly think-o on aarch64 host.
> > 
> > 
> > r~
> > 
> > 
> > Richard Henderson (18):
> >   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
> > 
> >  target-alpha/translate.c |  67 ---
> >  target-arm/translate-a64.c   |  79 +++-
> >  target-arm/translate.c   |  37 +---
> >  target-i386/translate.c  |  45 +++--
> >  target-mips/translate.c  |  12 +-
> >  target-ppc/translate.c   |  35 ++--
> >  target-s390x/translate.c |  34 ++--
> >  tcg/aarch64/tcg-target.h |   4 +
> >  tcg/aarch64/tcg-target.inc.c |  14 ++
> >  tcg/arm/tcg-target.h |  38 +++-
> >  tcg/arm/tcg-target.inc.c |  63 +++---
> >  tcg/i386/tcg-target.h|  10 +
> >  tcg/i386/tcg-target.inc.c|  38 
> >  tcg/ia64/tcg-target.h|   4 +
> >  tcg/mips/tcg-target.h|   2 +
> >  tcg/mips/tcg-target.inc.c|   4 +
> >  tcg/optimize.c   |  29 +++
> >  tcg/ppc/tcg-target.h |   4 +
> >  tcg/ppc/tcg-target.inc.c |  10 +
> >  tcg/s390/tcg-target.h| 122 +++-
> >  tcg/s390/tcg-target.inc.c| 113 ++-
> >  tcg/sparc/tcg-target.h   |   4 +
> >  tcg/tcg-op.c | 465 
> > ++-
> >  tcg/tcg-op.h |  18 ++
> >  tcg/tcg-opc.h|   4 +
> >  tcg/tcg.h|   8 +
> >  tcg/tci/tcg-target.h |   4 +
> >  27 files changed, 954 insertions(+), 313 deletions(-)
> > 
> 

-- 
Eduardo



Re: [Qemu-devel] [PATCH v2 00/18] tcg field extract primitives

2016-10-24 Thread Richard Henderson
Pinging target maintainers.  If I don't get responses by the end of the week, 
I'll only push the generic tcg bits and the two targets that I maintain.



r~


On 10/18/2016 08:10 AM, Richard Henderson wrote:

Better tested this time, including aarch64 host.

Changes since v1:
  * Added tcg_gen_deposit_z_*.  Depositing into zero turns out to be
quite common among targets.  Providing that as a primitive expander
allows us to easily generate optimal-ish code for hosts with and
without a real deposit operation.
  * Cleanups in tcg/s390 akin to those I already did for tcg/arm.
  * Add support in tcg/s390 for deposit into zero.
  * More special cases in the expanders for better code generation,
especially on an x86 host *without* the extract primitives.
  * Silly think-o on aarch64 host.


r~


Richard Henderson (18):
  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

 target-alpha/translate.c |  67 ---
 target-arm/translate-a64.c   |  79 +++-
 target-arm/translate.c   |  37 +---
 target-i386/translate.c  |  45 +++--
 target-mips/translate.c  |  12 +-
 target-ppc/translate.c   |  35 ++--
 target-s390x/translate.c |  34 ++--
 tcg/aarch64/tcg-target.h |   4 +
 tcg/aarch64/tcg-target.inc.c |  14 ++
 tcg/arm/tcg-target.h |  38 +++-
 tcg/arm/tcg-target.inc.c |  63 +++---
 tcg/i386/tcg-target.h|  10 +
 tcg/i386/tcg-target.inc.c|  38 
 tcg/ia64/tcg-target.h|   4 +
 tcg/mips/tcg-target.h|   2 +
 tcg/mips/tcg-target.inc.c|   4 +
 tcg/optimize.c   |  29 +++
 tcg/ppc/tcg-target.h |   4 +
 tcg/ppc/tcg-target.inc.c |  10 +
 tcg/s390/tcg-target.h| 122 +++-
 tcg/s390/tcg-target.inc.c| 113 ++-
 tcg/sparc/tcg-target.h   |   4 +
 tcg/tcg-op.c | 465 ++-
 tcg/tcg-op.h |  18 ++
 tcg/tcg-opc.h|   4 +
 tcg/tcg.h|   8 +
 tcg/tci/tcg-target.h |   4 +
 27 files changed, 954 insertions(+), 313 deletions(-)






Re: [Qemu-devel] [PATCH v2 00/18] tcg field extract primitives

2016-10-18 Thread no-reply
Hi,

Your series seems to have some coding style problems. See output below for
more information:

Type: series
Message-id: 1476803431-7208-1-git-send-email-...@twiddle.net
Subject: [Qemu-devel] [PATCH v2 00/18] tcg field extract primitives

=== TEST SCRIPT BEGIN ===
#!/bin/bash

BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0

# Useful git options
git config --local diff.renamelimit 0
git config --local diff.renames True

commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
echo "Checking PATCH $n/$total: $(git show --no-patch --format=%s $c)..."
if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
failed=1
echo
fi
n=$((n+1))
done

exit $failed
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
c797e38 target-s390x: Use the new deposit and extract ops
8665678 target-ppc: Use the new deposit and extract ops
3ecbf06 target-mips: Use the new extract op
2729c07 target-i386: Use new deposit and extract ops
07d7282 target-arm: Use new deposit and extract ops
c2a8f3c target-alpha: Use deposit and extract ops
1e56779 tcg/s390: Support deposit into zero
21e361f tcg/s390: Implement field extraction opcodes
23f1f91 tcg/s390: Expose host facilities to tcg-target.h
a2378d7 tcg/ppc: Implement field extraction opcodes
d2df385 tcg/mips: Implement field extraction opcodes
ad6690d tcg/i386: Implement field extraction opcodes
84cdccb tcg/arm: Implement field extraction opcodes
2337625 tcg/arm: Move isa detection to tcg-target.h
1e01570 tcg/aarch64: Implement field extraction opcodes
f6f72e0 tcg: Add deposit_z expander
a0dcab5 tcg: Minor adjustments to deposit expanders
3359201 tcg: Add field extraction primitives

=== OUTPUT BEGIN ===
Checking PATCH 1/18: tcg: Add field extraction primitives...
ERROR: spaces required around that ':' (ctx:VxE)
#105: FILE: tcg/optimize.c:881:
+CASE_OP_32_64(extract):
   ^

ERROR: spaces required around that ':' (ctx:VxE)
#111: FILE: tcg/optimize.c:887:
+CASE_OP_32_64(sextract):
^

ERROR: spaces required around that ':' (ctx:VxE)
#125: FILE: tcg/optimize.c:1064:
+CASE_OP_32_64(extract):
   ^

ERROR: spaces required around that ':' (ctx:VxE)
#133: FILE: tcg/optimize.c:1072:
+CASE_OP_32_64(sextract):
^

ERROR: space prohibited after that '&&' (ctx:ExW)
#237: FILE: tcg/tcg-op.c:592:
+&& TCG_TARGET_extract_i32_valid(ofs, len)) {
 ^

ERROR: space prohibited after that '&&' (ctx:ExW)
#300: FILE: tcg/tcg-op.c:655:
+&& TCG_TARGET_extract_i32_valid(ofs, len)) {
 ^

ERROR: space prohibited after that '&&' (ctx:ExW)
#386: FILE: tcg/tcg-op.c:1782:
+&& TCG_TARGET_extract_i64_valid(ofs, len)) {
 ^

ERROR: space prohibited after that '&&' (ctx:ExW)
#485: FILE: tcg/tcg-op.c:1881:
+&& TCG_TARGET_extract_i64_valid(ofs, len)) {
 ^

total: 8 errors, 0 warnings, 563 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 2/18: tcg: Minor adjustments to deposit expanders...
Checking PATCH 3/18: tcg: Add deposit_z expander...
ERROR: space prohibited after that '&&' (ctx:ExW)
#33: FILE: tcg/tcg-op.c:587:
+   && TCG_TARGET_deposit_i32_valid(ofs, len)) {
^

ERROR: space prohibited after that '&&' (ctx:ExW)
#98: FILE: tcg/tcg-op.c:1819:
+   && TCG_TARGET_deposit_i64_valid(ofs, len)) {
^

total: 2 errors, 0 warnings, 185 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 4/18: tcg/aarch64: Implement field extraction opcodes...
Checking PATCH 5/18: tcg/arm: Move isa detection to tcg-target.h...
WARNING: architecture specific defines should be avoided
#18: FILE: tcg/arm/tcg-target.h:30:
+#ifndef __ARM_ARCH

WARNING: architecture specific defines should be avoided
#19: FILE: tcg/arm/tcg-target.h:31:
+# if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) \

WARNING: architecture specific defines should be avoided
#38: FILE: tcg/arm/tcg-target.h:50:
+#if defined(__ARM_ARCH_5T__) \

total: 0 errors, 3 warnings, 107 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 6/18: tcg/arm: Implement field extraction opcodes...
Checking PATCH 7/18: tcg/i386: Implement field extraction opcodes...
Checking PATCH 8/18: tcg/mips: Implement field extraction opcodes...
Checking PATCH 9/18: tcg/ppc: Implement field extraction opco

[Qemu-devel] [PATCH v2 00/18] tcg field extract primitives

2016-10-18 Thread Richard Henderson
Better tested this time, including aarch64 host.

Changes since v1:
  * Added tcg_gen_deposit_z_*.  Depositing into zero turns out to be
quite common among targets.  Providing that as a primitive expander
allows us to easily generate optimal-ish code for hosts with and
without a real deposit operation.
  * Cleanups in tcg/s390 akin to those I already did for tcg/arm.
  * Add support in tcg/s390 for deposit into zero.
  * More special cases in the expanders for better code generation,
especially on an x86 host *without* the extract primitives.
  * Silly think-o on aarch64 host.


r~


Richard Henderson (18):
  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

 target-alpha/translate.c |  67 ---
 target-arm/translate-a64.c   |  79 +++-
 target-arm/translate.c   |  37 +---
 target-i386/translate.c  |  45 +++--
 target-mips/translate.c  |  12 +-
 target-ppc/translate.c   |  35 ++--
 target-s390x/translate.c |  34 ++--
 tcg/aarch64/tcg-target.h |   4 +
 tcg/aarch64/tcg-target.inc.c |  14 ++
 tcg/arm/tcg-target.h |  38 +++-
 tcg/arm/tcg-target.inc.c |  63 +++---
 tcg/i386/tcg-target.h|  10 +
 tcg/i386/tcg-target.inc.c|  38 
 tcg/ia64/tcg-target.h|   4 +
 tcg/mips/tcg-target.h|   2 +
 tcg/mips/tcg-target.inc.c|   4 +
 tcg/optimize.c   |  29 +++
 tcg/ppc/tcg-target.h |   4 +
 tcg/ppc/tcg-target.inc.c |  10 +
 tcg/s390/tcg-target.h| 122 +++-
 tcg/s390/tcg-target.inc.c| 113 ++-
 tcg/sparc/tcg-target.h   |   4 +
 tcg/tcg-op.c | 465 ++-
 tcg/tcg-op.h |  18 ++
 tcg/tcg-opc.h|   4 +
 tcg/tcg.h|   8 +
 tcg/tci/tcg-target.h |   4 +
 27 files changed, 954 insertions(+), 313 deletions(-)

-- 
2.7.4