cris: Add CRISv10 gdbstub support.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
This commit is contained in:
Edgar E. Iglesias 2010-02-20 19:51:56 +01:00
parent 4ffb9ae2e1
commit 4a0b59fe3b
1 changed files with 36 additions and 0 deletions

View File

@ -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]);