From: Richard Henderson <rth@twiddle.net>
To: Peter Crosthwaite <peter.crosthwaite@xilinx.com>,
Peter Crosthwaite <crosthwaitepeter@gmail.com>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
"Peter Crosthwaite" <crosthwaite.peter@gmail.com>,
"Claudio Fontana" <claudio.fontana@huawei.com>,
"qemu-devel@nongnu.org Developers" <qemu-devel@nongnu.org>,
"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
"Andreas Färber" <afaerber@suse.de>
Subject: Re: [Qemu-devel] [PATCH qom v4 0/7] Unify and QOMify (target|monitor)_disas
Date: Mon, 6 Jul 2015 12:44:05 +0100 [thread overview]
Message-ID: <559A6A05.800@twiddle.net> (raw)
In-Reply-To: <CAEgOgz7RmKm+pfNCOWaXtSuQjfr6HgtscGRvShgxH-_+seScZA@mail.gmail.com>
On 07/05/2015 09:48 PM, Peter Crosthwaite wrote:
> Ping!
>
> If this or orphaned, I'd like to send the PULL on the H-freeze.
Didn't all this get reviewed? I thought it did...
r~
>
> Regards,
> Peter
>
> On Tue, Jun 23, 2015 at 8:57 PM, Peter Crosthwaite
> <crosthwaitepeter@gmail.com> wrote:
>> These two functions are mostly trying to do the same thing, which is
>> disassemble a target instruction (sequence) for printfing. The
>> architecture specific setup is largely duped between the two functions.
>>
>> The approach is to add a single QOM hook on the CPU level to setup the
>> disassembler (P1&2). The two stage flags system is removed. That is,
>> the old scheme, is for the translate/montitor code to pass in flags
>> that disas.c then interprets. Instead the entire job of setting up arch
>> specifics is outsourced to target-specific code (via the new QOM hook)
>> removing the need for the flags system. Both monitor_disas and
>> target_disas then calls this singly defined hook if it is available.
>>
>> Three architectures (microblaze, cris and ARM) are patched
>> to use the new QOMification and at the same time, make the
>> monitor_disas consistent with target_disas. The #if defined TARGET_FOO
>> for each is removed from disas.c (bringing us closer to the exciting
>> goal of no #ifdef TARGET_FOO in system mode code).
>>
>> Microblaze is trivial, the target_disas setup is directly applicable
>> to monitor_disas to bring in microblaze monitor disas support (P5).
>>
>> Cris had a small hiccup, a patch is needed to handle monitor_disas's
>> 0 buffer length (P6). Then cris is patched to enable monitor disas
>> in same way as microblaze (P7).
>>
>> ARM is the harder. The vixl A64 disas was hardcoded to fprintf with
>> a statically inited output stream (matching target_disas). The vixl
>> printfery is patched to be runtime variable (P3). P4 brings
>> ARM monitor disassembly online (via using the target_disas
>> implementation as the QOMified implementation).
>>
>> Changed since v3:
>> Minor commit message tweaks.
>> Fix CPP contructor argument order.
>>
>> Changed since v2 (RTH/PMM review):
>> Rebased on monitor+disas ENV_GET_CPU removal
>> Fixed minor comments (see indiv patches).
>>
>> Changed since v1 (RTH review):
>> Use QOMified approach.
>> Remove flags system.
>> Limit scope to only the 3 converted arches
>> Addressed comments on CPP constructor changes
>>
>> Peter Crosthwaite (7):
>> disas: Add print_insn to disassemble info
>> disas: QOMify target specific setup
>> disas: arm-a64: Make printfer and stream variable
>> disas: arm: QOMify target specific disas setup
>> disas: microblaze: QOMify target specific disas setup
>> disas: cris: Fix 0 buffer length case
>> disas: cris: QOMify target specific disas setup
>>
>> disas.c | 119 ++++++++++++++++++------------------------------
>> disas/arm-a64.cc | 22 +++++++--
>> disas/cris.c | 6 +--
>> include/disas/bfd.h | 6 +++
>> include/qom/cpu.h | 4 ++
>> target-arm/cpu.c | 35 ++++++++++++++
>> target-cris/cpu.c | 16 +++++++
>> target-microblaze/cpu.c | 8 ++++
>> 8 files changed, 133 insertions(+), 83 deletions(-)
>>
>> --
>> 1.9.1
>>
>>
next prev parent reply other threads:[~2015-07-06 11:44 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-24 3:57 [Qemu-devel] [PATCH qom v4 0/7] Unify and QOMify (target|monitor)_disas Peter Crosthwaite
2015-06-24 3:57 ` [Qemu-devel] [PATCH qom v4 1/7] disas: Add print_insn to disassemble info Peter Crosthwaite
2015-06-24 3:57 ` [Qemu-devel] [PATCH qom v4 2/7] disas: QOMify target specific setup Peter Crosthwaite
2015-06-24 3:57 ` [Qemu-devel] [PATCH qom v4 3/7] disas: arm-a64: Make printfer and stream variable Peter Crosthwaite
2015-06-24 3:57 ` [Qemu-devel] [PATCH qom v4 4/7] disas: arm: QOMify target specific disas setup Peter Crosthwaite
2015-06-24 3:57 ` [Qemu-devel] [PATCH qom v4 5/7] disas: microblaze: " Peter Crosthwaite
2015-06-24 3:57 ` [Qemu-devel] [PATCH qom v4 6/7] disas: cris: Fix 0 buffer length case Peter Crosthwaite
2015-06-24 3:57 ` [Qemu-devel] [PATCH qom v4 7/7] disas: cris: QOMify target specific disas setup Peter Crosthwaite
2015-07-05 20:48 ` [Qemu-devel] [PATCH qom v4 0/7] Unify and QOMify (target|monitor)_disas Peter Crosthwaite
2015-07-06 11:44 ` Richard Henderson [this message]
2015-07-06 11:48 ` Andreas Färber
2015-07-06 16:41 ` Peter Crosthwaite
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=559A6A05.800@twiddle.net \
--to=rth@twiddle.net \
--cc=afaerber@suse.de \
--cc=claudio.fontana@huawei.com \
--cc=crosthwaite.peter@gmail.com \
--cc=crosthwaitepeter@gmail.com \
--cc=edgar.iglesias@gmail.com \
--cc=peter.crosthwaite@xilinx.com \
--cc=peter.maydell@linaro.org \
--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 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.