From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38490) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZC4ot-0002kB-FB for qemu-devel@nongnu.org; Mon, 06 Jul 2015 07:44:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZC4oq-0003S7-7t for qemu-devel@nongnu.org; Mon, 06 Jul 2015 07:44:19 -0400 Received: from mail-qk0-x229.google.com ([2607:f8b0:400d:c09::229]:33473) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZC4oq-0003Rt-1v for qemu-devel@nongnu.org; Mon, 06 Jul 2015 07:44:16 -0400 Received: by qkhu186 with SMTP id u186so114778008qkh.0 for ; Mon, 06 Jul 2015 04:44:15 -0700 (PDT) Sender: Richard Henderson References: From: Richard Henderson Message-ID: <559A6A05.800@twiddle.net> Date: Mon, 6 Jul 2015 12:44:05 +0100 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH qom v4 0/7] Unify and QOMify (target|monitor)_disas List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Crosthwaite , Peter Crosthwaite Cc: Peter Maydell , Peter Crosthwaite , Claudio Fontana , "qemu-devel@nongnu.org Developers" , "Edgar E. Iglesias" , =?UTF-8?Q?Andreas_F=c3=a4rber?= 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 > 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 >> >>