This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

When does ITAdvance() pseudo-function Exactly called ?

ITSTATE advances after normal execution of an IT block instruction. This is described by the ITAdvance() pseudocode
function:


// ITAdvance()
// ===========
ITAdvance()
if ITSTATE<2:0> == '000' then
ITSTATE.IT = '00000000';
else
ITSTATE.IT<4:0> = LSL(ITSTATE.IT<4:0>, 1);

Now my question Does The function ITAdvance() called only after execution of an instruction only in IT Block or after any instruction execution even if it is not in an IT Block .. (being in IT block or not is checked by the least 4 significant bits of ITSTAT register) .... I couldn't find it in the operation pseudo code of any instruction  of the ARMv7 manual

Thanks