* [Qemu-devel] [PATCH] factor out setting pc in gdbstub
@ 2009-03-28 19:31 Nathan Froyd
2009-03-30 16:02 ` [Qemu-devel] " Jan Kiszka
2009-04-08 21:30 ` [Qemu-devel] " Aurelien Jarno
0 siblings, 2 replies; 3+ messages in thread
From: Nathan Froyd @ 2009-03-28 19:31 UTC (permalink / raw)
To: qemu-devel
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 <froydnj@codesourcery.com>
---
gdbstub.c | 63 ++++++++++++++++++++++++------------------------------------
1 files changed, 25 insertions(+), 38 deletions(-)
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
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [Qemu-devel] Re: [PATCH] factor out setting pc in gdbstub
2009-03-28 19:31 [Qemu-devel] [PATCH] factor out setting pc in gdbstub Nathan Froyd
@ 2009-03-30 16:02 ` Jan Kiszka
2009-04-08 21:30 ` [Qemu-devel] " Aurelien Jarno
1 sibling, 0 replies; 3+ messages in thread
From: Jan Kiszka @ 2009-03-30 16:02 UTC (permalink / raw)
To: qemu-devel
[-- Attachment #1: Type: text/plain, Size: 3363 bytes --]
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 <froydnj@codesourcery.com>
Yep, that makes it better.
Acked-by: Jan Kiszka <jan.kiszka@siemens.com>
> ---
> gdbstub.c | 63 ++++++++++++++++++++++++------------------------------------
> 1 files changed, 25 insertions(+), 38 deletions(-)
>
> 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);
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 257 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PATCH] factor out setting pc in gdbstub
2009-03-28 19:31 [Qemu-devel] [PATCH] factor out setting pc in gdbstub Nathan Froyd
2009-03-30 16:02 ` [Qemu-devel] " Jan Kiszka
@ 2009-04-08 21:30 ` Aurelien Jarno
1 sibling, 0 replies; 3+ messages in thread
From: Aurelien Jarno @ 2009-04-08 21:30 UTC (permalink / raw)
To: Nathan Froyd; +Cc: qemu-devel
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 <froydnj@codesourcery.com>
> ---
> 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
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-04-08 21:30 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-28 19:31 [Qemu-devel] [PATCH] factor out setting pc in gdbstub Nathan Froyd
2009-03-30 16:02 ` [Qemu-devel] " Jan Kiszka
2009-04-08 21:30 ` [Qemu-devel] " Aurelien Jarno
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).