Revision 0c45d3d4 gdbstub.c

b/gdbstub.c
1462 1462

  
1463 1463
    return r;
1464 1464
}
1465
#elif defined (TARGET_LM32)
1466

  
1467
#include "hw/lm32_pic.h"
1468
#define NUM_CORE_REGS (32 + 7)
1469

  
1470
static int cpu_gdb_read_register(CPUState *env, uint8_t *mem_buf, int n)
1471
{
1472
    if (n < 32) {
1473
        GET_REG32(env->regs[n]);
1474
    } else {
1475
        switch (n) {
1476
        case 32:
1477
            GET_REG32(env->pc);
1478
            break;
1479
        /* FIXME: put in right exception ID */
1480
        case 33:
1481
            GET_REG32(0);
1482
            break;
1483
        case 34:
1484
            GET_REG32(env->eba);
1485
            break;
1486
        case 35:
1487
            GET_REG32(env->deba);
1488
            break;
1489
        case 36:
1490
            GET_REG32(env->ie);
1491
            break;
1492
        case 37:
1493
            GET_REG32(lm32_pic_get_im(env->pic_state));
1494
            break;
1495
        case 38:
1496
            GET_REG32(lm32_pic_get_ip(env->pic_state));
1497
            break;
1498
        }
1499
    }
1500
    return 0;
1501
}
1502

  
1503
static int cpu_gdb_write_register(CPUState *env, uint8_t *mem_buf, int n)
1504
{
1505
    uint32_t tmp;
1506

  
1507
    if (n > NUM_CORE_REGS) {
1508
        return 0;
1509
    }
1510

  
1511
    tmp = ldl_p(mem_buf);
1512

  
1513
    if (n < 32) {
1514
        env->regs[n] = tmp;
1515
    } else {
1516
        switch (n) {
1517
        case 32:
1518
            env->pc = tmp;
1519
            break;
1520
        case 34:
1521
            env->eba = tmp;
1522
            break;
1523
        case 35:
1524
            env->deba = tmp;
1525
            break;
1526
        case 36:
1527
            env->ie = tmp;
1528
            break;
1529
        case 37:
1530
            lm32_pic_set_im(env->pic_state, tmp);
1531
            break;
1532
        case 38:
1533
            lm32_pic_set_ip(env->pic_state, tmp);
1534
            break;
1535
        }
1536
    }
1537
    return 4;
1538
}
1465 1539
#else
1466 1540

  
1467 1541
#define NUM_CORE_REGS 0
......
1737 1811
#elif defined (TARGET_S390X)
1738 1812
    cpu_synchronize_state(s->c_cpu);
1739 1813
    s->c_cpu->psw.addr = pc;
1814
#elif defined (TARGET_LM32)
1815
    s->c_cpu->pc = pc;
1740 1816
#endif
1741 1817
}
1742 1818

  

Also available in: Unified diff