qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 00/26] AREG0 conversion


From: Blue Swirl
Subject: Re: [Qemu-devel] [PATCH 00/26] AREG0 conversion
Date: Sun, 9 Oct 2011 19:20:26 +0000

On Sat, Sep 24, 2011 at 6:14 PM, Blue Swirl <address@hidden> wrote:
> In this version, target-sparc/op_helper.c is completely eliminated
> after the last commit!
>
> For some reason, sparc-softmmu crashes after first qemu_st op and it
> does not compile on non-x86. Other targets still seem to work, as does
> sparc-softmmu until the last patch. I haven't tested i386 host either,
> 5 arg helpers could trigger some new bugs and the i386 TCG part is
> bogus.

Now Sparc targets work also after the final commit after I fixed bugs
with TCG patches.

I was able to make some performance tests with Byte nbench, but
unfortunately the variance between each run is greater (1.5%) than
variance between patched and unpatched versions (0.6%). Probably the
speed of the host CPU varies or something.

For some reason, this breaks build on i386 or mingw32. It's not
possible to compile any Sparc targets until other TCG back ends are
converted, now only amd64 works.

> Patches 1 to 3 should be applied, for others it should be nice to get
> the last patch working. Any review would be helpful.
>
> I didn't bother to attach the patches, if someone wants to try, the
> patch set can be found here:
>        git://repo.or.cz/qemu/blueswirl.git
>        http://repo.or.cz/r/qemu/blueswirl.git

I pushed the patch set to repo.or.cz so if someone wants to comment or
test, they are there.

It's mostly the same stuff as before, though I split int_helper.c to
int32_helper.c and int64_helper.c since they have nothing in common
and extracted TCG iargs/oargs changes.

> Blue Swirl (26):
>  Document softmmu templates
>  softmmu_header: pass CPUState to tlb_fill
>  Move GETPC from dyngen-exec.h to exec-all.h
>  Sparc: fix coding style
>  Sparc: split helper.c
>  Sparc: move trivial functions from op_helper.c
>  Sparc: avoid AREG0 for raise_exception and helper_debug
>  Sparc: fix coding style
>  Sparc: split FPU and VIS op helpers
>  Sparc: avoid AREG0 for float and VIS ops
>  Sparc: split lazy condition code handling op helpers
>  Sparc: avoid AREG0 for lazy condition code helpers
>  Sparc: split CWP and PSTATE op helpers
>  Sparc: avoid AREG0 for CWP and PSTATE helpers
>  Sparc: avoid AREG0 for softint op helpers and Leon cache control
>  Sparc: avoid AREG0 for division op helpers
>  Sparc: fix coding style in helper.c
>  Sparc: split MMU helpers
>  Sparc: convert mmu_helper to trace framework
>  Sparc: convert int_helper to trace framework
>  Sparc: convert win_helper to trace framework
>  Sparc: split load and store op helpers
>  TCG: add 5 arg helpers to def-helper.h
>  Sparc: avoid AREG0 for memory access helpers
>  softmmu templates: optionally pass CPUState to memory access
>    functions
>  Sparc: avoid AREG0 wrappers for memory access helpers
>
>  Makefile.target               |   17 +-
>  configure                     |    7 +
>  cpu-all.h                     |    9 +
>  def-helper.h                  |   26 +
>  dyngen-exec.h                 |   12 -
>  exec-all.h                    |   20 +-
>  exec.c                        |    1 +
>  softmmu_defs.h                |   28 +
>  softmmu_exec.h                |   12 +-
>  softmmu_header.h              |   69 +-
>  softmmu_template.h            |   95 +-
>  target-alpha/op_helper.c      |    7 +-
>  target-arm/op_helper.c        |    6 +-
>  target-cris/op_helper.c       |    7 +-
>  target-i386/op_helper.c       |    7 +-
>  target-lm32/op_helper.c       |    7 +-
>  target-m68k/op_helper.c       |    7 +-
>  target-microblaze/op_helper.c |    7 +-
>  target-mips/op_helper.c       |    7 +-
>  target-ppc/op_helper.c        |    7 +-
>  target-s390x/op_helper.c      |    7 +-
>  target-sh4/op_helper.c        |    7 +-
>  target-sparc/cc_helper.c      |  485 +++++
>  target-sparc/cpu.h            |   39 +-
>  target-sparc/cpu_init.c       |  848 ++++++++
>  target-sparc/fop_helper.c     |  394 ++++
>  target-sparc/helper.c         | 1929 +------------------
>  target-sparc/helper.h         |  250 ++--
>  target-sparc/int_helper.c     |  345 ++++
>  target-sparc/ldst_helper.c    | 2477 +++++++++++++++++++++++
>  target-sparc/mmu_helper.c     |  853 ++++++++
>  target-sparc/op_helper.c      | 4365 
> -----------------------------------------
>  target-sparc/translate.c      |  432 +++--
>  target-sparc/vis_helper.c     |  406 ++++
>  target-sparc/win_helper.c     |  393 ++++
>  target-xtensa/op_helper.c     |    5 +-
>  tcg/i386/tcg-target.c         |   85 +-
>  trace-events                  |   25 +
>  38 files changed, 7009 insertions(+), 6694 deletions(-)
>  create mode 100644 target-sparc/cc_helper.c
>  create mode 100644 target-sparc/cpu_init.c
>  create mode 100644 target-sparc/fop_helper.c
>  create mode 100644 target-sparc/int_helper.c
>  create mode 100644 target-sparc/ldst_helper.c
>  create mode 100644 target-sparc/mmu_helper.c
>  delete mode 100644 target-sparc/op_helper.c
>  create mode 100644 target-sparc/vis_helper.c
>  create mode 100644 target-sparc/win_helper.c
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]