I have this 'tight' piece of ASM I'm looking at how it's working, and it contains IT instruction ( I've never seen before until now).
Now all code works (compiler generated!) , but, i'm also stepping though each instruction for cycle counting, and , in this IT block I see that, firstly seems I step through every instruction always - no matter the data/numbers - and, by CM4 cycle counter is always bumped , so I presume instruction then following IT is always executed (even logically it shouldn't )
Can someone shine a light for me :
0100093a: 4291 cmp r1, r2 0100093c: BF28 it hs 0100093e: 4611 mov r1, r2
So just so you understand : r1 and r2 may have different numbers, and in fact can always be different and one less than other. So I would expect that, after "it hs", the "mov" is conditional - that if condition not true, it will be skipped , and definitely no cycles for "mov" added.
But ... this is not what I see in my debugger . Help me understand please? Seems i go through all these instructions _always_ independent of data.