From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LrfMI-0007i1-NJ for qemu-devel@nongnu.org; Wed, 08 Apr 2009 17:30:58 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LrfMI-0007he-6N for qemu-devel@nongnu.org; Wed, 08 Apr 2009 17:30:58 -0400 Received: from [199.232.76.173] (port=46142 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LrfMH-0007ha-Tw for qemu-devel@nongnu.org; Wed, 08 Apr 2009 17:30:57 -0400 Received: from hall.aurel32.net ([88.191.82.174]:40946) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1LrfMH-00029u-Fq for qemu-devel@nongnu.org; Wed, 08 Apr 2009 17:30:57 -0400 Date: Wed, 8 Apr 2009 23:30:56 +0200 From: Aurelien Jarno Subject: Re: [Qemu-devel] [PATCH] factor out setting pc in gdbstub Message-ID: <20090408213056.GD26602@hall.aurel32.net> References: <1238268672-6686-1-git-send-email-froydnj@codesourcery.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <1238268672-6686-1-git-send-email-froydnj@codesourcery.com> Sender: Aurelien Jarno Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Nathan Froyd Cc: qemu-devel@nongnu.org On Sat, Mar 28, 2009 at 12:31:12PM -0700, Nathan Froyd wrote: > The code for handling the c and s packets both contain code for setting > the pc. Move that code out to a common function. > > Signed-off-by: Nathan Froyd > --- > gdbstub.c | 63 ++++++++++++++++++++++++------------------------------------ > 1 files changed, 25 insertions(+), 38 deletions(-) Thanks, applied. > diff --git a/gdbstub.c b/gdbstub.c > index 518c939..f6d2f1b 100644 > --- a/gdbstub.c > +++ b/gdbstub.c > @@ -1512,6 +1512,29 @@ static void gdb_breakpoint_remove_all(void) > } > } > > +static void gdb_set_cpu_pc(GDBState *s, target_ulong pc) > +{ > +#if defined(TARGET_I386) > + s->c_cpu->eip = pc; > + cpu_synchronize_state(s->c_cpu, 1); > +#elif defined (TARGET_PPC) > + s->c_cpu->nip = pc; > +#elif defined (TARGET_SPARC) > + s->c_cpu->pc = pc; > + s->c_cpu->npc = pc + 4; > +#elif defined (TARGET_ARM) > + s->c_cpu->regs[15] = pc; > +#elif defined (TARGET_SH4) > + s->c_cpu->pc = pc; > +#elif defined (TARGET_MIPS) > + s->c_cpu->active_tc.PC = pc; > +#elif defined (TARGET_CRIS) > + s->c_cpu->pc = pc; > +#elif defined (TARGET_ALPHA) > + s->c_cpu->pc = pc; > +#endif > +} > + > static int gdb_handle_packet(GDBState *s, const char *line_buf) > { > CPUState *env; > @@ -1542,25 +1565,7 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf) > case 'c': > if (*p != '\0') { > addr = strtoull(p, (char **)&p, 16); > -#if defined(TARGET_I386) > - s->c_cpu->eip = addr; > - cpu_synchronize_state(s->c_cpu, 1); > -#elif defined (TARGET_PPC) > - s->c_cpu->nip = addr; > -#elif defined (TARGET_SPARC) > - s->c_cpu->pc = addr; > - s->c_cpu->npc = addr + 4; > -#elif defined (TARGET_ARM) > - s->c_cpu->regs[15] = addr; > -#elif defined (TARGET_SH4) > - s->c_cpu->pc = addr; > -#elif defined (TARGET_MIPS) > - s->c_cpu->active_tc.PC = addr; > -#elif defined (TARGET_CRIS) > - s->c_cpu->pc = addr; > -#elif defined (TARGET_ALPHA) > - s->c_cpu->pc = addr; > -#endif > + gdb_set_cpu_pc(s, addr); > } > s->signal = 0; > gdb_continue(s); > @@ -1584,25 +1589,7 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf) > case 's': > if (*p != '\0') { > addr = strtoull(p, (char **)&p, 16); > -#if defined(TARGET_I386) > - s->c_cpu->eip = addr; > - cpu_synchronize_state(s->c_cpu, 1); > -#elif defined (TARGET_PPC) > - s->c_cpu->nip = addr; > -#elif defined (TARGET_SPARC) > - s->c_cpu->pc = addr; > - s->c_cpu->npc = addr + 4; > -#elif defined (TARGET_ARM) > - s->c_cpu->regs[15] = addr; > -#elif defined (TARGET_SH4) > - s->c_cpu->pc = addr; > -#elif defined (TARGET_MIPS) > - s->c_cpu->active_tc.PC = addr; > -#elif defined (TARGET_CRIS) > - s->c_cpu->pc = addr; > -#elif defined (TARGET_ALPHA) > - s->c_cpu->pc = addr; > -#endif > + gdb_set_cpu_pc(s, addr); > } > cpu_single_step(s->c_cpu, sstep_flags); > gdb_continue(s); > -- > 1.6.0.5 > > > > -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurelien@aurel32.net http://www.aurel32.net