From: Edgar E. Iglesias Date: Sat, 20 Feb 2010 18:51:56 +0000 (+0100) Subject: cris: Add CRISv10 gdbstub support. X-Git-Tag: v0.13.0-rc0~1299 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=4a0b59fe3b245f972a764d276df45ccd23e81972;p=qemu.git cris: Add CRISv10 gdbstub support. Signed-off-by: Edgar E. Iglesias --- diff --git a/gdbstub.c b/gdbstub.c index 80477be6a..91c5f689d 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1249,10 +1249,46 @@ static int cpu_gdb_write_register(CPUState *env, uint8_t *mem_buf, int n) #define NUM_CORE_REGS 49 +static int +read_register_crisv10(CPUState *env, uint8_t *mem_buf, int n) +{ + if (n < 15) { + GET_REG32(env->regs[n]); + } + + if (n == 15) { + GET_REG32(env->pc); + } + + if (n < 32) { + switch (n) { + case 16: + GET_REG8(env->pregs[n - 16]); + break; + case 17: + GET_REG8(env->pregs[n - 16]); + break; + case 20: + case 21: + GET_REG16(env->pregs[n - 16]); + break; + default: + if (n >= 23) { + GET_REG32(env->pregs[n - 16]); + } + break; + } + } + return 0; +} + static int cpu_gdb_read_register(CPUState *env, uint8_t *mem_buf, int n) { uint8_t srs; + if (env->pregs[PR_VR] < 32) + return read_register_crisv10(env, mem_buf, n); + srs = env->pregs[PR_SRS]; if (n < 16) { GET_REG32(env->regs[n]);