qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Peter Crosthwaite <crosthwaitepeter@gmail.com>
To: qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org,
	Peter Crosthwaite <crosthwaite.peter@gmail.com>,
	claudio.fontana@huawei.com, egdar.iglesias@gmail.com,
	afaerber@suse.de, rth@twiddle.net
Subject: [Qemu-devel] [PATCH v3 0/7] Unify and QOMify (target|monitor)_disas
Date: Sun, 24 May 2015 15:47:13 -0700	[thread overview]
Message-ID: <cover.1432506704.git.crosthwaite.peter@gmail.com> (raw)

Depends on series: [PATCH v2 0/2] monitor+disas: Remove uses of ENV_GET_CPU

Intended for QOM queue.

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 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

             reply	other threads:[~2015-05-24 22:47 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-24 22:47 Peter Crosthwaite [this message]
2015-05-24 22:47 ` [Qemu-devel] [PATCH v3 1/7] disas: Add print_insn to disassemble info Peter Crosthwaite
2015-05-24 22:47 ` [Qemu-devel] [PATCH v3 2/7] disas: QOMify target specific setup Peter Crosthwaite
2015-05-24 22:47 ` [Qemu-devel] [PATCH v3 3/7] disas: arm-a64: Make printfer and stream variable Peter Crosthwaite
2015-06-24  3:32   ` Peter Crosthwaite
2015-05-24 22:47 ` [Qemu-devel] [PATCH v3 4/7] disas: arm: QOMify target specific disas setup Peter Crosthwaite
2015-05-24 22:47 ` [Qemu-devel] [PATCH v3 5/7] disas: microblaze: " Peter Crosthwaite
2015-05-29  4:43   ` Peter Crosthwaite
2015-05-29  4:45   ` Edgar E. Iglesias
2015-05-24 22:47 ` [Qemu-devel] [PATCH v3 6/7] disas: cris: Fix 0 buffer length case Peter Crosthwaite
2015-05-29  5:21   ` Edgar E. Iglesias
2015-05-24 22:47 ` [Qemu-devel] [PATCH v3 7/7] disas: cris: QOMify target specific disas setup Peter Crosthwaite
2015-05-29  5:22   ` Edgar E. Iglesias

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=cover.1432506704.git.crosthwaite.peter@gmail.com \
    --to=crosthwaitepeter@gmail.com \
    --cc=afaerber@suse.de \
    --cc=claudio.fontana@huawei.com \
    --cc=crosthwaite.peter@gmail.com \
    --cc=egdar.iglesias@gmail.com \
    --cc=peter.maydell@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).