56c56
< ((%(reg_idx)s == PCReg) ? (xc->readPC() + 8) :
---
> ((%(reg_idx)s == PCReg) ? ((xc->readPC() & ~PcModeMask) + 8) :
60c60
< ((%(reg_idx)s == PCReg) ? xc->setNextPC(%(final_val)s) :
---
> ((%(reg_idx)s == PCReg) ? setNextPC(xc, %(final_val)s) :
62a63,65
>
> readNPC = 'xc->readNextPC() & ~PcModeMask'
> writeNPC = 'setNextPC(xc, %(final_val)s)'
95c98
< 'Cpsr': ('ControlReg', 'uw', 'MISCREG_CPSR', None, 40),
---
> 'Cpsr': ('ControlReg', 'uw', 'MISCREG_CPSR', (None, None, 'IsControl'), 40),
101,103c104,105
< 'NPC': ('NPC', 'uw', None, (None, None, 'IsControl'), 50),
< 'NNPC': ('NNPC', 'uw', None, (None, None, 'IsControl'), 51)
<
---
> 'NPC': ('NPC', 'ud', None, (None, None, 'IsControl'), 50,
> readNPC, writeNPC),