diff options
author | Andreas Färber <afaerber@suse.de> | 2013-07-07 12:50:22 +0200 |
---|---|---|
committer | Andreas Färber <afaerber@suse.de> | 2013-07-27 00:04:16 +0200 |
commit | 213c19d69fb9c7537afb8539bbdf12dba90ba0ef (patch) | |
tree | e67aaf0d36f4944f7a48a080447394f9e5640df5 /gdbstub.c | |
parent | eabfc2398f3e4e553843c15b1e3a3af2a52a7fcb (diff) | |
download | qemu-213c19d69fb9c7537afb8539bbdf12dba90ba0ef.tar.gz |
target-cris: Move cpu_gdb_{read,write}_register()
Signed-off-by: Andreas Färber <afaerber@suse.de>
Diffstat (limited to 'gdbstub.c')
-rw-r--r-- | gdbstub.c | 105 |
1 files changed, 1 insertions, 104 deletions
@@ -566,111 +566,8 @@ static int put_packet(GDBState *s, const char *buf) #elif defined (TARGET_CRIS) -static int -read_register_crisv10(CPUCRISState *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]); - case 17: - GET_REG8(env->pregs[n - 16]); - case 20: - case 21: - GET_REG16(env->pregs[n - 16]); - default: - if (n >= 23) { - GET_REG32(env->pregs[n - 16]); - } - break; - } - } - return 0; -} - -static int cpu_gdb_read_register(CPUCRISState *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]); - } - - if (n >= 21 && n < 32) { - GET_REG32(env->pregs[n - 16]); - } - if (n >= 33 && n < 49) { - GET_REG32(env->sregs[srs][n - 33]); - } - switch (n) { - case 16: - GET_REG8(env->pregs[0]); - case 17: - GET_REG8(env->pregs[1]); - case 18: - GET_REG32(env->pregs[2]); - case 19: - GET_REG8(srs); - case 20: - GET_REG16(env->pregs[4]); - case 32: - GET_REG32(env->pc); - } - - return 0; -} - -static int cpu_gdb_write_register(CPUCRISState *env, uint8_t *mem_buf, int n) -{ - uint32_t tmp; - - if (n > 49) { - return 0; - } - - tmp = ldl_p(mem_buf); - - if (n < 16) { - env->regs[n] = tmp; - } - - if (n >= 21 && n < 32) { - env->pregs[n - 16] = tmp; - } - - /* FIXME: Should support function regs be writable? */ - switch (n) { - case 16: - return 1; - case 17: - return 1; - case 18: - env->pregs[PR_PID] = tmp; - break; - case 19: - return 1; - case 20: - return 2; - case 32: - env->pc = tmp; - break; - } +#include "target-cris/gdbstub.c" - return 4; -} #elif defined (TARGET_ALPHA) static int cpu_gdb_read_register(CPUAlphaState *env, uint8_t *mem_buf, int n) |