From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1L9T1H-0004Iv-GP for qemu-devel@nongnu.org; Sun, 07 Dec 2008 18:26:35 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1L9T1G-0004I7-K9 for qemu-devel@nongnu.org; Sun, 07 Dec 2008 18:26:34 -0500 Received: from [199.232.76.173] (port=39321 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1L9T1G-0004Hx-Dt for qemu-devel@nongnu.org; Sun, 07 Dec 2008 18:26:34 -0500 Received: from savannah.gnu.org ([199.232.41.3]:56962 helo=sv.gnu.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1L9T1G-0006LU-1N for qemu-devel@nongnu.org; Sun, 07 Dec 2008 18:26:34 -0500 Received: from cvs.savannah.gnu.org ([199.232.41.69]) by sv.gnu.org with esmtp (Exim 4.63) (envelope-from ) id 1L9T1F-0001lG-7L for qemu-devel@nongnu.org; Sun, 07 Dec 2008 23:26:33 +0000 Received: from aurel32 by cvs.savannah.gnu.org with local (Exim 4.63) (envelope-from ) id 1L9T1E-0001lC-VX for qemu-devel@nongnu.org; Sun, 07 Dec 2008 23:26:33 +0000 MIME-Version: 1.0 Errors-To: aurel32 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Aurelien Jarno Message-Id: Date: Sun, 07 Dec 2008 23:26:32 +0000 Subject: [Qemu-devel] [5945] target-alpha: gdb-stub support Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Revision: 5945 http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5945 Author: aurel32 Date: 2008-12-07 23:26:32 +0000 (Sun, 07 Dec 2008) Log Message: ----------- target-alpha: gdb-stub support (Vince Weaver) Modified Paths: -------------- trunk/gdbstub.c trunk/target-alpha/translate.c Modified: trunk/gdbstub.c =================================================================== --- trunk/gdbstub.c 2008-12-07 23:26:24 UTC (rev 5944) +++ trunk/gdbstub.c 2008-12-07 23:26:32 UTC (rev 5945) @@ -990,6 +990,56 @@ return 4; } +#elif defined (TARGET_ALPHA) + +#define NUM_CORE_REGS 65 + +static int cpu_gdb_read_register(CPUState *env, uint8_t *mem_buf, int n) +{ + if (n < 31) { + GET_REGL(env->ir[n]); + } + else if (n == 31) { + GET_REGL(0); + } + else if (n<63) { + uint64_t val; + + val=*((uint64_t *)&env->fir[n-32]); + GET_REGL(val); + } + else if (n==63) { + GET_REGL(env->fpcr); + } + else if (n==64) { + GET_REGL(env->pc); + } + else { + GET_REGL(0); + } + + return 0; +} + +static int cpu_gdb_write_register(CPUState *env, uint8_t *mem_buf, int n) +{ + target_ulong tmp; + tmp = ldtul_p(mem_buf); + + if (n < 31) { + env->ir[n] = tmp; + } + + if (n > 31 && n < 63) { + env->fir[n - 32] = ldfl_p(mem_buf); + } + + if (n == 64 ) { + env->pc=tmp; + } + + return 8; +} #else #define NUM_CORE_REGS 0 @@ -1277,6 +1327,8 @@ 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_continue(s); @@ -1313,6 +1365,8 @@ 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 } cpu_single_step(s->c_cpu, sstep_flags); Modified: trunk/target-alpha/translate.c =================================================================== --- trunk/target-alpha/translate.c 2008-12-07 23:26:24 UTC (rev 5944) +++ trunk/target-alpha/translate.c 2008-12-07 23:26:32 UTC (rev 5945) @@ -2407,10 +2407,15 @@ * generation */ if (((ctx.pc & (TARGET_PAGE_SIZE - 1)) == 0) || - (env->singlestep_enabled) || num_insns >= max_insns) { break; } + + if (env->singlestep_enabled) { + gen_excp(&ctx, EXCP_DEBUG, 0); + break; + } + #if defined (DO_SINGLE_STEP) break; #endif