Revision 4a0b59fe gdbstub.c
b/gdbstub.c | ||
---|---|---|
1249 | 1249 |
|
1250 | 1250 |
#define NUM_CORE_REGS 49 |
1251 | 1251 |
|
1252 |
static int |
|
1253 |
read_register_crisv10(CPUState *env, uint8_t *mem_buf, int n) |
|
1254 |
{ |
|
1255 |
if (n < 15) { |
|
1256 |
GET_REG32(env->regs[n]); |
|
1257 |
} |
|
1258 |
|
|
1259 |
if (n == 15) { |
|
1260 |
GET_REG32(env->pc); |
|
1261 |
} |
|
1262 |
|
|
1263 |
if (n < 32) { |
|
1264 |
switch (n) { |
|
1265 |
case 16: |
|
1266 |
GET_REG8(env->pregs[n - 16]); |
|
1267 |
break; |
|
1268 |
case 17: |
|
1269 |
GET_REG8(env->pregs[n - 16]); |
|
1270 |
break; |
|
1271 |
case 20: |
|
1272 |
case 21: |
|
1273 |
GET_REG16(env->pregs[n - 16]); |
|
1274 |
break; |
|
1275 |
default: |
|
1276 |
if (n >= 23) { |
|
1277 |
GET_REG32(env->pregs[n - 16]); |
|
1278 |
} |
|
1279 |
break; |
|
1280 |
} |
|
1281 |
} |
|
1282 |
return 0; |
|
1283 |
} |
|
1284 |
|
|
1252 | 1285 |
static int cpu_gdb_read_register(CPUState *env, uint8_t *mem_buf, int n) |
1253 | 1286 |
{ |
1254 | 1287 |
uint8_t srs; |
1255 | 1288 |
|
1289 |
if (env->pregs[PR_VR] < 32) |
|
1290 |
return read_register_crisv10(env, mem_buf, n); |
|
1291 |
|
|
1256 | 1292 |
srs = env->pregs[PR_SRS]; |
1257 | 1293 |
if (n < 16) { |
1258 | 1294 |
GET_REG32(env->regs[n]); |
Also available in: Unified diff