summary refs log tree commit diff stats
path: root/gdbstub.c
diff options
context:
space:
mode:
authorAndreas Färber <afaerber@suse.de>2013-07-07 12:50:22 +0200
committerAndreas Färber <afaerber@suse.de>2013-07-27 00:04:16 +0200
commit213c19d69fb9c7537afb8539bbdf12dba90ba0ef (patch)
treee67aaf0d36f4944f7a48a080447394f9e5640df5 /gdbstub.c
parenteabfc2398f3e4e553843c15b1e3a3af2a52a7fcb (diff)
downloadfocaccia-qemu-213c19d69fb9c7537afb8539bbdf12dba90ba0ef.tar.gz
focaccia-qemu-213c19d69fb9c7537afb8539bbdf12dba90ba0ef.zip
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.c105
1 files changed, 1 insertions, 104 deletions
diff --git a/gdbstub.c b/gdbstub.c
index ab030b5dcb..9ffb41f6dd 100644
--- a/gdbstub.c
+++ b/gdbstub.c
@@ -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)