Loops setup using the HLA mechanism (Section 8.2.4.17) are required to maintain the following restrictions:
- Minimum number of instructions in Loop 0 is 2
- Branches (Bcc/CALL/RET + the delay slot instruction) cannot be placed at the end of a loop. This makes the loop rewind and branch target unambiguous.
- Last two instruction of any level cannot be a multi-slot load/store multiple (LDRF/STRF)
- Software cannot branch (Bcc/CALL/RET) to the last instruction of any loop, that is, the last instruction of any loop cannot be a branch target.