If you haven’t yet, try varying the XYZ position (though I’m guessing you’ve already thought of that based on this post: (Chip Shouter XYZ table)
Also, are you just modifying your code here to adjust r5 and recompiling? If so, you might be getting messed up by compiler optimizations. The compiler should be able to tell that r5 is never modified after you first set it, so it might just remove that compare/branch entirely. You’ll probably want to mark your asm as volatile to avoid this.
Alex