From: Richard Henderson <rth@twiddle.net>
To: qemu-devel@nongnu.org
Cc: mark.cave-ayland@ilande.co.uk
Subject: [Qemu-devel] [PATCH v4 00/24] target-sparc improvements
Date: Mon, 27 Jun 2016 17:38:49 -0700 [thread overview]
Message-ID: <1467074353-26130-1-git-send-email-rth@twiddle.net> (raw)
The primary focus of this patch set is to reduce the number of
helpers that modify TCG globals, and thus increase the lifetime
of those globals within each TB, and thus decrease the number
of times that tcg must spill and fill them from backing store.
As a byproduct, I also implement the bulk of the interesting v9 ASIs
inline, thus exposing e.g. the little-endian loads and stores as
simple tcg operations.
The patch set is relative to my outstanding tcg pull request.
For reference, the complete tree can be found at
git://github.com/rth7680/qemu.git tgt-sparc-2
Changes from v3 to v4:
* Re-do the UA2005 commit change, which apparently got lost in v3.
* Rebased on aa8151b7df, which contains fix for the ldstub issue.
Changes from v2 to v3:
* Add ASI_BLK_COMMIT_[PS] to patch 19.
This fixes the illegal instruction that Artyom reported.
* Add gen_address_mask calls to all direct accesses.
This fixes a follow-on segv that affected the debian install.
Changes from v1 to v2:
* Commit message refers to UA2005 instead of UA2011 when
introducing new asi.h defines. (Artyom)
* Drop MMU_REAL_IDX, and inline handling of ASI_REAL_*.
This appears to be the source of the regression that Artyom
identified wrt ss5 emulation.
r~
Richard Henderson (24):
target-sparc: Mark more flags for helpers
target-sparc: Remove softint as a TCG global
target-sparc: Store mmu index in TB flags
target-sparc: Create gen_exception
target-sparc: Unify asi handling between 32 and 64-bit
target-sparc: Store %asi in TB flags
target-sparc: Introduce get_asi
target-sparc: Pass TCGMemOp to gen_ld/st_asi
target-sparc: Import linux/arch/sparc/include/uapi/asm/asi.h
target-sparc: Add UA2005 defines to asi.h
target-sparc: Use defines from asi.h
target-sparc: Directly implement easy ld/st asis
target-sparc: Use QT0 to return results from ldda
target-sparc: Introduce gen_check_align
target-sparc: Directly implement easy ldd/std asis
target-sparc: Fix obvious error in ASI_M_BFILL
target-sparc: Pass TCGMemOp constants to helper_ld/st_asi
target-sparc: Directly implement easy ldf/stf asis
target-sparc: Directly implement block and short ldf/stf asis
target-sparc: Remove helper_ldf_asi, helper_stf_asi
target-sparc: Use explicit writes to cpu_fsr
target-sparc: Use cpu_fsr in stfsr
target-sparc: Use cpu_loop_exit_restore from
helper_check_ieee_exceptions
target-sparc: Elide duplicate updates to fprs
target-sparc/asi.h | 311 +++++++++++
target-sparc/cpu.h | 28 +-
target-sparc/fop_helper.c | 230 +++-----
target-sparc/helper.h | 168 +++---
target-sparc/ldst_helper.c | 696 +++++++++++-------------
target-sparc/translate.c | 1273 ++++++++++++++++++++++++++++----------------
6 files changed, 1607 insertions(+), 1099 deletions(-)
create mode 100644 target-sparc/asi.h
--
2.5.5
next reply other threads:[~2016-06-28 0:39 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-28 0:38 Richard Henderson [this message]
2016-06-28 0:38 ` [Qemu-devel] [PATCH v4 01/24] target-sparc: Mark more flags for helpers Richard Henderson
2016-06-28 0:38 ` [Qemu-devel] [PATCH v4 02/24] target-sparc: Remove softint as a TCG global Richard Henderson
2016-06-28 0:38 ` [Qemu-devel] [PATCH v4 03/24] target-sparc: Store mmu index in TB flags Richard Henderson
2016-06-28 0:38 ` [Qemu-devel] [PATCH v4 04/24] target-sparc: Create gen_exception Richard Henderson
2016-06-28 0:38 ` [Qemu-devel] [PATCH v4 05/24] target-sparc: Unify asi handling between 32 and 64-bit Richard Henderson
2016-06-28 0:38 ` [Qemu-devel] [PATCH v4 06/24] target-sparc: Store %asi in TB flags Richard Henderson
2016-06-28 0:38 ` [Qemu-devel] [PATCH v4 07/24] target-sparc: Introduce get_asi Richard Henderson
2016-06-28 0:38 ` [Qemu-devel] [PATCH v4 08/24] target-sparc: Pass TCGMemOp to gen_ld/st_asi Richard Henderson
2016-06-28 0:38 ` [Qemu-devel] [PATCH v4 09/24] target-sparc: Import linux/arch/sparc/include/uapi/asm/asi.h Richard Henderson
2016-06-28 0:38 ` [Qemu-devel] [PATCH v4 10/24] target-sparc: Add UA2005 defines to asi.h Richard Henderson
2016-06-28 0:39 ` [Qemu-devel] [PATCH v4 11/24] target-sparc: Use defines from asi.h Richard Henderson
2016-06-28 0:39 ` [Qemu-devel] [PATCH v4 12/24] target-sparc: Directly implement easy ld/st asis Richard Henderson
2016-06-28 0:39 ` [Qemu-devel] [PATCH v4 13/24] target-sparc: Use QT0 to return results from ldda Richard Henderson
2016-06-28 0:39 ` [Qemu-devel] [PATCH v4 14/24] target-sparc: Introduce gen_check_align Richard Henderson
2016-06-28 0:39 ` [Qemu-devel] [PATCH v4 15/24] target-sparc: Directly implement easy ldd/std asis Richard Henderson
2016-06-28 0:39 ` [Qemu-devel] [PATCH v4 16/24] target-sparc: Fix obvious error in ASI_M_BFILL Richard Henderson
2016-06-28 0:39 ` [Qemu-devel] [PATCH v4 17/24] target-sparc: Pass TCGMemOp constants to helper_ld/st_asi Richard Henderson
2016-06-28 0:39 ` [Qemu-devel] [PATCH v4 18/24] target-sparc: Directly implement easy ldf/stf asis Richard Henderson
2016-06-28 0:39 ` [Qemu-devel] [PATCH v4 19/24] target-sparc: Directly implement block and short " Richard Henderson
2016-06-28 0:39 ` [Qemu-devel] [PATCH v4 20/24] target-sparc: Remove helper_ldf_asi, helper_stf_asi Richard Henderson
2016-06-28 0:39 ` [Qemu-devel] [PATCH v4 21/24] target-sparc: Use explicit writes to cpu_fsr Richard Henderson
2016-06-28 0:39 ` [Qemu-devel] [PATCH v4 22/24] target-sparc: Use cpu_fsr in stfsr Richard Henderson
2016-06-28 0:39 ` [Qemu-devel] [PATCH v4 23/24] target-sparc: Use cpu_loop_exit_restore from helper_check_ieee_exceptions Richard Henderson
2016-06-28 0:39 ` [Qemu-devel] [PATCH v4 24/24] target-sparc: Elide duplicate updates to fprs Richard Henderson
2016-06-28 22:44 ` [Qemu-devel] [PATCH v4 00/24] target-sparc improvements Mark Cave-Ayland
2016-06-29 4:14 ` Richard Henderson
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=1467074353-26130-1-git-send-email-rth@twiddle.net \
--to=rth@twiddle.net \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=qemu-devel@nongnu.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).