We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I have never been too clear on the usability of the IT instruction. On the M0 especially, a branch takes 3 cycles whereas good old fashioned 32-bit ARM used condition codes so:MOVS R1,#32ITNZ 1100LSRS R2,R0,#16SUBS R1,R1,#16MOV R0,R2NOP <---can the 4th IT instruction be another IT?If so, rather than taking 5 or 6 cycles, it would take 4 (or 5 if ITs cannot be nested).I've only just got around looking at the IT instruction because it looked... odd.But I have to admit, Thumb is an odd, odd language.
The manual states: "Not permitted in IT block"