qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH qom v4 0/7] Unify and QOMify (target|monitor)_di


From: Peter Crosthwaite
Subject: Re: [Qemu-devel] [PATCH qom v4 0/7] Unify and QOMify (target|monitor)_disas
Date: Sun, 5 Jul 2015 13:48:22 -0700

Ping!

If this or orphaned, I'd like to send the PULL on the H-freeze.

Regards,
Peter

On Tue, Jun 23, 2015 at 8:57 PM, Peter Crosthwaite
<address@hidden> 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
>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]