Hi All,

It seems that instructions that writes into some control registers (CPSR and CPACR) are set as control instructions (flag IsControl is set). This is due to the definition and the use of cntrlReg in src/arch/arm/isa/operands.isa:

 (l.120)
def cntrlReg(idx, id = srtNormal, type = 'uw'):
    return ('ControlReg', type, idx, (None, None, 'IsControl'), id)

(l.238)
    'Cpsr': cntrlReg('MISCREG_CPSR', srtCpsr),
    'CpsrQ': cntrlReg('MISCREG_CPSR_Q', srtCpsr),

(l.246)
    'Cpacr': cntrlReg('MISCREG_CPACR'),

I was thinking that IsControl flag is only set for branch instruction i.e. instructions that modify the PC. Am I wrong?


Thanks,

Nathanaël
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to