Revision 90431220
b/target-cris/cpu-qom.h | ||
---|---|---|
81 | 81 |
|
82 | 82 |
hwaddr cris_cpu_get_phys_page_debug(CPUState *cpu, vaddr addr); |
83 | 83 |
|
84 |
int crisv10_cpu_gdb_read_register(CPUState *cpu, uint8_t *buf, int reg); |
|
84 | 85 |
int cris_cpu_gdb_read_register(CPUState *cpu, uint8_t *buf, int reg); |
85 | 86 |
int cris_cpu_gdb_write_register(CPUState *cpu, uint8_t *buf, int reg); |
86 | 87 |
|
b/target-cris/cpu.c | ||
---|---|---|
175 | 175 |
|
176 | 176 |
ccc->vr = 8; |
177 | 177 |
cc->do_interrupt = crisv10_cpu_do_interrupt; |
178 |
cc->gdb_read_register = crisv10_cpu_gdb_read_register; |
|
178 | 179 |
} |
179 | 180 |
|
180 | 181 |
static void crisv9_cpu_class_init(ObjectClass *oc, void *data) |
... | ... | |
184 | 185 |
|
185 | 186 |
ccc->vr = 9; |
186 | 187 |
cc->do_interrupt = crisv10_cpu_do_interrupt; |
188 |
cc->gdb_read_register = crisv10_cpu_gdb_read_register; |
|
187 | 189 |
} |
188 | 190 |
|
189 | 191 |
static void crisv10_cpu_class_init(ObjectClass *oc, void *data) |
... | ... | |
193 | 195 |
|
194 | 196 |
ccc->vr = 10; |
195 | 197 |
cc->do_interrupt = crisv10_cpu_do_interrupt; |
198 |
cc->gdb_read_register = crisv10_cpu_gdb_read_register; |
|
196 | 199 |
} |
197 | 200 |
|
198 | 201 |
static void crisv11_cpu_class_init(ObjectClass *oc, void *data) |
... | ... | |
202 | 205 |
|
203 | 206 |
ccc->vr = 11; |
204 | 207 |
cc->do_interrupt = crisv10_cpu_do_interrupt; |
208 |
cc->gdb_read_register = crisv10_cpu_gdb_read_register; |
|
205 | 209 |
} |
206 | 210 |
|
207 | 211 |
static void crisv32_cpu_class_init(ObjectClass *oc, void *data) |
b/target-cris/gdbstub.c | ||
---|---|---|
21 | 21 |
#include "qemu-common.h" |
22 | 22 |
#include "exec/gdbstub.h" |
23 | 23 |
|
24 |
static int |
|
25 |
read_register_crisv10(CPUCRISState *env, uint8_t *mem_buf, int n) |
|
24 |
int crisv10_cpu_gdb_read_register(CPUState *cs, uint8_t *mem_buf, int n) |
|
26 | 25 |
{ |
26 |
CRISCPU *cpu = CRIS_CPU(cs); |
|
27 |
CPUCRISState *env = &cpu->env; |
|
28 |
|
|
27 | 29 |
if (n < 15) { |
28 | 30 |
return gdb_get_reg32(mem_buf, env->regs[n]); |
29 | 31 |
} |
... | ... | |
57 | 59 |
CPUCRISState *env = &cpu->env; |
58 | 60 |
uint8_t srs; |
59 | 61 |
|
60 |
if (env->pregs[PR_VR] < 32) { |
|
61 |
return read_register_crisv10(env, mem_buf, n); |
|
62 |
} |
|
63 |
|
|
64 | 62 |
srs = env->pregs[PR_SRS]; |
65 | 63 |
if (n < 16) { |
66 | 64 |
return gdb_get_reg32(mem_buf, env->regs[n]); |
Also available in: Unified diff