From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1M6sqi-0004u2-Pc for qemu-devel@nongnu.org; Wed, 20 May 2009 16:57:16 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1M6sqd-0004q7-Bk for qemu-devel@nongnu.org; Wed, 20 May 2009 16:57:15 -0400 Received: from [199.232.76.173] (port=43653 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1M6sqd-0004ps-0E for qemu-devel@nongnu.org; Wed, 20 May 2009 16:57:11 -0400 Received: from mail-fx0-f219.google.com ([209.85.220.219]:48716) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1M6sqc-0003BY-9Q for qemu-devel@nongnu.org; Wed, 20 May 2009 16:57:10 -0400 Received: by mail-fx0-f219.google.com with SMTP id 19so631479fxm.34 for ; Wed, 20 May 2009 13:57:09 -0700 (PDT) From: "Edgar E. Iglesias" Date: Wed, 20 May 2009 22:56:14 +0200 Message-Id: <1242852975-31043-12-git-send-email-edgar.iglesias@gmail.com> In-Reply-To: <1242852975-31043-11-git-send-email-edgar.iglesias@gmail.com> References: <1242852975-31043-1-git-send-email-edgar.iglesias@gmail.com> <1242852975-31043-2-git-send-email-edgar.iglesias@gmail.com> <1242852975-31043-3-git-send-email-edgar.iglesias@gmail.com> <1242852975-31043-4-git-send-email-edgar.iglesias@gmail.com> <1242852975-31043-5-git-send-email-edgar.iglesias@gmail.com> <1242852975-31043-6-git-send-email-edgar.iglesias@gmail.com> <1242852975-31043-7-git-send-email-edgar.iglesias@gmail.com> <1242852975-31043-8-git-send-email-edgar.iglesias@gmail.com> <1242852975-31043-9-git-send-email-edgar.iglesias@gmail.com> <1242852975-31043-10-git-send-email-edgar.iglesias@gmail.com> <1242852975-31043-11-git-send-email-edgar.iglesias@gmail.com> Subject: [Qemu-devel] [PATCH 12/13] microblaze: Add GDB stub support. List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: "Edgar E. Iglesias" Signed-off-by: Edgar E. Iglesias --- gdbstub.c | 32 ++++++++++++++++++++++++++++++++ 1 files changed, 32 insertions(+), 0 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index 3c34741..7b32fab 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1156,6 +1156,36 @@ static int cpu_gdb_write_register(CPUState *env, uint8_t *mem_buf, int n) return 4; } +#elif defined (TARGET_MICROBLAZE) + +#define NUM_CORE_REGS (32 + 5) + +static int cpu_gdb_read_register(CPUState *env, uint8_t *mem_buf, int n) +{ + if (n < 32) { + GET_REG32(env->regs[n]); + } else { + GET_REG32(env->sregs[n - 32]); + } + return 0; +} + +static int cpu_gdb_write_register(CPUState *env, uint8_t *mem_buf, int n) +{ + uint32_t tmp; + + if (n > NUM_CORE_REGS) + return 0; + + tmp = ldl_p(mem_buf); + + if (n < 32) { + env->regs[n] = tmp; + } else { + env->sregs[n - 32] = tmp; + } + return 4; +} #elif defined (TARGET_CRIS) #define NUM_CORE_REGS 49 @@ -1528,6 +1558,8 @@ static void gdb_set_cpu_pc(GDBState *s, target_ulong pc) s->c_cpu->pc = pc; #elif defined (TARGET_MIPS) s->c_cpu->active_tc.PC = pc; +#elif defined (TARGET_MICROBLAZE) + s->c_cpu->sregs[SR_PC] = pc; #elif defined (TARGET_CRIS) s->c_cpu->pc = pc; #elif defined (TARGET_ALPHA) -- 1.6.0.6