From: Peter Maydell <peter.maydell@linaro.org>
To: qemu-devel@nongnu.org
Cc: "John Rigby" <john.rigby@linaro.org>,
patches@linaro.org, "Blue Swirl" <blauwirbel@gmail.com>,
"Andreas Färber" <afaerber@suse.de>,
"Aurelien Jarno" <aurelien@aurel32.net>,
"Richard Henderson" <rth@twiddle.net>
Subject: [Qemu-devel] [PATCH 00/10] target-arm: fix TCGv usage (AArch64 prep)
Date: Thu, 23 May 2013 12:59:54 +0100 [thread overview]
Message-ID: <1369310404-5285-1-git-send-email-peter.maydell@linaro.org> (raw)
This patch series is preparatory cleanup for the impending
AArch64 support.
Patch 1 replaces all the uses of TCGv, tcg_temp_new(), etc in the
current 32 bit ARM decoder with the specifically-TCGv_i32 versions.
This is necessary for supporting a 64-bit core, which will have
TARGET_LONG_BITS==64 (and so TCGv == TCGv_i64) but still wants 32 bit
vaddrs, register sizes, etc in the A32/T32/T16 instruction sets. The
mechanical conversion is correct for everything except the arguments
to tcg_gen_qemu_{ld,st}*, which we handle separately later.
Patches 2-9 remove the gen_ld* and gen_st* helper functions in favour
of open-coding the creation/deletion of the TCG temp. I think this
makes the code easier to understand because the temp creation and
deletion is all at the same level of the code and it reduces the
current confusing situation where some gen_ functions will destroy a
temp they're passed and some will not. I think it also brings it
closer into line with other targets. That said, if there's pushback
that this part of the patchset is going in the wrong direction I can
drop it. (Conversely, if people like it then there are other
functions like load_reg() and store_reg() which could also be changed
not to create/destroy temporaries.)
Patch 10 fixes the load/store bits that patch 1 did not, by
abstracting out "AArch32 load/store" into gen functions which
extend/truncate the 32 bit values to 64 bits as necessary. NB that
the TARGET_LONG_BITS==64 parts are only compile-tested. I include it
in this series because it completes the work that patch 1 starts,
and as motivation/indication of direction.
Peter Maydell (10):
target-arm: Don't use TCGv when we mean TCGv_i32
target-arm: Remove gen_ld64() and gen_st64()
target-arm: Remove uses of gen_{ld,st}* from iWMMXt code
target-arm: Remove uses of gen_{ld,st}* from Neon code
target-arm: Remove use of gen_{ld,st}* from ldrex/strex
target-arm: Remove gen_{ld,st}* from basic ARM insns
target-arm: Remove gen_{ld,st}* from Thumb insns
target-arm: Remove gen_{ld,st}* from thumb2 decoder
target-arm: Remove gen_{ld,st}* definitions
target-arm: Abstract out load/store from a vaddr in AArch32
target-arm/translate.c | 862 +++++++++++++++++++++++++++---------------------
1 file changed, 490 insertions(+), 372 deletions(-)
--
1.7.9.5
next reply other threads:[~2013-05-23 12:25 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-23 11:59 Peter Maydell [this message]
2013-05-23 11:59 ` [Qemu-devel] [PATCH 01/10] target-arm: Don't use TCGv when we mean TCGv_i32 Peter Maydell
2013-05-23 16:43 ` Richard Henderson
2013-05-23 11:59 ` [Qemu-devel] [PATCH 02/10] target-arm: Remove gen_ld64() and gen_st64() Peter Maydell
2013-05-23 16:44 ` Richard Henderson
2013-05-23 11:59 ` [Qemu-devel] [PATCH 03/10] target-arm: Remove uses of gen_{ld, st}* from iWMMXt code Peter Maydell
2013-05-23 16:46 ` Richard Henderson
2013-05-23 11:59 ` [Qemu-devel] [PATCH 04/10] target-arm: Remove uses of gen_{ld, st}* from Neon code Peter Maydell
2013-05-23 11:59 ` [Qemu-devel] [PATCH 05/10] target-arm: Remove use of gen_{ld, st}* from ldrex/strex Peter Maydell
2013-05-23 12:00 ` [Qemu-devel] [PATCH 06/10] target-arm: Remove gen_{ld, st}* from basic ARM insns Peter Maydell
2013-05-23 12:00 ` [Qemu-devel] [PATCH 07/10] target-arm: Remove gen_{ld, st}* from Thumb insns Peter Maydell
2013-05-23 12:00 ` [Qemu-devel] [PATCH 08/10] target-arm: Remove gen_{ld, st}* from thumb2 decoder Peter Maydell
2013-05-23 12:00 ` [Qemu-devel] [PATCH 09/10] target-arm: Remove gen_{ld, st}* definitions Peter Maydell
2013-05-23 12:00 ` [Qemu-devel] [PATCH 10/10] target-arm: Abstract out load/store from a vaddr in AArch32 Peter Maydell
2013-05-23 16:53 ` Richard Henderson
2013-05-24 15:54 ` Peter Maydell
2013-05-26 17:03 ` [Qemu-devel] [PATCH 00/10] target-arm: fix TCGv usage (AArch64 prep) Blue Swirl
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=1369310404-5285-1-git-send-email-peter.maydell@linaro.org \
--to=peter.maydell@linaro.org \
--cc=afaerber@suse.de \
--cc=aurelien@aurel32.net \
--cc=blauwirbel@gmail.com \
--cc=john.rigby@linaro.org \
--cc=patches@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/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).