ITSTATE advances after normal execution of an IT block instruction. This is described by the ITAdvance() pseudocodefunction:
// ITAdvance()// ===========ITAdvance()if ITSTATE<2:0> == '000' thenITSTATE.IT = '00000000';elseITSTATE.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
Thanks for ur answer ... I guessed that also because it's not mentioned in any instruction pseudo-code , I know it's effect is essential to update ITSTAT in IT block , and it I guess it have no use out of the block
but what I am still uncertain about is your words "ITAdvacnce() is "called" between instructions so won't be in the operation of any particular instruction"
do you mean by "any instruction" in and/or out of the IT block (meaning) or just any instruction but inside the Block ? that's my point , please elaborate
I also need to know where in the reference I can make sure of that information about when it's called .. or just where the function ITAdvance is mentioned itself is an evidence ... I am new to the way That Documentation is organized .. :D