All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 00/15] tcg-sparc improvments
@ 2012-03-25 22:27 Richard Henderson
  2012-03-25 22:27 ` [Qemu-devel] [PATCH 01/15] tcg-sparc: Hack in qemu_ld/st64 for 32-bit Richard Henderson
                   ` (14 more replies)
  0 siblings, 15 replies; 22+ messages in thread
From: Richard Henderson @ 2012-03-25 22:27 UTC (permalink / raw)
  To: qemu-devel; +Cc: Blue Swirl

32-bit sparc hasn't worked in quite a while.  Missing opcodes,
incorrect opcodes, unconditional use of ASI_PRIMARY_LITTLE.

This patch set begins by dropping support for pre-v9 sparc.
This lets us clean things up quite a bit, using 64-bit load
and store operations.

I was still having problems with %g6 being clobbered in glibc.  
Patches 7-10 drop the use of global registers for the sparc
port entirely.  Given the hoops being used to protect areg0
around calls within the tcg generated code, deferring to a
%g7-relative tls access in the helpers is approximately as
efficient.  As targets are converted to CONFIG_TCG_PASS_AREG0
even this will improve as direct register access is available.



r~


Richard Henderson (15):
  tcg-sparc: Hack in qemu_ld/st64 for 32-bit.
  tcg-sparc: Fix ADDX opcode.
  tcg-sparc: Assume v9 cpu always, i.e. force v8plus in 32-bit mode.
  tcg-sparc: Fix qemu_ld/st to handle 32-bit host.
  tcg-sparc: Simplify qemu_ld/st direct memory paths.
  tcg-sparc: Support GUEST_BASE.
  tcg-sparc: Steamline qemu_ld/st more.
  Avoid declaring the env variable at all if CONFIG_TCG_PASS_AREG0.
  tcg-sparc: Do not use a global register for AREG0.
  tcg-sparc: Change AREG0 in generated code to %i0.
  tcg-sparc: Clean up cruft stemming from attempts to use global
    registers.
  tcg-sparc: Mask shift immediates to avoid illegal insns.
  tcg-sparc: Use defines for temporaries.
  tcg-sparc: Add %g/%o registers to alloc_order
  tcg-sparc: Fix and enable direct TB chaining.

 configure              |   53 +---
 dyngen-exec.h          |   27 +-
 exec-all.h             |    9 +-
 exec.c                 |   16 +-
 tcg/sparc/tcg-target.c |  951 +++++++++++++++++++++++-------------------------
 tcg/sparc/tcg-target.h |   34 +-
 user-exec.c            |   17 +-
 7 files changed, 520 insertions(+), 587 deletions(-)

-- 
1.7.7.6

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2012-03-26 17:23 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-25 22:27 [Qemu-devel] [PATCH 00/15] tcg-sparc improvments Richard Henderson
2012-03-25 22:27 ` [Qemu-devel] [PATCH 01/15] tcg-sparc: Hack in qemu_ld/st64 for 32-bit Richard Henderson
2012-03-25 22:27 ` [Qemu-devel] [PATCH 02/15] tcg-sparc: Fix ADDX opcode Richard Henderson
2012-03-25 22:27 ` [Qemu-devel] [PATCH 03/15] tcg-sparc: Assume v9 cpu always, i.e. force v8plus in 32-bit mode Richard Henderson
2012-03-25 22:27 ` [Qemu-devel] [PATCH 04/15] tcg-sparc: Fix qemu_ld/st to handle 32-bit host Richard Henderson
2012-03-25 22:27 ` [Qemu-devel] [PATCH 05/15] tcg-sparc: Simplify qemu_ld/st direct memory paths Richard Henderson
2012-03-25 22:27 ` [Qemu-devel] [PATCH 06/15] tcg-sparc: Support GUEST_BASE Richard Henderson
2012-03-25 22:27 ` [Qemu-devel] [PATCH 07/15] tcg-sparc: Steamline qemu_ld/st more Richard Henderson
2012-03-25 22:27 ` [Qemu-devel] [PATCH 08/15] Avoid declaring the env variable at all if CONFIG_TCG_PASS_AREG0 Richard Henderson
2012-03-26 16:26   ` Blue Swirl
2012-03-26 16:31     ` Richard Henderson
2012-03-25 22:27 ` [Qemu-devel] [PATCH 09/15] tcg-sparc: Do not use a global register for AREG0 Richard Henderson
2012-03-26 16:31   ` Blue Swirl
2012-03-26 16:52     ` Richard Henderson
2012-03-26 17:22       ` Blue Swirl
2012-03-25 22:27 ` [Qemu-devel] [PATCH 10/15] tcg-sparc: Change AREG0 in generated code to %i0 Richard Henderson
2012-03-25 22:27 ` [Qemu-devel] [PATCH 11/15] tcg-sparc: Clean up cruft stemming from attempts to use global registers Richard Henderson
2012-03-25 22:27 ` [Qemu-devel] [PATCH 12/15] tcg-sparc: Mask shift immediates to avoid illegal insns Richard Henderson
2012-03-25 22:27 ` [Qemu-devel] [PATCH 13/15] tcg-sparc: Use defines for temporaries Richard Henderson
2012-03-26 16:38   ` Blue Swirl
2012-03-25 22:27 ` [Qemu-devel] [PATCH 14/15] tcg-sparc: Add %g/%o registers to alloc_order Richard Henderson
2012-03-25 22:27 ` [Qemu-devel] [PATCH 15/15] tcg-sparc: Fix and enable direct TB chaining Richard Henderson

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.