principle of QEMU CPU emulation principle of QEMU CPU emulation linux linux

principle of QEMU CPU emulation


Please see this file for the C-level modelling of the state of an ARM CPU as done by QEMU.

It's pretty straight-forward, and (of course) as you suspect the registers (and all other state) are modelled as C variables.

The core structure begins:

typedef struct CPUARMState {    /* Regs for current mode.  */    uint32_t regs[16];   /* Frequently accessed CPSR bits are stored separately for efficiency.      This contains all the other bits.  Use cpsr_{read,write} to access      the whole CPSR.  */   uint32_t uncached_cpsr;   uint32_t spsr;