[Qemu-devel] [PATCH for-4.0 0/5] tcg/i386: Improve guest_base handling

Richard Henderson posted 5 patches 5 years, 6 months ago
Test asan passed
Test checkpatch failed
Test docker-quick@centos7 passed
Test docker-mingw@fedora passed
Test docker-clang@ubuntu passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20181203160840.15115-1-richard.henderson@linaro.org
tcg/i386/tcg-target.h     |   5 +-
tcg/i386/tcg-target.inc.c | 188 ++++++++++++++++----------------------
2 files changed, 83 insertions(+), 110 deletions(-)
[Qemu-devel] [PATCH for-4.0 0/5] tcg/i386: Improve guest_base handling
Posted by Richard Henderson 5 years, 6 months ago
This tidies guest_base handling such that (1) we require no scratch
registers, (2) we require no extra instructions besides the memory op,
and (3) we reduce the size of the memory op by omitting a prefix.

In principal point 3 is offset by adding additional opcodes to handle
zero-extension when converting 64-bit guest values back to 32-bit guest
addresses.  But those turn out to be hen's teeth, since 32-bit guests
often have no way of even producing 64-bit guest values.

In particular, I saw none in a simple pass through linux-user-test-0.3
for i386, arm, sh4, sparc.


r~


Richard Henderson (5):
  tcg/i386: Propagate is64 to tcg_out_qemu_ld_direct
  tcg/i386: Implement INDEX_op_extr{lh}_i64_i32 for 32-bit guests
  tcg/i386: Assume 32-bit values are zero-extended
  tcg/i386: Precompute all guest_base parameters
  tcg/i386: Add setup_guest_base_seg for FreeBSD

 tcg/i386/tcg-target.h     |   5 +-
 tcg/i386/tcg-target.inc.c | 188 ++++++++++++++++----------------------
 2 files changed, 83 insertions(+), 110 deletions(-)

-- 
2.17.2


Re: [Qemu-devel] [PATCH for-4.0 0/5] tcg/i386: Improve guest_base handling
Posted by Emilio G. Cota 5 years, 6 months ago
On Mon, Dec 03, 2018 at 10:08:35 -0600, Richard Henderson wrote:
> This tidies guest_base handling such that (1) we require no scratch
> registers, (2) we require no extra instructions besides the memory op,
> and (3) we reduce the size of the memory op by omitting a prefix.
> 
> In principal point 3 is offset by adding additional opcodes to handle
> zero-extension when converting 64-bit guest values back to 32-bit guest
> addresses.  But those turn out to be hen's teeth, since 32-bit guests
> often have no way of even producing 64-bit guest values.
> 
> In particular, I saw none in a simple pass through linux-user-test-0.3
> for i386, arm, sh4, sparc.

Reviewed-by: Emilio G. Cota <cota@braap.org>

for the series.

Thanks,

		Emilio

Re: [Qemu-devel] [PATCH for-4.0 0/5] tcg/i386: Improve guest_base handling
Posted by no-reply@patchew.org 5 years, 6 months ago
Patchew URL: https://patchew.org/QEMU/20181203160840.15115-1-richard.henderson@linaro.org/



Hi,

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

Subject: [Qemu-devel] [PATCH for-4.0 0/5] tcg/i386: Improve guest_base handling
Message-id: 20181203160840.15115-1-richard.henderson@linaro.org
Type: series

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

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

git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram

commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
    echo "Checking PATCH $n/$total: $(git log -n 1 --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'
76861b4 tcg/i386: Add setup_guest_base_seg for FreeBSD
94f1510 tcg/i386: Precompute all guest_base parameters
979a645 tcg/i386: Assume 32-bit values are zero-extended
ec46a17 tcg/i386: Implement INDEX_op_extr{lh}_i64_i32 for 32-bit guests
7eab43f tcg/i386: Propagate is64 to tcg_out_qemu_ld_direct

=== OUTPUT BEGIN ===
Checking PATCH 1/5: tcg/i386: Propagate is64 to tcg_out_qemu_ld_direct...
Checking PATCH 2/5: tcg/i386: Implement INDEX_op_extr{lh}_i64_i32 for 32-bit guests...
Checking PATCH 3/5: tcg/i386: Assume 32-bit values are zero-extended...
Checking PATCH 4/5: tcg/i386: Precompute all guest_base parameters...
WARNING: architecture specific defines should be avoided
#34: FILE: tcg/i386/tcg-target.inc.c:1864:
+# if defined(__x86_64__) && defined(__linux__)

total: 0 errors, 1 warnings, 136 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 5/5: tcg/i386: Add setup_guest_base_seg for FreeBSD...
ERROR: space prohibited between function name and open parenthesis '('
#17: FILE: tcg/i386/tcg-target.inc.c:1875:
+# elif defined (__FreeBSD__) || defined (__FreeBSD_kernel__)

ERROR: space prohibited between function name and open parenthesis '('
#17: FILE: tcg/i386/tcg-target.inc.c:1875:
+# elif defined (__FreeBSD__) || defined (__FreeBSD_kernel__)

total: 2 errors, 0 warnings, 15 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.

=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20181203160840.15115-1-richard.henderson@linaro.org/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com