cris: Add CRISv10 gdbstub support.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
This commit is contained in:
parent
4ffb9ae2e1
commit
4a0b59fe3b
36
gdbstub.c
36
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
|
#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)
|
static int cpu_gdb_read_register(CPUState *env, uint8_t *mem_buf, int n)
|
||||||
{
|
{
|
||||||
uint8_t srs;
|
uint8_t srs;
|
||||||
|
|
||||||
|
if (env->pregs[PR_VR] < 32)
|
||||||
|
return read_register_crisv10(env, mem_buf, n);
|
||||||
|
|
||||||
srs = env->pregs[PR_SRS];
|
srs = env->pregs[PR_SRS];
|
||||||
if (n < 16) {
|
if (n < 16) {
|
||||||
GET_REG32(env->regs[n]);
|
GET_REG32(env->regs[n]);
|
||||||
|
|
Loading…
Reference in a new issue